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

Discussion in 'Chit Chat' started by fullautotrading, Jun 23, 2023.

  1. 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
     
    #11     Jun 23, 2023
  2. 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: Jun 24, 2023
    #12     Jun 24, 2023
  3. 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) ...
     
    #13     Jun 24, 2023
  4. 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: Jun 26, 2023
    #14     Jun 26, 2023
  5. 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: Jun 28, 2023
    #15     Jun 28, 2023
  6. 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... :)
     
    #16     Jun 28, 2023
  7. 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: Jun 30, 2023
    #17     Jun 30, 2023
  8. 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: Jul 1, 2023
    #18     Jul 1, 2023
  9. 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: Jul 1, 2023
    #19     Jul 1, 2023
  10. 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: Jul 2, 2023
    #20     Jul 2, 2023