lukethompsxn / edufuse Goto Github PK
View Code? Open in Web Editor NEWA multi-language, educational, user space file system tool
A multi-language, educational, user space file system tool
I believe that the return value is only the status, not the number of bytes read/written. If this is the case then we would not truly be representing the number of bytes read/written. We should be able to get this amount from one of the structs which are passed to the read/write functions.
/** Read data from an open file */
static int edufuse_read(const char *path, char *buf, size_t size, off_t off, struct fuse_file_info *fi) {
if (is_visualised) {
send_log("read", path, stringify_fusefileinfo_with_buf_size_off(fi, buf, size, off));
}
int out = registered_operations->read(path, buf, size, off, fi);
if (is_visualised) {
send_amount_read_write("read", &out);
}
return out;
// return registered_operations->read(path, buf, size, off, fi);
}
Currently, we have the routes (tabs) updating in the background when changes occur, but only after they have been opened the first time. Clearly, we want to have them displaying all info right from the beginning.
How to test:
There is a bug where some messages get missed by the GUI because the socket is too slow at processing messages and sometimes takes two messages as a single message, hence resulting in malformed JSON and hence being printed to console rather than passed through.
Sometimes the GUI tabs are too big and overflow to the scroll. This may be due to opening dev tools on startup but will need investigating.
Below is the button used on logger tab
<b-button class="button" size="sm" pill variant="outline-primary">Clear</b-button>
We need to implement (or find another implemented version) of all Java functions to ensure correctness.
Since we are now using the edufuse_visualiser
function send_log()
for both logging and charting, we should rename the function to be send_call()
or similar. This can probably be done using find and replace because its used in every function in edufuse.c
. This will also require updating the edufuse_visualiser.h
file.
In addition to this, we should also update the message type (in the JSON) to be CALL
from LOG
in the front end, but this will require many changes throughout the system.
This should probably be done after committing and pushing working code as this is fairly high risk and we want to be able to revert if an error occurs.
Please make sure to thoroughly test before pushing code.
One possible issue for python may be the fuse version number. I know there was some significant modifications between fuse 2 -> 3 which resulted in osxfuse unable to support fuse 3 so since fusepy was written for fuse 2 maybe we should test using fuse version 2 in edufuse and see if this fixes read and write problem
Currently we have no Overview
tab implemented. This is not required for MVP but ideally we would have some high level overview of the information available on other tabs.
Visualise the block file in the iNodes tab
Currently the Output. will auto-scroll when active, however, when navigating away the scroll is back to the top. Ideally, we would like the scroll to be at the bottom when the user comes back to the Directory
tab.
@joel-clarke can you please elaborate a bit more on this.
May be related to #14
We need to implement (or find another implemented version) of all C functions to verify correctness.
Need to implement a platform check to determine which underlying library file to use
Currently with the manual adapter the structs cannot be edited, change the implementation to use jnr-fuse
Currently, we have a chart for the number of system calls, but we need two more charts and finish styling on that tab.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.