Work in progress


N0153.TECH @ 10:36 p.m.

Currently i'm working on polishing a few features in Prod environment - stay tuned for updates




What is the Altnet?


ALTNET @ 10:30 p.m.





Altnet is the project that started as anonymous web-chat, under the HikkaHQ title, inspired by an anime "Durarara!!".


Key features


Anonymous communication


The Altnet doesn't require you to share your personal details, like real name, email, phone number, etc.


Open Content


Most of our content remain public - unregistered user can see and participate in most Threads, Comments, Chat rooms
and will be signed with randomly assigned name, such as "wise-ram".


Exclusivity


Some users can receive referral keys from registered users, which will allow them to register and use their own
username and access wider variety of content. Additionally, every registered user will receive random amount of referral
keys upon registration.


Board


Users can create threads in the Board section of the site, comment on them, share pictures, discuss their interests
and share their own content. Threads act just like any other Post on social media, but on the Altnet, they have their own
place to live. Some Threads will be pinned to their categories, which most likely will contain brief description of the
category and it's rules. If any unpinned thread reaches the age of 1 month, it will be locked and sent
to the Archive.


Chat


Semi-private chat rooms, separated by the Categories and Names. Users are allowed to create their own chat rooms,
which will remain active as long as the room has at least 1 user demonstrating activity. Additionally, every category
of the Board has it's own chat room, which do not require users to stay in those rooms.


How to run?


Users can run their own instances of the Altnet, this functionality will be added in future commits.
To run the project, download the sources from this repository and run 'python3 manage.py runserver'.


Disclaimer


Open source data


Although the Altnet doesn't require your personal details, all data such as Threads, Comments and Messages in
the Chat, should NOT be treated as private/personal data, as the maintainer holds the rights to
manipulate that data at their will.


Data safety


It is something that we do NOT guarantee.
Pre-Release Notes




CSS Animations


Notes @ 7:37 p.m.

key methods


transform: alters the object's position, methods can be chained as so:
transform: translate(10, 10) scale(3, 3)




  • transform: translate(2 arguments, X and Y axis) - moves object around the screen
    translateX(1 argument) & translateY(1 argument) - moves object around the screen using 1 specified axis




  • transform: scale(2 arguments) - scales the image in given directions, accepts X and Y axis
    scaleX(1 argument) & scaleY(1 argument) - scales the image in a given axis




  • transform: rotate(2 arguments, X and Y axis) - rotates an image as if it was a 3D model. use deg measurements as an argument - short for degree
    rotateX(1 argument) & rotateY(1 argument) - rotates an element in a given axis, if turned at 90deg - the object will become invisible if it's not a 3D model


    rotateZ(1 argument) - rotates an object around a Z axis - use positive int for clockwise rotation, negative int for anti-clockwise rotation




transition: - defines the object's behaviour during transition between states.
- transition can take both values and properties as an argument and it will then execute them in orderly manner as such: transition: background 1s, transform 2s, 3s, linear - where background change transition will happen in 1 second, object's transform properties will take 2 seconds to apply, everything else will take 3 seconds, and every action will be transitioned in a linear way, meaning that the transition effect will not be sped up/slowed down, etc.


@keyframe name{} - defines namespace for the animation. Allows to store animation properties within the same namespace, can be called by other classes as so: animation-name: name;, can also be altered as such: animation duration: 3s.
an animation can utilise two forms of conditioning.
1st - from {} and to {} conditions, which define start of the animation and the animation's end.
2nd - percentages 0% {} 50% {} 100% {}, which allow for much more accurate control over the animation. this type of conditioning accepts percentages between 1 and 100.


animation-fill-mode: - defines the element's behaviour outside of the animation runtime.
accepts 1 argument - backwards, forward, both.
-backwards - applies data from the from animation to the element before the animation starts.
-forward - applies data from the to animation to the element after the animation finishes.
- both applies both arguments to the element.
animation-delay: - sets a delay between the point at which the webpage is loaded in and when the animation starts. accepts 1 argument in seconds.


animation-iteration-count: - defines the amount of times the animation will be repeated. accepts 1 argument, which is an integer or infinite. when the infinite is passed - the animation will continue infinitely


animation-direction: - defines an order in which the animation will hit the from and to animations.
- normal - normal behaviour, starts with from and transitions into to
- reverse - animation starts with to and transitions into from
- alternate - starts with from, then goes into to, then from to to from.
- reverse-alternate - same as alternate, but starts with to instead of from


Animation shorthand


animation shorthand allows the developer to combine all animation properties and methods under one keyword - animation:, as such: animation: name time transition-time repetition-iteration direction. example: animation: tick 10s linear infinite alternate.


Animation chaining


In order to chain animations, the developer would have to use a comma after stating the first animation and its properties, as such: animation: tick 10s infinite, tack 5s infinite.




DigiRunner - hackable game


DigiRun @ 1:08 a.m.

Implemented


Depricated.Atom.hexer() base mining method, by default takes init parameter that defines the amount of "blocks" to be mined. Uses alternative arguments for boosts, penalties and other modifiers.
Depricated.Atom.benchMine() simple benchmarking method that demonstrates machine's capabilities. Runs Depricated.Atom.hexer(64) without any additional mods.

Implemented mods Divider - decreases scope of each block's value - positive ==Done== Multiplier - increases scope of each block's value - negative ==Done== Delay - increases block size ==Done== Accelerate - decreases block size ==Done== Net: Magnet - increases the amount of tabs in a block at a cost of other user's tabs, makinng them less valuable. Net:Decay - decreases the amount of tabs in a block, populating other users' blocks with new tabs.

To be implemented


More mods
ANSI-styled intro screen
networking capabilities
client-side leaderboard
rules command
storage support

Side notes


Temporary list of parameters for the Server.requestResolver() A String refers to the parameter.

"socket" = DatagramSocket
"packet" = DatagramPacket
"message" = String - message text
"command" = String encoded message - reserved for user commands

Invoker#requestResolver must be rewritten in the future without if-else statements.

network


Alt.net will be using public STUN/TURN servers in order to enable client/server and p2p connection, which will make an IP of the user publicly accessible.


All data must be sent in one packet per iteration. Maximum packet size for the UDP implementation is 8192 bytes, this value can be altered, but should not exceed 8192.


Lol i should do this a bit more often...
Glossary


Alt - You, me, we, they, users, admins, maintainers. Everyone is an alternative to each other. This term defines users of the Alt.net.
Block - Unit resource gathered through mining process.
Tab - Units contained inside blocks.
Cell - Next evolution of Blocks (tba).
Mod - Modification, used to ease, complicate or alter mining process.
Board - Leaderboard of the most productive Alts.
Hack - Alternative Alt.net client, compatible with the mainframe.
Mainframe, master-server - Main server of the Alt.net, that does everything from validation of user data and cell management to communication between Alts.
Scene - Introduction screen of the client.
Hub - A representation of a single node that connects several Homes.
Home - A hardware representation of a single user node that serves as an entry point to the network for other Alts.

News and updates


25.04.2022 Robot class now has all features of the Depricated.Atom class with improved hierarchy and Effective Builder Pattern implementation. Depricated.Atom class becomes deprecated.
30.05.2022 Added abstract UDP client and server, added auto-port selection for the client, added Fetcher daemon for the client, added shortcuts, for easy input parsing.

API (kinda)


Hub server port: 4445

Robot getters


Robot.getInit() returns Init parameter if specified.
Robot.getDivider() returns Divider parameter if specified.
Robot.getMultiplier()returns Multiplier parameter if specified.
Robot.getDelay()returns Delay parameter if specified.
Robot.getAccel()returns Accel parameter if specified.

Commit messages


README changes - README.md File was changed
Playground changes - code that contains experimental features