#JShell project for Tj-Bot!

1 messages ยท Page 4 of 1

bright lark
#

Yea but that comes after usecases and actors

compact holly
#

right, wazei you are rushing it, first we determine usecase and actors

bright lark
#

Remember this is the hard part

compact holly
#

oh man, I miss uni, life was so simple back then peepo_sad

timber mirage
#

I hope you are not in dark mode pepekek

compact holly
#

now i'm almost homeless

bright lark
#

Can' see it in darkmode

compact holly
#

we should first decide on color scheme tho

sterile crest
#

it's not very tj-colour-theme

compact holly
#

I like catppuccin and one dark

sterile crest
#

at least they're trying to do diagrams

#

we're just trolling marko

#

let's be more positive and contribute

compact holly
#

right

#

which color should be dominant then?

#

flamingo, mauve or maroon?

sterile crest
#

black ig?

#

as long as white isn't the dominate colour

compact holly
#

of course, it has to be dark mode and easy for the eyes

#

I guess I meant main accent colors

sterile crest
#

ala made a typo he has 2 diagram 1's

bright lark
#

Alright, it would have more sense if we put the actor who dispatching interaction, and instead of "2+2" we say "instructions"

compact holly
#

i like pinkish hues with dark background, also some reds and greens

#

but always tinted, with some white added

#

so they are nice and pastel peepo_comfy

sterile crest
#

i think you're missing a step ala

#

the api just creates and runs?

#

i thought it deletes too

#

and reads?

compact holly
#

80% of the purpose of the diagram is to make it sexy, and show your dominance to other nerds that use diagrams that look like shit from the the 80's

#

it shows your technical superiority

bright lark
#

Btw does containers in vps scalable?

compact holly
#

yes

sterile crest
#

yes

compact holly
#

you can generate them for free

#

but we should tackle scalability at some point

bright lark
#

Do they do patterns like circuitbreaker and retry?

compact holly
#

also availability and reliability

bright lark
#

Monitoring will be nice

compact holly
#

what if meteor hits germany, and our vps goes down?

bright lark
#

These stuff has to be shown on the diagram

compact holly
#

yup

#

i suggest meteor in red

sterile crest
compact holly
#

and germany in well..

bright lark
compact holly
#

okay gonna leave this chat, love you guys so much LUL

bright lark
#

Why u leave!

compact holly
#

it's just too hiliarous and shitposty pepekek

sterile crest
compact holly
#

I should lead by example, and be responsible peepo_comfy

sterile crest
#

jshell is one of our biggest features

bright lark
#

Yes

compact holly
#

and not crying in my room from laughing, thinking about diagraming meteor hitting the gemrany, and us losing our vps

#

this peepo x100

compact holly
#

around metoer and germany

sterile crest
#

when ala randomly popped up with a diagram killed me

timber mirage
sterile crest
#

i thought firas was gonna do it but ala taking initative was suprising !

#

glad he's working on it

compact holly
#

look, it's firas idea to diagram that

sterile crest
#

Lmfao

#

i just noticed

timber mirage
bright lark
sterile crest
bright lark
#

It's a good idea isn' t it

sterile crest
#

i found an svg to put on the diagram

compact holly
#

nah, i hate those modern flat icons with no soul

sterile crest
#

this?

compact holly
#

find some really red and cool comic looking meteor

sterile crest
compact holly
#

like that, but hand drawn art is 100x better

bright lark
#

It would be useful to commit the source file of the diagram to be able to modify it

sterile crest
#

okay u find it

compact holly
#

look at old anime and modern anime

bright lark
#

Meteor ?

#

Wtf

sterile crest
#

i think we can add a cool section about "outer worldly disasters" and have aliens/space ships etc

#

on how we scale to avoid that

compact holly
#

okay, I will be in charge of the metoer

sterile crest
#

and the risk mitigations

bright lark
sterile crest
#

if only azure was possible then we'd have TJ sharded across different regions

compact holly
#

there is even a guide!

sterile crest
#

jshell uses spring under the hood

compact holly
sterile crest
#

we can deffo take advantage of spring cloud

#

and use consul and kubernetes

compact holly
#

I can rent you guys rpi kubernates cluster

sterile crest
#

(it's not free)

compact holly
#

don't have time to research that

#

gotta learn first how to draw meteors

bright lark
#

Pls leave

#

Alr to sum up: marko isn't persuaded that. This project will succeed

#

It's obvious

bright lark
compact holly
#

i just got distracted from all the diagraming

#

where did we left of

#

usercase and actor diagrams

timber mirage
compact holly
#

but we do need to pick tools to create diagrams in, so we all have consistent diagrams

#

and color scheme

#

maybe a quick vote?

sterile crest
#

Preferably something we want donate to tjbot once we're done

timber mirage
#

I vote to do something simple for now

#

and we fix that later

compact holly
#

now ala is memeing too LUL

#

"let's just ship it, and we will fix that later"

timber mirage
#

Anyway, I worked enough on this project, it's time for a pause game

timber mirage
sterile crest
#

Ala if you leave, I'm gonna end up doing it my way

#

I can get PRs approved by myself I have 2 GH accounts after all

timber mirage
compact holly
#

nothing is more premantent than a temporary solution

sterile crest
#

I thought you meant long term

#

Sorry myb

compact holly
#

so if we do diagrams, we gotta do them right

timber mirage
#

I said, "it's time for a pause game"

compact holly
#

firas is on top of that, no worries

timber mirage
#

do you think I would play game for a long term ? pepekek

sterile crest
#

Sorry selective hearing

#

Enjoy your game ala

#

I'll discuss with firas and Marko about the types of diagrams we need

#

Hopefully when you're back we will have concluded

#

@bright lark can you make a list of what you think is needed and don't stop at point 1?

compact holly
#

I vote for .md list personally

compact holly
#

most modern software supports it

bright lark
#

As we go

sterile crest
bright lark
#

Docusaurus is kinda lux and can wait

sterile crest
#

Its like mdbooks on steroids

compact holly
#

does discord and github support docosarusu?

#

.md is universal

stray wrenBOT
# compact holly .md is universal

Looks like you attempted to use a command? Please note that we only use slash-commands on this server ๐Ÿ™‚

Try starting your message with a forward-slash / and Discord should open a popup showing you all available commands.
A command might then look like /foo ๐Ÿ‘

compact holly
#

...fuck you

sterile crest
#

Well

compact holly
#
  • look
  • simple
sterile crest
#

Yeah it will, so it's the "rendering"

#

It's all .md files

#

Just the tool makes a pretty website

bright lark
#

Some md files can help:
1 improved readme
2 contributing guide
3 architecture (uc, actors, flow)

compact holly
#

nono, before md files

#

we need a list

#
1. improved readme 
2. contributing guide
3. architecture (uc, actors, flow)
#

see, list ;Hap

sterile crest
#

That's the same list wym

compact holly
#

make a list like that, point by pint

sterile crest
#

Oh

#

Formatting

compact holly
#

and lists can have sublists

sterile crest
#
  • test
  • test
compact holly
#

right

#

so we can have a whole outline

bright lark
#

Alright make sense

compact holly
#

what should be done, and substeps and summary/explanation of each

bright lark
#

Look please, can somebody writes now a short overview on the what and why of the project

compact holly
#

no, you are the best man for this job!

bright lark
#

Alright correct me if im wrong

sterile crest
#

Do you want that in the form of a User Story?

compact holly
#

just persist your thoughts on paper

#

we can refine it later

bright lark
#

" the jshell project is a subsystem in discord bot to play with code on discord"

compact holly
#

"play" wording seems too jovial and childish

#

we do seroius work with jshell

sterile crest
#

AS A user
I WANT TO be able to run java code within discord
SO THAT I can give live running examples of code executing to people in #1051826284008853505 or in relevant tech channels

compact holly
#

people flew rockets to the moon using just jshell

#

it's not some toy

bright lark
#

Is jshel part of tjbot?

compact holly
#

kinda?

#

depends how you look at it

#

it's a feature of the tjbot

bright lark
#

I look at it as a separate app

compact holly
#

but most of the work is done by a separate project, jshell backend

#

which has the API and jshell wrapper

sterile crest
bright lark
sterile crest
#

Yes

bright lark
#

And tjbot can work without jshell

sterile crest
#

It already is

compact holly
#

yeah, tjbot uses jshell as a dependency, kinda

bright lark
sterile crest
#

Anybody can add jshell to their projects by calling the API

#

It's just rn a private api

bright lark
#

Ok

sterile crest
#

Which makes 0 sense tbh

#

But whtev

bright lark
compact holly
#

he is not a gifted engineer like ala

#

and doesn't think about the future

#

and flexibility

sterile crest
#

There is no future

compact holly
#

see, he is also depressed :(

sterile crest
#

Once that metor hits

#

Life is over

compact holly
#

but the idea is, anyone can use the api, and have code execution peepo_happy

#

as simple as that

sterile crest
#

Yeah but nobody can because it's private

#

But if you want a public API there's one currently hosted

bright lark
#

I just checked the licence

compact holly
#

we sell the public api

#

for crypto coins

#

or, public api acess is done with nfts

#

on a blockchain

sterile crest
#

Are we screwed?

compact holly
#

remember, we have to eat and survive, and somehow pay for the server costs

sterile crest
#

Marko wait the license might say we can't sell

#

We might have to... Open source peepo_cry

compact holly
#

we can write our own jshell, it's fine

#

it's just javac

sterile crest
compact holly
#

in a trench coat

compact holly
sterile crest
#

If we compile with a different java, the bytecode is gonna be diff, therefore no copyright

bright lark
#

Alright, heres an overview
"Jshell Is a system that can integrate any sort of clients to run java code"

compact holly
#

well, maybe not any

sterile crest
#

"any sort" that's some serious wording

compact holly
#

yeah, we could be sued

#

if someone fails to run jshell on their toaster

sterile crest
#

Any internet connected device ?

compact holly
#

who would have thought defining jshell would be this hard NootLikeThis

#

it's also confusing, because there is jshell, which is not ours

#

and jshell which is ours

sterile crest
#

Jshell itself can't integrate but other people can with jshell

bright lark
sterile crest
#

We need a proper name, we can't call it jshell

bright lark
#

But for future, it's better to think about integrating a list of clients in which discord

sterile crest
#

That'll get us sued

#

TJ code runner?

compact holly
#

it's not catchy enough to gain massive userbase

sterile crest
#

Then we can extend it further and support multiple languages

compact holly
#

and it's not search engine optimized

#

we need something.. that leaves lasting impression

sterile crest
#

What do you suggest?

bright lark
sterile crest
#

It affects our design though

bright lark
#

Tj playground

sterile crest
#

We need some strategy that allows us to swap between systems based on a config

sterile crest
#

TJ playground might conflict with TJ Plays

bright lark
#

Alright, so discord is our first client

sterile crest
#

Sweet, Marko you happy with the rebranding?

compact holly
#

i still in needs to be catchy to spearhead current market trends

bright lark
#

For that, jshell must have a well documented api

compact holly
#

we want news article written about it

sterile crest
compact holly
#

caling it "scandalous!"

bright lark
#

To get secret token and a use endpoints

#

Focus pls

compact holly
bright lark
#

The name is last concern

sterile crest
#

We made the mistake in the java discord framework

#

Right now we literally named it JDA

#

We have no name

#

And it's causing problems

compact holly
#

:(

bright lark
#

Jshell is fine

#

Whats the prob??

sterile crest
#

Jshell is the name of an oracle provided tool

#

That we are using

bright lark
#

It could be tj jshell

compact holly
#

i know, confusing

#

we are gonna need a diagram for naming as well

#

to avoid confusion

sterile crest
#

How about a poll

bright lark
#

Where?

compact holly
bright lark
#

Yes if it shines

compact holly
#

they will google "run this bitch ass piece of shit code"

#

but RTBAPOSC is too... wordy

sterile crest
#

TJ shell is ok too imo

#

How about we get this backed by a company?

compact holly
#

now we are talking

sterile crest
#

WannaCall Open Source Cloud Code Executor

compact holly
#

ugh.. not that company

sterile crest
#

Fk u

compact holly
#

we need some billionaire funding peepo_comfy

bright lark
#

We dnt have

#

And u know tht's quite difficult

compact holly
#

I will bill $500/hr for my consultancy

#

but i'm humble

#

i don't need much

sterile crest
#

Firas, any ideas how we will host this?

#

If it gets big then we need something good

bright lark
#

Im wondering why not using one springboot app

#

Why the wrapper is there?

sterile crest
#

Like jshell, when 0 containers are running we could mine bitcoin and whenever somebody invokes the slash command we can then stop the mining, execute the jshell then resume mining

compact holly
#

how much does it cost to use springboot as a host?

sterile crest
compact holly
#

we should create our own coin

bright lark
#

In vps as a container

compact holly
#

and do a rugpull peepo_comfy

sterile crest
compact holly
#

wazei likes them big peepo_happy

bright lark
#

Ram, hardrive, os?

compact holly
#

goddamn, firas asking for requirements LUL

sterile crest
#

Something that can serve all our users

compact holly
#

currently we have 4, but we need millions to make this profitable

sterile crest
#

We have 30k+ people and it's not in the realm of impossible that everyone might invoke the command at the same time

bright lark
#

Strange! If it's unfeasible

#

Then why we talk about it??

compact holly
#

it's possible, just not very probable

sterile crest
#

I've never wrote software that's scaled for 1000s of users

#

I'm new to this

#

Trying my best to learn

bright lark
#

Springboot gives ways to minimize config

compact holly
#

what about the database tho?

sterile crest
#

Why not vert.x??

compact holly
#

do we need sharding?

#

and we need many db servers for that many users

bright lark
#

Firebase

compact holly
#

and some load balancer and a message queue

sterile crest
#

Vert.x is the most performant java library

sterile crest
bright lark
#

๐Ÿคทโ€โ™‚๏ธ

bright lark
compact holly
#

and it minimzes config..

bright lark
#

Number of threads, timeout

sterile crest
#

Doesn't matter, vert.x shits on any spring optimization out of the box

compact holly
#

we need some diagrams for this too firas, write it down on that big list of yours

sterile crest
#

I once did a speed run with Number Engineer

#

Since he thought his homebrew shit was good

#

My vert.x app destroyed his codebase ๐Ÿ˜‚

compact holly
#

quite an expert performance bechmarking team LUL

bright lark
#

Guys i have 8% charge

sterile crest
#

Oh fuck

bright lark
#

Im gonna leave now

compact holly
#

backup your list firas

sterile crest
#

Cya soon firasnn

bright lark
#

Seriously

compact holly
#

we gonna forget all these ideas

sterile crest
#

Sure get back to us tomorrow firas

#

I'm sure we can figure it out

bright lark
#

Ill try

#

I like the collab with u

sterile crest
#

Thanks for the help and guidance btw, we really appreciate it

#

This project almost failed but I feel reassured with you here

bright lark
#

I want to help this server as it helped me

sterile crest
#

Somebody who understands how to lead and develop software

#

It's good to have you here

#

Enjoy the rest of your night peepo_heart

bright lark
#

Good night

sterile crest
#

Goodnight!

bright lark
#

golang get ready tomorro

sterile crest
#

I'm excited to see what you come up with

compact holly
#

man, I can't wait for all the girls to jump on me when they hear I participated in creating tj jshell peepo_happy

#

my thoughts wandered a bit...

#

and I thought about a great feature for jshell

#

imagine if we generate a AI girl voice to do asmr java readout of code you submitted

#

#ASMR #Programming #CarolineASMR

#include "relax.h"
#include "asmr.h"
#include "tingles.h"

/*
Hi everybody! Has it C-riously been almost 3 years since the last programming video in this series? Here is a new installment that focuses on C++ containers. I hope you find this both interesting and relaxing - enjoy!! ๐Ÿค“
*/

C Programming ASMR playlis...

โ–ถ Play video
#

like this

#

maybe even some animu girl

#

a service to make programmers sleep safer peepo_comfy

#

ayyyyy it's been a hot minute

Here is a 30 minute long comfort and affirmations audio! I know many of you are already in or are soon to be going back so I just want to wish you luck and I know that y'all will do great! I hope you enjoy this audio and have a wonderful nights rest!

i n s t a g r a m:
https://www.instagram.com/cozyasmr0/

g i f:
...

โ–ถ Play video
#

like this, just java instead of gf

#

okay, that was enough, I think I will end up on some watchlist sweating

#

but if you use this idea, i want 20% peepo_happy

sterile crest
#

That's going in memes

timber mirage
#

Please

#

It's the 5th time

#

Why are you always going off topic

#

@compact holly

compact holly
#

like that but for java

#

when you post java code, you can format it, run it, or losten to it peepo_comfy

bright lark
#

Back

#

Not sleep yet, id like to know somthing

compact holly
#

enjoy your vacation man, jshell will survive LUL

#

sleep is important too! peepo_heart

bright lark
#

Why not making tjbot directly dispatches jshell containers

compact holly
#

then we can delete the whole api thing? pogchamp

sterile crest
#

I have the same thoughts and got told I have depression for such thoughts

compact holly
#

i think that's what ala meant with 'reduce complexity'

bright lark
#

I dnt get why setting a rest api while it's not going to be used by other clients

sterile crest
#

Exactly

#

We don't need it because they're thinking of a non existent future

compact holly
#

waz doesn't believe in our future :(

sterile crest
#

The code should be flexible enough where we can make such changes but there's no requirement for it rn

#

There's no problem making it an API later when we need it

bright lark
#

I think it's obvious

sterile crest
#

But now it's just a wasted resource on the VPS with problems around docker networking that aren't even needed for the feature

compact holly
#

we could also remove docker and all that jshell stuff

bright lark
#

Keep it selfcontained

compact holly
#

and just run stuff in aws lambdas

#

serverless architecture pogchamp pogchamp

bright lark
#

I think you're right

#

that's an option

#

But is it free?

#

I dnt know

sterile crest
#

Yes

#

It's free

bright lark
#

Ohboy

sterile crest
#

We can even support multiple languages right out of the box and for any of the non-natively supported ones, we can setup

compact holly
#

now we are talkin'

sterile crest
compact holly
#

we need to diagram that idea too

bright lark
#

It's good to think about abstracting the feature so it could be added or detached

compact holly
#

do we use openapi spec?

sterile crest
#

If we want to use APIGW

#

Otherwise it'll be direct function URLs

#

Which is OK too ig

compact holly
#

i think proper way is mediation

#

and generate api from the spec

#

not the other way around

sterile crest
#

That's how I've been doing it for wannacall

#

It's driven by an OpenAPI spec

compact holly
#

that way it's very pure and mmmm yoda

sterile crest
#

AWS enforces contracts specified in the openapi spec too

#

So that's a bonus

bright lark
#

to consider

sterile crest
#

๐Ÿ’ฏ

compact holly
#

actors?

#

you mean for commercials?

#

i think only boomers watch tv

sterile crest
#

YouTube ads

bright lark
#

Actors interacting with the system

compact holly
#

ww should have marketing campaign on ticktok

sterile crest
#

I've actually got 2 developers that work for my company

compact holly
#

real actors are expansive tho

sterile crest
#

I can bring them on board if you need commercial support from a real company ykno

compact holly
#

i think someone from the community can record something

sterile crest
#

I technically have a Dev team now

compact holly
#

ye, we can record them โ˜บ๏ธ

#

(with consent of their parents ofc)

sterile crest
#

I have London offices too (no cap, we can book them)

#

For free because I pay early for my London office

#

You can find my address on companies house

#

If you search the company name

#

Just tell me when and I'll book some rooms

bright lark
sterile crest
#

You guys should all fly out, there's whiteboards there

compact holly
#

pog, i have a multi-canera setup to record dynamic scenes imvolving humans

sterile crest
#

Actually, meta have created VR meetings

#

So everyone wears a headset and then we're all in a virtual office together

compact holly
#

with like their avatars?

sterile crest
#

I saw the ads on the London underground once

#

Yeah with Bitmoji looking things

compact holly
#

jesus christ

sterile crest
#

It looked like a cool idea tho

compact holly
#

how about emails? and no human interaction? peepo_happy

#

no meetings ๐Ÿšซ

sterile crest
#

I'm buying taz a MacBook btw

#

I'm a good boss peepo_happy

bright lark
#

wtf how this relevant fat_laugh

compact holly
#

because you can't legally pay him?

sterile crest
#

Ah sorry myb

sterile crest
#

In his country he's earning 2x minimum wage

compact holly
#

so you pay in gift cards and mcdonalds coupomns?

sterile crest
#

My other employee told me I'm paying him more than what his mum earns

#

So idc they're happy and I'm winning

compact holly
#

having child labour is not like it used to be man.. :(

sterile crest
#

You can't say it's unethical because they would be on lower salaries working local

#

It's all geographical inflation

compact holly
#

right, clasic capitalist sweatshop excuse

sterile crest
#

They're happy with it though, I treat them well

compact holly
#

b..but minimal wage is 1$ there!

bright lark
#

Guys pls talk about this in #chit-chat

compact holly
#

so im not exploiting kids!

sterile crest
#

Taz is 18 this year

#

And the other guy actually signed a contract

compact holly
#

what?

sterile crest
#

Yeah

compact holly
#

he was 14 like yesterday..

sterile crest
#

I know lolol he's 17

compact holly
#

goddam, they grow up so quick

sterile crest
#

Squid was the worst shock for me

#

He was 16

#

Now he's like 21

#

18*

#

Once we launch, I'll give them senior positions

#

And once income is stable, they'll be on legit money

compact holly
#

senior before even becoming adult peepo_happy

sterile crest
#

Haha Taz is a clever guy man

#

So is the other one

#

They're both really talented at least in the positions I have them in

compact holly
#

anyway, we are offtopic..

#

back to diagrams

sterile crest
#

It's on topic kinda

#

I can bring my Dev team to work on jshell

#

If we need the support

compact holly
#

that's OP

sterile crest
#

They're blasting through the wannacall backlog quicker than I can keep up

sterile crest
#

So I need to slow them down otherwise they'll have nothing to do

compact holly
#

ye, that's most dangerous position

sterile crest
#

Beauty of "work your own hours and days" is that they wanna do the work even though they're allowed to work only 10 mins in 1 month!

compact holly
#

they get creative when they have nothing to do

#

and manage to escape

sterile crest
#

Lolol

compact holly
#

find friends and gfs.. discover fun things to do

#

bad for buisiness

sterile crest
#

No no, I promote it

#

My new guy is out partying with his friends tonight

#

Enjoying his employment

#

I'm happy for him

#

Anyways back on topic

#

Jshell

#

I mean

#

TJ Sandbox

compact holly
#

right.. diagrams

#

where to start..? Thinkfused

sterile crest
#

The multi programming language runner

#

Marko fr

#

I think we should really talk about what this jshell api is meant to be providing us

#

Do we really need to limit ourselves to java?

#

Or use crappy implementations?

compact holly
#

do you want anything in life except java?

sterile crest
#

You can't be happy with 1 lover

#

You need more

compact holly
#

we should support all languages

bright lark
#

Start with java and set a place for others

sterile crest
#

This tool needs to be a harem for programmers

compact holly
#

but slowly neg and wear down users

#

"look.. this would be only 5 lines in java!"

sterile crest
bright lark
#

We can consider evolutions in design

sterile crest
#

The good thing is that we can already kinda support it

#

We use docker images

#

We can have multiple for each lang

#

But our API needs to support it and we need to refactor the service to accommodate

compact holly
bright lark
sterile crest
#

I would rather we made a public API for everyone

#

It'll be such good marketing for our server too

#

But sure let TJ do it

#

We don't need an API this moment

compact holly
#

why do any work actually, we can just use already made discord bots for this peepo_comfy

#

i think we finally cracked this one boys

sterile crest
#

Why did we even code it then??

compact holly
#

it's time to pack the diagrams

bright lark
compact holly
bright lark
#

Into one

compact holly
#

to prove the point

sterile crest
#

What point, we're already skilled enough to develop any application we want

bright lark
#

There is a way out to not lose the api

compact holly
#

exactly

#

so we are just doing side quests at this point

sterile crest
#

Tbh jshell kinda is

compact holly
#

like how im gonna go out in 2am, with gloves

#

and climb some trees or buildings

#

to work on my grip and upper back strength

#

just doin' side quests, getting strong gigachad

bright lark
#

Offtopic time

sterile crest
#

Marko gets distracted really easily

#

Can't blame him, he's only 19

compact holly
#

it's the lack of diagrams

#

i already forgot what we were working on

bright lark
#

I can see way out, combining tjbot and jshel as one app is feasible

#

Any agreement?

sterile crest
#

What about a brand new discord bot firas?

compact holly
#

that way is decoupled from tjbot, and easier to scale peepo_think

bright lark
#

A new bot can contact tjbot api

sterile crest
#

And we can sell it to other servers if we wanted to

#

Well

#

A new bot that does everything you want

#

But it's purposes is just running code

compact holly
bright lark
#

Tj bot will have its rest api, the dtaabae is there to store multiple clients

#

๐Ÿคทโ€โ™‚๏ธ

compact holly
#

so we bring spring to tjbot? pogchamp

bright lark
#

Yes why not

#

It works

sterile crest
#

Amazing idea firas

bright lark
#

Correct me if im wrong pls

compact holly
#

that way we can remove whole jshell project

sterile crest
#

I think you're correct

compact holly
#

and we won't have to maintain any of that

#

ezpz

sterile crest
#

Firas, what about restructuring TJ bot?

compact holly
#

nah, too expansive at this point

sterile crest
#

We can make each slash command a microservice

compact holly
#

we could refactor it into microservices tho

bright lark
#

This is what i thought long time ago

compact holly
#

our brains waz, are on anoyher level pogchamp

sterile crest
#

Our TJ discord framework is really good for this because it supports spring style coding

compact holly
#

man, imagine this server in 5 years, if we follow firas

sterile crest
#

You guys don't know this but we support dependency injection via @Component in our framework

#

We coded it ourselves

sterile crest
#

We should split up into multiple servers

compact holly
#

how firas sees us in few tears peepo_happy

sterile crest
#

Like TogetherJava, TogetherPython etc

#

But use the bot to link everything

bright lark
#

The next level yea

compact holly
#

like a highway

sterile crest
#

We can use web hooks to mask users

compact holly
#

or an artery

sterile crest
#

So it's all cross communication

bright lark
compact holly
#

or a heart of beating pulsating

#

nvm

sterile crest
#

It looks like this

#

If we don't use the embed

#

Then it'll show as app

#

But that's okay, it's like a "tag" to tell people the message came from a different server

compact holly
#

gonna send an email to elon musk about this

#

i think he would be interested in our plans

sterile crest
#

I even pipe logs to discord

#

Example

#

Uses AWS cloud watch and discord web hooks

compact holly
#

but who watches the aws cloud watch?

sterile crest
#

It's piped to discord

#

I use it in conjunction with the alarms in the first screenshot

#

If an alarm fires, I can see the entire execution logs too in discord

#

Saves me going to AWS

compact holly
#

kinda pay2win

sterile crest
#

It's free stfu

compact holly
#

i can do all this with a bash script

sterile crest
#

Why would you do it yourself

#

But somebody else can

#

You're a true Labourer

#

I'm a director

compact holly
#

maybe you are right

#

just a toxic masculinity on my part

#

the need to show how superior i am with my work

sterile crest
#

So then contribute code to jshell

compact holly
#

let nerds do the log piping

sterile crest
#

I've never seen you write a single line of code

compact holly
#

while i pipe their moms gigachad

sterile crest
#

The only things I've seen against your name on TJ Bot is GHAs and docker files

#

Write code Marko!!

bright lark
#

Offtopic..

#

Come back pls

compact holly
#

i do the things nobody else knows how to do gigachad

sterile crest
#

We need marko firas to help with the coding of jshell

sterile crest
compact holly
#

im like specops

bright lark
#

app build must be concise and work in any env

compact holly
#

you send me to deal with issues nobody can handke

sterile crest
#

Marko uses tools that have GitHub readmes saying "hey don't use us in production"

#

I can't remember which tool it was on the vps

#

Whatever deploys our code I think

compact holly
#

marko uses tools he writes himself gigachad

#

because i solve only problems that havent been solved yet

bright lark
#

Maybe it's the ideal time to change this

compact holly
#

to prove the world it's possible

bright lark
#

Going to sleep cya

compact holly
#

and yeah, my infra has higher availability than google gigachad

sterile crest
#

Sorry he went off topic again

#

As an admin he does a bad job of keeping things relevant

compact holly
#

i can do more with $3 than most can with thousands

#

gonna go do my training

sterile crest
#

Dw firas, I'll become admin soon and introduce law to this server

compact holly
#

while city is empty

sterile crest
#

Have fun Marko

compact holly
#

skin is dark red, like blood left sitting for a day

#

on my hands

#

and blisters :'(

#

maybe I overdid the climbing around city thing

bright lark
#

Yoo

#

Hello ! Anybody there

timber mirage
bright lark
#

I was checking updates

#

As u know im still in vaccations

#

i can discuss here

#

did i read the conversation of Yesterday ?

timber mirage
#

no

bright lark
#

While most of it is offtopic, the main thing is , we suggested that tjbot can perform the action of creating sandboxes

#

Rather than having a rest api

#

As there is constrants with infra like db and scalability

timber mirage
#

what's the problem with the current approach?

bright lark
#

As i said, to sum up we have reviewed the what and why of jshell

#

We discussed about whether it's for tjbot only or other clients, we came to conclusion that it's onoy for tjbot

#

While it's possible that i'd have future clients, the current infra and financial options are not feasible to set it up as it should be

timber mirage
#

And ?

#

You are arguing that there is no advantage to one or the other approach here

bright lark
#

i think we agreed to 2 options:

  1. Get rid of rest api and impl dockerservice logic in tjbot project
timber mirage
#

So why should we change aproach ?

#

Please answer my question

#

why should we change this ?

timber mirage
#

you are not arguing in favor of tj bot

#

you gave no reason to why we should do a total rework

bright lark
#

Marko argues that jshell current approach (separate independent app) needs more space in infra for separate db, wrapper and api

timber mirage
bright lark
#

Space, memory, requirements

timber mirage
#

?

bright lark
#

I mean in vps

timber mirage
#

Why does it need more space ?

#

And if it needs more space, does it cause a problem ?

bright lark
#

Based on what marko said , yes

#

They suggested to make tjbot do the job with aws lambdas

timber mirage
#

And remember that it's a little bit too late to talk about that (just 1.5 year late)

timber mirage
#

It's too late to change

#

If you wanted to do that, you should have come 15 months ago

bright lark
#

It's better than later

timber mirage
#

no

bright lark
#

i didnt tell u the 2nd option

#

Combine tjbot and rest api (we dnt lose it) as one application

timber mirage
#

isn't that what you said ?

#

and it's the same answer

timber mirage
#

I don't see a point of doing that
It's too late
It's not very scalable
It could cause problems because we are mixing two things

timber mirage
bright lark
#

They could be split into 2 main packages

bright lark
timber mirage
#

What's the difference ?

bright lark
#

Get rid of api means no controllers no api endpoints to consume from any client including tjbot

timber mirage
#

yes?

bright lark
#

Rather, tjbot communicates directly with docker api

timber mirage
#

but that's the same thing

#

you get rid of the rest api and keep the rest

bright lark
#

1st option; tjbot -> jshel api > docker

2nd option: tjbot -> docker

timber mirage
#

i don't understand

bright lark
#

Oh shit! Sorry

#

1st option: tjbot -> docker

#

2nd : tjbot -> docker AND jshelapi -> docker

timber mirage
#

wdym

bright lark
#

The fact is the rest api and tjbot becomes as one

timber mirage
#

what is 2nd option, do you delete the rest api ?

#

but then it's the same as 1st option

bright lark
#

No

#

Keep it running along with tjbot

#

I think that could work

timber mirage
#

then it's what we already have ?

#

@bright lark

bright lark
#

AFAIK jshell api is a seperate app

timber mirage
#

yes

bright lark
#

Its could be one spring boot app in which tjbot is running with api

#

Not 2 apps , but one

timber mirage
#

so you have spring within tj bot ?

bright lark
#

I think it's possible

timber mirage
#

but

bright lark
#

I saw some examples

timber mirage
#

what's the point of doing that ?

#

there is no advantages

#

only disadvantages

bright lark
#

One codebase, one database, one app

timber mirage
#

and so ?

bright lark
#

That should collide with the infra

timber mirage
#

what's the advantage of having one app ?

bright lark
#

With that dqlite db u can manage other clients

bright lark
timber mirage
bright lark
#

Low requirements

#

Less efforts

timber mirage
#

?

#

Low efforts ?

#

that's totally wrong

bright lark
#

That's what marko tried to explain ig

timber mirage
#

You can't have less effort than no effort
Remember that option 0 is doing nothing, which is no effort

bright lark
#

I dnt have ideas about infra setup, thts based on what he said

timber mirage
#

then I wish that marko explains it

#

but from what you said

#

that's a hard no

bright lark
#

He explained but i can rerwrite all what he said

#

Sorry, can't*

#

Anyway, im still positive for the project, we even progressed on oo design, but generally thats what happened sf

timber mirage
#

Well right

#

so it's seems speaking for saying nothing

#

if you want to contribute

#

note that there are a few (big) bugs to fix

#

some rework to do

#

some features to add

bright lark
#

Running locally is not a problem

#

But we have to think about seeing it in action in production

#

If that will not happen with current approach, that would be a mess

timber mirage
#

wdym

#

seeing what?

bright lark
#

Seeing jshell deployed

#

Isn't it?

timber mirage
#

wdym

#

we see it ?

bright lark
#

We see it here on discord

#

We try it

timber mirage
#

but?

bright lark
#

Live

timber mirage
#

right

#

but what?

#

what do we not see?

bright lark
#

Are u kidding ?

#

I told u that running the app locally in dev is not an issue to me

timber mirage
#

what's the problem?

bright lark
#

based on our discussion yesterday with Marko it seems that it's going to be deployed

#

It's not

timber mirage
#

it's already deployed since a few months

stray wrenBOT
#

System out

Version: 22.0.2+9
Vendor: Eclipse Adoptium
OS: Linux
Arch: amd64

bright lark
#

Hm

timber mirage
#

look

bright lark
#

Ok if it works, i wonder why he told us those stuff

timber mirage
#

you can try it if you want ๐Ÿ™‚

bright lark
#

Maybe the big bugs are due to missing requireme ts or bad setup that can't repaired

timber mirage
#

the problem is that we have a bug

#

and we have no idea what is causing it

bright lark
#

Whats it?

timber mirage
#

i created an issue about it

bright lark
#

Did u reproduced it locally??

timber mirage
#

no

#

that's the problem

bright lark
#

I think tht due to env

timber mirage
#

Not only that

#

It only happens after a few days of runtime

bright lark
#

Huh

timber mirage
#

and when I mean a few days, it's like between one day and one month

#

It's random

#

so not only we can't reproduce it in local, the time it takes to happens in prod is also a problem

bright lark
#

Hmm

#

I have an idea

#

Spring provide a way to perform a scheduled job

#

i thinl this can even happen with pipeline scriptz (notsure)

timber mirage
#

this is not the fault of the scheduler

#

changing it won't solve it

bright lark
#

Ig it does

timber mirage
#

we believe the cause is docker lib

#

we just added enough logs to confirm this theory next time it happens

bright lark
#

Alri

#

So now we wait

timber mirage
#

yep

#

we wait between a few days and one month

bright lark
#

Alright

#

Thts the only one?

timber mirage
timber mirage
#

so the idea would be to at least simplify how we use it

stray wrenBOT
#
.FirasRgException's result

Snippets

Snippet 23, VALID

2+4```
jshell> `6`
## System out
[Nothing]
bright lark
#

I see

#

Btw it looks nice to calculate with tht

timber mirage
#

๐Ÿ™‚

bright lark
#

But the command looks too small

timber mirage
#

wdym

bright lark
#

U can't put a method of 4/5 lines

timber mirage
#

ah you can

#

don't provide a code attribute

#

@bright lark did you try ?

bright lark
#

It want's me to write whole code in one line input

timber mirage
#

don't provide a code attribute

bright lark
#

It looks small and unworthy

timber mirage
#

listen

#

dont provide a code: ...

bright lark
#

Got nothing now

timber mirage
#

wdym

bright lark
#

Code is mandatory

timber mirage
#

ah

#

you are on mobile

#

don't be on mobile

bright lark
#

What

timber mirage
#

should look like this

#

ah and alternatively

bright lark
#

Alr, sorry u have to disconnct rn

timber mirage
#
for(int i = 0; i < 10; i++) System.out.println(i);
bright lark
#

Will comeback tomorro

timber mirage
#

wait a minute

#

look

stray wrenBOT
bright lark
#

Hmm ok

timber mirage
#

you can also right click, code action

#

then execute custom code

#

from someone

#

from a message

bright lark
#

There is problem

timber mirage
#

?

bright lark
#

If somebody put very long loop or infinite

timber mirage
#

try and see ๐Ÿ™‚

bright lark
#

What would the output be

#

Ok

#

I can't now, maybe tomorro

timber mirage
#

well

bright lark
#

I have to go

timber mirage
#

there are different possible outputs depending of what you did

stray wrenBOT
#
Alathreon's result

Snippets

Snippet 24, VALID

while(true);```
## [WARNING] The code couldn't end properly...
Problematic source code:
```java
while(true);```
Cause:
Allowed time exceeded.

## System out
[Nothing]
timber mirage
#

if you just do a simple while true

#

you get this

#

but

#

if you do a while loop and do a try catch thread death, it won't be able to cancel it, and so will have to force destroy it

#

which would result in the session being destroyed and your code lost

stray wrenBOT
#
Alathreon's result

Request failed: Conflict. Session may have been forcibly destroyed.

timber mirage
#

see

#

@bright lark

timber mirage
#

Ah

#

the bug happened again

#

Alright

#

so it seems like an NPE

#

that happens because concurrency problem

#

so no wonder it was random

bright lark
#

do We know what the issue now?

timber mirage
#

yes

sterile crest
#

@timber mirage tldr the issue?

#

do you need any help implementing the fix or are you good to sort it?

timber mirage
timber mirage
#

If you could go on voc with me, it would be cool, I am trying to simplify close

sterile crest
#

sure thing, let's go into a support room

#

i can give as much input as i can but I can't stay too long

#

actually, can you call me private @timber mirage ?

timber mirage
#

why ?

sterile crest
#

i'm hiding kinda leslie

bright lark
bright lark
#

Still in vaccations

#

Tomorrow im gonna be home, will check with u

#

Howerver are u going to fix all issues as one or what?

timber mirage
#

@sterile crest so apparently, forcefully closing the container always cause this error
so we need the fancy close

sterile crest
#

Yeah I couldn't think of the solution besides just ignoring the exception

#

If it only throws in that situation maybe just log and ignore

timber mirage
#

Nah

#

found a way

#

I changed the whole logic

timber mirage
#

@sterile crest well
Even with gracefull death, it still errors

#

I have no idea why

#

it didn't do that before

sterile crest
#

Not sure from what we did

bright lark
#

Cool updates

#

Can u tell the file name pls and which method

#

Or which line

sterile crest
#

Knock yourself out Firas peepo_heart

#

I know you have the abilities to fully understand the code and fix the issues peepo_happy

bright lark
#

May i know

#

How the impl of docker api was done?

#
  • when was it done and by whom?
  • was it from a ready working example or from official guide?
sterile crest
#

It was done ourselves

#

And it was done last year

#

The docker API itself is created by docker

#

So yeah, gl you're in the dark

timber mirage
#

well

#

the docker service that is

sterile crest
#

Even still, we fully understand the implementation of that

bright lark
#

Maybe we miss somthing

#

It's better to recheck official guide

timber mirage
#

there is nothing

#

just look at the javadoc

#

there is nothing

sterile crest
#

Yeah docker gives 0 docs ๐Ÿ˜‚

bright lark
#

Did u see this?

timber mirage
#

yes

bright lark
#

also, I notice that we are using outdated version

#

Is there dependabot for jshel

sterile crest
#

Yeah

timber mirage
bright lark
#

Yes but it could show something tht can help us

sterile crest
#

Feel free to use the latest version firas, it won't change the issue

timber mirage
#

good luck to find how the pipe stream works

sterile crest
#

I have some ideas on the pipe but I keep losing myself in the code flow peepo_cry

bright lark
#

Im going to see starting from tomorro

sterile crest
#

As I said, feel free to use it

#

The pipe issue is basic java, when a stream closes and then you read, you'll get an error

#

The problem is figuring out what we're doing wrong and why it's still trying to read

#

That's happening inside the docker SDK, because that spawns a thread

#

Maybe our use of close is wrong, maybe there's an additional method to call

bright lark
#

Hmm

sterile crest
#

Maybe we shouldn't close, maybe docker does it for us

#

All stuff to look into

bright lark
#

Like a lifecycle hook

sterile crest
#

Sure

bright lark
#

A lifecycle function

#

That can be used

sterile crest
#

Yeah maybe, you understand this stuff better than I do

#

I'm sure you'll see the problem immediately peepo_heart

bright lark
#

Thanks again, ig

sterile crest
#

Looking forward to your investigation results tomorrow

bright lark
#

Im gonna leave hotel tomorro at 1:30 pm,

#

Will be at home around 3:30pm

#

Ill start checking from 5 pm