Skip to content

Instantly share code, notes, and snippets.

begin
# Straightforward adaptation from https://github.com/JuliaPluto/PlutoUI.jl/pull/54 by @mthelm85
struct Microphone end
function Base.show(io::IO, ::MIME"text/html", microphone::Microphone)
mic_id = String(rand('a':'z', 12))
mic_btn_id = String(rand('a':'z', 12))
PlutoUI.withtag(() -> (), io, :audio, :id => mic_id)
print(io, """<input type="button" id="$mic_btn_id" class="mic-button" value="Stop">""")
PlutoUI.withtag(io, :script) do
julia> using StructArrays
julia> begin
g(x::StructArray{<:Tuple{String}}) = nothing
g(x::StructArray{<:Tuple{Integer}}) = nothing
function f(x)
# ok, yes, this line is fairly contrived, but this is a short-hand for
# building a partial type-instability -- something that happens frequently
z1 = Core.compilerbarrier(:type, x)::StructArray{<:Tuple{Nothing}}
z2 = g(z1)
using Cassette, ReplMaker
Cassette.@context NoNaN
nonnan(s, x::Number) = (@assert(!isnan(x), string(s, " returned NaN")); x)
nonnan(s, A::AbstractArray) = (foreach(x->nonnan(s, x), A); A)
nonnan(s, x) = x
Cassette.overdub(::NoNaN, f, args...) = nonnan("$f$args", f(args...))
@mbauman
mbauman / DiscourseStats.jl
Last active March 2, 2020 22:43
Cumulative discourse stats
using HTTP, JSON, DataFrames, Dates, CSV
function cumulative(dates)
start_date = Dates.format(minimum(dates)-step(dates), "YYYY-mm-dd")
end_date = Dates.format(maximum(dates), "YYYY-mm-dd")
colnames = []
cols = []
for report in ("signups", "posts", "likes", "page_view_total_reqs", "topics")
r = HTTP.get("https://discourse.julialang.org/admin/reports/$report.json?end_date=$end_date&start_date=$start_date",
["Api-Key"=> ENV["JULIA_DISCOURSE_API_KEY"], "Api-Username"=> ENV["JULIA_DISCOURSE_USERNAME"]])
@mbauman
mbauman / Manifest.toml
Created October 11, 2019 18:54
Fast partitions
# This file is machine-generated - editing it directly is not advised
[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "380e36c66edfa099cd90116b24c1ce8cafccac40"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.4.1"
[[Arpack]]
deps = ["BinaryProvider", "Libdl", "LinearAlgebra"]
$ ./julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.3.0-alpha.148 (2019-08-16)
_/ |\__'_|_|_|\__'_| | Commit b5f4e87774 (3 days old master)
|__/ |
{
/* Ctrl shortcuts from Emacs */
"^l" = "centerSelectionInVisibleArea:"; /* C-l Recenter */
"^/" = "undo:"; /* C-/ Undo */
"^_" = "undo:"; /* C-_ Undo */
"^ " = "setMark:"; /* C-Spc Set mark */
"^\@" = "setMark:"; /* C-@ Set mark */
/* "^w" = "deleteToMark:"; /* C-w Delete to mark */
/* TextMate-like addenda */
diff --git a/base/broadcast.jl b/base/broadcast.jl
index 95a25bed66..7c0fa71aba 100644
--- a/base/broadcast.jl
+++ b/base/broadcast.jl
@@ -97,9 +97,13 @@ struct DefaultArrayStyle{N} <: AbstractArrayStyle{N} end
(::Type{<:DefaultArrayStyle})(::Val{N}) where N = DefaultArrayStyle{N}()
const DefaultVectorStyle = DefaultArrayStyle{1}
const DefaultMatrixStyle = DefaultArrayStyle{2}
-BroadcastStyle(::AbstractArray{T,N}) where {T,N} = DefaultArrayStyle{N}()
+BroadcastStyle(v::AbstractArray{T,N}) where {T,N} = _broadcast_api_deprecation(DefaultArrayStyle{N}(), BroadcastStyle(typeof(v)))
julia> function searchdocs(mod, seen=Set())
mod in seen && return
push!(seen, mod)
for name in names(mod)
isdefined(mod, name) || continue
Base.isdeprecated(mod, name) && continue
b = getfield(mod, name)
docs = Base.Docs.doc(b)
if startswith(string(docs), "No documentation found")
println(mod, ".", name)
```
$ ack --type=julia '@(begin|while|if|for|try|return|break|continue|function|macro|quote|let|local|global|const|do|struct|end|else|catch|finally|true|false)\b' ALL_PACKAGES/
ALL_PACKAGES/ACME/src/ACME.jl
575:@struct ModelRunner{Model<:DiscreteModel,ShowProgress} begin
ALL_PACKAGES/ACME/src/circuit.jl
11:@struct Circuit begin
ALL_PACKAGES/ACME/src/solvers.jl
8:@struct ParametricNonLinEq{F_eval<:Function,F_setp<:Function,F_calcjp<:Function,Scratch} begin