Hello, everyone. I have returned. Well it turns out my last post wasn’t really my last. This time, however, I’m not writing as an intern any longer. I am now a so called “apprentice”, as stated by Dr Shawn.

It’s exciting to be working on a new project. The current project I am tasked to work on now is one of AESTE’s very own in-house project, i.e some cool project management web application. It has been in development for some time, by one previous intern to the next, and they have already implemented some of the application’s functionality. However, the application has some issues at the moment and fixing them is part of my work.

One of the issues of the application is that at the moment it only interfaces with Google Drive and Dropbox for storage. The problem is that to use their APIs, an access token is needed, and it has an expiry date. Once it expires, the application is expected to request a new access token again. Dr Shawn had decided to use a more standard protocol that could interface with most cloud storage providers. The application should be able to access files stored remotely on a cloud storage service, using those standard protocols, and mount them as if it was a local drive on your machine. The standard protocols include WebDav and SSHFS. There are many more protocols that could be added in the future, so I have to design the application such that it is not difficult to add them.

Another problem for the application was its front-end interface. Its front-end went through a series of changes, from defining a Wt-based user interface, to using Vue.js, and then to Admin-On-Rest. When attempting to run the application, it clearly was not working the way it was expected. At the moment, I should get the back-end part of the application to be working first, then as for the front-end, I would need to use some suitable framework to implement it.

Furthermore, Dr Shawn also informed about Emscripten, which basically enables you to compile your C/C++ code such that is able to be executed in the browser. This is amazing because it allows your web application to perform nearly at native speed, something that is not possible for web applications before. It could work with well-known C/C++ graphics libraries such as OpenGL and SDL, and it is already been used for porting games such that it is able to be run in the browser. The World Wide Web Consortium (W3C) understands the need for web applications to perform faster and better, and has thus develop the WebAssembly, which is now part of the web standard, that defines a binary format for executable code in Web pages. This is one of the format that Emscripten compiles your C/C++ code to, apart from asm.js which is a low-level, optimized subset of JavaScript. Dr Shawn advises me to use this whenever possible.

I have taken a look at the code for the project, and to be honest it is quite messy. The previous interns could have restructured their code decently enough for the next intern that would take over their projects >:( , although sometimes I am guilty of it as well. Lots of work is needed to be done.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.