Skip to main content

Matrix Writer 2.0

It has been a long time for version 2.0 of Matrix Writer, I planned it more than a year ago and expected release version 2.0 in 2018. But unexpected thing happened, the biggest one is I had an accident when I skiing, I got my right knee broken, this accident delay the development of Matrix Writer a lot, it took me quite a few month to walk again, even today running is still a chanllege to me. On the other hand, cost for a free software developer is another chanllege, web site hosted on AWS server, apple developer account, upgrade my developer machine etc. And not many people like to sit down and write a post to his blog, people more like to share contents with twitter, facebook etc., this fast way become more popular. So less people will support Matrix Writer, I hesitate a lot, should I move on with Matrix Writer? Till today, it's still a big question to me. Here are the major improvements of Matrix Writer version 2.0

Architecture refactor

Writer was started quickly to prove my ideas of create a convenience offline blog/post editor, even the architecture was optimized after I proved my ideas were possible to be implemented I did designed the arcitecture carefully, but after more and more features I found there many part can be optimized, especially after I created Matrix UI (A GUI library), I hope more and more can be reused, then I decided to do architecture refactor. The new architecture made Matrix Writer more componentized, this helps me provide more features in following release and provide better performance.

Performance improvements

We all expect an application could execute as fast as possible, I keep trying to improve the performance of Matrix Writer. The new architecture optimized the code execution efficency. In the version, Matrix Writer switch to SQLite database to store posts, instead of store posts in files, this accelerate the bootup speed and easy to tell how many posts you have, how many words you totally wrote.

UI optimizations

By componentized the architecture, Matrix Writer utilized Matrix UI KIT which an Angular based UI KIT, this provides more consistence UI and user experience. There are many UI tweaks as well, so when I writing this post, I almost forget what are these changes. Here are some of the major changes

A frameless main window style is used, the can give you more working space
A new main Menu is used with the frameless window
A standard status bar is used to display Writer version and Words Count
Welcome widgets layout tweak
......
Support Paypal
To be honest, I didn't expect to be a millionaire with Matrix Writer, but I do expect Writer users could help me on the infrastructure costs. It wasn't conveniece enough to pay for a subscription to get more advanced features. In version 2.0, in-app purchase with Paypal is supported and the rate is pretty low for one year subscription, I do expect you subscribe Matrix Writer, so that I can provide more features in the future.

Support in-app purchase for apple users
For MacOS users, in-app purchase with your apple account is supported as well, your are able to subscribe Matrix Writer as you do for other apple apps. Known issues

Matrix Writer for MacOS will be released a little bit late, the reason is the new version of MacOS has bugs for sign an application, that cause I cannot publish Matrix Writer to app store.

Google security prompt. If you are a Google Blogger user, when you connect to your Google account, Google may prompt unsafe message, this is caused by a new Google app verify process. I am working on this process. Matrix Writer uses Google official API to publish posts to your blog or link resources on your Google Drive, As an oAuth2 client, Matrix Writer has no way to store you personal information.

Comments

Popular posts from this blog

Using textures in WebGL

Loading textures The first thing to do is add code to load the textures. In our case, we'll be using a single texture, mapped onto all six sides of our rotating cube, but the same technique can be used for any number of textures. Note: It's important to note that the loading of textures follows cross-domain rules; that is, you can only load textures from sites for which your content has CORS approval. See Cross-domain textures below for details. The code that loads the texture looks like this: // // Initialize a texture and load an image. // When the image finished loading copy it into the texture. // function loadTexture(gl, url) {   const texture = gl.createTexture();   gl.bindTexture(gl.TEXTURE_2D, texture);   // Because images have to be download over the internet   // they might take a moment until they are ready.   // Until then put a single pixel in the texture so we can   // use it immediately. When the image has finished downloading   // we'l...

Matrix math for the web

Matrices can be used to represent transformations of objects in space, and are an important tool to use in visualizations on the Web. This article explores how to create matrices and use them with  CSS3 transforms  and the  matrix3d  transform type. While this article uses CSS3 for the ease of explanations, matrices are a core concept used by many different technologies including WebGL and shaders. This article is also available as an  MDN content kit . The live examples use a collection of  utility functions  availabile under a global object named "MDN". What is a transformation matrix? There are many types of matrices, but the ones we are interested in are the 3D transformation matrices. These matrices consist of a set of 16 values arranged in a 4x4 grid. In JavaScript, it is easy to represent a matrix as an array. The typical starting point is to show the identity matrix. When this matrix is multiplied against another point or matrix then the result...

WebGL: 2D and 3D graphics for the web

WebGL (Web Graphics Library) is a JavaScript API for rendering high-performance interactive 3D and 2D graphics within any compatible web browser without the use of plug-ins. WebGL does so by introducing an API that closely conforms to OpenGL ES 2.0 that can be used in HTML5 <canvas> elements. This conformance makes it possible for the API to take advantage of hardware graphics acceleration provided by the user's device. Support for WebGL is present in Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+, Internet Explorer 11+, and Microsoft Edge build 10240+; however, the user's device must also have hardware that supports these features. The WebGL 2 API introduces support for much of the OpenGL ES 3.0 feature set; it's provided through the WebGL2RenderingContext interface. The <canvas> element is also used by the Canvas API to do 2D graphics on web pages.