Two-Way Box is a two-player inverse-space line-clearing black-white box-game that allows two players to play in the same game field on the same device.
Player 1 plays from the bottom to the top with white boxes in a black game field, while at the same time player 2 plays from the top to the bottom with black boxes in a white game field.
* 2 Player mode: The player with most wins in 4 matches wins. Both players play on the same device.
* 1 Player modes: Play alone as the white or black player.
The source code of the game has been published for learning purposes on github: https://github.com/tivtag/twowaybox
Lately I’ve been practising Qi Gong and Kung Fu. The following are my favourite videos. Enjoy!
P.S.: Qi Gong and Kung Fu are best practiced in person with a master.
Beta 1.1.1 – 30.05.2014: Improved end score display in Two-Player Modus, new icon, plus various other minor improvements
Beta 1.0.1 – 16.02.2014: Improved main menu on some devices, random and brighter color on start screen
Beta 1.0 – 15.02.2014: New Icon, pause game by touching the center of the screen, improved tooltips and immersive mode bugfixxes
Alpha 0.9 – 13.02.2014: Android 4.4+ Immersive Fullscreen Mode support, show score after losing a SP game
Alpha 0.8 – 10.02.2014: Performance improvements, new unity
Alpha 0.7 – 31.12.2013: Continue paused Game, support keyboard on touch devices, better WinStore support
Alpha 0.6 – 20.11.2013: Improved movement on touch devices, improved single player experience
Alpha 0.5 – 26.09.2013: Basic Android Tablet support (tested with Nexus 7 2013)
Alpha 0.4 – 22.09.2013: Adds Single Player Modes and Wall Kicking
For any of you that have missed the game, here are some screenshots and the download link. It requires Windows, Microsoft .NET Framework 4.6.1 (https://www.microsoft.com/en-us/download/details.aspx?id=49981) and a GPU that supports Shader Model 2.0. Please poke me if you have any feedback or ideas on how to improve the game!
Don’t forget to use the Zelda Updater after installing the game to get the latest patch.
Almost everyone has an official list of favourite technical books. This now includes me: Here is mine! I hope that you will find something that you also want to read.
Successful Evolutionary Change for Your Technology Business
Are you overladen and often have to switch between projects and tasks? Do you want to visualize and limit work-in-progress? Or work in a Kaizen culture of continuous and incremental improvement?
This book is a good introduction to Kanban. It’s a fun and enjoyable read, but most examples are for larger organizations.
Seven Databases in Seven Weeks
A Guide to Modern Databases and the NoSQL Movement
This book represents a unique fast-moving deep dive into modern databases of all kinds, from relational to document and graph.
PostgreSQL, Riak, HBase, MongoDB, CouchDB, Neo4J, Redis and The CAP Theorem
A Novel About Project Management
A super entertaining story about a project management experiment. Yes, you will learn something, while having a ton of fun!
A First Introduction to Categories
If you like Functional Programming Languages (like Haskell) and you want to understand their foundations in mathematics, then at some point you’ll want to study Category Theory.
This book starts as a very easy read and continuously gets more challenging as you uncover the magical world of categories and conceptual mathematics. Greatly recommended. Also see: my blogpost.
Programming Ruby 1.9
The Pragmatic Programmers’ Guide
The goal of Ruby is to make programmers happy. Do you want to be happy while coding? Then you should learn Ruby.
This book will give you a great starting point that explores the basic but also some deeper concepts of Ruby. You will be enlightened. Also see: my blogpost.
Thinking about Android Epistemology
(No, not those smart phones; but maybe.. some day?)
A series of enjoyable and not-too-much-technical essays. You will be confronted with questions of epistemology (the study of knowledge) and philosophy of minds so very different from ours (and yet so equal) – artificial machines.
GUI Bloopers 2.0
Common User Interface Design Don’ts and Dos
Did you ever build a piece of software with a graphical interface? Was it perfect? Are you sure? Please read this book now. It’s also very fun.
Learn You a Haskell for Great Good!
A Beginner’s Guide
This hilarious book (just look at what the sun has to say at the website!) teaches you functional programming fundamentals from the ground up to mastering functors, applicative functions, monoids, and even the dreaded monads. Those won’t scare you any more, but will be your best friends afterwards.
The e-book is free. Also see: my blogpost.
Haskell Road to Logic, Maths and Programming
(Warning: complex – hard work required!)
This book is an in-depth introduction into the mathematics that lie behind functional programming languages and computer science.
Don’t be fooled – this won’t teach you Haskell. It is best to learn the tool – Haskell – first, before starting this complex but beginner-friendly book.
A Handbook of Agile Software Craftsmanship
‘Programmers who satisfy themselves with merely working code are behaving unprofessionally. .. Bad code rots and ferments, becoming an inexorable weight that drags the team down.’
Mandatory reading for aspiring professional developers. Be warned that this is a very opinionated book and it exclusively uses Java – but with the right set of scepticism you will be able to pick many life-long lessons.
Please-please don’t be one of those that don’t care about the quality of their code. Please! I beg you.
Domain Driven Design
Tackling Complexity in the Heart of Software
This book will teach you how to design robust and maintainable application for complex problem domains.
Heureka! You will add many useful items to your object-oriented-design tool belt.
Gödel, Escher, Bach
An Eternal Golden Braid
‘Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.’
A magnificent journey about K. Gödel‘s Incompleteness Theorem, M. C. Escher‘s self-referential worlds, J. S. Bach‘s mathematical music, formal systems, the self, the meaning of meaning, cognition, ant colonies, and indeed very strange loops.
Learn You Some Erlang for Great Good!
A Beginner’s Guide
Similar to Learn You a Haskell for Great Good! but for Erlang.
Erlang and the Open Telecom Platform are different, useful and a fun learning experience. Hey, Prolog-style syntax. But as always: Don’t drink too much Kool-Aid! Also take a look at Elixir.
:edit: Added Learn You Some Erlang for Great Good!
After learning Haskell I finally decided to jump the train and start learning Category Theory with the help of the book Conceptual Mathematics – A first introduction to categories. I greatly encourage you to do the same, especially if you are a self-taught programmer.
The following is a simple cheat sheet that is meant to help me (and maybe you?) remember all those new words and constructs. Please poke me if you find any errors or have an improvement suggestion.
The order of operator application does not matter.
The order of the operands does not matter.
Idempotent [idem + potence = (same + power)]
The endomorphism is idempotent under composition if
The automorphism is an involution of A if
What makes a Category?
– Morphisms (maps)
– For each object in an identity map must exist.
– For each pair of maps and a composite map must exist.
– Composition must follow the identity and associative laws:
Monomorphism (injective) [monos = one]
– left cancellative
A monomorphism which has a left inverse for which , i.e. a retraction.
Epimorphism (surjective) [epis = against]
– right cancellative
An epimorphism which has a right inverse for which , i.e. a section.
Isomorphism (bijective) [isos = equal]
– is a monomorphism and epimorphism
– domain and codomain have the ‘same size’
Automorphism [auto = self]
– is an isomorphism
– also called permutation
Homomorphism [homos = same]
– structure preserving map
– if and are groups, then f is a homomorphism if
Endomorphism [endos = inside]
– is a homomorphism
A map is called constant if all elements of A are send onto the same element of B.
Division of maps
Determination or extension
If it has a solution g, we say h is ‘determined by’ f or h ‘depends only on’ f.
Special case of the determination problem in which and
– is an epimorphism
– left inverse of
Choice or lifting
Special case of the choice problem in which and
– is a monomorphism
– right inverse of
Recently I have been learning basic realtime 3D graphics using OpenGL ES 2.0, GLSL and C++. This is my first time coding anything more serious in 3D and also OpenGL! In theory this could run on any platform that supports OpenGL ES 2.0; ranging from PCs to Smart Phones. All of the content was used purely for learning purposes.
Cross-Platform window management using PowerVR VRShell.
Initialization of projection and view matrices with the help of GLM (OpengGL Mathematics).
Rendering 3x colored cubes using a single Vertex Buffer Object. Simple interpolating-color fragment shader.