Archivi categoria: video

Programmare da zero | Imparare a programmare per principianti

Per me sono stati i videogiochi: è sempre colpa dei videogiochi. Non volevo semplicemente giocarli, volevo costruirli. E così ho capito che dovevo studiare come funzionano i computer i programmi. Perché i videogiochi sono tra i programmi più complessi, costosi e difficili da realizzare. Poi la vita è sempre ricca di sorprese e ora della fine non programmo videogiochi ma sono comunque diventato un programmatore 😊

Per te potrebbe essere l’automazione, la robotica, la domotica, i chatbot… Comunque sei qui a chiederti: come programmare da zero? Come si inizia a programmare?

Ecco qualche linea guida su come approcciarsi al vastissimo mondo della programmazione. Questo mondo è così ampio che è impossibile trattare tutto in un solo articolo.

Cos’è un programma?

Un programma non è altro che un insieme di istruzioni codificate in modo comprensibile per un pezzo di ferro (cioè Silicio, di cui sono fatti i circuiti dei PC) che prendono degli input e danno un output. Pensa per esempio a quella parte del sistema operativo (windows, mac o linux che sia) che trasforma il movimento del tuo mouse in una freccia che si muove sullo schermo.

Quale linguaggio di programmazione scegliere?


Per scrivere un programma serve un linguaggio di programmazione. Ce ne sono tantissimi, divisi in categorie, e ognuno è progettato per uno scopo preciso. Non c’è quindi in generale un linguaggio migliore, dipende sempre da cosa dobbiamo fare. Se dobbiamo fare pezzi di un sistema operativo molto probabilmente lavoreremo in C o C++. Programmi per gli smartphone con Java, C#, Swift, Objective-C. SQL se dobbiamo interagire con le basi di dati relazionali. Python è molto usato per le elaborazioni numeriche e data science.

Quindi in base al tuo progetto sceglierai lo strumento (linguaggio di programmazione) che ti metterà a disposizione le funzionalità più adeguate.

Per imparare a programmare, per conoscere le basi, i linguaggi più idonei sono quelli che mettono a disposizione la miglior documentazione e i cui strumenti siano facili da reperire e gratuiti.

Come imparo a programmare?


Per imparare a programmare ci sono moltissime opzioni on-line: i produttori di strumenti di sviluppo stessi, nei loro siti, mettono a disposizione tutorial e materiale per iniziare. Puoi quindi procedere da autodidatta, scenario che nel mondo della programmazione è molto comune. Ci sono corsi di formazione in campus sia fisici che remoti. Si spazia anche passando per corsi serali.

Non è necessario essere dei mostri in matematica (come spesso si pensa): la matematica è utile ma diventa davvero necessaria quando si devono scrivere programmi come motori di calcolo fisico o programmi a supporto di ricerca scientifica.

La maggior parte dei programmi, tuttavia, consiste nel prendere dati da uno schermo/tastiera/mouse/tocco/penna, salvarli da qualche parte e recuperarli in un secondo momento.

Costruiamo il primo programma insieme

Ma ora basta con le chiacchiere, ti mostro come creare il tuo primo programma dallo zero totale, in dieci minuti (più o meno, a seconda della velocità del tuo computer).

Il momento migliore è adesso!

“Non ho tempo” “Comincio la settimana prossima” “Ho altre cose più urgenti da fare” Tutti abbiamo detto a noi stessi qualcosa di simile quando si tratta di fare qualcosa di nuovo, diverso o fuori dalla propria zona di comfort. Però il momento migliore per agire è ADESSO e in questo video dico la mia sull’argomento 😄

Kubernetes ConfigMap per la configurazione delle app

La configurazione delle applicazioni è, di norma, gestita con dei file di configurazione che i programmi leggono in fase di boot o runtime.

Come si gestisce questo tipico scenario in ambito Kubernetes? In questo video spiego brevemente cosa sono le ConfigMap e come utilizzarle con un piccolo esempio.

In questo esempio la ConfigMap con nome myconfigini è creata a partire da un file di testo con lo switch –from-file.

kubectl create configmap myconfigini --from-file=.\tmweb\config\MyIniConfig.ini

Qui di seguito riporto il manifest YAML con il deployment con ConfigMap mostrato nel video. La configMap viene usata facendo il mount di un volume. Tale volume viene definito nella sezione spec del template e referenziato nella sezione container colla sintassi volumeMount.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: tm-tmweb
  labels:
    app: tmweb
    chart: tmweb-0.1.0
    draft: draft-app
    release: tm-tmweb
    heritage: Helm
spec:
  revisionHistoryLimit: 0
  replicas: 1
  selector:
    matchLabels:
      app: tmweb
      release: tm-tmweb
  template:
    metadata:
      labels:
        app: tmweb
        draft: draft-app
        release: tm-tmweb
      annotations:
        buildID: ""
    spec:
      volumes:
      - name: config-volume
        configMap:
          name: myconfigini
      containers:
        - name: tmweb
          image: "tmweb:mini"
          imagePullPolicy: IfNotPresent
          volumeMounts:
          - name: config-volume
            mountPath: /app/config
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
          resources:
            {}