From 3f81fd7412773d2946cdd7f5fc13e49be4fd13a3 Mon Sep 17 00:00:00 2001 From: Thibaut Lienart Date: Sat, 28 Mar 2020 17:39:32 +0100 Subject: [PATCH 1/4] laaa --- blog/2015/10/auto-diff-in-julia.md | 4 ++-- blog/2015/10/datastreams.md | 2 +- blog/2015/10/glvisualize.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blog/2015/10/auto-diff-in-julia.md b/blog/2015/10/auto-diff-in-julia.md index ff1d71d970..77a90d39ff 100644 --- a/blog/2015/10/auto-diff-in-julia.md +++ b/blog/2015/10/auto-diff-in-julia.md @@ -147,7 +147,7 @@ julia> deriv1 - deriv2 Notice that our dual number result comes *close* to the result obtained from Calculus.jl, but is actually slightly different. That slight difference is due to the approximation error inherent to the finite differencing method employed by Calculus.jl. -In reality, the number types that ForwardDiff.jl provides are quite a bit more complicated than `DualNumber`. Instead of simple dual numbers, the various `ForwardDiffNumber` types behave like *ensembles* of dual numbers and [hyper-dual numbers](http://adl.stanford.edu/hyperdual/Fike_AIAA-2011-886.pdf) (the higher-order analog of dual numbers). This ensemble-based approach allows for simultaneous calculation of multiple higher-order partial derivatives in a single evaluation of the target function. For an in-depth examination of ForwardDiff.jl's number type implementation, see [this section of the developer documentation](https://www.juliadiff.org/ForwardDiff.jl/types.html). +In reality, the number types that ForwardDiff.jl provides are quite a bit more complicated than `DualNumber`. Instead of simple dual numbers, the various `ForwardDiffNumber` types behave like *ensembles* of dual numbers and [hyper-dual numbers](http://adl.stanford.edu/hyperdual/Fike_AIAA-2011-886.pdf) (the higher-order analog of dual numbers). This ensemble-based approach allows for simultaneous calculation of multiple higher-order partial derivatives in a single evaluation of the target function. # Performance Comparison: The Ackley Function @@ -202,7 +202,7 @@ Let's start by looking at the evaluation times of `ackley(x)` in both Python and As you can see, there's already a significant performance difference between the languages. We'll have to keep that in mind when comparing our Julia differentiation tools with AlgoPy, in order to avoid confusing the languages' performance characteristics with those of the libraries (though there is obviously a solid coupling between the two concepts). -The below table shows the evaluation times of `∇ackley(x)` using various libraries (the `chunk_size` column denotes a configuration option passed to the `ForwardDiff.gradient` method, see the [chunk-mode docs](https://www.juliadiff.org/ForwardDiff.jl/chunk_vec_modes.html) for details.): +The below table shows the evaluation times of `∇ackley(x)` using various libraries (the `chunk_size` column denotes a configuration option passed to the `ForwardDiff.gradient` method, see the [docs](http://www.juliadiff.org/ForwardDiff.jl/latest/index.html) for details.): | length(x) | AlgoPy time (s) | Calculus.jl time (s) | ForwardDiff time (s) | chunk_size | |-----|-------|--------|--------|------| diff --git a/blog/2015/10/datastreams.md b/blog/2015/10/datastreams.md index 28fadc38e7..89a88bbff3 100644 --- a/blog/2015/10/datastreams.md +++ b/blog/2015/10/datastreams.md @@ -66,4 +66,4 @@ Quick rundown of each package: * DataStream scheduling/management: I'm also interested in developing capabilities around scheduling and managing DataStreams. -_The work on DataStreams.jl was carried out as part of the Julia Summer of Code program, made possible thanks to the generous support of the [Gordon and Betty Moore Foundation](https://moore.org), and MIT._ +_The work on DataStreams.jl was carried out as part of the Julia Summer of Code program, made possible thanks to the generous support of the [Gordon and Betty Moore Foundation](https://www.moore.org), and MIT._ diff --git a/blog/2015/10/glvisualize.md b/blog/2015/10/glvisualize.md index 0fc06f8eaf..e487616c1c 100644 --- a/blog/2015/10/glvisualize.md +++ b/blog/2015/10/glvisualize.md @@ -35,7 +35,7 @@ https://gist.github.com/SimonDanisch/e0a8a2cbc3106ce6c123#file-dragndrop-jl Another feature I've been working on is better 2D support. I've implemented different anti-aliased marker, text rendering and line types. -Apart from the image markers, they all use the [distance field technique](https://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf), to achieve view independent anti-aliasing. +Apart from the image markers, they all use the [distance field technique](https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf), to achieve view independent anti-aliasing. Here are a few examples: ![lines](https://github.com/SimonDanisch/Blog/blob/master/10-22-15-jsoc/lines.png?raw=true) From 4951580bee36ef6a6e4bb5880f57176f0e99d7b0 Mon Sep 17 00:00:00 2001 From: Thibaut Lienart Date: Sat, 28 Mar 2020 17:44:25 +0100 Subject: [PATCH 2/4] boom --- blog/2015/10/julia-0.4-release.md | 6 +++--- blog/2016/01/atom-work.md | 6 ++++-- blog/2016/09/biojulia2016-mid.md | 4 +--- blog/2016/10/julia-0.5-release.md | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/blog/2015/10/julia-0.4-release.md b/blog/2015/10/julia-0.4-release.md index e206e3153d..02b04ce0e5 100644 --- a/blog/2015/10/julia-0.4-release.md +++ b/blog/2015/10/julia-0.4-release.md @@ -14,7 +14,7 @@ the release-0.4 branch of the codebase, and we recommend the 0.4.x line for user requiring a more stable Julia environment. The Julia ecosystem continues to grow, and there are now -[over 700](https://pkg.julialang.org/pulse.html) registered packages! (highlights below). +over 700 registered packages! (highlights below). JuliaCon 2015 was held in June, and >60 talks are [available to view](https://www.youtube.com/playlist?list=PLP8iPy9hna6Sdx4soiGrSefrmOPdUWixM). [JuliaCon India](https://www.juliacon.in/2015) will be held in Bangalore on 9 and 10 October. We welcome bug reports on our GitHub tracker, and general usage questions on the @@ -36,7 +36,7 @@ to try 0.4 from the comfort of your browser. Happy Coding! - [Function call overloading for arbitrary objects](https://github.com/JuliaLang/julia/pull/8712) - [Generated functions](https://github.com/JuliaLang/julia/issues/7311) (sometimes known as "staged functions") introduce finer control over compile-time specialization. - [Docs](https://docs.julialang.org/en/release-0.4/manual/metaprogramming/#generated-functions) + [Docs](https://docs.julialang.org/en/v1/manual/metaprogramming/#) and related [JuliaCon talk](https://www.youtube.com/watch?v=KAN8zbM659o&list=PLP8iPy9hna6Sdx4soiGrSefrmOPdUWixM&index=55). - [Support for documenting user functions and other objects](https://github.com/JuliaLang/julia/pull/8791) and retrieving the documentation via the help system. @@ -67,7 +67,7 @@ Nightly builds will use the versioning scheme 0.5.0-dev. **Community News** The Julia ecosystem continues to grow, and there are now -[over 700](https://pkg.julialang.org/pulse.html) registered packages! (highlights below) +over 700 registered packages! (highlights below) The second [JuliaCon](https://juliacon.org) was held in Cambridge (USA) in June, 2015. Over 60 talks were recorded and diff --git a/blog/2016/01/atom-work.md b/blog/2016/01/atom-work.md index 64630e998e..4ae36edf94 100644 --- a/blog/2016/01/atom-work.md +++ b/blog/2016/01/atom-work.md @@ -4,11 +4,13 @@ @def title = "Julia IDE work in Atom" @def authors = "Mike Innes" -~~~
~~~ +~~~ +
+~~~ > A PL designer used to be able to design some syntax and semantics for their language, implement a compiler, and then call it a day. – Sean McDirmid -In the few years since its [initial release](/blog/2012/02/why-we-created-julia/), the Julia language has made wonderful progress. Over [four hundred contributors](https://github.com/JuliaLang/julia/graphs/contributors) – and counting – have donated their time developing exciting and modern language features like [channels](https://github.com/JuliaLang/julia/pull/12042) for concurrency, a [native documentation system](https://docs.julialang.org/en/latest/manual/documentation/), [staged functions](https://docs.julialang.org/en/latest/manual/metaprogramming/#generated-functions), [compiled packages](https://docs.julialang.org/en/release-0.4/manual/modules/#module-initialization-and-precompilation), [threading](https://github.com/JuliaLang/julia/pull/13410), and tons more. In the lead up to 1.0 we have a faster and more stable runtime, a more comprehensive standard library, and a more enthusiastic community than ever before. +In the few years since its [initial release](/blog/2012/02/why-we-created-julia/), the Julia language has made wonderful progress. Over [four hundred contributors](https://github.com/JuliaLang/julia/graphs/contributors) – and counting – have donated their time developing exciting and modern language features like [channels](https://github.com/JuliaLang/julia/pull/12042) for concurrency, a [native documentation system](https://docs.julialang.org/en/latest/manual/documentation/), [staged functions](https://docs.julialang.org/en/latest/manual/metaprogramming/#generated-functions), [compiled packages](https://docs.julialang.org/en/v1/manual/modules/#), [threading](https://github.com/JuliaLang/julia/pull/13410), and tons more. In the lead up to 1.0 we have a faster and more stable runtime, a more comprehensive standard library, and a more enthusiastic community than ever before. However, a programming language isn’t just a compiler or spec in a vacuum. More and more, the ecosystem around a language – the packages, tooling, and community that support you – are a huge determining factor in where a language can be used, and who it can be used by. Making Julia accessible to everybody means facing these issues head-on. In particular, we’ll be putting a lot of effort into building a comprehensive IDE, Juno, which supports users with features like smart autocompletion, plotting and data handling, interactive live coding and debugging, and more. diff --git a/blog/2016/09/biojulia2016-mid.md b/blog/2016/09/biojulia2016-mid.md index 08aa5948f8..cce0db7d8f 100644 --- a/blog/2016/09/biojulia2016-mid.md +++ b/blog/2016/09/biojulia2016-mid.md @@ -226,7 +226,5 @@ not to join us? ## Acknowledgements I gratefully acknowledge the Moore Foundation and the Julia project for -supporting the BioJulia project. I also would like to thank [Ben J. -Ward](https://github.com/Ward9250) and [Kevin -Murray](https://github.com/kdmurray91) for comments on my program code and other +supporting the BioJulia project. I also would like to thank [Ben J. Ward](https://github.com/BenJWard) and [Kevin Murray](https://github.com/kdmurray91) for comments on my program code and other contributions. diff --git a/blog/2016/10/julia-0.5-release.md b/blog/2016/10/julia-0.5-release.md index bfb858ffbd..fe65ed3bdc 100644 --- a/blog/2016/10/julia-0.5-release.md +++ b/blog/2016/10/julia-0.5-release.md @@ -13,7 +13,7 @@ A separate blog post detailing some of the [highlights of the new release](/blog We'll be releasing regular bugfix backports from the 0.5.x line, which is recommended for users requiring a stable language and API. Major feature work is ongoing on master for 0.6-dev. -The Julia ecosystem continues to grow, and there are now [over one thousand](https://pkg.julialang.org/pulse.html) registered packages! +The Julia ecosystem continues to grow, and there are now over one thousand registered packages! The third annual [JuliaCon](https://juliacon.org/) took place in Cambridge, MA in the [summer of 2016](/blog/2016/09/juliacon2016/), with an exciting line up of talks and keynotes. Most of them are [available to view](https://www.youtube.com/playlist?list=PLP8iPy9hna6SQPwZUDtAM59-wPzCPyD_S). From f44b805da30407f110fc49f525002f1bfe7f9ceb Mon Sep 17 00:00:00 2001 From: Thibaut Lienart Date: Sat, 28 Mar 2020 17:52:07 +0100 Subject: [PATCH 3/4] fixes to mlj --- blog/2016/10/StructuredQueries.md | 2 +- blog/2017/09/gsoc-derivative_operators.md | 2 +- blog/2018/03/pifonts.md | 2 +- blog/2019/05/beyond-ml-pipelines-with-mlj.md | 9 ++++----- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/blog/2016/10/StructuredQueries.md b/blog/2016/10/StructuredQueries.md index b6938cd0cb..5bbb36f300 100644 --- a/blog/2016/10/StructuredQueries.md +++ b/blog/2016/10/StructuredQueries.md @@ -374,7 +374,7 @@ Recall that the present query framework extracts the "value expression" of a que row -> lift(*, row[1], row[2]) ``` -While there is a [simpler way](https://github.com/davidagold/AbstractTables.jl/blob/2a7771ce865b961fa0e454508ce8b7aa6a85e1fd/src/column_indexable/query/select.jl#L43-L48) to achieve standard lifting semantics, this approach (which is currently employed by the column-indexing collection machinery) does not easily support non-standard lifting semantics such as three-valued logic. +While there is a simpler way to achieve standard lifting semantics, this approach (which is currently employed by the column-indexing collection machinery) does not easily support non-standard lifting semantics such as three-valued logic. The higher-order lifting approach is not without its own drawbacks. Most notably, non-standard lifting semantics, such as three-valued logic, are more difficult to implement and are subject to restrictions that do not apply to the method extension lifting approach. The details of this difficulty is the proper subject of another blog post. The summary of the problem is: higher-order lifting (via code transformation, such as within `@query`) can only give non-standard lifting semantics to methods called explicitly within the expression passed to `@query`. That is, diff --git a/blog/2017/09/gsoc-derivative_operators.md b/blog/2017/09/gsoc-derivative_operators.md index 2f19e444ff..95ab17aaf7 100644 --- a/blog/2017/09/gsoc-derivative_operators.md +++ b/blog/2017/09/gsoc-derivative_operators.md @@ -79,7 +79,7 @@ So to convert the PDE into an ODE, we discritize the equation in space but not i $u_i' = A_{h}u_i + f(t,u_i)$ Where $A$ is a linear operator and not the transformation matrix. Thus we will have to make the ODE solvers of **DifferentialEquations.jl** compatible with linear operators also. -Since it is tedious to compute the Taylor coefficients by hand, Fornberg gave an [algorithm](https://amath.colorado.edu/faculty/fornberg/Docs/MathComp_88_FD_formulas.pdf) to compute them efficiently for any derivative and approximation order. These stencils can efficiently compute derivatives at any point by taking appropriately weighted sums of neighboring points. For example, $[-1, 2, -1]$ is the second order stencil for calculating the 2nd derivative at a point. +Since it is tedious to compute the Taylor coefficients by hand, Fornberg gave an [algorithm](https://www.scribd.com/document/436149037/MathComp-88-FD-formulas-pdf) to compute them efficiently for any derivative and approximation order. These stencils can efficiently compute derivatives at any point by taking appropriately weighted sums of neighboring points. For example, $[-1, 2, -1]$ is the second order stencil for calculating the 2nd derivative at a point. In **DiffEqOperators.jl** we can easily extract stencils of any derivative and approximation order from an operator. For eg. diff --git a/blog/2018/03/pifonts.md b/blog/2018/03/pifonts.md index 228aaaaf58..70269cd215 100644 --- a/blog/2018/03/pifonts.md +++ b/blog/2018/03/pifonts.md @@ -87,7 +87,7 @@ By the way, these alternative symbols for π such as `\mitpi` don't evaluate as ### The phonogram symbol Ⓟ -Not all fonts contain a suitable Greek π at `U+03C0`. A few expensive fonts such as [Gotham](https://www.typography.com/fonts/gotham/overview/) offer the circled P symbol at `U+03c0` instead of π. This is the "phonogram" (or "phonorecord") symbol, which usually lives at `U+2117` (the one at `U+24C5` is also used), and it's like the copyright symbol © but for sound recordings. The story behind this is that, particularly before the days of Unicode standardization, font companies sometimes favoured pragmatism over correctness. According to [David Berlow](https://www.typophile.com/node/45116): +Not all fonts contain a suitable Greek π at `U+03C0`. A few expensive fonts such as [Gotham](https://www.typography.com/fonts/gotham/overview/) offer the circled P symbol at `U+03c0` instead of π. This is the "phonogram" (or "phonorecord") symbol, which usually lives at `U+2117` (the one at `U+24C5` is also used), and it's like the copyright symbol © but for sound recordings. The story behind this is that, particularly before the days of Unicode standardization, font companies sometimes favoured pragmatism over correctness. According to [David Berlow](http://davidberlow.fontbureau.com/): > we at Font Bureau understand how users work, and so we put the p in a circle, a "must-have" glyph that is very difficult for a user to make on the fly, in the slot of a glyph (math pi) that most people really don't need (because even if they do, it's in the Symbol font on every single computer on earth). diff --git a/blog/2019/05/beyond-ml-pipelines-with-mlj.md b/blog/2019/05/beyond-ml-pipelines-with-mlj.md index 17b64be18c..36b715bc9b 100644 --- a/blog/2019/05/beyond-ml-pipelines-with-mlj.md +++ b/blog/2019/05/beyond-ml-pipelines-with-mlj.md @@ -51,16 +51,15 @@ composition.
~~~ -☞ The MLJ [tour](https://github.com/alan-turing-institute/MLJ.jl/blob/master/docs/src/tour.ipynb) +☞ The MLJ [tutorials](https://alan-turing-institute.github.io/MLJTutorials/). -☞ Building a [self-tuning random - forest](https://github.com/alan-turing-institute/MLJ.jl/blob/master/examples/random_forest.ipynb) +☞ Building a [self-tuning random forest](https://alan-turing-institute.github.io/MLJTutorials/getting-started/model-tuning/) ☞ An MLJ [docker image](https://github.com/ysimillides/mlj-docker) (including tour) ☞ Implementing the MLJ interface for a [new model](https://alan-turing-institute.github.io/MLJ.jl/dev/adding_models_for_general_use/) -☞ How to [contribute](https://github.com/alan-turing-institute/MLJ.jl/blob/master/CONTRIBUTE.md) +☞ How to [contribute](https://github.com/alan-turing-institute/MLJ.jl/blob/master/CONTRIBUTING.md) ☞ Julia [Slack](https://julialang.slack.com) channel: \#mlj. @@ -212,7 +211,7 @@ yhat(Xnew) # to predict on new data Once a pipeline like this has been built and tested on sample data, it can be exported as a stand-alone model, ready to be trained on any dataset. For details, see the MLJ -[documentation](https://alan-turing-institute.github.io/MLJ.jl/dev/learning_networks/). In +[documentation](https://alan-turing-institute.github.io/MLJ.jl/dev/composing_models/#Learning-Networks-1). In the future, Julia macros will allow common architectures (e.g., linear pipelines) to be built in a couple of lines. From 0b6bc6817d0efee71b70189f94cb08c0bce24d44 Mon Sep 17 00:00:00 2001 From: Thibaut Lienart Date: Sat, 28 Mar 2020 17:56:51 +0100 Subject: [PATCH 4/4] . --- blog/2019/05/jsoc19.md | 2 +- jsoc/gsoc/flux.md | 2 +- learning/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blog/2019/05/jsoc19.md b/blog/2019/05/jsoc19.md index ad7c6cef81..64d6d3612c 100644 --- a/blog/2019/05/jsoc19.md +++ b/blog/2019/05/jsoc19.md @@ -32,7 +32,7 @@ So we are excited to see what our impressive set of students achieve this summer |12|Kirill Zubov|Implement package for solving high-dimensional partial differential equations using Neural Networks|[✔️](https://nextjournal.com/kirill_zubov)| |13|Ludovico Bessi|Accelerating optimization via machine learning with different surrogate models|[✔️](https://nextjournal.com/ludoro)| |14|Pankaj Mishra|Automatic Computation of Sparse Jacobians|[✔️](https://nextjournal.com/pkj-m)| -|15|Sharan Yalburgi|Variational Inference Methods in Turing.jl|[✔️](https://sharanry.github.io/post/)| +|15|Sharan Yalburgi|Variational Inference Methods in Turing.jl|[✔️](https://sharanry.github.io/)| |16|Yashvardhan Sharma|Implementing Charibde: The Hybrid Algorithm for constrained Interval Optimisation|[✔️](https://nextjournal.com/yash_jsoc)| |17|Shivin Srivastava|Efficient Finite Difference Discretizations of Partial Differential Operators|| |18|Saurabh Agarwal|Implementing Parallel Extrapolation Algorithms|| diff --git a/jsoc/gsoc/flux.md b/jsoc/gsoc/flux.md index 8ad7dd0ac1..ad9b9e8569 100644 --- a/jsoc/gsoc/flux.md +++ b/jsoc/gsoc/flux.md @@ -51,7 +51,7 @@ exciting project if you are interested in both music and machine learning. Flux usually takes part in [Google Summer of Code](https://summerofcode.withgoogle.com), as part of the wider Julia organisation. We follow the same [rules and application guidelines](/jsoc/projects/) as Julia, so please check there for more information on applying. Below are a set of ideas for potential projects (though you are welcome to explore anything you are interested in). -Flux projects are typically very competitive; we encourage you to get started early, as successful students typically have early PRs or working prototypes as part of the application. It is a good idea to simply start contributing via issue discussion and PRs and let a project grow from there; you can take a look at [this list of issues](https://github.com/issues?utf8=✓&q=is%3Aopen+archived%3Afalse+user%3AFluxML+label%3A%22help+wanted%22) for some starter contributions. +Flux projects are typically very competitive; we encourage you to get started early, as successful students typically have early PRs or working prototypes as part of the application. It is a good idea to simply start contributing via issue discussion and PRs and let a project grow from there; you can take a look at [this list of issues](https://github.com/FluxML/Flux.jl/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) for some starter contributions. ### Port ML Tutorials diff --git a/learning/index.md b/learning/index.md index fec4f3317b..3bbc232bac 100644 --- a/learning/index.md +++ b/learning/index.md @@ -106,7 +106,7 @@ If you know of other classes using Julia for teaching, please consider [updating @@tight-list * AGH University of Science and Technology, Poland - * [Signal processing in medical diagnostic systems](https://home.agh.edu.pl/~pieciak/en/dydaktyka/przetwarzanie-sygnalow-w-systemach-diagnostyki-medycznej) (Tomasz Pieciak), Spring 2015 + * [Signal processing in medical diagnostic systems](http://home.agh.edu.pl/~pieciak/en/dydaktyka/przetwarzanie-sygnalow-w-systemach-diagnostyki-medycznej) (Tomasz Pieciak), Spring 2015 * Arizona State University * MAT 423, Numerical Analysis (Prof. Clemens Heitzinger), Fall 2014 * Azad University, Science and Research Branch