A few good posts about developments in technology this week …
Apple’s A11 Bionic Chip In iPhone 8 and iPhone X Smokes Android Handsets In Early Benchmarks
A microchip the size of the A11 that can handle sophisticated computations, animations, and graphics in a small form factor is impressive engineering.
Mobile hardware has come quite far despite the similar muted progress of mobile software overall.
The iPhone Is Guaranteed To Last Only One Year, Apple Argues In Court
Interesting questions arise about how long something should last or be expected to last and whether or not a 1 year warranty is the best time frame for a warranty
The Father of Mobile Computing Is Not Impressed
Brings to mind the meme, “did all we get is just 140 characters?”
Java EE Is Moving To the Eclipse Foundation
The debate will possibly open up again on Java as the leading managed code programming language as legal encumbrances dissipate.
This will be interesting turn for programming once things settle down. Now … if Eclipse could just make a good IDE, then maybe this would be a suitable replacement for Visual Studio.
Google Publicly Releases Internal Developer Documentation Style Guide
Now, you too can write good documentation in a publicly acceptable, contemporary style. I plan to use this in many areas.
The 2.0 version of Gautier RSS from 7/2016 – 9/2016 can now display text in a manner suitable for a 4k/8k monitor/TV. The main problems with FLTK regarding higher resolution graphics displays are fixed in version 1.3.4 as noted on their website. I applied font scaling algorithm from Microsoft to the Gautier RSS 2.0 program and when combined with the improvements in FLTK, the text renders properly where it did not a year ago. The enhancement now confirms FLTK as the right approach and now I can move the project forward without too much distraction. The detour with Allegro was very useful and now the two versions can be selectively merged as the lessons learned from applying Allegro, POCO C++ libraries can be fused into a new version that is better styled, more robust, and perhaps reflects a good, practical cross-section of functionality that works across platforms. The source code updates are in the GitHub repository for version 2 along with a snapshot of an executable compatible with Fedora 26 64-bit.
Version 3 will have the same functionality but further enhanced in terms of code structure and approach. The RSS download engine from version 3 in progress will be used instead of the one from version 2. The new version 3 engine has been tested and works independently as a command-line version. The shared library version from version 3 will be incorporated into the GUI definition from version 2 subsequent to improving the GUI definition. Another goal is to use the POCO C++ libraries for the sqlite interface to maintain accumulated article headlines and content.
A year ago, this month, I had made a big improvement in the Gautier RSS Reader. The article, Gautier RSS – Sept. 30 – Streamlined talks through the changes at a high level. The following screen shot is this program.
Compile with Shared Libraries
The program hasn’t changed yet. I was curious to see if it would still compile now that I am using a C++14 capable compiler. The program did compile and, most importantly, execute full functionality after a year in stasis. I took the opportunity to compile it a different way. This time, I added a build script that uses shared libraries instead of static. I tend to prefer static for deployment but I am slowly changing my view on that. Shared libraries, regardless of what you think, are faster to develop with when they are installed from a Linux repository and are up-to-date versions. I added a shared library centric build script because it allows the program to be rebuilt fast when cloned down from the GitHub repository following install of appropriate shared libraries (libxml2, sqlite3 and fltk).
I learned that Bjarne Stroustrup, the creator of C++, actually uses FLTK in one of his books that I read in 2009 but didn’t make the connection between FLTK and his code examples back then. Anyway, his interest in FLTK gave me pause to consider it. I moved away from FLTK since it did not support Hi-DPI at the time or had much in the way of font support. That has changed, and I may have to look at FLTK again as it is faster to write code with compared to other alternatives I have used. I like Allegro, and will find it useful for other endeavours involving raw, beautiful graphics visualization, but FLTK is more productive and moves the agenda further faster. I am going to see what can be done with FLTK if I can confirm that the issues with Hi-DPI and fonts has been addressed as stated on their website.
The following is a directory listing of the new files in a fully built version of the FLTK-based Gautier RSS Reader. The files ending in .o can be ignored. The executable is gautier_rss with no extension. I uploaded it to the GitHub repository titled, gautier_rss_feed_engine as a ready-to-go representation of the program compatible with Fedora 26 64-bit. The program needs a file name feeds.txt that contains the addresses of your rss feeds. It will parse the file and list the feed names on the left side of the screen. When you click on a feed name, the program will pull in the headlines for the feed. When you click on a headline, the full text of the article for that feed will be downloaded and shown in the box at the bottom of the screen. The feed information is copied to the database file named rss_feeds_info.db that it uses when offline to pull up previously downloaded feeds.
Abstractly, what do web developers do? by Bob Jones
After 50 years of software development, Bob Jones says that it all comes down to Input – Transformation – Output. After 25 years of web development, Bob Jones says that the only thing that has changed is the medium. The core, Input – Manipulating the data – Output, is still the same.
The 8/24/2017 github commit reflects a command-line rss interface that simultaneously verifies the eventual back-end functionality for a GUI version. The screen shots below show various modes for the command-line interface. When I started with this version, I wanted to cut down on the amount of code from the previous version to download and cache rss feeds. An offline mode uses rss feed data downloaded during operation of the online mode. The first two screen shots show the offline mode. Screen shots 3 – 4 is the online mode. The final screen shot shows the executables.
CLI Interface – Locally Cached RSS File Processing Mode, Output
CLI C++ Source Code – Locally Cached RSS File Processing Mode, Source Code
CLI Interface – RSS Feed Download Online Mode Output
CLI C++ Source Code – RSS Feed Download Online Mode Source
Directory Listing – RSS Reader Executable
The next phase began 8/19/2017 on improving the RSS reader I’ve been working on for the last few years. I have done very little to nothing on this project primarily due to scheduling issues that are now clearing up. The goal this time is to experiment with a more generic approach taking a cue from the leaders in the C++ community regarding the general consensus towards a higher level style of C++ software development. C++ code can probably be written faster and more consistently using the meta-examples floating around in the community regarding higher level data structures, algorithms, and design approaches. At the same time, I am using Peter Gottschling’s book Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers as inspiration. I like the way he describes things and so I am going to give it go from a more high-level direction.
Also, I decided to pursue the POCO C++ libraries as the portable I/O framework of choice. I still can’t convince myself to try the Boost Libraries and POCO seemed more aligned with my personal sensibilities. That library has a certain pragmatism I can appreciate. However, I don’t dismiss Boost for professional work, but it is not the level of machinery I need at this time. The benefit I see in POCO is less need for C language oriented libraries in the Gautier RSS Reader project. It offers a pure C++ oriented approach.
I decided to try to move past C centric libraries as they no longer fit as well with the C++14 approach. Sure, there was less of a code representation gap between C and C++03. Earlier versions of Gautier RSS Reader reflected a core approach that leaned more in the C++14 direction despite my use of C++14 compilers and choice C++14 elements. The effort now is to change the way I apply C++ to reflect a more productive style that uses C++ libraries in place of essentially C versions. That means pure C++ libraries for SQLite, Xml parsing, network access, and a few other tidbits. The benefit I hope to gain is an overall code structure in which the parts fit more harmoniously in style rather than have C-style C++ in some areas and C++ 14 style in others. POCO C++ libraries is fundamental to this effort.
I’ve committed the first batch under this new phase to github @ https://github.com/michaelgautier/gautier_system. The repository doesn’t show much yet but as I make progress, the repository contents will become more defined with substantive elements. Anyway, all of this is just a note on the continued progress of the project.
Java was quite open 10 or so years ago. Given that Oracle Now Wants To Give Java EE to an Open Source Foundation, Java may enter a second era of openness. That would fill a huge hole in the area of convenient to use, cross-platform enterprise development technology. Much good can come of making Java so open as to have it occupy a premier place among the uppermost tier of open source programming languages.
Vast developer audiences use Java. It is fundamental to ChromeBooks, Android phones, tablets, wearable devices, and enterprise software systems in many cases. The re-introduction of Java into a fully open context would expand its adoption in the enterprise and increase confidence in its longevity.
Thanks goes to Oracle for restoring hope in the prospects for Java. This could become a trigger for the growth in ChromeBook Plus machines running Android apps. Likewise, developers in the enterprise may confidently embrace APIs that are long-term in nature with higher design stability.