RSSAmplifier

Blog

OpenSourcES

OpenSourcES: is a blog about coding things from scratch.

opensourc.esRSS feed ↗106 posts

Latest posts

Have your own basic OsmAnd map

Ever wondered how to create your own map and see it on your website or on an App like OsmAnd? Look no further and let me help you through the process of creating your own tile server.

Graphs.jl: The Myers difference algorithm

A Julia implementation of the Myers difference algorithm

TSPSolver.jl: 2-opt

Using 2-opt to find a better upper bound

TSPSolver.jl: Using Bonobo.jl to solve our first instance

Solving our first real TSP problem using Bonobo.jl as a branch and bound framework.

Lessons Learned: A Julia Project Recap

How I structured my ConstraintSolver.jl package and what I learned in two and a half years of working on it. Bad approaches and good ones.

Javis: Taxi Trip Visualization

Visualizing taxi trips in Porto, Portugal using Javis and various other Julia packages.

Bonobo.jl: Branch and Bound

The start of a general branch and bound framework for mathematical optimization problems in Julia.

TSP: Greedy approach and using a 1-Tree

An introduction to the most simple TSP heuristic as well as a more sophisticated lower bound. More coming soon

About me

About me, Ole Kröger and OpenSourc.ES

Matrix multiplication: Performance

A deep dive into the performance we can obtain by thinking about cache lines and parallel code. An example step by step guide on optimizing dense matrix multiplication.

Javis.jl examples series: Collatz Conjecture

What is the Collatz conjecture and how can we visualize the tree that is underlying it? A visual exploration of the problem in Julia with animations using Javis.jl

Javis.jl examples series: Inverse Kinematics

How to reach an object using a robotic arm? With Inverse Kinematics. A visualization and explanation using Julia and the animation engine Javis.jl

Javis.jl examples series: The chase problem

Animating a simple problem in Javis. Exploring different ways of animating in the newer versions of Javis

Master thesis: HyperOrdering

Explaining the fast pseudocode behind HyperOrdering. A way to find a minimum degree node ordering.

Master thesis: Minimum degree ordering

How to permute a sparse system of linear equations such that a decomposition stays sparse? An introduction into minimum degree ordering.

First YouTube video created with Javis

How I created the first 7 minute video with the animation framework Javis.jl and what you can learn from it.

Ghess: How to write a Chess Engine?

How to write a chess engine. An introduction to ideas, testing and interesting bugs.

Benchmarking and Profiling Julia Code

Find out how to benchmark and profile your Julia code Find the spots that aren't as fast as expected to run with the speed.

Share what you've learned!

Share which tool, workflow, package helped you out with the rest of the community

Boolean constraints

Extending JuMP with boolean constraints for my ConstraintSolver.jl

Generic bridges

How to create generic bridges in JuMP?

Creating bridges with JuMP.jl and MOI.jl

How to create your own JuMP/MOI bridges?

Constraint Solver: Priority Queue

Using a priority queue to speed up get_next_node

Graph Coloring using Cliques

Using maximal cliques to find graph colorings faster.

Javis v0.3: How to animate a Fourier series

The biggest changes in Javis v0.3 and how it makes animations easier. Making Fourier animations in a few minutes.

Debugging in Julia - Two different ways

Different ways of debugging Julia code without using println. Some deep, some fast and fun.

The Julia Package Manager

How to use the package manager in Julia and create your own environment or package.

Javis v0.2 and the Future

What's new in Javis v0.2 and what have we planned for the future?

Javis.jl with Animations.jl

How to make powerful animations in JuliaLang with Javis.jl and Animations.jl?

Housekeeping August 2020

What happened in August? First version of Javis.jl. Project management, master thesis and the future.

ConstraintSolver.jl Refactoring

Refactoring of ConstraintSolver.jl and what I've learned about properties and hashes.

The beginning of Javis.jl

A small introduction to the new project Javis.jl. What do you want to animate?

Visualizing Pi, Tau and prime numbers

Visualizing Pi, Tau as well as prime numbers using Luxor.jl

ConstraintSolver.jl Reified constraint

How to extend JuMP to support a new constraint type? The reified constraint.

Pi vs Tau

Is Pi better or Tau? I'm always for pie. Mathematical reasons are boring. Your visual cortex should decide.

Side gig: Mentoring Julia newcomers

Why I think code reviews/mentoring are helpful for beginners. What do I have to offer?

Julia Basics: REPL & Revise

What do I need to start with Julia? Learning the REPL and Revise.

Julia Basics: Multiple Dispatch

Series of Julia basics: What is multiple dispatch? Explanation on how to use it and why it is powerful.

ConstraintSolver.jl Indicator Part 2

Extending JuMP.jl in your own package to support more constraints.

Franklin.jl

Using Franklin for the new blog layout. A static site generator written for Julians.

Indicator constraint + Benchmarks

Part 23: Adding an indicator constraint to the ConstraintSolver

Housekeeping May 2020

Housekeeping: Logo for the constraint solver, Exercism, Streaming and a new blog layout which hopefully comes soonish.

Bugs and Benchmarks

How to build a constraint programming solver in Julia. Part 22: Bugs, debugging and benchmarking without loosing sanity

Solving Str8ts

How to build a constraint programming solver in Julia. Part 21: How to solve Str8ts using constraint programming?

Table constraint

How to build a constraint programming solver in Julia. Part 20: Implementing the table constraint.

ConstraintSolver.jl v0.1.0

Final bits and pieces to release the first version of this project.

Bound computation

Computing reasonable bounds for the constraint solver for a dramatic speedup

COVID-19 Visualization

Creating a visualization of COVID-19 cases using public data and Luxor.jl

Table logging in Julia

Log something in a table by adding rows to the command line. Useful for things like solvers to show best bounds, incumbents and some other information

Building an Enigma emulator and a Bombe

How does the Enigma work and how to code one? As well as getting the flaws and crack the code