Skip to content

Instantly share code, notes, and snippets.

View n2o's full-sized avatar
🕵️‍♂️
...

Christian Meter n2o

🕵️‍♂️
...
View GitHub Profile
@n2o
n2o / fizzbuzz-clojure.md
Last active February 20, 2020 09:01
FizzBuzz without conditions in Clojure

Just thought about a FizzBuzz solution written in frege which I saw on a meetup. This solution does not need any conditionals and is completely lazy, which is why I like this solution so much.

The rules are as follows:

  • print all numbers from 1 to n, but...
    • replace all numbers, which are smoothly divisible by 3, with "fizz"
@n2o
n2o / clojure-korma-minimal.md
Last active November 3, 2019 14:16
Minimal Clojure Korma example to read data from a postgresql database

Let's play around with a postgres database and Clojure. To query and insert a database, we need to create one:

docker run --rm --name eventdb -e POSTGRES_PASSWORD=foo -e POSTGRES_USER=foo -e POSTGRES_DB=foo -d -p 5432:5432 postgres

This creates a postgres database named foodb, with password, user and tablename also being foo. Ports are exposed to our local machine and we can access the database at localhost:5432.

Now, we need to connect to the database and create a table, which can be queried and filled with korma. You can use a library to do this, but for a minimal example this is not necessary:

user@host ~ % docker exec -it eventdb su postgres -c psql
@n2o
n2o / clojure-meetup-july-clojure.spec.md
Created July 7, 2017 21:33
Clojure Meetup July: clojure.spec

We played around with clojure.spec and followed the post Interactive Development with clojure.spec.

In the beginning, we started to get to know the semantics of clojure.spec and looked at some specs. After this, we solved the codebreaker-example and successfully defined some specs for it.

REPL Session from Clojure Meetup Düsseldorf, Germany, 6th July 2017

@n2o
n2o / professional-programming-summer-2017-week-12.md
Last active July 6, 2017 12:18
Professional Programming: Results of practical exercises, week 12: JavaFX + SceneBuilder + AnchorPanes

Today we extended the project from week 11 and created a base template. This base template contains an AnchorPane, where FX-elements from other FXML files can be appended to. Therefore, we can change on click our UI and load new elements to it.

// src/main/java/Main.java

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
@n2o
n2o / professional-programming-summer-2017-week-11.md
Last active June 29, 2017 11:41
Professional Programming: Results of practical exercises, week 11: JavaFX

This week we started with JavaFX and created a simple HelloWorld-Application. Later, we created a more advanced UI with the Gluon SceneBuilder. But I will only upload our hello-world example, since working with the SceneBuilder is straightforward.

This is a gradle project and the source code is based on the standard JavaFX template by IntelliJ.

// build.gradle
@n2o
n2o / professional-programming-summer-2017-week-7.md
Created June 8, 2017 11:00
Professional Programming: Results of practical exercises, week 7

Today, we played around with Unirest, gson and a sample API to address our requests to. This is just a simple and small example, because we had not much time to live-code this problem.

import com.google.gson.Gson;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
@n2o
n2o / professional-programming-summer-2017-week-6.md
Last active June 30, 2017 17:06
Professional Programming: Results of practical exercises, week 6

Results (so far) from our practical exercises: Solving the Mars Rover Kata

// build.gradle

apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'jacoco'

repositories {
@n2o
n2o / datomic-basics.md
Last active May 26, 2017 13:52
Basic datomic scheme, some transactions and queries

There are only few tutorials showing a step-by-step guide for datomic. This Gist might give you some exemplary code to get started with this interesting type of database.


Require the datomic api from [com.datomic/datomic-pro "0.9.5561"]:

(require '[datomic.api :refer [q transact] :as d])
@n2o
n2o / professional-programming-summer-2017-week-4.md
Last active May 18, 2017 08:53
Professional Programming: Results of practical exercises, week 4

Task: Read a CSV file and correctly parse it. Then calculate the sum of those students, who achieved 50 points or more in the exam.

The CSV file is located in resources/punkte.csv.

App.java

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.Reader;
@n2o
n2o / docker-ip.md
Last active February 23, 2024 16:37
Show IP of your docker-container

Show IP of your Docker container

tested on Arch Linux x64 4.5.4-1-ARCH

Ever needed the IP of your running docker container? I found a script somewhere on Stackoverflow, packed it into a function and created an alias for it. This function is just a shorthand to get the IP by container ID or by the container's name:

Append this to your .bash_aliases or similar:

# ~/.bash_aliases