professional by day, open source & weirdo by night
I do embedded and webdev! I prefer embedded and desktop, tho
Feel free to reach me about my projects here on GitHub!
School project - Chatting so simple it's potato-like
Home Page: https://2020-5ei-team6-trentin.readthedocs.io/en/latest/
License: The Unlicense
The middlewere is able to distinguish between an existing and a new connection.
Given that the middleware is able correctly direct the byte[] to the right LogicCore, we could remove the separated management of incoming connections and pass those through the
below are accepted comments on which code style we should embrace.
My first suggestion are below:
This issue will track the state of the SPMP document
This is a reminder
This issue will track the state of the SRS document
version
PCP-Min.b.4
Describe the bug
The interpret doesn't use the chosen charset (ISO/IEC-8859-1)
should we maybe refractor the code to allow future expansions of the protocol?
maybe by moving all packets to a Min package?
reference pull request is #23
We have to decide what port to assign to the server.
I propose <<53 101>>: "5e" in ASCII
version
PCP-Min.b.4
Describe the bug
Null pointer exceptions on disconnection
i mean packets with extremely simple logic like the error packet shouldn't require a custom test.
version
PCP-Min.b.3
Describe the bug
A client that registers for the first time does not receive the list of users.
Expected behavior
A client that registers should receive both ack and user list.
this is a reminder to write documentation for everything.
Doesn't have to be done right now, but before the project finishes, this should be done.
class structure is sill to define, but should be easy.
1 class for every major package type, all packages are in the PCP.packets java package
version
PCP-Min.a.2
Describe the bug
Incomplete data packages time-to-live is not updated before the cache cleaning death reaper deletes them even if still valid.
Set accessing methods should be exposed from PCPManager.
Expected behavior
datas time-to-live should be updated when the interpreter interprets new data
ok so you guys need to learn how junit tests work.
This is kinda an "officialization" and a reminder.
Meanwhile you could look at some documentation and videos online.
simple reminder to test every class in the APIs.
The important thing is tests are well written, but the code coverage goal is at least 40%
I've looked through all of the packet classes... I think some properties are of the wrong type.
especially in @Alessio789 's classes.
Registration
Disconnection
Alias change
Group users list RRQ
Message user to group
Message user to user
error
As implemented with commit 18642f5 classes now must implement byte[] header( )
.
I suggest using this method to simplify Collection<byte[]> toBytes()
implementations.
documentation for every class must be provided (obviusly not for overriden methods, as java overrides the documentation too).
We need to close this first -sprint- and move on to develop the APIs asap. Clock's ticking, gentlemans.
version
PCP-Min.b.5
Describe the bug
In PCPMinInterpreter the accepted length for the topic ranges from 6 to 32 byte instead of 3 to 64 byte as specified in PCP-Min.md
version
PCP-Min.a.2
Describe the bug
calling PCPServer.shutdown()
doesn't finalize all of the resources.
Probably some threads are still running unmanaged.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The server should shut down and release all of the managed resources and interrupt all threads
Additional context
Tested on an Ubuntu Linux 18.04 machine.
Proposed solution
A disposing mechanism should be implemented for all classes in the server structure.
something like an IDisposable
to allow deterministic and safe resource cleanup
the scheme works perfectly if we think about already established connections...
But i think we need a specialized logicCore with the sole purpose of establishing new connections, meaning it must implement methods with a reference to the original socket.
Like, instead of a queue it should contain two: one referencing sockets and the other the data recieved.
This way it could be able to update PCPSockets with the login information.
Feedback?
Because my idea if the refractor suceeds was that we might delete this release and do a new one and call it Min.a.1b
a simple client. initially for testing purposes.
this issue will track the writing of the vision statement document
version
PCP-Min.b.3
Describe the bug
The method is executed even if the user list is empty.
Expected behavior
The method getAliasesByRoom()
must control the number of users before proceeding.
looking at it I've begun to think that message classes need to inherit from a major abstract APCPMessagePacket class (A is abstract).
The structure would be as following
IPCPpacket
โ
AbsMessagePacket
โ
|- UserToUser
|- UserToGroup
|- Recieved
version
PCP-Min.b.5
Describe the bug
Time to live is not updated when new data is sent from a channel
Being the doubtful insecure idiot i am, looking at it again
got me the doubt that maybe this code design is a bit overkill or even plain wrong.
Initially i thought it might be a nice level of abstraction.
Opinions? I would like to know what @antosette has to say about that.
We have to checkout if the PCPInterpreter is well implemented
version
PCP-Min.b.3
Describe the bug
the garbage collector is too aggressive.
Implementing IPCPInterpreter
edit documentation with the following:
protocol
packets
aka installation guide
When a profanity has been sent to the server, all the users will receive a message by (you know who) which praises the sender
this is a bug request but also it's supposed to be an example on how to use templates
version
development branch update-Min-async
Describe the bug
An UnsupportedOperationException
is thrown during tests
To Reproduce
Execute PCPManager_Test.initialize()
Expected behavior
the mock server should answer with a serverexploded error packet and close the connecition
I think the api should be designed following the strategy ( or as i call it, plug-and-play ) design pattern.
This means an hypotetical PCPServerSideConnection
would envelop all of the other useful components, wich could be changed at runtime based on software version or even be shared between multiple consumers.
Server-side, this could imply developing a middleware to manage computational resources.
In the #3 scheme this could be positioned between Network and Socket layer.
I will draw a scheme when i have time.
version
PCP-Min.a.2
Describe the bug
The PCPVariablePayloads.toBytes() method does not correctly format packets whose length is a multiple or greater than 2048
To Reproduce
Steps to reproduce the behavior:
Expected behavior
If an istance of a packet which extends PCPVariablePayloads have total length:
I'm thinking how to convert our ArrayList<String> listOfUSers
in json format.
If I would use an external library (GSON), how can i do?
Implementing PCPSocket
I propose tests for the interpreter could go in the same test classes of their respective PCPdata, as some sort of reverse engineering test.
Middlewere tests i think are gonna be the real complicated ones.
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.