Building a new social (or a "chain" of them): your suggestions

I have thought about a few discussion categories/forums which I could include.

I have also added the suggestion from aquarian1 of "good vibes" or "inspiring stories" category.

For now, I have conceived the following scheme (34 forums at the moment, work and thinking in progress...).

The first place to people projects, because I think that is to be promoted :) and creative people need a place where to discuss their ideas and projects and be supported ...

Let me know your possible suggestions/corrections or ideas for more stuff:

Your projects
Your job positions
Your skills
Your research and articles
Stories in the workplace
Your problems at work
Computer science
Algorithms and machine learning
Statistics and quantitative methods
Topics in Mathematics
Topics in Physics
People and companies
Macroeconomic and politics
Work Philosophy and life wisdom
Social media trends
New technologies
New software
New hardware
Real estates deals
Investors lounge, finance
Artworks deals
Equipment deals
Main Languages: C, C++, C#
Main Languages: VB.NET
Main Languages: Java
Main Languages: Assembly
Main Languages, web front end
Main Languages, web back end
Interpreters and data analysis tools
Your hobbies and passions
Health and wealth
Life hacks and useful tips
Chit-chat, news, opinions
Inspiring stories


upload_2023-6-23_17-49-5.png
 
During sleep, a few more categories and ideas come up.
Here is an updated version of the category list ("41 forums") where I have underlined some changes:

You and your work:
Your projects
Your job positions
Offer/Request services
Your research and articles
Your software
Your videos
Your tutorials
Stories in the workplace
Your problems at work

Your topics:
Computer science
Algorithms and machine learning
Statistics and quantitative methods
Topics in Mathematics
Natural sciences
Arts and Humanities


Our world:
People and companies
Macroeconomic and politics
Concepts and ideas
Social media trends
New technologies
New software
New hardware

Investing and deals:
Real estates deals
Investors lounge, finance
Artworks deals
Equipment deals
Barter or buy/sell stuff


Your tools and languages:

Main Languages: C, C++, C#
Main Languages: VB.NET
Main Languages: Java
Main Languages: Assembly
Main Languages, web front end
Main Languages, web back end
Interpreters and data analysis tools

Life beyond work:
Your hobbies and passions
Your Health and Fitness
Your music
Your DIY
Life hacks and useful tips
Chit-chat, news, opinions
Inspiring and uplifting stories


upload_2023-6-24_10-50-12.png



Suggestions and more ideas are welcome, of course :)

In the meantime, I am also messing with the javascript and the databases.

Did you know that I can debug while sleeping? :)
Sometimes, when I have some problem, while in bed, I can scroll and visualize the code lines in my mind, like a movie, and find a bug that I could not find while coding.

Weird but true :)



PS
Now that I am looking at it on the screen, I feel I should move up the group "Your tools and languages", possibly after "Your topics".
 
Last edited:
Here is the magic pentacle :) I am depicting in my mind right now, which should become the initial seed of a network:

The current 5 nodes in the picture are:

- a professional profile social (for me, a Link.. "replacement", without the bullshit propaganda)

- a specialized journal for the city of Rome (since the local journal which operated for decades died). This would serve specifically about 3MM hectic inhabitants :)

- a site for algorithmic trading journals and related stuff (for me, my investors, and anyone's trading journals)

- my own site (algorithmic trading for Hedge Funds and investors), which will also provide a directory to the network and host articles and pointers

- An international site for specialized ITA - EN cultural exchanges


upload_2023-6-24_14-51-55.png



This is a raw starting vision, then more nodes could possibly be attached (some more specific topics or localized needs could be "assigned" to enthusiasts/competent people worldwide for maintenance and profit) ...
 
I am also thinking about the DB structure. So far, I have come up with the following prototypical scheme:

upload_2023-6-26_11-28-1.png


The structure and relationships depict in practice a hierarchical structure where we have:

Forums (or categories) > threads > posts

and also the categories (forums) are grouped. In the example above the "groups" of forums would be You and your work, Your topics, ... and so on.

The groping of the forums is not done on an application level but only on a presentation layer. This is to avoid excessive "nesting" which could become confusing to the user.

For a bit of originality, I have imagined a system more articulated than the classic "Like"/"Dislike" for each post, but the user has multiple (nondisjoint) choices for post "evaluation". The "UserExtendedInfo", will hold info about the professional user profile (if he wants to show it). The user's "profile" could also contain any kind of pictures or videos (just like ordinary posts).

Let me know if you have suggestions/corrections ...
 
Last edited:
Now that I think about it, the local (Rome) advertising site, I will need the user to be able to easily remove the ads. Since within this type of structure, the ads will be "threads", I will need to add some flag to allow that behavior, at least within certain categories (or forums). Clearly, in a discussion forum (like those on ET, for instance), most of the time we do not want to allow a thread removal.

Apparently, what takes more time is the post editor and especially all the async upload functionalities.

Also keeping track of the last positions of a user within each forum and thread requires some patience.

While coding, I am keeping an eye also on my investor's accounts which are all doing fine. You can follow a demonstration in my tread in the ET Journal forum:
https://www.elitetrader.com/et/thre...-and-market-drift.364633/page-50#post-5829546

Here are in addition the results of a new investor (1MM start cap, 156 days) from the US

upload_2023-6-28_16-2-46.png


80K is not bad for the time elapsed and the start cap. He had a bit of DD, touching -50K (not a big deal relative to the account size), but that happen before the introduction of the scalping mechanism on the long legs. So we should be fine. Currently, using just 40% of the funds (I usually keep it around 50%, especially when volatility is low).

Anyway, working hard on the javascript. I really hope to finish soon :)
 
Last edited:
For the local (Rome) social media/ads I have so far identified the following 134 categories, which I hope should cover most of the needs, but I am still thinking about it... (let me know if you can think of something missing):

Lavori manuali:
Professionisti e mestieri
Operai
Agricoltura
Domestici
Negozi
Ristorazione
Trasporti
Sicurezza
Assistenza anziani e disabili
Assistenza domiciliare, Alzheimer, Parkinson
Animazione, sorveglianza bambini
Sorveglianza, addestramento animali

Lavori intellettuali:
Informatica
Ingegneria
Arti grafiche
Giornalismo
Contabilità
Immobiliare
Sanità
Estetica
Turismo
Spettacolo
Vendite
Servizio clienti
Risorse umane
Assicurazioni, banche
Consulenza
Legale
Concorsi pubblici

Lavori - Insegnanti:
Ripetizioni scuola
Lingue
Musica
Canto
Insegnanti - Altro

Lavori - Istruttori:
Fitness
Discipline da combattimento
Discipline corpo libero
Ginnastiche dolci
Atletica
Calcio
Riabilitazione, posturale
Istruttori - Altro

Persone e incontri:
Compagnia, amicizia
Più di una amicizia
Escort (solo maggiore età)
Partner allenamento
Partner studio
Gruppi di allenamento
Gruppi di studio

Cose e animali:
Fatti a mano
Collezionismo
Antiquariato
Animali e accessori
Strumenti, spartiti, libretti
Elettronica, Cellulari, Audio
Video, Fotografia
Informatica e accessori
Console, videogiochi e accessori
Casa e giardino
Utensili lavoro, hobby
Abbigliamento e accessori
Libri, riviste, giochi
Auto
Auto d'epoca
Auto - Accessori
Moto
Moto d'epoca
Moto - Accessori
Caravan, camper, campeggio
Barche, nautica
Bici e accessori
Commercio:
Noleggio e Leasing
Furgoni, veicoli commerciali
Macchinari
Grandi attrezzature
Arredamento commerciale
Attività commerciali, license, cessioni
Proposte di investimento, soci capitale
Regali:
Regali: Oggetti, sgomberi gratuiti
Regali: Animali, cuccioli

Immobili:
Case, appartamenti - condominio
Case, ville indipendenti
Terreni e rustici
Box, garage
Locali commerciali

Affitti:
Affitti - Appartamenti, stanze
Affitti - Box, garage
Affitti - Case vacanze
Affitti - Locali Commerciali

Romanità:
Dialetto romanesco
Cucina romana
Canzoni, Poesie, Detti
Storia di Roma
Passeggiate romane
Video e foto
Ricordi del passato
Celebrità amate dai romani
Film su Roma
Youtubers amati
Politici
Gatti de Roma & friends
Fa' da te de' Romani

Romanità - Locali tipici:
Luoghi famosi e tipici romani
Botteghe e artigiani tipici
Trattorie, osterie tipiche
Pizzerie tipiche
Forni tipici
Pasticcerie tipiche
Bar, caffè, pub tipici
Locali tipici
Raccomandazioni locali

Sociale:
Centri per anziani
Iniziative volontariato
Eventi, inviti
Parchi e attrazioni
Sport popolare
Palestre
Musei, mostre, chiese
Scuola: da asilo a liceo
Scuola: università
Trasporto pubblico
Servizi pubblici
Burocrazia e uffici

Vox Populi:
Persone scomparse/trovate
Oggetti scomparsi/trovati
Passaparola, info utili
Segnalazione problemi città Roma
Segnalazione pericoli
Segnalazione truffe, scam
Ringraziamenti
Storie di quartiere
Storie criminali e irrisolte
Belle storie
Discussioni libere, news



upload_2023-6-28_23-58-42.png



Updated DB schema (shared across the network):

upload_2023-6-28_23-55-18.png


we should be almost there... It would suck to realize you missed something important just after publishing it, but it always happens so... following Murphy's law... :-)
 
TimtheEnchanter mentioned Trump's social medium.

Wikipedia has a page on it:
https://en.wikipedia.org/wiki/Truth_Social#:~:text=Truth Social (stylized as TRUTH,former US president Donald Trump.

which mentions:

Truth Social [...] is an alt-tech[2][3][4]social media platform created [...] by former US presidentDonald Trump
[...]
To facilitate becoming a publicly traded company[...] has been a target of SEC investigations for misrepresenting shell corporations.
[...]
Russian finance
[...]
Truth Social is modeled heavily after Twitter; users are able to make posts ("Truths", similar to tweets)
[...]
Truth Social was launched proclaiming itself as a "big tent" platform without political censorship, allowing for "free expression" without "discriminating on the basis of political ideology".
[...]
The platform has been widely accused of censorship.[88][89][90] In June 2022, several accounts were banned after posting about investigations into the 2021 United States Capitol attack
[...]
Following Elon Musk's proposed acquisition of Twitter, many commentators observed that a Musk-run Twitter would be likely to reduce demand for Truth Social's services


With the premise that the Wikipedia article itself possibly sounds a bit biased, now when you start from the premise of being a vehicle for "truths" and proceed with shells and censorship, you can't expect to remain more than a political tool.

I do not see a big problem when a single user presents their own view or even biased perspective for propaganda purposes. The problem arises, imho, when you do not allow other people to do the same, so that eventually, from the conflict or convergence of views, a more complete (and hopefully closer to "objectivity)" picture would emerge. You must not mess with the ability of the social medium (which ultimately represents a crowd of people) to "self-regulate" and find a more fair representation of whatever aspiration to the abstract ideal of "truth".

In general, I do not find it very wise to reason in terms of "moral" values. In Italy, we have a famous sentence about that (from Pietro Nenni):
"A fare a gara a fare i puri, troverai sempre uno più puro... che ti epura." :-)
 
Last edited:
Working on the js... and here is also an update on DB architecture:

upload_2023-7-1_19-20-1.png


I have added a table ("UsersFollowed") to keep info about the user connections (who is following who) [noted in green some changes.]

Now that I am looking at it on the screen, I see I will probably need some additional field to keep track of sent notifications (we have 3 types of notifications so far: about thread, about users, and a "digest"). So, I will probably need to add 2 fields in the "UserExtended" Info table.

In order to easily change/add database fields in this "prototyping" phase I am using the following function I made on purpose which is quite handy, as it allows you to change at will field order and add new fields without having to mess up every single time with the indexes of the DB record you get from any query. Attaching snippet code in case it can be useful to anyone or for improvement suggestions:


Code:
private void ReadFieldAtIndex_IncreaseIndex(object[] DBRecord, ref int Index, ref object VariabileInCuiCaricareIlDato)
{

    // prendo dato avanzo puntatore campo
    var OggettoLettoDaDB = DBRecord[Index];
    Index += 1;

    // tipo del campo da riempire

    Type TipoVariabileDestinazione;

    if (VariabileInCuiCaricareIlDato is null)
    {
        // se nullo e' nullabile, quindi per forza una stringa perche' considero solo stringhe, interi, double, date, e booleani
        TipoVariabileDestinazione = typeof(string);
    }
    else
    {
        TipoVariabileDestinazione = VariabileInCuiCaricareIlDato.GetType();
    }

    if (OggettoLettoDaDB is DBNull)
    {

        if (ReferenceEquals(TipoVariabileDestinazione, typeof(string)))
        {
            VariabileInCuiCaricareIlDato = string.Empty;
        }

        else if (ReferenceEquals(TipoVariabileDestinazione, typeof(int)) || ReferenceEquals(TipoVariabileDestinazione, typeof(double)))
        {
            VariabileInCuiCaricareIlDato = 0;
        }

        else if (ReferenceEquals(TipoVariabileDestinazione, typeof(DateTime)))
        {
            VariabileInCuiCaricareIlDato = new DateTime();
        }

        else if (ReferenceEquals(TipoVariabileDestinazione, typeof(bool)))
        {
            VariabileInCuiCaricareIlDato = false;
        }
        else
        {
            throw new Exception("Tipo non previsto");
        }
    }

    else
    {

        var TipoCampoDatoDBMS = OggettoLettoDaDB.GetType();

        if (ReferenceEquals(TipoVariabileDestinazione, TipoCampoDatoDBMS))
        {
        }
        // ok match
        else
        {
            throw new Exception("Mismatch di tipo origine/destinazione");
        }


        if (ReferenceEquals(TipoCampoDatoDBMS, typeof(string)))
        {
            VariabileInCuiCaricareIlDato = (string)OggettoLettoDaDB;
        }

        else if (ReferenceEquals(TipoCampoDatoDBMS, typeof(int)))
        {
            VariabileInCuiCaricareIlDato = (int)OggettoLettoDaDB;
        }

        else if (ReferenceEquals(TipoCampoDatoDBMS, typeof(double)))
        {
            VariabileInCuiCaricareIlDato = (double)OggettoLettoDaDB;        
        }

        else if (ReferenceEquals(TipoCampoDatoDBMS, typeof(DateTime)))
        {
            VariabileInCuiCaricareIlDato = (DateTime)OggettoLettoDaDB;
        }

        else if (ReferenceEquals(TipoCampoDatoDBMS, typeof(bool)))
        {
            VariabileInCuiCaricareIlDato = (bool)OggettoLettoDaDB;
        }
        else
        {
            throw new Exception("Tipo non previsto");
        }

    }

}

You can just call it like that:

ReadFieldAtIndex_IncreaseIndex(u, IndexDato, .ObjectField)

where u is the read DB record, IndexDato is a data pointer automatically advanced by reference, and .ObjectField is the field of the program object where you are storing the data.

 
Last edited:
Here is some anticipation of the look (this is one of the 4 media I am simultaneously taking care of, with a shared pure js engine obviously. Will all be different themes).

This is a "user profile" page. Still working on it...

upload_2023-7-2_0-51-15.png


Any pictures:


upload_2023-7-2_0-52-57.png


I am consenting to store unlimited information in the profile, including any pictures, videos, or attachments.

The posts will be always editable by the OP. Threads' titles can be changed anytime.
Nickname, avatar, email, and password can also be changed anytime. Users can freely advertise their projects and research. The post will also be reachable as stand-alone web pages. So a user can use the URL of some interesting article/post he wrote (or his profile) independently of the social medium.

Some reasons for that are the following:

1) People may need to revise their text or improve exposition after some time. Anyone's best interest is not to have posts containing wrong information or nonsense. An incentive to aim for quality.

2) People who are going to spam like there is no tomorrow will probably avoid reinserting always exactly the same post - like they do on LinkedIn - because it will be sufficient to open it for editing to have it bubble down in the list (and the thread bubble up) ... well until they get tired to do so :).

Clearly, other users will be able to comment on it and if the reviews are not good, the spammers may soon lose interest in the idiotic "visibility" and start producing more intelligent and profitable content...

(Individual users will never be solicited to pay anything (like they do on LinkedIn). In the far future, if there is valuable traffic, in case sponsor spaces can be assigned, but only to established and reputable companies. Anyway, probably not something I need to be concerned about in my lifetime... :) ).
 
Last edited:
Today, Sunday, I was finally able to work a little more calmly, without too many distractions from the trading accounts (well, until midnight :) ). I fixed the logic of the users' notification system and this resulted in some changes at the database level. Here is an updated version of the schema:

upload_2023-7-2_20-53-18.png



I have envisioned 3 levels: subscribed threads, followed users, and "digest" (the latter to be implemented/perfected in the future when and if the site has some traffic).

I have also been messing with the js post editor (it takes a lot of time and patience to get all the small details and js is rather unforgiving, although undoubtedly fascinating).

Clearly, I am trying to create a similar same nice "feeling" as I find here on ET, which I admire for the layout and editing. One thing I am doing differently is the upload logic.

I noticed that our ET here uploads immediately anything pasted in the editor without explicit consent (if I remember well that functionality was added some, not long, time ago). While I understand the rationale for that behavior and while the coder made the (indeed) laudable technical effort to implement that "background" upload, I do not think it may be always appropriate.

You might, by error, even upload something you do not want to (something you had in your clipboard :) ). Also, it often happens that a user removes several pictures from the post while editing, and also, in that case, there is no point in sending them to the server immediately, to remain unutilized forever (sure one could detect the "unreferenced" pictures scanning the post, but it's not so elegant). So I am uploading stuff only if the users really want to (via HttpRequest obviously).

Another thing that is probably useful (hopefully) is the possibility to do a fast login, skipping the login system. This is done through a special link sent to any user at registration. It can be changed anytime (randomly generated), just as the nickname, the email, and the password.

Also, the notification will come with a special link that can do both logins and send immediately to the desired content.

I will leave the post content and the titles of the threads always editable by the authors.


upload_2023-7-2_20-36-56.png
 
Last edited:
Back
Top