QWv3 – Dev blog 29 – The beta is here!

Good news everyone! The beta is finally here!

I’m now finally at the point where nearly all of the major functionality is in place and works. Over the past few weeks, since my last update, I’ve completed the Editor Service functionality, reworked the QW updater, updated the QW website to support the multiple platforms, added in a CSS inspector (which has saved me hours or maybe even days of work), reworked the upgrade process, added a license to the first use wizard and implemented the charts/statistics panel.

This is the majority of the QW functionality. However, there are some areas that need to be completed, notably the User Interface Strings editor, for both the normal interface and the QW website. I’ll be working on those soon, I don’t anticipate they will take very long.

So, onto the beta. There will be bugs and issues and I’ve done my best to get everything working as it should but things will have been missed. The beta should work with your existing projects and I’ve made sure that it is backwards compatible with version 2.6.14, so if something goes wrong or you don’t want to use the beta anymore you can download the 2.6.14 version from the website and re-install.

The beta is available for Windows, macOS and Linux.

For macOS I have tested it on Mavericks and Big Sur. It is available as a single folder archive, just open the file and drag QW to your Applications folder. Note: you may have to jump through some hoops to install it since Apple hates you.

Link – https://quollwritercdn.sfo2.digitaloceanspaces.com/QuollWriter-macos-install-3.0.0b8.dmg

For Linux I have tested it on Fedora 33 and it is available as an RPM. I can also provide a DEB file if needed, just let me know. Unfortunately my installer builder application doesn’t support other formats.

Link – https://quollwritercdn.sfo2.digitaloceanspaces.com/QuollWriter-linux-install-3.0.0b8.rpm

And for Windows…

Link – https://quollwritercdn.sfo2.digitaloceanspaces.com/QuollWriter-windows-install-3.0.0b8.exe

All the files are built for a 64-bit processor architecture, which shouldn’t matter in 2021 but you never know. I won’t be creating builds for 32-bit processors, it’s time to upgrade those Windows 7 machines!

I am particularly interested in getting feedback/bugs from mac and Linux users since I develop on Windows and don’t do a lot of testing on those platforms.

Enjoy!

10 thoughts on “QWv3 – Dev blog 29 – The beta is here!

  1. alucardnoir

    Firstly, you sure this is a “beta”? Because you sure do describe it as an “alpha”. Secondly, .I was able to DL the rpm packadge, but I can’t really make it work. No big surprise since I’m not on RedHat/Fedora/SUSe. I extracted the QuollWriter folder from the .rpm with an archive manager but when I try to ./QuollWriter I only get a small window telling me to chose my language. Can’t do that, not resize the windows. Ok, I can if I use the tab key, but since I don’t see what’s selected that isn’t much help.

    But again, I’m not the intend audience for that particular package. And no, a .deb wouldn’t be any better since I don’t make use of either a Debian/Ubuntu derivative, or a RedHat/Opensuse based system.

    The terminal output if you’re interested though.
    When I run ./QuollWriter
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by org.fxmisc.richtext.TextFlowExt (file:/home/alucardnoir-drk/Desc%c4%83rc%c4%83ri/QuollWriter/richtextfx-1.0.0-SNAPSHOT.jar) to method javafx.scene.text.TextFlow.getTextLayout()
    WARNING: Please consider reporting this to the maintainers of org.fxmisc.richtext.TextFlowExt
    WARNING: Use –illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release

    (java:6987): Gdk-WARNING **: 14:59:22.346: XSetErrorHandler() called with a GDK error trap pushed. Don’t do that.

    After I close it:
    =========== Performance Statistics =============

    Time:
    com.sun.webkit.perf.WCGraphicsPerfLogger.RESTORESTATE: 0ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.TRANSLATE: 0ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWRECT: 1ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_R: 1ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SET_FONT_SMOOTHING_TYPE: 2ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETSTROKESTYLE: 2ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SAVESTATE: 3ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_IIII: 4ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.DISPOSE: 5ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.FILLRECT_FFFFI: 8ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETFILLCOLOR: 9ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWFOCUSRING: 10ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.CLEARRECT: 11ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.FLUSH: 11ms, 0.00%
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWSTRING_GV: 50ms, 0.02%
    com.sun.webkit.perf.WCGraphicsPerfLogger.TOTALTIME: 314598ms, 100.00%

    Invocations count:
    com.sun.webkit.perf.WCGraphicsPerfLogger.TOTALTIME: 1
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWFOCUSRING: 8
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_R: 35
    com.sun.webkit.perf.WCGraphicsPerfLogger.CLEARRECT: 35
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWRECT: 37
    com.sun.webkit.perf.WCGraphicsPerfLogger.FILLRECT_FFFFI: 51
    com.sun.webkit.perf.WCGraphicsPerfLogger.TRANSLATE: 70
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETSTROKESTYLE: 74
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETFILLCOLOR: 160
    com.sun.webkit.perf.WCGraphicsPerfLogger.SETCLIP_IIII: 175
    com.sun.webkit.perf.WCGraphicsPerfLogger.DRAWSTRING_GV: 222
    com.sun.webkit.perf.WCGraphicsPerfLogger.RESTORESTATE: 261
    com.sun.webkit.perf.WCGraphicsPerfLogger.SAVESTATE: 261
    com.sun.webkit.perf.WCGraphicsPerfLogger.SET_FONT_SMOOTHING_TYPE: 878
    com.sun.webkit.perf.WCGraphicsPerfLogger.DISPOSE: 1756
    com.sun.webkit.perf.WCGraphicsPerfLogger.FLUSH: 1756
    ================================================

    =========== Performance Statistics =============

    Time:
    com.sun.webkit.perf.Locks.TOTALTIME: 314963ms, 100.00%

    Invocations count:
    com.sun.webkit.perf.Locks.TOTALTIME: 1
    ================================================

    =========== Performance Statistics =============

    Time:
    com.sun.webkit.perf.WCFontPerfLogger.GETLINESPACING: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETASCENT: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETLINEGAP: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.HASUNIFORMLINEMETRICS: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETCAPHEIGHT: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.COMPARE: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETDESCENT: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.HASH: 0ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHWIDTH: 1ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETXHEIGHT: 1ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHCODES: 4ms, 0.00%
    com.sun.webkit.perf.WCFontPerfLogger.TOTALTIME: 314948ms, 100.00%

    Invocations count:
    com.sun.webkit.perf.WCFontPerfLogger.TOTALTIME: 1
    com.sun.webkit.perf.WCFontPerfLogger.GETLINESPACING: 6
    com.sun.webkit.perf.WCFontPerfLogger.GETASCENT: 6
    com.sun.webkit.perf.WCFontPerfLogger.GETLINEGAP: 6
    com.sun.webkit.perf.WCFontPerfLogger.HASUNIFORMLINEMETRICS: 6
    com.sun.webkit.perf.WCFontPerfLogger.GETCAPHEIGHT: 6
    com.sun.webkit.perf.WCFontPerfLogger.GETDESCENT: 6
    com.sun.webkit.perf.WCFontPerfLogger.GETXHEIGHT: 6
    com.sun.webkit.perf.WCFontPerfLogger.COMPARE: 7
    com.sun.webkit.perf.WCFontPerfLogger.HASH: 22
    com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHCODES: 37
    com.sun.webkit.perf.WCFontPerfLogger.GETGLYPHWIDTH: 154
    ================================================

    1. alucardnoir

      I don’t like replying to my own comments but I think I just got it to work just by relaunching it. I think the windows resizing problem I had before is specific only to the first windows, the welcome window.

      Yep, I got it to work. The new project wizard doesn’t center in the general project windows, and I had to move it. Depending on were it’s generated, and were the original windows is generated it might never become visible to some.

      Program wise, I don’t know if I’m sold on the idea of black text on a dark grey background. It’s actually readable, it’s just that the contrast between the white interface, the dark gray background and the black font seems… I dunno, a bit buzy?

      Also, the chime is really loud, obnoxious and annoying. Since the program works… after a fashion, I’ll take for a spin and use the bug reporting feature inbuilt for any future reports. Just keep in mind I’m runig your program by having extracted it from a .rpm on Solus.

      PS. Ok, just one more thing before I leave, highlighted projects are very hard to read on the dark theme. White text on light grey text is a no-no.

      1. Can you send me a picture (to support @ quollwriter.com ) of the black text on grey background, I’m not sure what you mean there.

        Also what do you mean by the chime? The only sound that QW makes use of is the typewriter key sound and that needs to be turned on. What were you doing when the chime happened? It might have been the system bell but I don’t know of anything in QW that would have triggered it (I don’t even know how you would trigger it from Java).

    2. Thanks for trying it out and the feedback. I suppose whether it’s an alpha or beta is a matter of definitions. Personally I use this definition “It is the Software version releases to the public that includes almost all of the features in which development is not completed yet and may still have some errors.” which can be found at: https://www.softwaretestinghelp.com/beta-testing/ I also always try to be honest with users about how things are. It annoys me that many companies try and pervert the beta label nowadays, they mostly use it as a way to deflect their responsibility by claiming that a real release is a beta.

      The first window you see for a new install is the “first use wizard” which is a fixed size (it’s also always been that size). It’s designed as a quick way to get started. Are you saying that no languages were presented in the wizard? There should have been English at least, although that’s the only one available at the moment. The wizard does a check with the server to see what translations are available for the version. There won’t be any at the moment but English should appear. I’m only going to be making a single build file/type available for Linux. It’s just too much work to make multiple types available, I really wish Linux would sort this out. Every distribution seems to have a pet packaging mechanism which makes it a nightmare for app developers.

      For the terminal output, yes I’ve seen that. Most of that is caused by “not my code” insisting on outputting to the console logger. I’ll be switching the console logging off in the final release, I’m not even sure where that junk is coming from.

      1. alucardnoir

        Personally, I always thought pre-alpha was when you still added stuff to the program, alpha was when you stopped adding stuff and started removing stuff that didn’t work or you didn’t think would be complete before shipping, beta was when it was feature complete and you were only doing bug fixes, gamma was when you thought you had caught all the bugs and wanted to try a release candidate on a wider pool for any unforeseen bugs, and release was, well ,release.

        Also I sent you a few pictures. Some I had to take with my phone since print screen would close some of the drop down menus.

      2. Calvin

        As a developer myself, I will say the neat and tidy stratification of “Alpha,” “Beta,” etc. described in your post has never been canonized and at age 62 I never heard of “Gamma” except in reference to visual attribute.
        The trend of applying Greek alphabet characters is a pretty new convention as it did not even exist in mainframe programming nor when microcomputers had their genesis. The final difficulty in trying to quantify development stratum is the O/S may not be “release” quality which complicates the character of any apps developed on that platform. One could make a strong case that Microsoft and others have abused the computer world by labeling their products, “RC” when they were clearly still “Beta.” Then they allow us the privilege of paying multiple times for the same product which only had a different name.
        In closing, keep it simple….
        Alpha – The in-house development.
        Beta – Mature “Alpha” released for testing.
        Release – When major bugs are “squashed” and is usable.
        Take care.

      3. alucardnoir

        Calvin… the time of mainframes ended decades ago. What words used to be used in the time of mainframes are not really relevant any longer because nobody is deploying mainframes. Yes, IBM will probably still sell you mainframes, but the mainframes you buy today have as much to do with the mainframes you coded for as Tesla has to do with the electric cars of the late 1890s and early 1900s.

        Saying they were never formalized is one thing, saying they were never used in relationship to mainframe software when said mainframe software is actually dead and has been for a long time is another thing altogether. And yes, companies have been abusing the terminology for a long time, but they haven’t been doing it without us knowing about it. It all started with the internet. One they realized they could update software on the fly QA’s days were numbered. I might be wrong but I think MS actually closed their QA Testing department just before 10 came out. Most Windows 10 updates are at most release candidate/gamma releases while their early previews are at most beta’s if not outright alpha software. And things will not change. After all, people still buy and use Windows 10, why would MS make a change now? That’s why I moved to Linux two years ago. If I buy software, I expect it to just work. IF they want me to test their software for them then they better pay me a living wage, as opposed to expect me to pay them for the privilege – also why I don’t buy Early Access games.

  2. Calvin

    QWv3.0.0b8 will not import a *.docx file. I have had to revert back to QWv2.
    I have submitted a bug report.

    1. I’m currently working on a fix for this. Just bear in mind that if you’ve reverted back to 2.6.14 that you’ll have to install version 3 again to try it out.

  3. Calvin

    Thanks Gary. Will the same download of QWv3 work for any improvements or will I need to download a new installer?

Leave a comment