EMUlator https://pfitzseb.github.io/ Recent content on EMUlator Hugo -- gohugo.io en-us Wed, 15 Aug 2018 21:44:17 +0200 JuliaCon Poster https://pfitzseb.github.io/blogposts/juliacon-poster/ Wed, 15 Aug 2018 21:44:17 +0200 https://pfitzseb.github.io/blogposts/juliacon-poster/ So if anyone wants to take another look at the poster I presented at JuliaCon this year, here it is: Thanks again to NumFocus and the JuliaProject for making it possible for me to attend JuliaCon and (finally) meet basically everyone in the Julia community face-to-face! GSoC 2018 Summary https://pfitzseb.github.io/blogposts/gsoc-final-2018/ Mon, 06 Aug 2018 07:40:56 +0100 https://pfitzseb.github.io/blogposts/gsoc-final-2018/ The aims of this year’s GSoC project were to a) get the Juno IDE running on Julia v1.0 and b) integrate performance linting into the Juno UI. Most of the work went into updating the various Julia packages in the Juno stack, first for Julia 0.7 and then for Julia 1.0. There’s also a unfinished PR against @MikeInnes’ excellent package Traceur.jl, which provides performance linting in Julia. Finding a nice user experience for getting performance tips in Juno was mostly a matter of updating the Atom packages Juno uses. Towards Juno 0.7 https://pfitzseb.github.io/blogposts/juno-on-07/ Mon, 09 Jul 2018 16:41:42 +0200 https://pfitzseb.github.io/blogposts/juno-on-07/ Quite a few changes are coming with Juno 0.7 (which will be compatible with the upcoming Julia 0.7). Workspace Pane The workspace pane is now a bit faster and there are a few quality of life improvements: Workspace items can be fuzzy-filtered by name. There’s buttons for selecting the current module and refreshing the workspace pane. Rendering performance is better now – displaying all of Base doesn’t nearly take as long and doesn’t slow the rest of Atom to a crawl. Uni https://pfitzseb.github.io/uni/ Mon, 11 Jun 2018 12:20:32 +0200 https://pfitzseb.github.io/uni/ Protokolle Einführungspraktikum O1 - Dünne Linsen F0 - Auswertung und Präsentation von Messdaten F5 - Dichte fester Körper Grundpraktikum - Mechanik und Wärmelehre M6 - Innere Reibung in Flüssigkeiten - 19/20 M5 - Oberflächenspannung - 18.5/20 F7 - Statistik und Radioaktivität - 20/20 M3 - Elastizität und Torsion - 20/20 A2 - Franck-Hertz-Versuch - 20/20 M9 - Reversionspendel - 19/20 T4 - Zustandsgleichung idealer Gase - 20/20 T7 - Spezifische Wärmekapazität idealer Gase - 20/20 T6 - Thermoelement und newtonsches Abkühlungsgesetz - 20/20 M10 - Gyroskop - 19/20 Grundpraktikum - Elektrodynamik und Optik E2 - Innenwiderstand von Messgeräten - 20/20 E4 - Wechselstromwiderstände - 20/20 E1 - Wheatstonesche Brücke - 20/20 E5 - Gleichrichterschaltungen - 20/20 E3 - Transformator - 20/20 O6 - Newtonsche Ringe - 20/20 O8 - Fraunhofersche Beugung - 20/20 O10 - Linsensysteme - 20/20 O2 - Mikroskop - 20/20 O3/O4 - Prismen- und Gitterspektrometer - 19. Updated Linter UI https://pfitzseb.github.io/blogposts/linterui-ink/ Sun, 10 Jun 2018 20:34:30 +0200 https://pfitzseb.github.io/blogposts/linterui-ink/ Okay, so last blogpost I started investigating whether it makes sense to use linter-ui-default to display performance advice. There were three main problems: The default settings are bad for this use case, which means Juno would need to extensively reconfigure an external package. Lots of linters for other languages use linter-ui-default, so any config changes Juno makes would be reflected there as well. It’s not quite as configurable as I’d have liked it to be. Performance Linter UI https://pfitzseb.github.io/blogposts/linterui/ Thu, 17 May 2018 09:41:53 +0200 https://pfitzseb.github.io/blogposts/linterui/ Dynamic performance linting can easily be done with Traceur.jl and the @trace macro, which prints any warnings directly to the REPL: julia> @trace naive_sum([1.0, 2.0]) (Base.indexed_next)(::Tuple{Int64,Bool}, ::Int64, ::Int64) at tuple.jl:54 returns Tuple{Union{Bool, Int64},Int64} (naive_sum)(::Array{Float64,1}) at /home/basti/Documents/test.jl:211 s is assigned as Int64 at line 211 s is assigned as Float64 at line 213 dynamic dispatch to s + x at line 213 returns Union{Float64, Int64} 3.0 This works fine, but obviously isn’t ideal for an IDE such as Juno. GSoC summary https://pfitzseb.github.io/blogposts/gsocfinal/ Mon, 21 Aug 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/gsocfinal/ The aim of this GSoC project is to provide a convenient way to access documentation in the Juno IDE. Any work on this has to be on the Julia side (for getting the necessary information by introspection) and on the Atom side (for presenting said information). Most of the work on the Julia side went into a new package, DocSeeker.jl, which implements all of the introspection necessary to get docstrings from installed packages; a small shim in Atom. Lots of GSoC Progress https://pfitzseb.github.io/blogposts/lotsaprogress/ Thu, 10 Aug 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/lotsaprogress/ Alright, it’s been ages since my latest blogpost, and lots has happened in the meantime: That’s the current state of Juno’s fancy new search pane. You can search docstrings in all currently loaded modules (or just in all installed modules), which will be fully rendered (yay $\KaTeX$, yay syntax highlighting). Links are mostly functional: Those with Documenter.jl’s @ref syntax will start a new search, others will just open their target in your default browser. Atom and Julia via LSP https://pfitzseb.github.io/blogposts/atomlanguageclient/ Wed, 28 Jun 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/atomlanguageclient/ Yesterday I was looking into improving Juno’s autocompletion to include local variables natively (that is, without relying on Atom’s built in dumb autocomplete provider). Checking out the “competition” (that is, the Julia language server for VSCode), I noticed they have that feature – powered by the awesome CSTParser.jl. So originally I planned on stealing parts of their code and adding that functionality to CodeTools.jl. Then, while talking with @ZacLN on the julia-vscode gitter, I decided to just quickly build a language-client for Julia on top of atom-languageclient. Proper scoring! https://pfitzseb.github.io/blogposts/proper-scoring/ Fri, 09 Jun 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/proper-scoring/ Good news: I found the excellent StringDistances.jl, which has some very useful comparison functions. This has kinda trivialized writing a good score function (not that I’m complaining): # TODO: better string preprocessing. function score(needle::String, s::Docs.DocStr) binding = split(string(get(s.data, :binding, "")), '.')[end] doc = lowercase(join(s.text, '\n')) (3*compare(Hamming(), needle, binding) + compare(TokenMax(Jaro()), lowercase(needle), doc))/4 end For simple cases this works really well I think, but I haven’t had time for extensive testing yet. Progress (kinda) https://pfitzseb.github.io/blogposts/progress/ Thu, 08 Jun 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/progress/ Haven’t written anything up for quite a while now, mostly due to a somewhat stressful week in uni – lots of things to do, “reunion” party of my research group to attend and so on. I did make some progress on GSoC, and also made some PRs to get Juno set up for the nearing Julia 0.6 release. Plots.jl in particular needs some love to get around world age issues, so I’ll try my hand at an implementation of Requires. Pondering: Searching for Docs https://pfitzseb.github.io/blogposts/docsearch/ Fri, 02 Jun 2017 23:30:03 +0200 https://pfitzseb.github.io/blogposts/docsearch/ Initial Thoughts There are four situations for searching docstrings: Search in a user specified package. Search in all currently loaded packages. Search in all installed packages. Search in all registered packages. The last one is obviously more difficult than the others, so it’s only a stretch goal for my GSoC :) Now, the question is how the search should be implemented. First step has to be gathering all relevant bindings; defining “relevant” here isn’t super obvious, since Julia packages don’t have to export a binding for it to belong to the official API. Hugo and Julia https://pfitzseb.github.io/blogposts/hugo-katex-julia/ Fri, 02 Jun 2017 23:25:03 +0200 https://pfitzseb.github.io/blogposts/hugo-katex-julia/ While looking into setting some blogging environment for GsoC 2017 (playing around with HTML files by hand gets old quickly…), I stumbled upon Hugo. I guess Jekyll would’ve been the obvious choice, but seemed a bit too unwieldy for me. Getting Hugo running is super easy – it even includes a webserver with live reload for convenient development! Customization is a bit more involved though: Finding a theme over at themes. About https://pfitzseb.github.io/about/ Mon, 01 Jan 0001 00:00:00 +0000 https://pfitzseb.github.io/about/ Nothing to see here… Home https://pfitzseb.github.io/home/ Mon, 01 Jan 0001 00:00:00 +0000 https://pfitzseb.github.io/home/ Hi, I’m Sebastian and this is my favourite… nvm. Projects https://pfitzseb.github.io/projects/ Mon, 01 Jan 0001 00:00:00 +0000 https://pfitzseb.github.io/projects/ Juno, an IDE for Julia