8071. We set to implementing the box range size option for the delivery analysis report in Labelwriter 10.1, building the executable. The installer was uploaded to our server, while the client was emailed download links.
8093. Today is the 24th anniversary of the initial installation of EPPMS at NRC and we marked the day as usual. Messages were sent to key client staff at NRC.
8211. As the client had explained how color striping will be implemented on the pallet and carton labels, we quickly updated the specification document and then created the proposal, both ready for uploading. The client request was made in May. Weeks earlier, we revised the specification for the new features that the Labelwriter client wanted, deciding it will be a separate program as it will not deal with question papers like all other Labelwriter job types. We may be calling it LwriterGF.
9026. The size of the Notes column for HIDDEN records was more than doubled in Gerian, necessitated by the possibility of having several pauses in a game. (Each pause gets an entry in the Notes like “Paused 1015-1220”.) Gerian 1.56 was built as a result.
9111. Another upgrade request for Labelwriter was received from the client, to provide features that would make packaging of products more efficient. This was evaluated and a proposal was submitted.
10054.
Chris Emejuru completed Harvard University’s CS50P, the CS50’s Introduction to Programming with Python course today and received the course certificate. He enrolled in the web-based (edX) course conducted by David Malan on September 5 to see how it went. Completion requires 10 weeks of course materials and exercises (estimated at 3 to 9 hours weekly), then doing a project application and creating a 3-minute YouTube video for it. Course materials include notes, video as well as audio recordings. All exercises are done on a GitHub-hosted codespace, an environment combining Visual Studio Code, Python 3.11.4 and a terminal for typing Linux commands. With a projected completion date in January 2024, because it is self-paced, he was able to complete it in less than six weeks.
For his project he settled for a GUI application named Lemeechi StockReader, a web stock transactions downloader and manager. It automates a process we have been carrying out manually for a long time, extracting share stock transaction data from websites by copying and pasting from each date-specific website page and saving as text files, prior to their being imported into our database application, MoneyBooks Data Manager. StockReader keeps the extracted transactions in a SQLite database where they could be queried onscreen, and also allows exporting them to csv files. Preparatory to final project submission he created the required markdown (.md) file for StockReader documentation, including the screenshot of the application (shown here), and his email contact. He observed that the markdown syntax incorporates some elements of html, as it is the same <img> tag that is used for showing images. A slightly longer version of the project video is here.
10076. Chris completed first upgrading of StockReader as v1.1 with lots of enhancements. One of the first changes we made was to implement a price range for the search section, rather than just having a single price. Chris found how to reduce the width of the main window by successfully having the listbox for displaying transactions span across two columns (using columnspan=2), as the effect of being in one column was to widen the main window. After seeing that some stock codes were longer than 10 characters—causing the column alignment to go off—Chris had to increase the size in the database from 10 to 18 characters. The insufficient size might have led to duplication errors that came up, though he later realized the transactions downloaded and saved last in the same session were not cleared from memory before another download took place, as intended, which he then went on to correct. For searching, just as with the loading starting date, he also made the starting date, stock and price values copied over to the ending fields automatically. We used StockReader 1.1 to download 9,136 stock transactions from June 21 to October 6, 2023 in a tiny fraction of time it would have taken to do so manually (even with transactions for only two days each week).
10080. We began importing into MoneyBooks Data Manager the share transactions downloaded yesterday with StockReader, and as there were a lot, MBDM was hanging after some time. We revised the code to stop the hanging, by putting in the yield() function that would take a break from loop processing to handle other Windows events. We then imported the remaining transactions, 1,998 of them, without any hanging issues.
10172.
We implemented SQL Query Processor tool in MBDM 3.0 in about 3 hours, something we first thought about earlier in the month after having to use Sybase Interactive SQL to process meter reading records in the database, like we’d been doing for months. What the tool does is to remove the need for going to Interactive SQL to query or update MoneyBooks records directly, using SQL statements. It presents a window for writing and executing queries, logging each query in the audit trail. SELECT query results display in a datawindow grid that could be sorted, printed or exported. We borrowed the code for that aspect from Printwiser’s flexible estimate implementation, for creating a datawindow on the fly based on a dynamically-generated SELECT statement.
10194. Work began on Labelwriter 10.2 upgrade. It involves implementing an option for combining different envelope packs of same zone and subject in the same carton, including review of the carton label, packing list and delivery note reports. Each pack has been going to a different carton before now, so this would make the packing more efficient with reduced number of boxes. The work order was received last week.
10301. Work was finalized on the Labelwriter 10.2 upgrade, following general testing and revision. The installer was created and tested, then uploaded to the server, while the client was emailed.