RSSAmplifier

Blog

Software Deviser

A blog by Orestis Markou

orestis.grRSS feed ↗21 posts

Latest posts

Clojure and AI agents - an experience report

Clojure and AI agents - an experience report Disclaimer: No AI was involved in the writing of this post. Reluctant buyer Since the start of the AI gol...

Clojure: Unlocking incremental automation

We've started slowly introducing Clojure at Nosco, and I'm very excited to share some first impressions on what it feels like to start with a pretty l...

Web development with Clojure — an overview

After a few weeks of investigating various approaches to web development in Clojure, I'd like to write down a summarised overview to help me nail down...

Your first Clojure code

In this post I want to give a very quick tour of Clojure. This is aimed at people that might not have done any Lisp, Java or Functional programming be...

Functional puzzles (part 1)

As I've mentioned before, I have found the Advent of Code puzzles to be very useful in learning a new language. I'd like to show how I wrote my first ...

Unbounded buffers are bad (or, careful with that log, Eugene)

I received a customer request about some remote-controlled machine not responding as it should. I knew from my monitoring graphs that indeed there wer...

Clojure "apropos"

On my 25 days of Clojure post I made a passing reference to Clojure needing an "apropos" command: The Clojure documentation can be hard to decipher, a...

Live-debugging an Elixir memory/process leak

I recently tweeted: Diagnosing a process leak (that manifested as a memory leak) using the remote console - fantastic! #myelixirstatus — Orestis Marko...

25 days of Clojure

For the past couple of years, I have tried to learn and evaluate one new programming language each year. One nice way I've found is by solving the Adv...

Three a-ha moments

I have recently had a minor enlightenment about what programming languages I want to use in my daily work, and I would like to capture them for the be...

Client-side table filtering with CSS selectors

Here's a cool trick I came up with (pretty sure it's been done already, but I've never heard of this particular one) that makes it really easy to add ...

Web development needs qualifiers

As professional programmers, there's no way we can avoid doing some web development in the course of our careers. And I write "avoid" because anyone t...

About me

My name is Orestis Markou, and I have been a professional software developer for some time now. I'm calling myself a Software Deviser. I hope it doesn...

Rebooting my online presence

I have been consciously limiting my online presence for the past 5 years. I no longer post on Twitter, I have closed my Facebook account, I haven't re...

Converting the Django tutorial to Ember.js

Writing your first Ember app, part 1 Get started Install ember using Ember CLI -- Ember is similar to Django by making a lot of decisions for you Crea...

Using Django as Ember.js back-end

Ember.js is moving a lot, but since the adoption of JSONAPI for the default "wire protocol" with back-ends it's easier to keep up. I have had good luc...

WSGI, Twisted and Server Sent Events

Old-school web applications were easy to create. Big powerful frameworks like Django give you a lot of tools you can leverage. One weak point of all t...

Twisted reactor in 60 seconds

In the spirit of the wonderful "Twisted web in 60 seconds" posts, I'm going to contribute here a small post about the Twisted reactor and Deferreds. I...

Python import hooks

Today I worked with William on the promising ironclad project which allows you to use CPython extension such as numpy under IronPython. Ironclad needs...

A git-svn tutorial

Introduction I have been using git-svn successfully for some time now, and I am generally pleased about the productivity improvements I get. I am docu...

Scripting Vim with Python

I've created and released a small Vim plugin that will try to mimic TextMate's behaviour to insert the closing pair of quotes, brackets, parentheses, ...