Blog

  • When Lightning Strikes: Fear, Dizziness, and Powerlessness in the Tech Industry

    There’s something primal about watching lightning tear through the sky and strike a tree. A sudden, sharp sound. A blinding flash. Then silence—smoke, debris, and a strange, paralyzing stillness. If that lightning hits a person, the feeling shifts entirely: disorientation, horror, and a deep sense of helplessness in the face of something uncontrollable.

    Lately, that same kind of fear, dizziness, and powerlessness is rippling through the halls—both physical and virtual—of tech companies. Waves of layoffs, striking without warning like bolts from the sky, have become all too common. It doesn’t matter how skilled, valuable, or motivated someone is: when the lightning comes, it hits without mercy.

    Every time Teams opens with a new notification, or a sudden  meeting appears on the calendar, hearts race. It’s like watching the sky darken, knowing something destructive may be moments away. When it hits, those affected are left stunned. Their professional identity shatters, their sense of direction vanishes. Those who remain are often overcome with guilt—and the quiet fear that they might be next.

    And yet, something surprising happens in the aftermath. LinkedIn—so often a polished display of achievements—transforms into an emergency response hub. Supportive posts, job leads, referrals, offers of help: a digital chain of solidarity forms, much like the community relief efforts that spring up after natural disasters. In an industry as relentlessly competitive as tech, this isn’t something to take for granted. But perhaps, as in real tragedy, it’s in collapse that we rediscover the power of connection, the voices saying “I’m here.”

    This isn’t just about economics. It’s emotional. Layoffs in tech are no longer exceptions—they’re patterns. No longer reactions to clear crises, but systematic tools for restructuring, repositioning, and, at times, speculation.

    As a society, as a professional community, we need to ask: how much can we withstand before the whole ecosystem stops growing and starts to burn, like a tree struck by lightning?

    The real danger isn’t just job loss—it’s the erosion of trust, the slow collapse of the collective spirit that fuels every innovation. And yet, maybe, in those sparks of humanity that flash during the darkest moments, there’s still a path to rebuilding.

  • Nessun augurio da me oggi

    L’ipocrisia dell’8 marzo: riflessioni sulla strada verso la parità

    L’8 marzo, la Giornata Internazionale della Donna, è spesso celebrata con fiori, cene e gesti simbolici. Tuttavia, dietro questa facciata di celebrazione, persistono profonde disparità che rendono questa giornata un’occasione per riflettere, più che per festeggiare.

    Differenze salariali e sociali

    Nonostante i progressi, il divario salariale tra uomini e donne rimane una realtà in molte parti del mondo, Italia inclusa. Le donne guadagnano in media meno degli uomini per lo stesso lavoro, e spesso si trovano relegate a posizioni meno retribuite o con minori opportunità di avanzamento. A livello sociale, le donne affrontano barriere invisibili, come il cosiddetto “soffitto di cristallo”, che limita l’accesso a ruoli di leadership.

    Anche i servizi dedicati alle donne, come l’accesso a strutture per la maternità o il supporto per le vittime di violenza, sono spesso insufficienti o mal distribuiti. Questo crea un ulteriore ostacolo alla loro piena partecipazione nella società.

    Disparità di giudizio nei comportamenti

    Un altro aspetto emblematico è la disparità di giudizio nei comportamenti sociali. Una donna con molti partner viene spesso etichettata negativamente, mentre un uomo con lo stesso comportamento viene talvolta celebrato o considerato “virile”. Questo doppio standard riflette una mentalità radicata che continua a penalizzare le donne per scelte personali che, nel caso degli uomini, sono accettate o addirittura applaudite.

    La parità non si compra con i fiori

    Arricchire i fiorai l’8 marzo non risolve queste disparità. La parità non è un gesto simbolico, ma un impegno quotidiano per abbattere stereotipi, garantire uguali opportunità e riconoscere il valore complementare di uomini e donne nella società. La complementarità non significa subordinazione, ma collaborazione e rispetto reciproco.

    L’8 marzo dovrebbe essere un momento per ricordare che la strada verso la parità è ancora lunga e che ogni giorno è un’opportunità per fare un passo avanti. Non basta celebrare le donne; è necessario ascoltarle, sostenerle e lavorare insieme per un futuro più equo.

    Per questo motivo non faccio mai gli auguri alle donne in questo giorno dove si dovrebbe riflettere sull’ipocrisia del festeggianento che è secondo solo a quella che confonde l’inclusività con la distorsione della realtà fattuale.

  • Celebrating SpaceX’s Achievements Amidst Controversy

    In the world of space exploration, few names shine as brightly as SpaceX. The company has redefined what’s possible, pushing the boundaries of technology and ambition. Its latest Starship launch, though ending in an explosion, is a testament to the relentless pursuit of progress. SpaceX has always embraced the philosophy that failure is a stepping stone to success, and this launch is no exception. The lessons learned will undoubtedly pave the way for future triumphs.

    However, it’s impossible to ignore the shadow cast by the actions of its founder, Elon Musk. His involvement with the Department of Government Efficiency (DOGE) and his vocal support for Donald Trump’s controversial policies have sparked heated debates. While these political choices may be polarizing, they should not detract from the groundbreaking work being done by the engineers, scientists, and visionaries at SpaceX.

    SpaceX is more than its founder. It’s a collective of brilliant minds dedicated to making humanity a multiplanetary species. The company’s achievements—like reusable rockets, record-breaking launches, and partnerships with NASA—are milestones that deserve recognition, regardless of Musk’s political affiliations.

    Criticism of Musk’s political choices is valid and necessary in a democratic society. But let’s not allow these controversies to overshadow the incredible strides SpaceX is making in space exploration. The work being done at SpaceX has the potential to benefit all of humanity, transcending political divides.

    As we look to the stars, let’s celebrate the innovation and determination that make these missions possible. SpaceX’s journey is a reminder that progress often comes with challenges, but the pursuit of knowledge and exploration is always worth it. Let’s keep our eyes on the horizon and support the pioneers who dare to dream big.

  • Safer Internet e campagna elettorale.

    Ormai siamo in campagna elettorale.

    Prima che si scatenino le campagne social dei vari schieramenti ricordate che:

    • di fatto siamo lo schieramento opposto alla Russia che scatenerà tutta la potenza della disinformazione sui nostri media mescolandosi ai troll su Internet e sui social.
    • verificate sempre le fonti come attendibili ed ufficiali prima di strobazzare notizie a destra e a manca. (basta veramente poco)
    • il numero di view e commenti non rende una opinione (anche autorevole) un fatto, tantomeno quando proviene da #amiocuggino
    • I motori di ricerca hanno annunci pagati molto spesso il primo link è sponsorizzato quindi occhio dove cliccate.
    • Le discussioni sono belle le risse no (per cosa poi
      ..) e pagare un avvocato per difendersi dalla diffazione su media non è economico
    • il vostro interlocutore potrebbe non essere umano.. (sentito mai parlare di AI bot)
    • è inutile che usate pseudonimi se poi nella foto del profilo mettete qualcosa di personale oppure, peggio, fate post pubblici pure quando andate in bagno. (è facilissimo sapere molto di voi)
    • usate un secondo fattore di autenticazione per il vostro account ed un secondo media di verifica per le richieste di amicizia/follow etc
    • usate la biometria dove possibile
    • smettete di spegnere il GPS sul vostro telefono (non è con quello che vi localizzano..)
    • non mandate foto vostre o di chiunque altro a qualche simpatica App che vi invecchia/ringiovanisce o vi fa diventare il cloun di hit…
    • ricordatevi che il posto più tracciato al mondo è internet usato dai comuni mortali. Gli hacker, se non protetti da stati e/o agenzie, prima o poi li prendono..

    Ve lo dice uno che:
    “.. ne ho viste cose che voi umani non potreste immaginarvi: navi da combattimento in fiamme al largo dei bastioni di Orione..”

    Stay safe on line

  • Azure Monitor NSG Monitoring

    Basic understanding of NSG Logging

    According to https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-nsg-manage-log
    NSG Logs 2 kind of data: GroupsEvent and GroupRuleCounter

    GroupEvent
    The event log contains information about which NSG rules are applied to VMs, based on MAC address. The following data is logged for each event.

    GroupRuleCounter
    The rule counter log contains information about each rule applied to resources.

    What can I monitor

    Based on the previous assumptions you can monitor

    • The event of an NSG rule hits by network traffic
    • The number of time a single rule was applies to a resource

    Note

    The GroupEvent table fields can be misleading. You are not able to know which source IP is hitting the rule unless the rule contains a single source IP condition. (That’s the real meaning of the field conditions_sourceIP_s)
    Things get tricky even more if you start with a set of rules that contain a single source IP with Deny Action and then switch to a rule with Deny for Any source with a single Allow rule for source IP allowed.

    In this scenario you are unable to indentify IP address that will hit the rule with Deny Action.

    Let’s demostrate this in practice.
    I used the Application Gateway demo from Azure quick start template library to deploy a full infrastructure made up 2 webservers (with NSG) into a vNet with a Application Gateway to balance the traffic between 2 machines.

    NSG had both same settings as below picture

    Let’s concentrate for a while on the very first rule.
    I set the Source IP to my IP and I trying to establish an SSH connection.
    Everything worked fine and you get trace of the connection in the log with the below query:

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.NETWORK"
    | where Category == "NetworkSecurityGroupEvent"
    | where direction_s == "In"
    | where type_s == "allow"
    | project-away systemId_g, SourceSystem, _ResourceId, TenantId, ResourceId, ResourceGroup //just to concentrate on fields value that are important

    with the below results:


    All good. What if we change the rule to disallow access from my IP?
    Will be able to track who is trying to connect to SSH?
    The short answer is not. Let demonstrate it:

    • I changed the ssh-rule source IP to an address that is different from mine
    • tried to access by ssh to the vm

    the only thing I can find in is that the DefaultRule_DenyAllInboud was hit with no information about the IP tried to access.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.NETWORK"
    | where Category == "NetworkSecurityGroupEvent"
    | where direction_s == "In"
    | where type_s == "block"
    | summarize by ruleName_s
    

    NSG simple doesn’t care about anything else but their rules.
    If a rule is matched you have a record with all information (IP Address and MAC address of the NIC) where the rule was applied. But nothing about the source IP.

    The bottom line is that you will be able to track explicitly denied or allowed single IP rules but to track who is trying to use something unauthorized you can’t rely on NSG Logging. You have to use something else.
    (Hint NSG Flow Logs.)

    The following query can help understand in a quantitative way is someone is trying to connect and isn’t successful.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.NETWORK"
    | where Category == "NetworkSecurityGroupRuleCounter"
    | where type_s == "block"
    | summarize count() by Resource, ruleName_s, type_s, direction_s, primaryIPv4Address_s