<?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 any discussions tagged with Mathematics sorted by most likes.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2458169" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3241186" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3481794" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1070264" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1659553" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2504513" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/326240" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2451238" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2411604" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1569707" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2825207" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2342501" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2914219" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/148287" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1025046" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1599255" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2098696" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3092960" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/138400" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3027093" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2458169">
    <title>[WSG22] Daily Study Group: Cryptography (begins January 31!)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2458169</link>
    <description>A new study group devoted to Cryptography begins next Monday! &#xD;
&#xD;
I will be leading this group daily, Monday to Friday, over the next three weeks, until February 18. The curriculum follows the upcoming Wolfram U course &amp;#034;[Introduction to Cryptography][1]&amp;#034;. A list of daily topics can be found on the [Daily Study Groups][2] page. The study group sessions include videos and reading materials for the course and time for discussion and Q&amp;amp;A. After the study group will help you may complete the course quizzes and achieve the &amp;#034;Course Completion&amp;#034; certificate for the &amp;#034;[Introduction to Cryptography][3]&amp;#034; .&#xD;
&#xD;
&amp;gt; **REGISTER HERE:**&#xD;
&#xD;
&amp;gt; https://www.bigmarker.com/series/daily-study-group-intro-to-cryptography/series_details&#xD;
&#xD;
&amp;gt; **About This Study Group:** Cryptography has existed for thousands of years and currently is a fascinating topic to study because of the close ties it forges between theory and practice. It makes use of bitwise computations, advanced algebra, string operations and everything in between. The Wolfram Language, with functions that provide basic building blocks for modern cryptography, makes a great tool for hands-on understanding of various concepts. In this Study Group, you will follow video lessons from the new Wolfram U course Introduction to Cryptography and learn about the concepts, underlying math and connections to real-world scenarios.&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
P.S: Don&amp;#039;t worry if you are unable to attend every session live: the recordings will be sent out to those who registered!&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/introduction-to-cryptography/&#xD;
  [2]: https://www.bigmarker.com/series/daily-study-group-intro-to-cryptography/series_details&#xD;
  [3]: https://www.wolfram.com/wolfram-u/introduction-to-cryptography/&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUbanner.jpg&amp;amp;userId=20103</description>
    <dc:creator>Dariia Porechna</dc:creator>
    <dc:date>2022-01-28T13:31:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3241186">
    <title>[WSG24]  Daily Study Group: Introduction to Calculus</title>
    <link>https://community.wolfram.com/groups/-/m/t/3241186</link>
    <description>A Wolfram U Daily Study Group on [&amp;#034;Introduction to Calculus&amp;#034;][1] begins on Monday, August 12, 2024.&#xD;
&#xD;
Join a cohort of fellow mathematics enthusiasts to learn about the fundamentals of calculus from the recent [Introduction to Calculus][2] ebook by John Clark and myself. Our topics will include functions and limits, differential and integral calculus, and practical applications of calculus.&#xD;
&#xD;
The study group will be led by expert Wolfram U instructor [Luke Titus][4], and I will stop by occasionally to check in with the group. It should be a lot of fun!&#xD;
&#xD;
No prior Wolfram Language experience is required.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
**Dates**&#xD;
&#xD;
August 12- September 6, 2024, &#xD;
11am-12pm CT (4-5pm GMT)&#xD;
&#xD;
&amp;gt; **[REGISTER HERE][5]**&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [2]: https://www.wolfram-media.com/products/introduction-to-calculus/&#xD;
  [3]: https://www.wolfram.com/wolfram-u/courses/mathematics/introduction-to-calculus/&#xD;
  [4]: https://community.wolfram.com/web/luket&#xD;
  [5]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=wolframu-banner.png&amp;amp;userId=26786</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2024-08-05T20:01:27Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3481794">
    <title>In Memory of Michael Trott (1959-2025): Scientist, Mentor, Friend</title>
    <link>https://community.wolfram.com/groups/-/m/t/3481794</link>
    <description>![enter image description here][1]&#xD;
&#xD;
Michael Trott was more than a brilliant scientist, he was a mentor, a friend, and a truly unique human being. For those of us lucky enough to work closely with him, his absence leaves a deep void. He brought an irreplaceable blend of curiosity, creativity, and humility to everything he did. Our long meetings, where we&amp;#039;d dive into unconventional ideas in physics and find ways to implement them in Mathematica, often stretched past hours, but no one ever minded. With Michael, even the most abstract idea could spark a new direction, a novel prototype, or an unexplored corner of science.&#xD;
&#xD;
He didn&amp;#039;t just think outside the box, he rebuilt it entirely, quietly and kindly. His codes weren&amp;#039;t always optimized for performance, but they were original and beautiful. I have never seen anyone so professional in prototyping novel ideas computationally; and this was our joint passion for Mathematica, as we believed it is one of the best tool, if not the best, for this purpose.  One can find a few examples of Michael&amp;#039;s style of thinking in the [Wolfram Blog][2], [Wolfram Demonstration Project][3], or [Wolfram Community][4]. He was also the author of four seminal books: &amp;#034;[The Mathematica GuideBooks][5]&amp;#034; (four volumes).&#xD;
&#xD;
He had a deep grasp of the history and architecture of Mathematica, with a passion for physics, especially quantum theory, and a genius for applying technology in unexpected ways. Michael Trott joined Wolfram Research in 1994 and was a cornerstone of the company for over 30 years. As Chief Scientist of Wolfram|Alpha, his fingerprints are on thousands of algorithms and innovations, from computational art to physical constants, from parsing human input to building bridges between theoretical physics and computation. The [Wolfram Quantum Framework][6], as a small example, would not have been possible without his support and contributions.&#xD;
&#xD;
Michael was encyclopedic in knowledge, yet endearingly humble. He read hundreds of papers, built massive daily digests on LLMs, mentored researchers across physics, math, and engineering; and still worried whether he had anything &amp;#034;original&amp;#034; to offer before a scheduled talk at the University of Vienna (see the material he&amp;#039;d prepared for this talk from [this link][7]; we even had a dry-run together, to discuss the content repeatedly). His presence was magnetic. He showed up early to Zoom calls (Wolfram Research has many remote employees, including myself, even before COVID pandemic) and sparked thoughtful conversation before meetings began. He didn&amp;#039;t just build things but he shared them generously. He brought humanity to everything he touched. Whether discussing quantum fields or life under East Germany&amp;#039;s Stasi, he made space for your story too. He helped others grow, quietly and consistently, always leading by example.&#xD;
&#xD;
Toward the end, we spoke about the multiverse; you were certain we&amp;#039;d meet again. In those final days, lying in your hospital bed, we found ourselves deep in conversation about the quantum-to-classical transition and nonlinearities. Thank you, Michael, for everything. You showed so many of us what it truly means to be both a scientist and a human being.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Screenshot2025-06-18at9.36.32%E2%80%AFPM.png&amp;amp;userId=1539902&#xD;
  [2]: https://blog.wolfram.com/author/michael-trott/&#xD;
  [3]: https://demonstrations.wolfram.com/authors/michael-trott&#xD;
  [4]: https://community.wolfram.com/web/mtrott&#xD;
  [5]: https://www.amazon.com/stores/author/B001ITTUVM/allbooks&#xD;
  [6]: https://resources.wolframcloud.com/PacletRepository/resources/Wolfram/%5C%20QuantumFramework/&#xD;
  [7]: https://amoeba.wolfram.com/index.php/s/Jbrt4q6cYTN7rC7</description>
    <dc:creator>Mohammad Bahrami</dc:creator>
    <dc:date>2025-06-19T04:38:05Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1070264">
    <title>[CALL] Most common pitfalls for beginners of Wolfram Language</title>
    <link>https://community.wolfram.com/groups/-/m/t/1070264</link>
    <description>[Wolfram Language][1] (WL) is a powerful multi-paradigm programing language. There is a set of common mistakes that repeatedly tend to entrap new users. **This is a call to describe such mistakes building a &amp;#034;black-listing&amp;#034; guide for novice coders.** Please consider contributing. I suggest following simple rules (with gratitude adapted from a [similar effort][2]):&#xD;
&#xD;
 - One topic per answer &#xD;
&#xD;
 - Focus on non-advanced uses (it is intended to be useful for beginners and as a question closing reference)&#xD;
&#xD;
 - Include a self explanatory title in header style (example: &amp;#034;# Basic built-in function syntax&amp;#034;; see [syntax guide][3] )&#xD;
&#xD;
 - Explain the symptoms, the mechanism behind the scenes and all possible causes and solutions you can think of. Be sure to include a beginner&amp;#039;s level explanation (and a more advance one too, if you can) &#xD;
&#xD;
*Please, use &amp;#034;**Reply**&amp;#034; to a specific comment for structured clarity of nested comments.*&#xD;
&#xD;
&#xD;
----------&#xD;
## Table of Contents&#xD;
&#xD;
- [Basic syntax of built-in functions][4]&#xD;
- [Learn how to use the Documentation Center effectively][5]&#xD;
- [Sorting numerical data and the behavior of Sort][6]&#xD;
- [What does @#(%=&amp;lt;\[!} et cetera mean?][7]&#xD;
- [Consider Reap/Sow Instead of AppendTo][8]&#xD;
- [Alternatives to Reap/Sow][9]&#xD;
- [Case sensitivity and typos][10]&#xD;
- [Numerical vs Symbolic -- What to do when plots are blank][11]&#xD;
- [Import  and &amp;#034;CurrencyTokens&amp;#034;][12]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/language&#xD;
  [2]: https://mathematica.stackexchange.com/q/18393/13&#xD;
  [3]: http://community.wolfram.com/groups/-/m/t/270507&#xD;
  [4]: http://community.wolfram.com/groups/-/m/t/1069885&#xD;
  [5]: http://community.wolfram.com/groups/-/m/t/1070285&#xD;
  [6]: http://community.wolfram.com/groups/-/m/t/1070705&#xD;
  [7]: http://community.wolfram.com/groups/-/m/t/1070946&#xD;
  [8]: http://community.wolfram.com/groups/-/m/t/1084289&#xD;
  [9]: http://community.wolfram.com/groups/-/m/t/1164555&#xD;
  [10]: http://community.wolfram.com/groups/-/m/t/1084920&#xD;
  [11]: http://community.wolfram.com/groups/-/m/t/1086929&#xD;
  [12]: http://community.wolfram.com/groups/-/m/t/1086969</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2017-04-23T23:54:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1659553">
    <title>Knitting images: using Radon transform and its inverse for creative arts</title>
    <link>https://community.wolfram.com/groups/-/m/t/1659553</link>
    <description>Dear all, inspired by another [great post][1] of [@Anton Antonov][at0]  and in particular there by a remark of [@Vitaliy Kaurov][at1]  pointing to [the art of knitting images][2] I could not resist trying with Mathematica. Clearly - this problem is crying out loudly for **Radon transform**! &#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
I start by choosing some example image, convert it to inverse grayscale and perform the Radon transform. &#xD;
&#xD;
    ClearAll[&amp;#034;Global`*&amp;#034;]&#xD;
    img0 = RemoveBackground[&#xD;
       ImageTrim[&#xD;
        ExampleData[{&amp;#034;TestImage&amp;#034;, &amp;#034;Girl3&amp;#034;}], {{80, 30}, {250, 240}}], {&amp;#034;Background&amp;#034;, {&amp;#034;Uniform&amp;#034;, .29}}];&#xD;
    img1 = ImageAdjust[ColorNegate@ColorConvert[RemoveAlphaChannel[img0], &amp;#034;Grayscale&amp;#034;]];&#xD;
    {xDim, yDim} = {180, 400}; (* i.e. angles between 1\[Degree] and 180\[Degree] *)&#xD;
    &#xD;
    rd0 = Radon[img1, {xDim, yDim}];&#xD;
    ImageCollage[{img0, ImageAdjust@rd0}, Method -&amp;gt; &amp;#034;Rows&amp;#034;, &#xD;
     Background -&amp;gt; None, ImagePadding -&amp;gt; 10]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
Every column of the Radon image represents a different angle of projection. So next I separate these columns into (here 180) single Radon images and do an inverse Radon transform on each:&#xD;
&#xD;
    maskLine[a_] := Table[If[a == n, 1, 0], {n, 1, xDim}];&#xD;
    maskImg = Table[Image[ConstantArray[maskLine[c], yDim]], {c, 1, xDim}];&#xD;
    rdImgs = rd0 maskImg;&#xD;
    ProgressIndicator[Dynamic[n], {1, xDim}]&#xD;
    invRadImgs = &#xD;
      Table[{ImageApply[If[# &amp;gt; 0, #, 0] &amp;amp;, &#xD;
         InverseRadon[rdImgs[[n]]]], -(n - 91) \[Degree]}, {n, 1, xDim}];&#xD;
&#xD;
These data already represent the angle dependent intensities for backpropagation. Now one just has *somehow* to translate these intensities into discretely spaced lines (because this is the actual task in analogy to the above mentioned knitting ). Here is my simple attempt, which e.g. for 69° gives the following result (I am not really happy with this -  there is definitely room for improvement!):&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
    valsAngle[invRads_] := Module[{img, angle, data, l2},&#xD;
       angle = Last@invRads;&#xD;
       data = Max /@ (Transpose@*ImageData@*ImageRotate @@ invRads);&#xD;
       l2 = Round[Length[data]/2];&#xD;
       data = MapIndexed[{First[#2] - l2, #1} &amp;amp;, data];&#xD;
       {Select[&#xD;
         Times @@@ ({#1, &#xD;
              If[#2 &amp;gt; .0003, 1, 0]} &amp;amp; @@@ ((Mean /@ # &amp;amp;)@*Transpose /@ &#xD;
              Partition[data, 5])), # != 0 &amp;amp;], angle}  (* &#xD;
       limiting value of 0.0003 is just empirical! *)&#xD;
       ];&#xD;
    &#xD;
    va = valsAngle /@ invRadImgs;&#xD;
    graphicsData[va_] := Module[{u, angle},&#xD;
       {u, angle} = va;&#xD;
       InfiniteLine[# {Cos[angle], -Sin[angle]}, {Sin[angle], &#xD;
           Cos[angle]}] &amp;amp; /@ u];&#xD;
    &#xD;
    gd = graphicsData /@ va;&#xD;
    Graphics[{Thickness[.0003], gd}, ImageSize -&amp;gt; 600, &#xD;
     PlotRange -&amp;gt; {{-170, 170}, {-220, 220}}]&#xD;
&#xD;
... and the result is a bunch of lines:&#xD;
&#xD;
![enter image description here][6]&#xD;
 [at0]: https://community.wolfram.com/web/antononcube&#xD;
&#xD;
 [at1]: https://community.wolfram.com/web/vitaliyk&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com/groups/-/m/t/1555648?p_p_auth=T7A50bYl&#xD;
  [2]: http://artof01.com/vrellis/works/knit.html&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ImageOfLines.gif&amp;amp;userId=32203&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=img0rd0.jpg&amp;amp;userId=32203&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=linesample.png&amp;amp;userId=32203&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ImageOfLines.png&amp;amp;userId=32203</description>
    <dc:creator>Henrik Schachner</dc:creator>
    <dc:date>2019-04-13T20:01:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2504513">
    <title>[WSG22] Daily Study Group: A Guide to Programming and Mathematics with WL</title>
    <link>https://community.wolfram.com/groups/-/m/t/2504513</link>
    <description>A new study group on the topic &amp;#034;A Guide to Programming and Mathematics with the Wolfram Language&amp;#034; will begin soon.&#xD;
&#xD;
Join a cohort of fellow learners and expand your understanding of core programming topics as well as symbolic and applied mathematics functionality in the Wolfram Language with lessons by veteran instructor and developer [David Withoff][1]. A basic working knowledge of the Wolfram Language or introductory-level skill in any programming language is recommended.&#xD;
&#xD;
April 18&amp;#x2013;May 6&#xD;
&#xD;
11am&amp;#x2013;12pm US CT (4&amp;#x2013;5pm GMT)&#xD;
&#xD;
[**REGISTER HERE**][2]&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/instructors/withoff.html&#xD;
  [2]: https://www.bigmarker.com/series/daily-study-group-a-guide-to-programming-and-mathematics/series_details?utm_bmcr_source=community&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUBanner.jpeg&amp;amp;userId=130003</description>
    <dc:creator>Abrita Chakravarty</dc:creator>
    <dc:date>2022-04-06T14:49:11Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/326240">
    <title>Simulating a global Ebola outbreak</title>
    <link>https://community.wolfram.com/groups/-/m/t/326240</link>
    <description>Triggered by the recent outbreak of Ebola India Bruckner, a pupil from Aberdeen&amp;#039;s [St Margaret&amp;#039;s School for Girls][1], and myself worked on a little model this summer to understand the basics of the spreading of diseases in populations and the relationship to transportation networks. The model is very basic, but shows some interesting features and is very straight forward to implement in Mathematica. &#xD;
&#xD;
When I was typing these lines I saw that Arnoud Buzing had posted something, reason enough to interrupt my typing and to check out what he had posted: [Visualizing the Ebola Outbreak][2]. I hope that my post is going to complement Arnoud&amp;#039;s to some extent.&#xD;
&#xD;
So, my question is how the global air transport network might lead to a spreading of a disease. I will use a very standard SIR (susceptible-infected-recovered) model, which is certainly far from being ideal for Ebola; [but similar types of models are to too bad either][3]. It rather simulates an outbreak of some generic disease from which you recover. If we assumed that everyone died in an outbreak the SIR model might also be appropriate. I will introduce the equations below. I also need a list of all airports and all flight connections. On the website [Openflights.org][4] you will find all data we need. I saved the file &amp;#034;airports.dat&amp;#034; and the file &amp;#034;routes.dat&amp;#034;. So that&amp;#039;s the data. &#xD;
&#xD;
I first import the data:&#xD;
&#xD;
    airports = Import[&amp;#034;~/Desktop/airports.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
    routes = Import[&amp;#034;~/Desktop/routes.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
&#xD;
This is a plot of all airports in that database.&#xD;
&#xD;
    GeoRegionValuePlot[Table[GeoPosition[airports[[i, {7, 8}]]] -&amp;gt; 1., {i, 1, Length[airports]}], PlotStyle -&amp;gt; PointSize[0.003], PlotRange -&amp;gt; 1, ImageSize -&amp;gt; Full]&#xD;
&#xD;
which gives&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
Alright, now the routes. First, we create a list of rules for all airport IDs and their coordinates:&#xD;
&#xD;
    codecoords = Table[airports[[i, 5]] -&amp;gt; GeoPosition[airports[[i, {7, 8}]]], {i, 1,Length[airports]}];&#xD;
&#xD;
We then calculate the links:&#xD;
&#xD;
    links = Monitor[Table[routes[[j, {3, 5}]] /. codecoords, {j, 1, Length[routes]}], ProgressIndicator[j, {1, Length[routes]}]];&#xD;
&#xD;
and clean out missing data:&#xD;
&#xD;
    linksclean = Select[links, Head[#[[1]]] == GeoPosition &amp;amp;&amp;amp; Head[#[[2]]] == GeoPosition &amp;amp;];&#xD;
&#xD;
Now comes a nice figure:&#xD;
&#xD;
    With[{locations = RandomChoice[linksclean, 14000]}, GeoGraphics[{{Green, Opacity[0.3],AbsoluteThickness[0.0001], GeoPath[locations, &amp;#034;Geodesic&amp;#034;]}}, &#xD;
      GeoRange -&amp;gt; &amp;#034;World&amp;#034;, GeoProjection -&amp;gt; Automatic, GeoBackground -&amp;gt; GeoStyling[&amp;#034;ReliefMap&amp;#034;], ImageSize -&amp;gt; {1200, 600}]]&#xD;
&#xD;
which gives&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
Ok. Interestingly I can only plot 16000 max at a time. Somewhere between 16-17k the Kernel quits. That might be Integer related. Could be a limit in the programming of Geographics. Not sure. I have more than enough memory and can plot the remaining 2-3k airports in a second figure and use Show to display all. (It would be great if someone from WRI could comment.)&#xD;
&#xD;
Anyway, let&amp;#039;s go to some modelling. The basic idea of an [SIR model][7] is that a population is modelled in three compartments Susceptibles (S), Infected (I) and Recovered (R). I will use a time-discrete model; there are continuous models around, too, and if anyone is interested I can provide the ODE model as well. Here are the three equations:&#xD;
&#xD;
    sus[i_] := sus[i] = sus[i - 1] - [Rho] sus[i - 1] inf[i - 1];&#xD;
    inf[i_] := nf[i] = inf[i - 1] + [Rho] sus[i - 1] inf[i - 1] - [Lambda] inf[i - 1];&#xD;
    rec[i_] := rec[i] = rec[i - 1] + [Lambda] inf[i - 1];&#xD;
&#xD;
The meaning of sus, inf and rec should be clear by now; they are given as percentages of the total population, their sum is 100%. The variable i represents time. $&#xD;
ho$ is an infection rate and $lambda$ is a recovery rate. The infections increase with the product of susceptibles and infected. By adding the right hand sides it becomes clear that the population does not change over time. We come up with some values for the parameters and iterate:&#xD;
&#xD;
    sus[1] = 0.95; inf[1] = 0.05; rec[1] = 0; [Rho] = 0.2; [Lambda] = 0.1;&#xD;
    tcourse = Table[{sus[i], inf[i], rec[i]}, {i, 1, 100}];&#xD;
&#xD;
The time course looks like this:&#xD;
&#xD;
    ListPlot[Transpose[tcourse]]&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
The monotonously decreasing function show susceptibles, the increasing function recovered, and the remaining curve the infected. We now need to do some cleaning up of the original airport data, before we proceed to a multi-airport/city model. &#xD;
&#xD;
    (*Extract the names and GPS coordinates*)&#xD;
    &#xD;
    rawdata = &#xD;
      Sort[Select[airports[[All, {5, 7, 8}]], #[[1]] != &amp;#034;&amp;#034; &amp;amp;]][[81 ;;]];&#xD;
    &#xD;
    (*These are just the coordinates*)&#xD;
    &#xD;
    airportcoords = rawdata[[All, {2, 3}]];&#xD;
    &#xD;
    (*These are just the names. *)&#xD;
    &#xD;
    names = rawdata[[All, 1]];&#xD;
    &#xD;
    (*Here are the names to indices*)&#xD;
    &#xD;
    rules = MapThread[#1 -&amp;gt; #2 &amp;amp;, {names, Range[Length[names]]}];&#xD;
    &#xD;
    (*The &amp;#034;population&amp;#034; is initially set to 1 for all airports, this allows us to take different airport sizes into consideration later.*)&#xD;
    &#xD;
    pop = Table[1., {j, 1, Length[names]}]; &#xD;
    routesraw = Import[&amp;#034;~/Desktop/routes.dat&amp;#034;, &amp;#034;CSV&amp;#034;];&#xD;
    &#xD;
    (*There are many links so this takes a while*)&#xD;
    &#xD;
    links = Select[routesraw[[All, {3, 5}]] /. rules, NumberQ[#[[1]]] &amp;amp;&amp;amp; NumberQ[#[[2]]] &amp;amp;];&#xD;
&#xD;
From that we now construct (a first guess at) the coupling or adjacency matrix:&#xD;
&#xD;
    couplingdummy = Table[0, {i, 1, Length[names]}, {j, 1, Length[names]}];&#xD;
    &#xD;
    For[k = 1, k &amp;lt;= Length[links], k++, &#xD;
      couplingdummy[[links[[k, 1]], links[[k, 2]]]] = 1; &#xD;
      couplingdummy[[links[[k, 2]], links[[k, 1]]]] = 1];&#xD;
&#xD;
I do know about ConstantArray, but for some reason that does not work. The first line constructs a matrix full of zeros and the second adds ones where there are links. The problem is that apparently in that dataset some airports are not linked at all. We can sort them out by:&#xD;
&#xD;
    indices = Select[Table[If[Total[couplingdummy[[i]]] &amp;gt; 0, i], {i, 1, Length[couplingdummy]}], NumberQ];&#xD;
&#xD;
We now delete the columns and rows of the couplingdummy matrix&#xD;
&#xD;
    intermed = couplingdummy[[#]] &amp;amp; /@ indices;&#xD;
    transintermed = Transpose[intermed];&#xD;
    coupling = transintermed[[#]] &amp;amp; /@ indices;&#xD;
&#xD;
Again I had a much more elegant way of doing this, with the advantage that it did not work. To speed up the following calculations I use that the coupling matrix is sparse, but I like the original too much to throw it away just yet. &#xD;
&#xD;
    coulinginterm = coupling;&#xD;
    coupling = SparseArray[coulinginterm];&#xD;
&#xD;
We adapt our &amp;#034;population/airport size&amp;#034; vector:&#xD;
&#xD;
    pop = Table[1., {j, 1, Length[indices]}]; &#xD;
&#xD;
and set the following parameters:&#xD;
&#xD;
    [Rho] = 0.2; [Lambda] = 0.1; Mairports =  Length[indices]; [Mu] = 0.05;&#xD;
&#xD;
$\rho$ and $lambda$ are as before. Mairports is the number of airports that we model and $\mu$ is a &amp;#034;migration rate&amp;#034;. It comes from the original model which we built for different cities were it describes the migration between different cities. Here is models the &amp;#034;propensity to fly&amp;#034;. &#xD;
&#xD;
We now define an effective coupling matrix. It is the adjacency matrix times the population vector (i.e. people in the catchment area of the airport). In our case the vector has all ones, so it is just the adjacency matrix. It allows us later to model more general situations. &#xD;
&#xD;
    meanNN = coupling.pop;&#xD;
&#xD;
When we want to model the outbreak as populations at the positions of all airports, each of which is described by an SIR model, we need to couple lots of populations, because there are lots of airports. The following uses the sparsity of the adjacency matrix to speed up the calculation. &#xD;
&#xD;
    sumind = Table[Take[Flatten[ArrayRules[coupling[[k, All]]][[All, 1]]], Length[ArrayRules[coupling[[k, All]]]] - 1], {k, 1, Mairports}];&#xD;
&#xD;
It generates a list of all airports that are coupled/linked to a given airport. Now we are ready to write down the central equations:&#xD;
&#xD;
    sus[i_, j_] :=  sus[i, j] = (1 - [Mu]) (sus[i - 1, j] - [Rho] sus[i - 1, j] inf[i - 1, j]) + [Mu]  Total[Table[sus[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1, Length[sumind[[j]]]} ] ]/meanNN[[j]]; &#xD;
    inf[i_, j_] := inf[i, j] = (1 - [Mu]) (inf[i - 1, j] + [Rho] sus[i - 1, j] inf[i - 1, j] - [Lambda] inf[i - 1, j]) + [Mu] Total[Table[inf[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
    rec[i_, j_] := rec[i, j] = (1 - [Mu]) (rec[i - 1, j] + [Lambda] inf[i - 1, j]) + [Mu] Total[Table[rec[i - 1, sumind[[j, u]]]*pop[[sumind[[j, u]]]], {u, 1,Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
&#xD;
The terms with the Total are &amp;#034;migration terms&amp;#034; that describe the travelling behaviour of the people in the catchment area of the airports. i is the time index and j labels the airports. Next come the initial conditions:&#xD;
&#xD;
    For[i = 1, i &amp;lt;= Mairports, i++, sus[1, i] = 1.; inf[1, i] = 0.0;  rec[1, i] = 0.;]&#xD;
    sus[1, 1] = 0.95; &#xD;
    inf[1, 1] = 0.05;&#xD;
    rec[1, 1] = 0.0;&#xD;
&#xD;
In the catchment areas of all airports there are only susceptibles, apart from airport number 1, which will have 5% infected people. Now we can finally iterate the whole thing:&#xD;
&#xD;
    tcourse = Monitor[Table[{sus[i, j], inf[i, j], rec[i, j]}, {i, 1, 500}, {j, 1,Mairports}], ProgressIndicator[i, {0, 500}]];&#xD;
&#xD;
Great. Let&amp;#039;s save that just in case your notebook tends to crash at this point, just l like mine did when I was playing with this.&#xD;
&#xD;
    Export[&amp;#034;~/Desktop/SIR-tcourse.csv&amp;#034;, tcourse];&#xD;
&#xD;
If you wish you can now plot the time course of some of the airport catchment areas:&#xD;
&#xD;
    ListPlot[Flatten[Table[{tcourse[[All, j, 1]], tcourse[[All, j, 2]], tcourse[[All, j, 3]]}, {j, 1, 200}], 1], ImageSize -&amp;gt; Large]&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
Now that is not very helpful yet. To generate nicer plots, i.e. to normalise, we first calculate the maximal number of sick  people at any of the airports:&#xD;
&#xD;
    maxsick = Max[Flatten[tcourse[[All, All, 2]]]];&#xD;
&#xD;
We then generate movie frames, and go and get some coffee....&#xD;
&#xD;
    frames = Monitor[Table[GeoRegionValuePlot[Table[GeoPosition[airportcoords[[indices[[i]]]]] -&amp;gt; inf[k, i]/maxsick, {i, 1, Length[indices]}], PlotStyle -&amp;gt; PointSize[0.003], PlotRange -&amp;gt; 1, ImageSize -&amp;gt; Full,ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;], {k, 1, 300}], ProgressIndicator[k, {0, 300}]];&#xD;
&#xD;
Actually, you might want to get another coffee when you want to export the frames:&#xD;
&#xD;
    Export[&amp;#034;~/Desktop/SIR-frames-World.gif&amp;#034;, frames];&#xD;
&#xD;
Alright. That gif is a bit large to embed it into this post, but you can download it from [here][10]. All I can do is show you some frames to get an idea of how this looks:&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
Of course we can look at the network structure and try to understand the pattern of infections. This command is useful:&#xD;
&#xD;
    CommunityGraphPlot[AdjacencyGraph[Normal[coupling]]]&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
You clearly see the communities in North America, Europe and Asia. This one is also pretty:&#xD;
&#xD;
    Show[TreePlot[Subgraph[grph, ConnectedComponents[grph][[1]]], Center, PlotStyle -&amp;gt; Directive[Gray, Opacity[0.02]]], &#xD;
     TreePlot[Subgraph[grph, ConnectedComponents[grph][[1]]], Center, EdgeRenderingFunction -&amp;gt; None]]&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
We have several enhancements of this. First we can easily look at different countries individually. What if an ebola patient arrives at some airport in the US? [See simulation here][14]. (Careful 50 MBs!)&#xD;
&#xD;
There is also something we can do if we want to go the the level of cities. The main problem is that the Wolfram database does not yet have data for all streets between cities. In one of the online conferences it was said that that will be introduced in some later version, which I cannot wait to play with. Until then we have to cheat. (or use some online database; I prefer cheating.)&#xD;
&#xD;
We developed a model of the spreading of a disease in Nigeria. So we could go about this like this:&#xD;
&#xD;
    Clear[&amp;#034;Global`*&amp;#034;]&#xD;
    CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Population&amp;#034;]&#xD;
    Graphics[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Polygon&amp;#034;]] &#xD;
&#xD;
Then get city names, coords and population:&#xD;
&#xD;
    names = CityData[{All, &amp;#034;Nigeria&amp;#034;}];&#xD;
    citypop = Table[CityData[names[[i]], &amp;#034;Population&amp;#034;], {i, 1, Length[names]}];&#xD;
    citycoords = Table[CityData[names[[i]], &amp;#034;Coordinates&amp;#034;], {i, 1, Length[names]}];&#xD;
&#xD;
Here comes the cheat. Because we don&amp;#039;t have the streets we use Delaunay triangulation:&#xD;
&#xD;
    Needs[&amp;#034;ComputationalGeometry`&amp;#034;]&#xD;
    dtri = DelaunayTriangulation[citycoords]; list = {}; Table[&#xD;
     Do[AppendTo[list, {i, dtri[[All, 2]][[i, j]]}], {j, 1, &#xD;
       Length[dtri[[All, 2]][[i, All]]]}], {i, 1, Length[dtri]}];&#xD;
    coupling = Table[0, {i, 1, Length[names]}, {j, 1, Length[names]}];&#xD;
    For[i = 1, i &amp;lt; Length[list] + 1, i++, &#xD;
     coupling[[list[[i]][[1]], list[[i]][[2]]]] = 1;]&#xD;
    &#xD;
    coulinginterm = coupling;&#xD;
    &#xD;
    coupling = SparseArray[coulinginterm];&#xD;
&#xD;
which gives the following network&#xD;
&#xD;
    Graphics[Join[&#xD;
      Table[Circle[citycoords[[i]], 0.02], {i, 1, Length[names]}], &#xD;
      DeleteCases[&#xD;
       Flatten[Table[&#xD;
         If[coupling[[i, j]] == 1, &#xD;
          Line[{citycoords[[i]], citycoords[[j]]}]] , {i, 1, &#xD;
          Length[names]}, {j, 1, i}], 1], Null]]]&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
The point in the middle corresponds to the airport where it all starts; then come its neighbours and then their neighbours etc. You could now animate this and change the colours to see how the disease spreads through the different layers. It would be nice if someone could implement that. &#xD;
&#xD;
There are obviously some problems, i.e. &amp;#034;streets&amp;#034; leaving the country etc, but the general idea should work. The rest is quite the same as before:&#xD;
&#xD;
    (*Paramters*)&#xD;
    &#xD;
    [Rho] = 0.2; [Lambda] = 0.1; Mcities = Length[names]; [Mu] = 0.05;&#xD;
    &#xD;
    (*Initiation*)&#xD;
    &#xD;
    For[i = 1, i &amp;lt;= Mcities, i++, sus[1, i] = 1.; inf[1, i] = 0.0; &#xD;
     rec[1, i] = 0.;]&#xD;
    &#xD;
    (*Starting Outbrake at the following city*)&#xD;
    &#xD;
    sus[1, 1] = 0.95; inf[1, 1] = 0.05;&#xD;
    rec[1, 1] = 0.0;&#xD;
    &#xD;
    meanNN = coupling.citypop;&#xD;
    &#xD;
    sumind = Table[&#xD;
       Take[Flatten[ArrayRules[coupling[[k, All]]][[All, 1]]], &#xD;
        Length[ArrayRules[coupling[[k, All]]]] - 1], {k, 1, Mcities}];&#xD;
    &#xD;
    sus[i_, j_] := &#xD;
     sus[i, j] = (1 - [Mu]) (sus[i - 1, &#xD;
           j] - [Rho] sus[i - 1, j] inf[i - 1, j]) + [Mu]  Total[&#xD;
          Table[sus[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u, &#xD;
            1, Length[sumind[[j]]]} ] ]/meanNN[[j]]; &#xD;
    inf[i_, j_] := &#xD;
     inf[i, j] = (1 - [Mu]) (inf[i - 1, &#xD;
           j] + [Rho] sus[i - 1, j] inf[i - 1, j] - [Lambda] inf[i - 1, &#xD;
            j]) + [Mu] Total[&#xD;
          Table[inf[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u, &#xD;
            1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
    rec[i_, j_] := &#xD;
      rec[i, j] = (1 - [Mu]) (rec[i - 1, &#xD;
            j] + [Lambda] inf[i - 1, j]) + [Mu] Total[&#xD;
           Table[rec[i - 1, sumind[[j, u]]]*citypop[[sumind[[j, u]]]], {u,&#xD;
              1, Length[sumind[[j]]]} ] ]/meanNN[[j]];&#xD;
&#xD;
This time we try to work in parallel:&#xD;
&#xD;
    LaunchKernels[];&#xD;
    tcourse = ParallelTable[{sus[i, j], inf[i, j], rec[i, j]}, {i, 1, 500}, {j, 1, Mcities}]; // AbsoluteTiming&#xD;
&#xD;
(There is something strange here. This ran in MMA9 in 6.3 seconds- I still have data from the course I taught last year. MMA10 takes ages. After the installation of MMA10 also MMA9 seems to take longer 43 seconds. Is this a bug report?). Note that this time the population sizes of the cities are taken into account and are relevant. If you run&#xD;
&#xD;
    Manipulate[&#xD;
     Graphics[{Line[Flatten[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Coordinates&amp;#034;], 1]], &#xD;
       Join[Table[{ &#xD;
          RGBColor[tcourse[[t, i, 2]], tcourse[[t, i, 1]], &#xD;
           tcourse[[t, i, 3]]], Disk[citycoords[[i]], 0.1]}, {i, 1, &#xD;
          Length[names]}]]}], {t, 1, 500, 1}]&#xD;
&#xD;
or &#xD;
&#xD;
    poly = Graphics[Polygon[Flatten[CountryData[&amp;#034;Nigeria&amp;#034;, &amp;#034;Coordinates&amp;#034;], 1]], ImagePadding -&amp;gt; None];&#xD;
    Animate[ImageSubtract[&#xD;
      Graphics[ListDensityPlot[&#xD;
        Join[{{4, 3.25, 0}, {4, 14, 0}, {14, 3.25, 0}, {14, 14, 0}}, &#xD;
         Table[{citycoords[[k]][[1]], citycoords[[k]][[2]], &#xD;
           1. - tcourse[[t, k, 1]]}, {k, 1, Mcities}]], &#xD;
        InterpolationOrder -&amp;gt; 3, ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;, &#xD;
        PlotRange -&amp;gt; All, Frame -&amp;gt; False, PlotRangePadding -&amp;gt; None]], &#xD;
      poly], {t, 1, 500, 1}, DefaultDuration -&amp;gt; 20.]&#xD;
&#xD;
or better &#xD;
 &#xD;
&#xD;
    infmax = Max[tcourse[[All, All, 2]]];&#xD;
    frames = Table[&#xD;
       ImageSubtract[&#xD;
        Graphics[&#xD;
         ListDensityPlot[&#xD;
          Join[{{4, 3.25, 0}, {4, 14, 0}, {14, 3.25, 0}, {14, 14, 0}}, &#xD;
           Table[{citycoords[[k]][[1]], citycoords[[k]][[2]], &#xD;
             tcourse[[t, k, 2]]/infmax}, {k, 1, Mcities}]], &#xD;
          InterpolationOrder -&amp;gt; 3, ColorFunction -&amp;gt; &amp;#034;Rainbow&amp;#034;, &#xD;
          PlotRange -&amp;gt; All, Frame -&amp;gt; False, PlotRangePadding -&amp;gt; None, &#xD;
          ColorFunctionScaling -&amp;gt; False]], poly], {t, 1, 500, 6}];&#xD;
&#xD;
you get nice animations like this one:&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
I have noticed that Nigeria needs to be rotated, but I hope that the idea becomes clear. I am also aware that there are many flaws in this. SIR is certainly not the best way forward to model Ebola. Any population dynamicist and/or health expert can certainly come up with an endless list of problems. The network is not perfect. For more serious applications we actually use models for the cities, i.e. street connections among close cities and airport connections among countries etc. The problem is that if we simulate between 200-20000  cities per country plus the airports, a standard laptop runs into trouble. On the bright side, we have a cluster on which this kind of larger simulations work just fine. &#xD;
&#xD;
Hope that you like this anyway,&#xD;
&#xD;
Marco&#xD;
&#xD;
&#xD;
  [1]: http://www.st-margaret.aberdeen.sch.uk&#xD;
  [2]: http://community.wolfram.com/groups/-/m/t/325956&#xD;
  [3]: http://mtbi.asu.edu/files/Mathematical_Models_to_Study_the_Outbreaks_of_Ebola.pdf&#xD;
  [4]: http://openflights.org/data.html&#xD;
  [5]: /c/portal/getImageAttachment?filename=Airportsall.jpg&amp;amp;userId=48754&#xD;
  [6]: /c/portal/getImageAttachment?filename=Airports-world.jpg&amp;amp;userId=48754&#xD;
  [7]: http://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology&#xD;
  [8]: /c/portal/getImageAttachment?filename=SingleSIR.jpg&amp;amp;userId=48754&#xD;
  [9]: /c/portal/getImageAttachment?filename=SIR-airportstcourse.jpg&amp;amp;userId=48754&#xD;
  [10]: https://www.dropbox.com/s/9y6d16z82qjw261/SIR-frames.gif?dl=0&#xD;
  [11]: /c/portal/getImageAttachment?filename=SIR-airports-frames.jpg&amp;amp;userId=48754&#xD;
  [12]: /c/portal/getImageAttachment?filename=Airports-CommNetwork.jpg&amp;amp;userId=48754&#xD;
  [13]: /c/portal/getImageAttachment?filename=SIR-networkrings.jpg&amp;amp;userId=48754&#xD;
  [14]: https://www.dropbox.com/s/0qwgmi7ks8dpsjh/SIR-USA-frames.gif?dl=0&#xD;
  [15]: /c/portal/getImageAttachment?filename=SIR-Nigerianetwork.jpg&amp;amp;userId=48754&#xD;
  [16]: /c/portal/getImageAttachment?filename=SIR-movie.gif&amp;amp;userId=48754</description>
    <dc:creator>Marco Thiel</dc:creator>
    <dc:date>2014-08-22T20:18:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2451238">
    <title>Perfect and almost perfect rings (chains) of 4-antiprisms</title>
    <link>https://community.wolfram.com/groups/-/m/t/2451238</link>
    <description>![enter image description here][1]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
An [n-gonal antiprism or n-antiprism][3] is a polyhedron composed of two parallel copies of an n-sided polygon, connected by a band of 2n triangles.&#xD;
&#xD;
    Grid@Transpose@Table[PolyhedronData[{&amp;#034;Antiprism&amp;#034;,k},#]&amp;amp;/@{&amp;#034;Image&amp;#034;,&amp;#034;Net&amp;#034;},{k,3,7}]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
To form an almost perfect ring of 4-antiprisms firstly we need a set of vertices and coordinates:&#xD;
&#xD;
    offset =#+{0,0,Sqrt[1-1/4 Sec[π/8]^2]+4.05} &amp;amp;/@(2PolyhedronData[{&amp;#034;Antiprism&amp;#034;,4}, &amp;#034;VertexCoordinates&amp;#034;]);&#xD;
    &#xD;
    face={{5,1,2,6},{8,4,7,3},{6,4,8},{2,7,4},{1,3,7},{5,8,3},{6,2,4},{2,1,7},{1,5,3},{5,6,8}};&#xD;
&#xD;
&#xD;
Then we can make 13 copies: &#xD;
&#xD;
    Graphics3D[&#xD;
    Table[GraphicsComplex[RotationMatrix[k 2 Pi/13,{0,1,0}].#&amp;amp;/@offset,Polygon/@face],{k,0,12}], &#xD;
    Boxed-&amp;gt; False, SphericalRegion-&amp;gt;True]&#xD;
&#xD;
![13 antiprisms][5]&#xD;
&#xD;
This is **not** exact, but it&amp;#039;s very close.&#xD;
&#xD;
![13 antiprisms side][6]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=antiptism4.gif&amp;amp;userId=11733&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=asdf43qasdf.jpg&amp;amp;userId=11733&#xD;
  [3]: https://mathworld.wolfram.com/Antiprism.html&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=sdfq3dfag43.jpg&amp;amp;userId=11733&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=13anti.jpg&amp;amp;userId=21530&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=13antiside.jpg&amp;amp;userId=21530</description>
    <dc:creator>Ed Pegg</dc:creator>
    <dc:date>2022-01-20T20:12:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2411604">
    <title>[WSG21] Daily Study Group: Differential Equations (begins November 29)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2411604</link>
    <description>A new study group devoted to Differential Equations begins next Monday! A list of daily topics can be found on our [Daily Study Groups][1] page. This group will be led by one of our outstanding Wolfram certified instructors, Luke Titus, and will meet daily, Monday to Friday, over the next three weeks. Luke will share the excellent lesson videos created by him for the upcoming Wolfram U course &amp;#034;[Introduction to Differential Equations][2]&amp;#034;. Study group sessions include time for exercises, discussion and Q&amp;amp;A. This study group will help you achieve the &amp;#034;Course Completion&amp;#034; certificate for the &amp;#034;Introduction to Differential Equations&amp;#034; course after you complete the course quizzes.&#xD;
&#xD;
Sign up: [Study group registration page][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/special-event/study-groups/&#xD;
  [2]: https://www.wolfram.com/wolfram-u/introduction-to-differential-equations/&#xD;
  [3]: https://www.bigmarker.com/series/daily-study-group-intro-to-differential-equations/series_details?utm_bmcr_source=community</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2021-11-22T16:35:30Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1569707">
    <title>A prime pencil: truncatable primes</title>
    <link>https://community.wolfram.com/groups/-/m/t/1569707</link>
    <description>![a very prime pencil][1]&#xD;
&#xD;
I just got a set of these pencils, from [Mathsgear][2].&#xD;
The number printed on it is prime, and will remain so as you sharpen the pencil from the left, all the way down to the last digit, 7.&#xD;
Here is a recursive construction of all such *truncatable primes*.&#xD;
&#xD;
    TruncatablePrimes[p_Integer?PrimeQ] :=&#xD;
     With[{digits = IntegerDigits[p]},&#xD;
      {p, TruncatablePrimes /@ (FromDigits /@ (Prepend[digits, #] &amp;amp; /@ Range[9]))}&#xD;
      ];&#xD;
    TruncatablePrimes[p_Integer] := {}&#xD;
&#xD;
   The one on the pencil is the largest one,&#xD;
&#xD;
    In[7]:= Take[Sort[Flatten[TruncatablePrimes /@ Range[9]]], -5]&#xD;
    &#xD;
    Out[7]= {&#xD;
    9918918997653319693967, &#xD;
    57686312646216567629137, &#xD;
    95918918997653319693967, &#xD;
    96686312646216567629137,&#xD;
    357686312646216567629137}&#xD;
    &#xD;
 [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IMG_20181212_120939.jpg&amp;amp;userId=143131&#xD;
 [2]: https://mathsgear.co.uk/products/truncatable-prime-pencil</description>
    <dc:creator>Roman Maeder</dc:creator>
    <dc:date>2018-12-12T12:01:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2825207">
    <title>[WSG23] Daily Study Group: Introduction to Probability</title>
    <link>https://community.wolfram.com/groups/-/m/t/2825207</link>
    <description>A Wolfram U Daily Study Group on Introduction to Probability begins on **February 27th 2023**. &#xD;
&#xD;
Join me and a group of fellow learners to learn about the world of probability and statistics using the Wolfram Language. Our topics for the study group include the characterisation of randomness, random variable design and analysis, important random distributions and their applications, probability-based data science and advanced probability distributions.&#xD;
&#xD;
The idea behind this study group is to rapidly develop an intuitive understanding of probability for a college student, professional or interested hobbyist. A basic working knowledge of the Wolfram Language is recommended but not necessary. We are happy to help beginners get up to speed with Wolfram Language using resources already available on Wolfram U.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
&amp;gt; [**REGISTER HERE**][1]&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
![Wolfram U Banner][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-probability-wsg36/series_details&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=NormalConvergence.gif&amp;amp;userId=11733&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=banner.jpg&amp;amp;userId=2823613</description>
    <dc:creator>Marc Vicuna</dc:creator>
    <dc:date>2023-02-07T01:15:38Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2342501">
    <title>Fractal art: custom Mandelbrot set functions</title>
    <link>https://community.wolfram.com/groups/-/m/t/2342501</link>
    <description>*MODERATOR NOTE: related resource function can be found here*  &#xD;
https://resources.wolframcloud.com/FunctionRepository/resources/MandelbrotSetRemap&#xD;
&#xD;
----&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=frac_hero.jpg&amp;amp;userId=20103&#xD;
  [2]: https://www.wolframcloud.com/obj/17f4f067-3491-4d7a-bf84-5601782ad11e</description>
    <dc:creator>Mark Greenberg</dc:creator>
    <dc:date>2021-08-14T14:58:17Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2914219">
    <title>[WSG23] Daily Study Group: Wolfram for Mathematics Research and Study</title>
    <link>https://community.wolfram.com/groups/-/m/t/2914219</link>
    <description>A Wolfram U daily study group covering the implementation of Mathematica and Wolfram Language for mathematics topics ranging from function visualization to upcoming calculus functionality begins on May 22, 2023 and runs through June 1. This study group will run on weekdays from 11:00AM&amp;#x2013;12:00PM Central US time. (We will not meet on Memorial Day, May 29, and Friday sessions will start at 10:30AM for extra review time.) &#xD;
&#xD;
&amp;gt; [**REGISTER HERE**][1]. I hope to see you there!&#xD;
&#xD;
This study group is a fantastic way to learn about the amazing mathematical capabilities built into Wolfram Language. We will cover a *very* broad variety of topics, including but not limited to function visualization, linear algebra and graph theory, differential equations and even fascinating topics such as number theory and asymptotics. Several sessions will be led by the Wolfram developers who work on the mathematics functionality that we&amp;#039;ll be covering!&#xD;
&#xD;
While this study group is aimed at mathematics students at roughly the graduate level, **no prior Wolfram Language experience is necessary**&amp;#x2014;the first day will be dedicated to getting you up to speed with the language itself. As usual, we will have questions, study materials, quizzes along the way to help you master the subject matter and functionality.&#xD;
&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-math-research-wsg40/series_details?utm_bmcr_source=community &amp;#034;REGISTER HERE&amp;#034;&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WolframUBanner%281%29%281%29.jpg&amp;amp;userId=1711324</description>
    <dc:creator>Arben Kalziqi</dc:creator>
    <dc:date>2023-05-03T23:07:29Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/148287">
    <title>Folds in a sheet of paper / metal / cloth</title>
    <link>https://community.wolfram.com/groups/-/m/t/148287</link>
    <description>I am an artist, drawing and working with 3d. Since long time, I am missing a method to form realistic folds and wrinkles into virtual sheets of paper, metal or cloth. I found some attempts within 3d-programs, but I never saw something that was not very limited or looked like rubber. Because it is so easy at reality, but so difficult at the computer, I think there is just little mathematical base.First of all: Could anybody tell me, what field of mathematics this is?&#xD;
&#xD;
&#xD;
[img=width: 800px; height: 1132px; ]/c/portal/getImageAttachment?filename=Folds-01.jpg&amp;amp;userId=145842[/img]&#xD;
&#xD;
[img=width: 800px; height: 1132px; ]/c/portal/getImageAttachment?filename=Folds-02.jpg&amp;amp;userId=145842[/img]</description>
    <dc:creator>Dietmar Klein</dc:creator>
    <dc:date>2013-11-03T23:03:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1025046">
    <title>Measuring the fractal dimension of a tree photo</title>
    <link>https://community.wolfram.com/groups/-/m/t/1025046</link>
    <description>This is a photo of some tree branches that I took at the park today.&#xD;
&#xD;
[&amp;lt;img src=&amp;#034;http://community.wolfram.com//c/portal/getImageAttachment?filename=20170304_121322.jpg&amp;amp;userId=38370&amp;#034; width=&amp;#034;500&amp;#034;&amp;gt;](http://community.wolfram.com//c/portal/getImageAttachment?filename=20170304_121322.jpg&amp;amp;userId=38370)&#xD;
&#xD;
It looks like a fractal, and a nice candidate for measuring the fractal dimension.  Here&amp;#039;s how we can do that in Mathematica.&#xD;
&#xD;
Let us start by binarizing the image.&#xD;
&#xD;
    img = Import[&amp;#034;~/Downloads/20170304_121322.jpg&amp;#034;];&#xD;
&#xD;
    bin = LocalAdaptiveBinarize[ImageAdjust[img, 0.3], 200, {0.9, 0, 0}];&#xD;
&#xD;
[&amp;lt;img src=&amp;#034;http://community.wolfram.com//c/portal/getImageAttachment?filename=bin.png&amp;amp;userId=38370&amp;#034; width=&amp;#034;300&amp;#034;&amp;gt;](http://community.wolfram.com//c/portal/getImageAttachment?filename=bin.png&amp;amp;userId=38370)&#xD;
&#xD;
For a better result, I increased the contrast slightly (`ImageAdjust`), then used local adaptive binarization. This method chooses a different binarization threshold for each pixel based on its neighbourhood.  It helps preserve small branches while avoiding including any part of the clouds (the weather was not very good today).&#xD;
&#xD;
The easiest way to measure fractal dimension is *box counting*: overlay a square grid, and see how many of the grid cells contain some of the object in the image.  What would we get if the object is a line?&#xD;
&#xD;
    Table[&#xD;
      Rasterize[Graphics[{Antialiasing -&amp;gt; False, Line[{{0, 0}, {1, 1}}]}],&#xD;
        ImageSize -&amp;gt; 256, RasterSize -&amp;gt; k],&#xD;
      {k, 2^Range[2, 8]}&#xD;
      ] // ListAnimate&#xD;
&#xD;
The box count would double (i.e. multiply by $2^1$) every time the box size is halved.  What would happen if the object is a filled disk?&#xD;
&#xD;
    Table[&#xD;
      Rasterize[Graphics[{Antialiasing -&amp;gt; False, Disk[]}], &#xD;
       ImageSize -&amp;gt; 256, RasterSize -&amp;gt; k],&#xD;
      {k, 2^Range[2, 8]}&#xD;
      ] // ListAnimate&#xD;
&#xD;
The box count would quadruple (i.e. multiply by $2^2$) every time the box size is halved.&#xD;
&#xD;
In general, for a $d$-dimensional object the box count $n$ is proportional to power $-d$ of the box size $l$: &amp;amp;nbsp;$n \sim l^{-d}$.  For some objetcs, $d$ can be a fractional (non-integer) number.  Such objects are called fractals.  Let&amp;#039;s try it on the tree photo!&#xD;
&#xD;
First, let us choose box sizes in pixels so that an integer number of boxes fit in the image.&#xD;
&#xD;
    seq = Reverse[Intersection @@ Divisors /@ ImageDimensions[img]]&#xD;
    (* {1008, 504, 336, 252, 168, 144, 126, 112, 84, 72, 63, 56, 48, 42, 36, 28, 24, 21, 18, 16, 14, 12, 9, 8, 7, 6, 4, 3, 2, 1} *)&#xD;
&#xD;
Luckily, the image width and height had many small prime factors in common, so we have many box sizes to work with.  Now let us count boxes.&#xD;
&#xD;
    {width, height} = ImageDimensions[img]&#xD;
    (* {3024, 4032} *)&#xD;
&#xD;
    result = {&#xD;
      width/#,&#xD;
      Last@First@ImageLevels@Image[&#xD;
          BlockMap[Min, ImageData[bin], {#, #}],&#xD;
          &amp;#034;Bit&amp;#034;]&#xD;
      } &amp;amp; /@ seq; // AbsoluteTiming&#xD;
&#xD;
    (* {9.79212, Null} *)&#xD;
&#xD;
[BlockMap][1] will partition the image data into blocks (i.e. boxes) and take the minimum of each. Since black pixels are represented by 0 and white pixels by 1, we get 0 only for those boxes that contain at least one black pixel, i.e. they contain a bit of the tree branches.  `BlockMap` was introduced in Mathematica 10.2.  Those using older versions can substitute `BlockMap[f, matrix, {k,k}]` by `Map[f, Partition[matrix, {k,k}], {2}]`.&#xD;
&#xD;
[ImageLevels][2] counts how many times each possible pixel value appears in an image. To make sure that the only possible pixel values are 0 and 1, we create a `&amp;#034;Bit&amp;#034;` image.&#xD;
&#xD;
Is the result really a power function of the form $n = \text{(const.)} l^d$? The easy way to test this is to plot it on a log-log plot.  Power functions appear as a line when plotted on a logarithmic scale.&#xD;
&#xD;
    ListLogLogPlot[result]&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
The slope of the line will give the exponent: $\ln n = \ln\text{(const.)} + d \ln l$.&#xD;
&#xD;
    fm = LinearModelFit[Log[result], {1, x}, x]&#xD;
&#xD;
It is about $\approx 1.85$.  Despite the thick tree trunks, the image of the branches behaves as a *lower-than-two dimensional* structure.&#xD;
&#xD;
Let us plot the power law fit together with the original data:&#xD;
&#xD;
    plot = Show[&#xD;
      Plot[fm[x], {x, Log[result[[1, 1]]], Log[result[[-1, 1]]]}, &#xD;
       PlotStyle -&amp;gt; Black],&#xD;
      ListLogLogPlot[result, PlotStyle -&amp;gt; Red],&#xD;
      AspectRatio -&amp;gt; 1, Axes -&amp;gt; False, Frame -&amp;gt; True&#xD;
      ]&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
You can see that the power law is a pretty good fit. The slope of the curve is more or less the same at all size scales.  This indicates a certain kind of scale invariance in the image.  Indeed, it is clear that if we magnified a small part of the image, it would look similar to the whole: small branches are miniature copies of larger ones.  This is a characteristic feature of fractals.&#xD;
&#xD;
To visualize the box counting method, we can show the series of finer and finer box-grids:&#xD;
&#xD;
    sz = 252;&#xD;
    imgs = Image[BlockMap[Min, ImageData[bin], {#, #}], &amp;#034;Bit&amp;#034;] &amp;amp; /@ seq&#xD;
&#xD;
Scaling them to the same size and animating them show how they approach the original image better and better:&#xD;
&#xD;
    imgs = If[First@ImageDimensions[#] &amp;gt; sz, &#xD;
         ImageResize[Image[#, Real], sz], (* downscale as grayscale *)&#xD;
         ImageResize[#, sz, Resampling -&amp;gt; &amp;#034;Nearest&amp;#034;]] &amp;amp; /@ imgs; (* upscale as bitmap *)&#xD;
&#xD;
    frm = Table[&#xD;
      ImageCompose[ImageResize[img, 252], {im, 0.5}], {im, imgs}];&#xD;
&#xD;
    ListAnimate[frm]&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
We can show the animation alongside the scaling plot:&#xD;
&#xD;
    frames = Table[&#xD;
       Row[{&#xD;
         Show[plot, AspectRatio -&amp;gt; 1, ImageSize -&amp;gt; 336, &#xD;
          Epilog -&amp;gt; {AbsolutePointSize[10], Red, Point@Log[result[[i]]]}],&#xD;
          Image[frm[[i]], Magnification -&amp;gt; 1]&#xD;
         }],&#xD;
       {i, Length[imgs]}];&#xD;
&#xD;
With some extra styling it looks like this:&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
I hope you enjoyed this small demonstration!&#xD;
&#xD;
&#xD;
  [1]: http://reference.wolfram.com/language/ref/BlockMap.html&#xD;
  [2]: http://reference.wolfram.com/language/ref/ImageLevels.html&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=plot.png&amp;amp;userId=38370&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=plot2.png&amp;amp;userId=38370&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ezgif.com-gif-maker.gif&amp;amp;userId=38370&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=animation.gif&amp;amp;userId=38370</description>
    <dc:creator>Szabolcs Horvát</dc:creator>
    <dc:date>2017-03-04T17:33:57Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1599255">
    <title>[GIF] Starry Night over Water</title>
    <link>https://community.wolfram.com/groups/-/m/t/1599255</link>
    <description>*MODERATOR NOTE: a submission to computations art contest, see more:* https://wolfr.am/CompArt-22.  &#xD;
*The complete notebook of this post is attached at the end.*&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
![starry_night_over_water][1]&#xD;
&#xD;
This cute little animation came to me while I was playing with [Dynamic](http://reference.wolfram.com/language/ref/Dynamic.html). I found it very lovely so would like to share it to the community.&#xD;
&#xD;
So I wanted to know how many Dynamic primitives my 5 years old laptop can handle in one scene (i.e. [Graphics](http://reference.wolfram.com/language/ref/Graphics.html)). This is my first test scenario:&#xD;
&#xD;
    With[{num = 40, aspRatio = 3, splineOrder = 10},&#xD;
        With[{freqSet = Rescale @ Range @ num},&#xD;
            DynamicModule[&#xD;
                {&#xD;
                    y = 0,&#xD;
                    pts = Thread[&#xD;
                        {&#xD;
                            Rescale[Range @ num, {1, num}, aspRatio * {-1, 1}],&#xD;
                            0&#xD;
                        }&#xD;
                    ]&#xD;
                },&#xD;
                DynamicWrapper[&#xD;
                    Graphics[&#xD;
                        {&#xD;
                            {&#xD;
                                CapForm @ &amp;#034;Round&amp;#034;,&#xD;
                                Hue[0.58, 0.45, 0.55],&#xD;
                                AbsoluteThickness @ 5,&#xD;
                                BSplineCurve[&#xD;
                                    Dynamic @ pts, SplineDegree -&amp;gt; splineOrder, SplineKnots -&amp;gt; &amp;#034;Unclamped&amp;#034;&#xD;
                                ]&#xD;
                            },&#xD;
                            {&#xD;
                                CapForm @ &amp;#034;Round&amp;#034;, JoinForm @ &amp;#034;Round&amp;#034;, GrayLevel @ 0.7, AbsoluteThickness @ 3,&#xD;
                                Line @ Dynamic @ pts&#xD;
                            },&#xD;
                            {&#xD;
                                Hue[0.1, 0.5, 0.95, 0.7],&#xD;
                                AbsolutePointSize @ 20,&#xD;
                                Point @ Dynamic @ pts&#xD;
                            }&#xD;
                        },&#xD;
                        PlotRange -&amp;gt; {aspRatio * {-1, 1}, {-1.2, 1.2}},&#xD;
                        PlotRangePadding -&amp;gt; Scaled[0.05],&#xD;
                        ImageSize -&amp;gt; 600&#xD;
                    ],&#xD;
                    y = Clock[{0, Infinity, 1 / 60}];&#xD;
                    pts = MapIndexed[&#xD;
                        Function[&#xD;
                            {freq, idx},&#xD;
                            {&#xD;
                                Rescale[idx[[1]], {1, num}, aspRatio * {-1, 1}],&#xD;
                                Sin[2 * Pi * freq * y]&#xD;
                            }&#xD;
                        ],&#xD;
                        freqSet&#xD;
                    ]&#xD;
                ]&#xD;
            ]&#xD;
        ]&#xD;
    ]&#xD;
&#xD;
![helix][2]&#xD;
&#xD;
Not too shabby! The motions are smooth, the points align perfectly.&#xD;
&#xD;
Now this one I call *Everlasting Tide*:&#xD;
&#xD;
    With[&#xD;
        {&#xD;
            winding = 8, corners = 6, radius = 1, shift = 2, gravityPower = 10, freqPower = 1 / 3, symmetricDir = Pi / 2&#xD;
        },&#xD;
        With[{num = (corners * winding) + 1},&#xD;
            With[&#xD;
                {&#xD;
                    ω = Function[Rescale[#, {0, 1}, {0.2, 1}]][&#xD;
                        Function[&#xD;
                            x,&#xD;
                            Plus[&#xD;
                                1, -(TriangleWave[{0, 2}, (x - 1) * x] ^ (1 / freqPower))&#xD;
                            ]&#xD;
                        ][Rescale @ Range @ num]&#xD;
                    ]&#xD;
                },&#xD;
                DynamicModule[&#xD;
                    {&#xD;
                        t = 0,&#xD;
                        pts = Function[&#xD;
                            Function[&#xD;
                                {θ, d},&#xD;
                                (radius + d) * {Cos[θ], Sin @ θ}&#xD;
                            ]@@@#&#xD;
                        ][&#xD;
                            Thread[&#xD;
                                {&#xD;
                                    Rescale[&#xD;
                                        Range @ num,&#xD;
                                        {1, num},&#xD;
                                        {0, winding * 2 * Pi} + symmetricDir&#xD;
                                    ],&#xD;
                                    0&#xD;
                                }&#xD;
                            ]&#xD;
                        ]&#xD;
                    },&#xD;
                    DynamicWrapper[&#xD;
                        Graphics[&#xD;
                            {&#xD;
                                {&#xD;
                                    Hue[0.1, 0.2, 0.9],&#xD;
                                    AbsoluteThickness @ 1,&#xD;
                                    Map[&#xD;
                                        Circle[{0, 0}, #]&amp;amp;,&#xD;
                                        Rescale[&#xD;
                                            Rescale[Range[100]] ^ gravityPower,&#xD;
                                            {0, 1},&#xD;
                                            {Max[0, radius + -shift], radius + shift}&#xD;
                                        ]&#xD;
                                    ]&#xD;
                                },&#xD;
                                {GrayLevel @ 0.85, Line @ Dynamic @ pts},&#xD;
                                {&#xD;
                                    Hue[0, 0.55, 0.85, 0.3],&#xD;
                                    AbsolutePointSize @ 10,&#xD;
                                    Point @ Dynamic @ Most @ pts&#xD;
                                },&#xD;
                                {&#xD;
                                    GrayLevel[0.7, 0.4],&#xD;
                                    EdgeForm @ {Black, AbsoluteThickness @ 1},&#xD;
                                    FilledCurve[BSplineCurve[Dynamic @ Most @ pts, SplineClosed -&amp;gt; True]]&#xD;
                                }&#xD;
                            },&#xD;
                            PlotRange -&amp;gt; ((radius + shift) * {{-1, 1}, {-1, 1}}),&#xD;
                            PlotRangePadding -&amp;gt; Scaled[0.05],&#xD;
                            Axes -&amp;gt; False, ImageSize -&amp;gt; 500&#xD;
                        ],&#xD;
                        t = Clock[{0, Infinity, 1 / 60}];&#xD;
                        pts = Function[&#xD;
                            Function[&#xD;
                                {θ, d},&#xD;
                                (radius + d) * {Cos[θ], Sin @ θ}&#xD;
                            ]@@@#&#xD;
                        ][&#xD;
                            MapIndexed[&#xD;
                                Function[&#xD;
                                    {ω, idx},&#xD;
                                    {&#xD;
                                        Rescale[&#xD;
                                            idx[[1]],&#xD;
                                            {1, num},&#xD;
                                            {0, winding * 2 * Pi} + symmetricDir&#xD;
                                        ],&#xD;
                                        Times[&#xD;
                                            shift,&#xD;
                                            Subtract[&#xD;
                                                2 * ((Sin[ω * t] + 1) / 2) ^ gravityPower,&#xD;
                                                1&#xD;
                                            ]&#xD;
                                        ]&#xD;
                                    }&#xD;
                                ],&#xD;
                                ω&#xD;
                            ]&#xD;
                        ]&#xD;
                    ]&#xD;
                ]&#xD;
            ]&#xD;
        ]&#xD;
    ]&#xD;
&#xD;
![everlasting_tide][3]&#xD;
&#xD;
But back to my most beloved animation at the beginning. I introduce to you: *Starry Night over Water*. A winter night is painted by the palette of the cosmos. Each star whirls in its own delight, unknowingly lighting the quiet water below in a blurry expansion of everchanging hues. I&amp;#039;m really thrilled how such a lovely piece of animation can be created with a little more than 2000 character in code, and the background optimization done by *Mathematica* to make it run so smoothly. &#xD;
&#xD;
P.S. I have used explicit iteration here instead of [Clock](http://reference.wolfram.com/language/ref/Clock.html) to drive the animation, so that this small quiet world shall be immune from a certain overflow ;)&#xD;
&#xD;
**Things to try:**&#xD;
&#xD;
Playing with the parameters of the outmost [With](http://reference.wolfram.com/language/ref/With.html), say, changing `baseColorFunc` to `ColorData[&amp;#034;SunsetColors&amp;#034;]`, or changing `aspRatio` to match your monitor then menu-bar &amp;gt; **Window** &amp;gt; **FullScreen**.&#xD;
&#xD;
    With[&#xD;
        {&#xD;
            (* time step of the animation: *) Δt            = 0.05, &#xD;
            (* number of stars:            *) n             = 50, &#xD;
            (* maximal size of stars:      *) radius        = 1.5, &#xD;
            (* color theme:                *) baseColorFunc = ColorData @ &amp;#034;StarryNightColors&amp;#034;,&#xD;
            (* geometric properties of the water region: *)&#xD;
            waterBase = -2, waterWidth = 5, &#xD;
            (* geometric properties of the final drawing: *)&#xD;
            height = 20, imageHeight = 700, aspRatio = 1 / GoldenRatio&#xD;
        },&#xD;
        With[{width = (height + (-waterBase) + waterWidth) / aspRatio},&#xD;
            Apply[&#xD;
                Function[{θ0, ω, expr},&#xD;
                    DynamicModule[{θ = θ0},&#xD;
                        DynamicWrapper[&#xD;
                            Deploy @ Activate @ expr,&#xD;
                            θ = Mod[θ + ω * Δt, 2 * Pi]&#xD;
                        ]&#xD;
                    ]&#xD;
                ]&#xD;
            ][&#xD;
                Module[{cx, cy, Δx, Δy, color},&#xD;
                    {&#xD;
                        RandomReal[{0, Pi / 2}, n],&#xD;
                        RandomReal[{0.3, 1}, n],&#xD;
                        Inactive[Graphics][&#xD;
                            {&#xD;
                                (* background: *)&#xD;
                                Module[&#xD;
                                    {&#xD;
                                        h = height + (-waterBase) + waterWidth + 10,&#xD;
                                        w = width + 5,&#xD;
                                        m = 10, Δh, cf = baseColorFunc /* (Darker[#, 0.5]&amp;amp;)&#xD;
                                    },&#xD;
                                    Δh = h / m;&#xD;
                                    MapThread[&#xD;
                                        Function[&#xD;
                                            {y, c1, c2},&#xD;
                                            {&#xD;
                                                EdgeForm[],&#xD;
                                                Polygon[&#xD;
                                                    {&#xD;
                                                        {-5, y},&#xD;
                                                        {w, y},&#xD;
                                                        {w, y + Δh},&#xD;
                                                        {-5, y + Δh}&#xD;
                                                    },&#xD;
                                                    VertexColors -&amp;gt; Map[cf, {c1, c1, c2, c2}]&#xD;
                                                ]&#xD;
                                            }&#xD;
                                        ],&#xD;
                                        {&#xD;
                                            Function[&#xD;
                                                Rescale[&#xD;
                                                    #,&#xD;
                                                    {1, m},&#xD;
                                                    {(waterBase + -waterWidth) - 5, height + 5 + -Δh}&#xD;
                                                ]&#xD;
                                            ][Range @ m],&#xD;
                                            Most[&#xD;
                                                Function[0.4 * (1 + -#) ^ 5][Rescale[Range[m + 1]]]&#xD;
                                            ],&#xD;
                                            Rest[&#xD;
                                                Function[0.4 * (1 + -#) ^ 5][Rescale[Range[m + 1]]]&#xD;
                                            ]&#xD;
                                        }&#xD;
                                    ]&#xD;
                                ],&#xD;
                                (* foreground: *)&#xD;
                                MapThread[&#xD;
                                    Function[&#xD;
                                        {cpos, r, idx, shineShift},&#xD;
                                        {cx, cy} = cpos;&#xD;
                                        {Δx, Δy} = cpos + -({width, height} / 2);&#xD;
                                        (* base color: *)&#xD;
                                        color = baseColorFunc[&#xD;
                                            1 + -Norm[{Δx, Δy} / {width, height}, 1]&#xD;
                                        ];&#xD;
                                        {&#xD;
                                            (* one star: *)&#xD;
                                            {&#xD;
                                                FaceForm @ {Append[(* transparency: *) 0.7][color]},&#xD;
                                                EdgeForm[],&#xD;
                                                Polygon[&#xD;
                                                    Map[&#xD;
                                                        Function[cpos + r * #],&#xD;
                                                        {&#xD;
                                                            {0, 1},&#xD;
                                                            {Cos[Dynamic[θ[[idx]]]], 0},&#xD;
                                                            {0, -1},&#xD;
                                                            {-Cos[Dynamic[θ[[idx]]]], 0}&#xD;
                                                        }&#xD;
                                                    ]&#xD;
                                                ]&#xD;
                                            },&#xD;
                                            (* and its reflection: *)&#xD;
                                            {&#xD;
                                                RightComposition[&#xD;
                                                    ColorConvert[#, &amp;#034;LAB&amp;#034;]&amp;amp;,&#xD;
                                                    (* adjust luminance according to shineShift (i.e. y-coords): *)&#xD;
                                                    ReplacePart[&#xD;
                                                        1 -&amp;gt; RightComposition[&#xD;
                                                            Function[Cos[2 * #]],&#xD;
                                                            Function[((# + 1) / 2) ^ 0.5],&#xD;
                                                            Function[&#xD;
                                                                Rescale[&#xD;
                                                                    #,&#xD;
                                                                    {0, 1},&#xD;
                                                                    Plus[&#xD;
                                                                        (* mean luminance, lower the brighter: *)&#xD;
                                                                        Rescale[shineShift, {-1, 1}, {0.4, 0.7}],&#xD;
                                                                        (* luminance variation range, lower the more active: *)&#xD;
                                                                        {-1, 1} * Rescale[shineShift, {-1, 1}, {0.3, 0.03}]&#xD;
                                                                    ]&#xD;
                                                                ]&#xD;
                                                            ]&#xD;
                                                        ][Dynamic[θ[[idx]]]]&#xD;
                                                    ],&#xD;
                                                    (* transparency: *)&#xD;
                                                    Append[Function[Rescale[#, {-1, 1}, {0.2, 0.6}]][shineShift]]&#xD;
                                                ][color],&#xD;
                                                (* abstract blur: *)&#xD;
                                                AbsoluteThickness[Function[Rescale[#, {-1, 1}, {10, 1}]][shineShift]],&#xD;
                                                Line[&#xD;
                                                    Function[&#xD;
                                                        {&#xD;
                                                            {&#xD;
                                                                Plus[&#xD;
                                                                    cx, -(Times[&#xD;
                                                                        r,&#xD;
                                                                        Times[&#xD;
                                                                            #3,&#xD;
                                                                            Times[&#xD;
                                                                                1 / 2,&#xD;
                                                                                1 + -(#2 * Cos[Dynamic[θ[[idx]]]])&#xD;
                                                                            ]&#xD;
                                                                        ]&#xD;
                                                                    ])&#xD;
                                                                ],&#xD;
                                                                #&#xD;
                                                            },&#xD;
                                                            {&#xD;
                                                                Plus[&#xD;
                                                                    cx,&#xD;
                                                                    Times[&#xD;
                                                                        r,&#xD;
                                                                        Times[&#xD;
                                                                            #3,&#xD;
                                                                            (1 / 2) * (1 + #2 * Sin[Dynamic[θ[[idx]]]])&#xD;
                                                                        ]&#xD;
                                                                    ]&#xD;
                                                                ],&#xD;
                                                                #&#xD;
                                                            }&#xD;
                                                        }&#xD;
                                                    ][&#xD;
                                                        (* y-coords: *)&#xD;
                                                        Plus[&#xD;
                                                            waterBase,&#xD;
                                                            waterWidth * ((Rescale[shineShift, {-1, 1}] ^ 0.5) - 1)&#xD;
                                                        ],&#xD;
                                                        (* variance: *)&#xD;
                                                        Rescale[shineShift, {-1, 1}, {1, 0.2}],&#xD;
                                                        (* mean radius: *)&#xD;
                                                        Rescale[shineShift, {-1, 1}, {2, 4}]&#xD;
                                                    ]&#xD;
                                                ]&#xD;
                                            }&#xD;
                                        }&#xD;
                                    ],&#xD;
                                    {&#xD;
                                        Join[&#xD;
                                            ScalingTransform[{3 / 4, 3 / 4}, {width, height} / 2][&#xD;
                                                RandomPoint[Rectangle[{0, 0}, {width, height}], Ceiling[n / 4]]&#xD;
                                            ],&#xD;
                                            RandomPoint[&#xD;
                                                Rectangle[{0, 0}, {width, height}],&#xD;
                                                (n + -Ceiling[n / 4]) - 1&#xD;
                                            ],&#xD;
                                            {{width, height} / 2}&#xD;
                                        ],&#xD;
                                        radius * RandomReal[{1 / height, 1}, n],&#xD;
                                        Range @ n,&#xD;
                                        RandomReal[{-1, 1}, n]&#xD;
                                    }&#xD;
                                ]&#xD;
                            },&#xD;
                            PlotRange -&amp;gt; {{0, width}, {waterBase + -waterWidth, height}},&#xD;
                            PlotRangePadding -&amp;gt; {{2, 2}, {1, 2}},&#xD;
                            Background -&amp;gt; None,&#xD;
                            ImageSize -&amp;gt; {Automatic, imageHeight}&#xD;
                        ]&#xD;
                    }&#xD;
                ]&#xD;
            ]&#xD;
        ]&#xD;
    ]&#xD;
&#xD;
![starry_night_over_water][4]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1243starry_night_over_water.gif&amp;amp;userId=93201&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=helix32.gif&amp;amp;userId=93201&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=everlasting_tide_64.gif&amp;amp;userId=93201&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=starry_night_over_water.gif&amp;amp;userId=93201</description>
    <dc:creator>Silvia Hao</dc:creator>
    <dc:date>2019-01-26T04:26:46Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2098696">
    <title>Finding the spookiest day of the century</title>
    <link>https://community.wolfram.com/groups/-/m/t/2098696</link>
    <description>deleted</description>
    <dc:creator>David Ameneyro</dc:creator>
    <dc:date>2020-10-21T05:05:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3092960">
    <title>2024 = 2³+3³+4³+5³+6³+7³+8³+9³ What&amp;#039;s your math one-liner for the New Year 2024?</title>
    <link>https://community.wolfram.com/groups/-/m/t/3092960</link>
    <description>![enter image description here][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ddfg54w6yhrsdfz_small.jpg&amp;amp;userId=20103&#xD;
  [2]: https://www.wolframcloud.com/obj/ae4bbae7-001f-4f1d-99a0-78c3168be06c</description>
    <dc:creator>Ed Pegg</dc:creator>
    <dc:date>2023-12-29T15:46:35Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/138400">
    <title>The Sierpinski Triangle page to end most Sierpinski Triangle pages</title>
    <link>https://community.wolfram.com/groups/-/m/t/138400</link>
    <description>I must confess I hardly ever doubted that if there exists a [b][url=http://www.oftenpaper.net/sierpinski.htm]Sierpinski Triangle page to end most Sierpinski Triangle pages[/url][/b] it would be written with help of Mathematica. These 10 quoted words is how Antonio Marquez-Raygoza titled his recent [b][url=http://www.oftenpaper.net/sierpinski.htm]blog article[/url][/b]. That did sound intriguing and I must assure you, in my opinion, it lives up completely to the title. Knowing Antonio as an [b][url=http://demonstrations.wolfram.com/author.html?author=Antonio+Marquez-Raygoza]author of two exquisite Demonstrations[/url][/b] and as a skillful Mathematica programmer with a fine taste for visual design and elegance, I put everything aside and started reading. And was it a feast for my eyes! Some of you may know me as a person who enjoys coding visually appealing graphics. So imagine my joy in encountering something like this beautiful image and discovering it was produced with just a few lines of code (like so many things in Mathematica):
[mcode]draw[v_, df_, n_] := Module[{ring}, ring[c_, r_, depth_] := Module[{ps}, ps = c + r {Cos[#], Sin[#]} &amp;amp; /@ (2. Pi Range[v]/v);
     If[depth == 0, Polygon[ps], ring[(c + #)/2, df[0, r], depth - 1] &amp;amp; /@ ps]];
   Graphics[{EdgeForm[White], Opacity[.4], RGBColor[.4, 1, 1], ring[0., 1., n]}]];

Show[(*repeatedly draw to cover more possibilities*) draw[4, (#1 + #2)/RandomChoice[Prime[Range[4]]] &amp;amp;, 
    RandomChoice[{.1, 1.5} -&amp;gt; {2, 3}]] &amp;amp; /@ Range[20], Background -&amp;gt; Black, ImageSize -&amp;gt; 600][/mcode]
[img=width: 600px; height: 626px;]/c/portal/getImageAttachment?filename=siertron12.png&amp;amp;userId=11733[/img]

The article produced a massive viral hurricane of event on Internet. Let me share a few bits I picked up in the aftermath.This post mad quite a boom on Reddit getting front-paged on several sub-Reddits:
[list]
[*][b][url=http://redd.it/1o1yd2]Reddit Programming: 1154 upvotes 149 comments[/url][/b]
[*][b][url=http://redd.it/1o0dpo]Reddit Math: 387 upvotes 35 comments[/url][/b]
[*][b][url=http://redd.it/1o9b9f]Reggit Biology: 60 upvotes 15 comments[/url][/b]
[*][b][url=http://redd.it/1o87gm]Reddit Todayilearned: 50 upvotes 9 comments[/url][/b]
[*][b][url=http://redd.it/1o2ydp]Reddit Fractals: 20 upvotes 2 comments[/url][/b]
[/list]It was also posted on a few other Reddits. The article also [b][url=https://news.ycombinator.com/item?id=6516114]scored 327 points and 55 comments on Hacker News a.k.a. Ycombinator[/url][/b]. 

There was of course an ocean of tweets, Facebook posts, and other social media sharing. I was very happy to see such famous Twitter feeds as [b][url=https://twitter.com/TopologyFact/status/387909293842116608]Topology Fact sharing the link to the article[/url][/b]:

[url=https://twitter.com/TopologyFact/status/387909293842116608][img=width: 465px; height: 281px;]/c/portal/getImageAttachment?filename=2013-10-14_03-03-08.png&amp;amp;userId=11733[/img][/url]

This is an [b][url=https://tweetreach.com/share/reports/345f97fed534d7c341a57e1893515873aea838fc]impact report of only tweets containing exact title of the article[/url][/b], of course they were many more tweets with different content:

[url=https://tweetreach.com/share/reports/345f97fed534d7c341a57e1893515873aea838fc][img=width: 747px; height: 561px;]/c/portal/getImageAttachment?filename=2013-10-14_03-21-09.png&amp;amp;userId=11733[/img][/url]

And I must acknowledge the jazzy frisky humor of the piece  not once it made me smile in amazement or simply LOL. For example a quote: [quote]Note the cow cannot be spherical or it will roll off.[/quote]was also posted on Reddit in comments and earned more than 100 voteups! But it is not [i][b]just[/b][/i] funny - if you are not a physicist you probably will miss that this is most probably a reference to the [b][url=https://en.wikipedia.org/wiki/Spherical_cow]spherical cow joke[/url][/b]. I do not want to give you any spoilers but the poetic cow part with phrases like [quote]I think this is the first time I&amp;#039;m jealous of a cow. [/quote]is actually about built in Mathematica cow that can be accessed simply as[mcode]ExampleData[{&amp;#034;Geometry3D&amp;#034;, &amp;#034;Cow&amp;#034;}][/mcode]and with some further brilliant codding you will get this and agree eventually that a spherical cow would indeed roll off:

[img=width: 640px; height: 640px;]/c/portal/getImageAttachment?filename=siercowsine1.png&amp;amp;userId=11733[/img]

Sometimes on a book cover one may find quotes from critics acclaiming the book. I think what critics to a book, Reddit and Hacker News are to a blog. This is why I would like to post here just a few URL-linked comments from Reddit and Hacker News discussions of the post as my small token of appreciation for the fascinating reading.
[quote][url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/ccoler8]This is fantastic. Not sure if it&amp;#039;s programming or math, or even art, but it&amp;#039;s the kind of thing the world needs more of. Pure exploration.[/url]

[url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/ccoecwo]The sheer brilliance of the author had me reeling. I wish more of the posts here were like this[/url]

[url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/ccohuxe]I understand none of this, but it&amp;#039;s beautiful and inspiring.[/url]

[url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/cco8a5m]I enjoyed the [b]cowsine[/b] graph[/url]

[url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/ccqi3lc]Hell, that&amp;#039;s just a built-in cow Mathematica has.[/url]

[url=http://www.reddit.com/r/programming/comments/1o1yd2/the_sierpinski_triangle_page_to_end_most/ccoc8sy]The code is all Mathematica. It&amp;#039;s an amazing program.[/url]

[url=https://news.ycombinator.com/item?id=6518044]&amp;#034;Holy mother, this person is cool and this person&amp;#039;s website is cool, too&amp;#034;[/url]

[url=https://news.ycombinator.com/item?id=6517581]&amp;#034;This is amazingly cool and stimulating to think about. It&amp;#039;s also a compelling reason to take another look at Mathematica.&amp;#034;[/url]

[url=https://news.ycombinator.com/item?id=6521409]&amp;#034;I&amp;#039;ll also note that Mathematica looks quite awesome indeed.&amp;#034;[/url]

[url=http://www.reddit.com/r/math/comments/1o0dpo/the_sierpinski_triangle_page_to_end_most/ccnyiz1]I have found someone whose irrational love for Mathematica puts me to shame. [/url]

[url=http://www.reddit.com/r/math/comments/1o0dpo/the_sierpinski_triangle_page_to_end_most/ccnw7wh]I have never seen more tattoo ideas on one page...[/url]

[url=http://www.reddit.com/r/biology/comments/1o9b9f/mathematician_graphs_8m_bp_section_of_human/ccq2j09]whoa where did those 2 hours go... this has been one of the most interesting things I&amp;#039;ve read in a long time. thanks for the post. ill be keeping up with this person from now on. it&amp;#039;s posts like this that make the hundreds of hours I spend lurking the internet worth the while[/url][/quote]
Below I show a few images from that blog as a teaser. For complete visually unforgettable and code-enlightening experience please read [b][url=http://www.oftenpaper.net/sierpinski.htm]the original blog post[/url][/b]. 



[img=width: 730px; height: 624px;]/c/portal/getImageAttachment?filename=brahm2.png&amp;amp;userId=11733[/img]


[img]/c/portal/getImageAttachment?filename=cowpinskiinv7.png&amp;amp;userId=11733[/img]</description>
    <dc:creator>Vitaliy Kaurov</dc:creator>
    <dc:date>2013-10-13T23:26:59Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3027093">
    <title>[WSG23] Daily Study Group: Introduction to Discrete Mathematics</title>
    <link>https://community.wolfram.com/groups/-/m/t/3027093</link>
    <description>A Wolfram U Daily Study Group on Introduction to Discrete Mathematics begins on **October 16th 2023**. &#xD;
&#xD;
Join me and a group of fellow learners to learn about the mathematics behind the innovations of computer science using the Wolfram Language. Our topics cover the most well-known branches of discrete mathematics, including logic, sets, discrete functions, sequences, combinatorics, algorithms, proofs, recursion and graphs.&#xD;
&#xD;
This study group aims to develop a broad understanding of discrete mathematics, with a focus on concepts useful in computer science, software engineering and programming, and make this rich and useful domain accessible for any college student, professional or interested hobbyist. A basic working knowledge of the Wolfram Language is recommended but not necessary. We are happy to help beginners get up to speed with Wolfram Language using resources already available on Wolfram U.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
&amp;gt; [**REGISTER HERE**][1]&#xD;
&#xD;
![2 Dimensional Cellular Automaton rule 907486931][2]&#xD;
&#xD;
&#xD;
![Wolfram U Banner][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/daily-study-group-discrete-math-wsg46/series_details&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=907486931.gif&amp;amp;userId=2311323&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=banner.jpg&amp;amp;userId=2823613</description>
    <dc:creator>Marc Vicuna</dc:creator>
    <dc:date>2023-10-04T19:10:50Z</dc:date>
  </item>
</rdf:RDF>

