Photo of Ivan Perez

Ivan Perez

Email:

I am a programmer and entrepreneur. I like Game Programming, Multimedia and Functional Languages. I am 3rd-year PhD student. My supervisors are Henrik Nilsson and Graham Hutton.

Selected Publications

Functional Reactive Programming, Refactored


Haskell Symposium 2016 - Colocated with ICFP 2016 (Nara, Japan)
Authors: Ivan Perez, Manuel Bärenz and Henrik Nilsson
(corrected submission) (implementation)
We investigate commonalities between multiple Functional Reactive Programming (FRP) realisations. We provide a mathematically coherent minimal FRP core parametrised on a monad, which allows us to express the functionality of many other reactive and FRP formulations. We give proofs for our theoretical claims and verifications of practical aspects with benchmarks of existing, non-trivial Yampa applications running on top of our new system.

On the Mathematical Properties of Monadic Stream Functions (draft)


Authors: Manuel Bärenz, Ivan Perez, and Henrik Nilsson
(paper)
Monadic Stream Functions (MSFs), CPS functions parameterised over a monadic context, form a suitable abstraction to describe reactive processes. We explore some of the properties of MSFs, in particular those related to Arrows and Causal Commutative Arrows.

Briding the GUI Gap with Reactive Values and Relations


Haskell Symposium 2015 - Colocated with ICFP 2015 (Vancouver, Canada)
Authors: Ivan Perez and Henrik Nilsson
(paper) (bibtex) (abstract)
Reactive Values are an abstraction for mutable elements with a change-propagation or notification mechanism. They enable abstract reactive programming by hiding details on how to access particular values, how to deal with concurrency, etc. They provide a uniform interface for GUI widget properties, application models (in MVC terminology), hardware, files, etc. Reactive Values can be connected to one another forming uni- or bi-directional Reactive Relations. For an implementation, see: Keera Hails

1st year PhD Report

University of Nottingham
(paper) (bibtex)

Includes an overview of GUI programming in Haskell and FRP, Reactive Values and Relations. Recommended for those who want to know more about the current state of FRP.

Declarative Game Programming: Distilled Tutorial


PPDP '14: International Symposium on Principles and Practice of Declarative Programming
Authors: Henrik Nilsson and Ivan Perez
(abstract) (bibtex) (exdended abstract)

Bridging the GUI Gap with Reactive Values and Relations (superceeded)

Trends in Functional Programming 2014 - The Netherlands
Authors: Ivan Perez and Henrik Nilsson
(paper) (bibtex)

(...more...)
Other Talks
  • Game Programming in Haskell - Baby steps. At University of Bamberg (as Keera Studios). February 2016.
  • Game Programming in Haskell. At Haskell eXchange (as Keera Studios). October 2015.
  • London Haskell Meetup Group. June 2015.
  • Game Programming made simple. At Technical University of Madrid. April 2015.
  • FP Days London (as Keera Studios). November 2014.
  • London Haskell Meetup Group. September 2014.
  • FPLAD 2014
  • University of Twente. March 2013.
  • Technical University of Madrid. December 2011.
Open Source Software

Haskanoid

(github) (video)

A Haskell game that uses the wiimote and the kinect.

Keera Hails

(github)

A reactive programming framework that scales well for GUIs.

Yampa

(maintainer) (github)

A Functional Reactive Programming Domain-Specific Language.

Hcwiid

(maintainer) (github)

Haskell bindings for a library to access wiimotes on Linux.


See also: other software not done as part of my PhD.
Awards

Finalist and winner

Hacknotts - 2014

MLH Finalist and winner of the best project award (to call it something; it was the only non-sponsored prize) at Nottingham Hackathon, together with Manuel Bärenz. We created a custom keyboard on a breadboard with 11 buttons to control a Parrot Drone. The signal was processed by a Haskell Yampa program that sent out commands to the parrot via wifi. The drone was recognised by a separate Haskell game using Kinect and became the player of a sideways Flappy-bird-like Haskell game in which the sizes of the pipes were determined by IBM's stock prize over the last six years (gathered in runtime using Bloomberg's API). We later demonstrated this by playing Breakout with the same drone (using Haskell to control it).

Teaching

Teaching Assistant

University of Nottingham - UK
Other activities

Founder of Keera Studios

Founder of Keera Studios Ltd. (see also the Facebook page), a game programming company that uses Functional Languages to deliver games for Android and desktop.