Skip to content
View pedroabelleira's full-sized avatar
Block or Report

Block or report pedroabelleira

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
pedroabelleira/README.org

This repository

I have moved my public stuff to coutego, which is my internet handle in GH but also reddit, twitter, gmail, … Most repositories here are either archived (those moved to coutego) or private.

About me

I’ve been a software developer or involved in software development since the times of the Spectrum. I have been programming professionally mostly in Java, but I have also used a bunch of other programming languages quite extensively:

  • C/C++
  • C#
  • Python
  • Javascript/Typescript
  • Clojure/Clojurescript

I have also had an interest in open source for a long time and co-founded Monodevelop (a .NET IDE) in 2004 although these days I use mostly Emacs and IntelliJ, both amazing pieces of software.

I’m a fan of:

  • Dependency injection (the strategy, more than any particular implementation - even though Spring was the revelation to me). DI, like Unix version 7, was an improvement with respect to all preceeding and following architectural styles.
  • Object oriented design and functional programming. I believe that OO and DI techniques are the way to go for overall design while FP techniques are the way to go in the low level implementation. I don’t think that it’s a coincidence that the most used FP language in mission critical systems uses the actor model.
  • Typescript. Although it can’t hide the multiple ugly corners of JS, the type system is just amazing. Anders Hejlsberg is amazing.
  • Clojure. Extremelly elegant language. It would be perfect if it had types. Rich Hickey’s talks are great, even if you don’t like the language.
  • Emacs. This text editor has been called many things: an OS, a religion, a drug. It’s all true. Watch out, kids. There is no coming back.
  • Reading quality (open) source code. First step to write a novel: read many (good) novels. GTK source was a revelation for me at the time. Anything that Linus writes is also worth looking at. The first public release of the source code of git is a master piece. Clojure’s standard library is great. Case in point:
    (defn assoc-in
      "Associates a value in a nested associative structure, where ks is a
      sequence of keys and v is the new value and returns a new nested structure.
      If any levels do not exist, hash-maps will be created."
      {:added "1.0"
       :static true}
      [m [k & ks] v]
      (if ks
        (assoc m k (assoc-in (get m k) ks v))
        (assoc m k v)))
        

Popular repositories

  1. jlisp jlisp Public

    A Lisp intepreter implemented in Typescript

    TypeScript 1 3

  2. dto-utils dto-utils Public

    Little clojure library to implement dto-like interfaces on the fly

    Clojure 1

  3. spacemacs-1 spacemacs-1 Public

    Forked from syl20bnr/spacemacs

    A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!

    Emacs Lisp

  4. sudoku sudoku Public

    A sudoku solver and game webapp

    Clojure 1

  5. c2048 c2048 Public

    Implementation of a simple 2048 clone in re-frame

    Clojure

  6. injectable injectable Public archive

    Dependency injection container for Clojure(Script)

    Clojure