Error message

  • Deprecated function: Return type of DatabaseStatementBase::execute($args = [], $options = []) should either be compatible with PDOStatement::execute(?array $params = null): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2244 of /home2/renealte/public_html/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/renealte/public_html/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/renealte/public_html/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/renealte/public_html/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/renealte/public_html/includes/database/database.inc).
  • Deprecated function: Return type of DatabaseStatementEmpty::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in require_once() (line 2346 of /home2/renealte/public_html/includes/database/database.inc).

MacBook immersion [2019-11-06]

Thanks to a generous donation from VMware, Reneal has been developing a new computer lab architecture based on MacBook workstations.  We got far enough along in this work to be able to deploy two pilot MacBook “mini-labs” during our 2019 visit to Tanzania.  These labs are for the exclusive use of advanced-level students at two of our existing schools.  We are looking forward to returning to Arusha in January 2020 for more MacBook deployments.  This development is exciting, challenging work, with the potential payoff of improved performance for the students using these MacBook-based systems.

The new MacBook workstation lab concept has many similarities with the traditional Reneal client-server approach.  We are still using a server for centralized file storage for users; this means that users can work at any computer in the lab and still access their files.  The educational material is also stored on the server, which makes updating the educational material for the lab very easy.  Student and teacher user accounts are much the same as before, and there is still a systemCheck program for the computer teachers for problem diagnosis and repair.  Because of these similarities, Neal was able to construct the new MacBook server software fairly quickly from the existing traditional server software.  That allowed us to deploy the pilot labs in 2019.

The major difference compared to the traditional approach is that now the operating system and application programs will be installed on each MacBook.  Before, the thin clients had nothing stored locally.  Because the server was very powerful, we were able to use older computers that were not as powerful.  The benefit of having these powerful MacBooks is that we can put software on each workstation and capitalize on their capability.  Before, the server and network bandwidth were shared resources amongst the thin clients; programs either ran on the server directly, or programs had to be sent over the network to the clients to run locally in client RAM.  All of that overhead is now eliminated since the MacBooks have enough power to run programs directly.

One other advantage of the new workstation approach is that network traffic is now reduced enough that a wireless router can be used for workstation-server communication instead of the network cabling and network switch required for the thin client approach.  The network cable connection to the clients was a not-uncommon source of failure, since these connectors wear out and get damaged over time.

The disadvantage of the workstation approach is the need to load software on each unit; for the old thin client system, updates to the server were sufficient to update the entire lab.  Server updates will still be the primary means of updating the MacBook workstation system, but we do anticipate at least occasional workstation updates which will require more maintenance time since they must be done on each individual workstation.  Neal is exploring how to “push” updates to the workstations from the server via wireless to simplify the process for the computer teachers and for Reneal Computer Technician Robert Nyangaka.  Neal is also designing an easy method for configuration control for the workstation software.

We are also in the midst of coming up to speed on MacBook hardware.  I’ve been watching YouTube videos and doing some minor repairs to get familiar with the innards of these machines.  They definitely require a different tool set than our usual client computers!  Neal has done a lot of work in unraveling MacBook firmware as well, but we both still have a lot to learn before we head back to Tanzania in January.

The main challenge is just learning about the nuances of the MacBook models.  Each day, there is some new small but interesting mystery to investigate.  This is why engineering is such a thrilling profession.  Moving from a state of complexity and uncertainty to elegant solutions that will best serve the needs of the students and teachers is what motivates the entire Reneal team.

 [Photo: MacBook workstation test set-up]