In the sequence of the following conversation:

... Leonid... your answer... "general strategies to write big code in Mathematica" [...] I wonder if you would be interested on giving a course (or two) on some of these topics on the next WTC2016


... Last year I asked for a pre-conference Workbench course (an all day one)...

I think that there might be a general interest for some Community Knowledge Exchange training or workshop sessions, that could eventually be planned for the WTC2016 "gathering" (just in case, I'm talking of the WTC2016, and not of the www.WTC2016.us :-).

Some general topics that seem of interest to many of us:

  • General strategies to write big code in Mathematica (the up-votes, stars and general activity of this post is a proof by itself)
  • Create a deployable Player Pro CDF from scratch (encryption and licensing, DB access, etc.).
  • etc.

I'm of the opinion that pre-conference sessions are preferred to post conference, for multiple reasons, as for example:

  • we are all less tired
  • it opens dialogue for the following days
  • the U. Illinois homecoming is happening on the week after the WTC, and hence, each hotel night after the conference will be harder to get.

For many of us, including me, the WTC is a major event on multiple fronts, being one of them the investment to get there. Many of us are there on vacation time, share cost with the employer, or totally pay for it from our wallet. It is/would be a pity not to profit more from the occasion, when there seems to be enough interest on the above topics (I mean, enough on the presenters investment point of view).

I would like this discussion to be opened for both the independent and the less independent (WRI) presenters, but I was afraid of putting it on the community (where I think it belongs), before having some feedback from you and from the community moderator (since the WTC is, above all, a WRI event). If you are interested on this idea, as a presenter or not, please:

  • propose topics that you would be interest to attend
  • propose the topics or program you would be interested on presenting, expected duration, expected compensation, etc.. No need to excuse yourself on the compensation/monetary aspect, since, just the cost of getting there is already a reason by itself, and, I believe that, there is at least the cost of the presentation room that will need to be shared (something that would need to be coordinated with WRI, since they typically have the rooms reserved for preparatory work).
  • discuss organisation aspects: schedules, duration, program overlaps (it is already a success if we get to this problem), recording/filming, etc..

EDIT 2016-06-07

I recently sent some e-mails to several members of this community, with the purpose of injecting some extra momentum into this topic. I'm very glad to say that I have been receiving, by e-mail, very positive feedbacks! and that hopefully, we will hear about some offers soon (if I haven't contacted you, please don't take it wrong... we are for sure interested on your offer too!)

There were some questions about money (most related to travel and stay expenses). Again, that's fine. And even compensation for the actual work is perfectly acceptable. But these remarks made me think on the different options to solve this problem.

So, I wanted to hear from you on the option of crowd funding this training. And if you are posting your offer, and you need some compensation, please let us know if this method fits you or not (again and again, no problem if not...).

We could imagine something like this:

  • 1) $250 for the participation certificate (plus below offer)
  • 2) $150 for one full day presence (networking opportunities, etc.), and including a launch box (plus below offer)
  • 3) $50 for the screen and audio recording (plus below offer)
  • 4) $10 for the deliverables

I don't know the international details of such monetary strategy, but I'm sure we could figure out how to make this work.

Compensation would be distributed against receipts (just tickets and hotel up to 3 nights; maximum value to be defined). If not enough is gathered, this would be distributed proportionally to the available amount (I haven't though on a solution if it exceeds, but, for instance, if it exceeds with the first three categories, the forth would be offered to the entire community, and the money returned; etc.). For lecturers not needing the travel and staying compensation, we could think of a fixed compensation (proportional to the intervention time, etc.). Again and again, if you think that this doesn't fit your offer, just let us know.

Obviously, I would love to hear comments from you like: "for category 3 and 4, I would be willing to crowd fund it, even if content of such events get delivered to the entire community..." Let me know of your feeling (also in respect to values, etc.).

Some extra notes:

  • if you are posting a training proposition, please don't forget to mention the pre-requisite level recommended to attend your training. e.g. the participants should know by heart the content of the following documentation pages, or be at ease with the content exposed on the following book, SE post, etc.
  • I want to remind that we are searching for advanced trainings on the use of Mathematica / WL, or on its application to specific fields.
  • I think that a full day event of advanced training is incredible, a two tracks full day event is mind blowing, a 2 days event is...
  • I think that each full day track needs at least 3 or 4 persons supporting it (lecturing, helping, etc.).
  • When posting your offer, think on all of your best posts. The ones that really added considerably to the community. That had unique content, and solved questions that are hard to find by ourselves, and in some way, not available elsewhere.

My hope is for the end result of this effort to be a complement to all documentation and training content currently available. A complement that solves the complicated questions that we typically have on the application of Wolfram technology (Mathematica, CDF, Cloud, etc). Best practices on how to write complicated interfaces, very lengthy pieces of code, protect your code for commercial delivery, best practices on linking an external library, from A to Z. A complement that, for some part, is already dispersed in SE answers, and that we, as a community, will profit to compile on a more structured way, and deliver it on a live and engaging format.

  • 2
    I think what may be hampering this sort of course is the current state of Workbench. Version 3 has been in beta for some time and is the only version compatible with Mathematica 10+. They would need this to be functional to run this course. There was the interesting sneek-peek at Front-End built-in git support on the Thursday of WTC2015 (nb, vid). I'm hoping that something is in the works to have this sort course at WTC2016.
    – Edmund
    Mar 22, 2016 at 12:14
  • 7
    I haven't been able to come to a WTC for several years due to cost, etc., but if this were going to happen, I would make every possible effort to attend. I'll bet there are a lot of other people that feel the same way. Mar 22, 2016 at 21:06
  • 2
    Such a course (all- or half-day) would definitely include the topics found in @Kuba answer here.
    – Edmund
    Mar 31, 2016 at 10:00
  • 1
    Please consider recording this event to make it available for the community members that can't be present at WTC2016.
    – Karsten7
    Jun 9, 2016 at 18:48
  • @Karsten. Just added a comment on the recording topic on one of Anton offers' comments. I haven't discussed it with the lecturers, and so, I can't promise anything (hopefully by next week).But I would like to point out that this knowledge exchange can only happen if we have some financing, since some of the lecturers were honestly not planning to go to the WTC for the cost it involves. Distributing the recordings enters into competition with the physical presence. I can think of different ways to overcome this problem. (continues below...)
    – P. Fonseca
    Jun 9, 2016 at 19:09
  • A deferred availability of the recordings (like 8 months) can already balance this effect. But it kind of goes against the community principles, not to share the content as soon as possible. A crowd funded project is a possible solution (as presented on my post). After a third offer is presented (hopefully soon), I'll first discuss some of these aspects with the lecturers and eventually WRI, and then, I will most likely create a crowed funded project.
    – P. Fonseca
    Jun 9, 2016 at 19:09
  • 3
    I think physical presence comes with its own advantages like direct interaction (asking the questions one wants to have answered, ...). Deferred availability isn't a problem as Wolfram usually releases the conference videos with quite a delay anyway (≈ 1.6 months last year). WRI should support this!
    – Karsten7
    Jun 9, 2016 at 22:38
  • What you really want is scalable platforms and services. You don't want "big code" you want compact, modular, reusable code. Aug 3, 2016 at 16:35
  • 1
    Is this going to happen? Making plans (way too late, I know) to attend WTC and would like to work this in.
    – Daniel W
    Oct 5, 2016 at 11:13

4 Answers 4


Upvote this post if you are interested in coming to a lecture described below. (coming to Champaign, not in general :-), if in general then you can post a comment or something, this can motivate me to create something online in future)

What topics can I present? (imo)

  • Deployment options

    Practical aspects and relations between them (e.g. packages in CDFs etc). Source code security, etc.

    I think I'm familiar enough with "desktop" based deployment options, limitations and purposes, also more and more with web based too.

    I was experimenting with different ways of protecting package content. And how can different concepts cooperate (packages, cdfs, player pro, palettes, dialogs, cloud) something along those lines:

    How can I include functions from a package into a CDF file?

    Encode->Import->StringToStream->Get on password-locked stream

  • GUI heavy applications/packages

    Majority of projects I was involved in were about, with addition to "basic package", creating UI for them. So I think I can share something about coding UI-features in MMA and overcoming some of issues mentioned in Guidelines for planning custom GUI in Mathematica.

  • Bigger and modularized package structure

    Discussing whole app structure and how to build it from scrach with respect to previously mentioned points.

    (in opposition to simple ini.m+package.m setup)

    There is no established standard but I can talk about the approach I'm using and alternatives I'm aware of. Their advantages and disadvantages.

    "How to live without Workbench", "Minimal knowledge you need to have to feel comfortable working with packages but tutorials failed to teach you", etc.

  • Whatever you want,

    that you (and I) think I'm familiar with, based on my answers here. (yet I think the list is already exhausted, if not exaggerated)

Presentation formula

If I would have to decide I would take all of them and try to go through most important parts with code samples and/or UML schemes.

And I don't think workshops are the best approach in such a wide topic. One needs time to digest information, playing with code and so on. So I will focus on creating self contained lecture with links to "possible issues" and "further reading" while trying to make you understand general approach.

What can be expected

  • Lecturer: Stubborn (I should gave up many times but I was pushing the limits of my GUI despite "issues" I've faced), less confused MMA packages developer, with rather ergonomic than professional approach to coding.

  • Target audience: more or equally confused users who are interested in creating packages that are stable, with UI that is working and predictable together with understanding of what is going on deeper but not deep enough to use fancy terms like "imperative style of coding" "domain specific language" etc.

Lot of contents can overlap with what we already have here but try to talk about something that was not. I will try to gather and summarize it nicely though.

What I can't talk about

I'm fairly fluent in Wolfram Language yet I'm not a hardcore programmer nor do I have an IT background so don't expect general and insightful analysis which can be found in posts of e.g. Leonid, WReach and others.

MMA community is small, coding scheme for simple packages is more or less known but creating full modern package with semi-modern GUI, Stylesheets, Palletes, autoloading/updating features is not. So I can't give a perfect solution that will last forever but I can present what I've learned during my time with MMA and what is flexible enough and/or handy so that others may be interested.

I'm not yet sure if I'm going to attend the WTC2016 but if we can organize this event in reasonable way then it will certainly tip the balance. (because I'm interested in giving a talk if there is a demand for that)

I think I will take vacation to visit my family in USA somewhere in autumn. Yet I don't see a specific reason to come to WTC except from networking with great people. Is it worth the conference fee?, I'm still hesitating. So at the end if I can have a hotel and part of the fee covered it will be enough to tip the balace towards comming.

  • Thank you Kuba! Its nice to have you on board! Concerning expenses, as soon as there's a couple of more offers, I'll do everything I can to get that "problem" solved in someway. If you cover everything you said, do you have an idea of the time your intervention would take? A couple of hours? more?
    – P. Fonseca
    Jun 8, 2016 at 7:55
  • This is good. I was planning to post just abstracts... Jun 8, 2016 at 11:13
  • @AntonAntonov I don't have any yet and folks only know me from posting small pieces of code so I had to advertise it somehow :)
    – Kuba Mod
    Jun 8, 2016 at 12:10
  • @Kuba Your advertisement definitely works! Jun 9, 2016 at 13:52
  • @Kuba This appears to be on point with my current challenges in WL. Basically how to graduate from giant notebooks what you describe above. (+1)
    – Edmund
    Jun 9, 2016 at 17:52

Programming Patterns Application with Wolfram Language

This tutorial session is going to introduce, motivate, and explain the use in Wolfram Language (WL) of some of the most common software patterns for creating lager, reusable code bases. Those software patterns are employed in order to

  • move from WL prototypes to production code in other languages (like C++, Java), and

  • ensure good communication with software engineers not (that) familiar with WL.

Concrete examples are going to considered and worked through, e.g. [2,3,11] and [7,8].

(To get an idea of presenter`s style and general attitude on this subject see [4].)


Design Patterns

[1] Anton Antonov, "Implementation of Object-Oriented Programming Design Patterns in Mathematica", MathematicaForPrediction at GitHub, 2016.

[2] Anton Antonov, GitHubPlots, Mathematica package, MathematicaForPrediction at GitHub, 2015.

[3] Anton Antonov, GitHubObjects, Mathematica package, MathematicaForPrediction at GitHub, 2015.

[4] Anton Antonov, Object Oriented Design Patterns presentation recording at Wolfram Technology Conference 2015 . Also uploaded to YouTube.

[5] Anton Antonov, UML Diagram Generation Mathematica package, MathematicaForPrediction at GitHub, 2016.

Domain Specific Languages

[6] Anton Antonov, Functional parsers Mathematica package, MathematicaForPrediction at GitHub, 2014.

[7] Anton Antonov, "Natural language processing with functional parsers", (2014), MathematicaForPrediction at WordPress blog.

[8] Anton Antonov, "Functional parsers for an integration requests language grammar", MathematicaForPrediction at GitHub, 2014.

Mathematica StackExchange answers

[9] Design and programming DSLs answer in "General strategies to write big code in Mathematica?".

[10] Object-Oriented Design Patterns application answer in "General strategies to write big code in Mathematica?".

[11] The update of the accepted answer of "Import and Plot Git Commit History".

  • Note that, at least from Germany, the video in [4] is not available. Jul 2, 2016 at 16:36
  • @EmilioPisanty Good to know, thanks! I updated the reference with a YouTube link. Jul 2, 2016 at 17:32
  • 1
    No worries. Moving to Germany definitely impacted the availability of online video coughGEMAcough, and I wonder how many authors whose content is blocked to protect 'their interests' are happy about it. Jul 2, 2016 at 18:15

Mixed Numerical and Categorical Data Analysis and Mining in Mathematica and R

In this tutorial we are going to discuss the application of different techniques of data analysis and mining applied in "everyday" tasks of a data scientist. The accentuation is on mixed numerical and categorical data.

The topics covered are data summarization, [1,2,3,10], frequent sets and sequences, [4,5,13,14], dimension reduction, [6,7,9,11], variable importance, [9], Pareto law adherence, [8].

The techniques are going to be demonstrated with both Mathematica and R.

(This is an extended version of a presentation with the same name that I gave at the headquarters of Wolfram Research, Inc. in March, 2016.)


[1] Anton Antonov, "MathematicaForPrediction utilities", (2014), source code MathematicaForPrediction at GitHub, package MathematicaForPredictionUtilities.m.

[2] Anton Antonov, Mosaic plot for data visualization implementation in Mathematica, (2014), MathematicaForPrediction at GitHub, package MosaicPlot.m.

[3] Anton Antonov, "Mosaic plots for data visualization", (2014), MathematicaForPrediction at WordPress blog.

[4] Anton Antonov, "MovieLens genre associations", (2013), MathematicaForPrediction at GitHub, folder Documentation.

[5] Anton Antonov, Implementation of the Apriori algorithm in Mathematica, (2014), source code at MathematicaForPrediction at GitHub, package AprioriAlgorithm.m.

[6] Anton Antonov, "Topic and thesaurus extraction from a document collection", (2013), MathematicaForPrediction at GitHub, folder Documentation.

[7] Anton Antonov, "Statistical thesaurus from NPR podcasts", (2013), MathematicaForPrediction at WordPress blog.

[8] Wikipedia entry, "Pareto principle", URL: https://en.wikipedia.org/wiki/Pareto_principle .

[9] Anton Antonov, "Independent component analysis for multidimensional signals", (2016), MathematicaForPrediction at WordPress blog.

[10] Anton Antonov, "Making Chernoff faces for data visualization", (2016) MathematicaForPrediction at WordPress blog.

[11] Anton Antonov, "Comparison of PCA, NNMF, and ICA over image de-noising", (2016), MathematicaForPrediction at WordPress blog.

[12] Anton Antonov, "Mathematica vs R", (2015), MathematicaVsR at GitHub, (a presentation at WTC-2015).

[13] Anton Antonov, "Tries with frequencies for data mining", (2013), MathematicaForPrediction at WordPress blog.

[14] Anton Antonov, Tries with frequencies Mathematica package, (2013), MathematicaForPrediction at WordPress blog.

  • Some interesting topics here. Though I feel I a more urgent need for @Kuba session. (+1)
    – Edmund
    Jun 9, 2016 at 17:55
  • @Edmund We haven't looked at the day planning, but I guess that, for now, there's still no need for two tracks. Also, it is still opened for discussion an eventual full session recording (of screen and audio). I'm waiting for one third offer (hopefully being presented very soon), before opening these topics for discussion. Not that I think that there's no space for more than three offers, but because I think that it's better to discuss this topic with at least three lecturers, so to avoid back and forwards.
    – P. Fonseca
    Jun 9, 2016 at 18:25
  • @Edmund Thanks, Edmund. The abstracts I posted are for themes suggested by Pedro. (And of course I am eager and willing to give presentations for those themes!) I assume with the posts here we can figure out which talks/tutorials are most desired. Jun 9, 2016 at 19:44

Any interest in a workshop on data and cloud?

I'm presenting at WTC "Working with temporal data. Applications in healthcare".

Considering AirBnB workshop w/ pizza in U-C or Chicago.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .