Skip to main content

Aggiungere un CSS personalizzato a WordPress

Aggiungere un CSS personalizzato a WordPress

Il Tema che sto utilizzando in questo Blog di WordPress (evolve by Theme4Press) non renderizza i pallini a fianco delle liste non ordinate.

Per ovviare a questo problema ho fatto queste operazioni:

  • Sono andato su Bacheca, Aspetto, CSS personalizzato
  • Ho aggiunto le righe seguenti al file:
/* Insert Custom CSS here */
.post-content ul li{
list-style:disc;
}
.post-content ul li ul li{
list-style:circle;
}

Tutto qui! Ora il primo livello delle liste non ordinate mostra dei pallini pieni e il secondo livello dei pallini vuoti, come mostrato qui sotto:

  • Primo livello
    • Secondo livello

Una libreria C# per operazioni Booleane su poligoni

Una libreria C# per operazioni Booleane su poligoni

Oggi stavo cercando una libreria che permettesse di fare operazioni booleane e di offset su poligoni e sono capitato su questa piccola libreria chiamata Clipper di Angus Johnson.

E' distribuita in formato sorgente in vari linguaggi tra cui C# ed è freeware sia per applicazioni opensource che commerciali.

Avevo bisogno di risolvere il seguente problema:

  • Generare l'offset di un poligono rettangolare di una certa quantità, arrotondando gli spigoli.
  • Intersecare il poligono così creato con un secondo poligono.
  • Calcolare l'area e il perimetro del poligono risultante dall'intersezione.

Questo mi serviva per risolvere un problema di ingegneria civile riguardante il punzonamento di pilastri su una platea in particolare nel caso di pilastri di bordo o d'angolo.

Ho realizzato questa piccola app demo in Vb.Net per testare questa libreria. Potete dargli un'occhiata qui:
https://github.com/andreaboriani/clipper_test



Utilizzare PubNub in VB.Net

Utilizzare PubNub in VB.Net

Ho fatto qualche esperimento di utilizzo di PubNub in VB.NET, dato che gli esempi del sito sono solo in C#.Per chi non lo sapesse PubNub è un servizio di messaggistica realtime basato su canali con un modello publish-subscribe (simile a Telegram) . La cosa simpatica è che il piano base è gratuito fino a 1M di transazioni e 1GB di persistenza dei dati.Per prima cosa occorre registrarsi, creare un'app specificandone il nome.A questo punto avremo a disposizione due chiavi, una per pubblicare (pub-.....) ed una per sottoscrivere un canale (sub-.....).

  1. Creiamo un progetto VB.NET con una form
  2. In Visual Studio andiamo su Strumenti->Gestione pacchetti NuGet->Gestisci pacchetti NuGet per la soluzione ed importiamo il pacchetto PubNub

A questo punto possiamo iniziare a scrivere il nostro codice: per comodità ho inserito tutto nel form_shown

Private Sub FrmMAIN_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
  Dim pnConfiguration As New PubnubApi.PNConfiguration()
 'Inserire la propria chiave qui sotto
  pnConfiguration.SubscribeKey = "sub-xxxxxxxxxxxxx"
  pnConfiguration.Secure = False

  PubNub = New PubnubApi.Pubnub(pnConfiguration)
  'preparo la call back
  Dim IncomingMessages As Action(Of PubnubApi.Pubnub, PubnubApi.PNMessageResult(Of Object)) = AddressOf IncomingMessagesCB
  Dim IncomingPresence As Action(Of PubnubApi.Pubnub, PubnubApi.PNPresenceEventResult) = AddressOf IncomingPresenceCB
  Dim IncomingStatus As Action(Of PubnubApi.Pubnub, PubnubApi.PNStatus) = AddressOf IncomingStatusCB
  Dim sc As New PubnubApi.SubscribeCallbackExt(IncomingMessages, IncomingPresence, IncomingStatus)
  'aggiungo il listener
  PubNub.AddListener(sc)
  PubNub.Subscribe(Of String).Channels(New String() {"Il_mio_canale"}).Execute()

 End Sub
 'callback per la gestione dei messaggi
 Private Sub IncomingMessagesCB(pn As PubnubApi.Pubnub, messageResult As PubnubApi.PNMessageResult(Of Object))
        If messageResult IsNot Nothing Then
            Debug.Print("In Example, SubscribeCallback received PNMessageResult")
            Debug.Print("In Example, SubscribeCallback messsage channel = " + messageResult.Channel)
            Debug.Print("In Example, SubscribeCallback messsage channelGroup = " + messageResult.Subscription)
            Debug.Print("In Example, SubscribeCallback messsage publishTimetoken = " + messageResult.Timetoken.ToString)
            Debug.Print("In Example, SubscribeCallback messsage publisher = " + messageResult.Publisher)
            Dim jsonString = messageResult.Message.ToString()
            Dim msg As Dictionary(Of String, String) = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Dictionary(Of String, String))(jsonString)
            Debug.Print("msg: " + msg("msg"))
        End if

    End Sub
   'callback per la gestione della presenza
    Private Sub IncomingPresenceCB(pn As PubnubApi.Pubnub, presencResult As PubnubApi.PNPresenceEventResult)
        If presencResult IsNot Nothing Then
            Debug.Print("In Example, SubscribeCallback received PNPresenceEventResult")
            Debug.Print(presencResult.Channel + " " + presencResult.Occupancy + " " + presencResult.Event)
        End If
    End Sub
    'callback per la gestione dello stato
    Private Sub IncomingStatusCB(pn As PubnubApi.Pubnub, statusResult As PubnubApi.PNStatus)
        If statusResult.Category = PubnubApi.PNStatusCategory.PNConnectedCategory Then
            Debug.Print(statusResult.Category.ToString)
        End If
    End Sub