Check out new amazing benefits of a PRO account!

Profile image
david_joffe 120

Your job title

South Africa, Cape Town

Permanent / Contract / Temporary

  • 32 521

    TLex Lexicography Software, tlTerm etc.

    TLex is a specialized dictionary editing application. tlTerm is a terminology editing application, similar to TLex, and based on the same source code base. These applications have been developed in C++. I originally created TLex in 2002.

    Project link:

  • 7 27

    Website Development

    Miscellaneous random website development

    Project link:

  • 6 7

    tlCorpus Web Spider

    'tlCorpus is a specialized Concordance Software application that allows you to compile a database of texts in one or more languages, then linguistically 'mine' it by conducting searches on the texts, compiling statistics, or generating wordlists. It supports many file formats and languages, and includes tools for retrieving text from the Web.' tlCorpus is developed in C++. This project channel shows general development work on tlCorpus.

  • 35 16389


    This is a general project channel where I do non-project specific day-to-day work that is otherwise not easy to categorize as belonging to a particular project. I am working on many projects, please [check my project list]( "check my project list"). welcome⬩欢迎⬩bienvenue⬩bienvenidos⬩welkom⬩selamat datang⬩ברוכים הבאים⬩أهلا وسهلا⬩ยินดีต้อนรับ

    Project link:

  • 5 9

    Sokoban Puzzle Game

    Still Yet Another Sokoban, an open source implementation of the popular puzzle game in which the goal is to push the crates onto the designated squares. Part-time project. Project website: Project github:

  • 65 5901

    Online Afrikaans Dictionary WAT

    welcome⬩欢迎⬩bienvenue⬩bienvenidos⬩welkom⬩selamat datang⬩ברוכים הבאים⬩أهلا وسهلا⬩ยินดีต้อนรับ Working on a new 'beta' version (pilot project) of the online Afrikaans dictionary (of the "WAT" - Woordeboek van die Afrikaanse Taal / 'Dictionary of the Afrikaans Language' - a very large historical dictionary of Afrikaans): []( This is implemented in PHP and uses our "TLex Online" PHP framework for publishing dictionaries. We also previously implemented, and still maintain, the present online version of the WAT (also PHP-based): []( This is being developed for our client: []( ... our TLex Lexicography Software (a C++ Windows/Mac specialized desktop multi-user lexicography software) application is used by the WAT to edit the dictionary: []( I am streaming many different projects, check my [project list]( "project list") for more info.

  • 6 522

    Online Dictionaries for IsiXhosa NLU

    welcome⬩欢迎⬩bienvenue⬩bienvenidos⬩welkom⬩selamat datang⬩ברוכים הבאים⬩أهلا وسهلا⬩ยินดีต้อนรับ I am streaming many different projects, check my [project list]( "project list") for more info. Working on: Online (and potentially also App and CD-ROM) Dictionaries for the South African IsiXhosa National Lexicography Unit. Editing on the dictionary/ies will be done using our [TLex Lexicography software]( "TLex Lexicography Software") (a C++ multi-user desktop application that runs on Windows and Mac), and 'published to' the website etc. The online dictionary is PHP-based and uses our ["TLex Online"]( "TLex Online") framework for publishing dictionaries, terminology lists and other reference works. Beta/Staging/Dev website of work in progress: []( This work is being done for: []( (The isiXhosa National Lexicography Unit)

  • 2 313

    LibSDL Hello World

    [1 Sep 2017] Welcome. New project, C++ "Hello World" using LibSDL2, not sure yet where this is going. Hello World, now with bullets: Tutorial to show how to create from scratch, following through every single step required, a new simple C++ "Hello World" application (and core 'skeleton' of a game), using LibSDL2, in Microsoft Visual Studio. (LibSDL is a software library used mainly for cross-platform game development; it's a relatively low-level library that presents basic functionality for e.g. creating your game window (or setting fullscreen mode), doing graphic operations (and/or can be used for 3D e.g. OpenGL), working with textures, getting keyboard input, mouse input, audio stuff etc.) I am streaming many projects, please see my project list for details: [](

  • 6 806

    Pharos Online

    Pharos Online Dictionaries Pharos is a commercial publisher that create and publish various dictionaries, both online and print. For the dictionary editing/compilation, they use our (C++-based) TLex lexicography software. Another third-party company, Cheymaxim, have implemented the current interation of the Pharos Online website itself (though we are assisting with some parts for future development); their website has had the TLex "Publish to Web" functionality integrated with it, allowing Pharos to publish/push dictionary updates to the site when they have new updates to publish. The live-streamed work so far is various changes/additions to the TLex Online Publish functionality to improve the published dictionary content and search functionality. Pharos Online: About TLex: [](

  • 45 6233

    Dave Gnukem Side-scrolling Shooter

    welcome⬩欢迎⬩bienvenue⬩bienvenidos⬩welkom⬩selamat datang⬩ברוכים הבאים⬩أهلا وسهلا⬩ยินดีต้อนรับ Dave Gnukem is a cross-platform open source 2D scrolling platform shooter inspired by Duke Nukem 1. The game intentionally has a somewhat retro feel, and is intentionally meant to have 'similar look and feel' to the original famous 1991 Apogee classic, Duke Nukem 1. It is written in C++. I started working on it around 1994, and from 2004 to 2016 had abandoned it, but during a live-streaming session in Oct 2016 I decided to "un-abandon" the project and try bring it to some sort of "version 1" state of completion. The main outstanding todo's are more monster types, and get the main set of playable levels to some sort of relatively final state. **Github page (latest source code, project README, and issue list):** []( **Most recent binary release direct download:** []( **Mini Demo Video:** []( **Level editor how-to video:** []( ### Introduction to the Source Code and Implementation Overview The source code is C/C++. It does not use any 'engines'/'frameworks', it is relatively low-level coded and uses only LibSDL 1.2 (for graphics and keyboard/mouse input) and LibSDLMixer 1.2 (for sounds and background music). Each map/level is a 128x100 grid of pairs of 'blocks' (a foreground and background block), where each 'block' basically corresponds to a 16x16 game object/sprite. There is a generic (abstract) base class, `CThing`, that is used to implement the various "special" types of game objects/entities (e.g. monsters, pick-ups, teleporters, keys, doors etc.). Each special type of game object/entity is implemented by deriving from `CThing` and overriding various virtual functions, that are used to determine what happens when various events occur (e.g. when that thing gets shot, or when the hero collides with it, or the hero uses the action key on it, etc.). When the level is loaded, certain special block types get instantiated into instances of the various `CThing`-derived classes. The frame rate is basically limited to approximately 18Hz. There is a virtual function `CThing::Tick()` that is called each game update ('heartbeat') that is used to implement things like whether and how the monsters move, etc. Each `CThing` also has a virtual function Draw() that it uses to draw itself. Collision detection is implemented using basic bounding boxes. There is also a special 'visibility bounding box' of each game object to perform basic viewport visibility culling, so that game objects are only drawn if they're actually visible in the game viewport. (A third special bounding box is the thing's 'action bounds' - this is used for a.o. things like teleporters that perform special functions when the hero presses the action key while standing 'on' that object.) You can press 'd' in-game to activate on-screen debugging info that shows the various bounding boxes in action. ### Approximate Roadmap to Version 1 Since this is a 'spare-time' project, this roadmap is not fixed, it will depend on time availability, but I am aiming at roughly the following: * Jul/Aug 2017: v0.8: Implement many more monster types, and a few other special 'things' (e.g. rockets etc.) * Aug/Sep 2017: v0.9: Implement equivalent of Dr Proton and finalize plotline etc.; Finalize one basic set of playable levels. Finalize and round off spritesets to be 'not entirely terrible'. * Sep/Oct 2017: v1.0: Final rounding-off and final testing, 'call it version 1'. ### Screenshot ![Dave Gnukem Screenshot]( "Dave Gnukem Screenshot") Please donate to the project, or else I'll make more games like this: []( To grab the latest source, install 'git bash' if on Windows (or git on Linux), and then you should be able to do something like: * mkdir gnukem * cd gnukem * git clone * cd dave_gnukem * git clone data (The source code and game data are in two separate repos, we clone the data subfolder separately.)

  • 1 1

    OpenGL Tinkering

    Looking at an old C++ 3D networked game project

  • 8 1276 Pearson Longman-HAT Online

    Longman HAT Online is a website we developed and maintain for a commercial publisher, that features online dictionaries, games and activities, user subscription system and payment integration, website localization, terminology lists, and integration with our TLex lexicography software and tlTerm terminology software (these are C++-based). The website is based on our PHP-based "TLex Online" website and dictionary publish/search framework: Some of the work for this project is in PHP, and other work is C++.

  • 31 229

    OERTB tlTerm Multilingual Termbase

    Open Educational Resource Term Bank "The purpose of the Open Resource Term Bank (OERTB) project is to support the collaborative development and dissemination of terminological resources, and thereby promoting the use of African languages in teaching and learning at higher education institutions. More specifically, the project is aimed at promoting the African languages as vehicles for comprehending threshold concepts in academic disciplines through practices such as translanguaging – the process and practice of shuttling between students’ home languages and English to facilitate comprehension, foster social cohesion and recognise students' linguistic identities. Core activities include: keeping up with audit lists; consolidating existing terminological products; identifying gaps in subject fields; building subject specific corpora (in English) in identified subject fields; semi-automatic extraction of term-, linguistic-, and encyclopaedic information; verification of terminological information by subject field experts; defining concepts and adding other terminological data by subject field experts; translating terminological data into the 10 other official languages of South Africa; verification by language boards; entering the data into the database; incorporating feedback; and researching strategies on how to use terminology products that are available online in learning environments and to measure the effectiveness thereof. The primary beneficiaries of the project are students, who will be afforded the opportunity to access key concepts in their different subject fields through the medium of their home languages. Giving these students free access to an internet-based terminology data bank, which contains not only term equivalents for key concepts in the African languages, but also well-crafted conceptual definitions, should aid in the conceptualisation of subject content. Rigorous terminology development and effective terminology management will contribute to the development of the African languages as languages of higher functions, including scientific discourse. OERTB is a DHET-funded project that is being developed by the University of Pretoria (UP) and the University of Cape Town (UCT), under the leadership of Professors Adelia Carstens, Elsabé Taljard and Mbulungeni Madiba. Many South African universities are collaborating with UP and UCT. The website has been developed by TshwaneDJe and implemented using the tlTerm Terminology Software and TLex Online platform developed by David Joffe and Malcolm MacLeod." System Architecture Overview: ------------------ [![System architecture overview]( "")]( "Overview of system architecture that incorporates TLex/tlTerm, TLex Online, and collaborative online editing") Features of TLex Online include multi-title support, multi-user support, integrated CMS, ability to integrate with payment gateways, a JSON-RPC style API, website localization support, dynamic meta-language customization, and an add-on architecture that can be used for extras likes games and activities. Features of TLex/tlTerm etc. include, multi-user support, advanced search/filters, integrated scripting language (Lua), smart-styles, 'multiple editions from one database', smart cross-references (e.g. automatic homonym number tracking and updating).

    Project link:

  • 1 0

    Stellenbosch University Terminology Site

    Trilingual (English, Afrikaans, Xhosa) terminology website developed for the University of Stellenbosch. The website is based on our "TLex Online" PHP framework; the terminology is compiled and published using our (C++-based) tlTerm terminology editing software application.

Error image

Sorry but your browser is out of date - please install a new browser such as Google Chrome