News:

è disponibile MX Linux 23 basata su debian 12 >>> clicca qui

Menu principale

creare un programma per controllare plank

Aperto da 511break, Giovedì 10 Aprile 2014, 15:19:15

Discussione precedente - Discussione successiva

511break

ciao a tutti! Mi sono deciso finalmente ad iniziare un po' il discorso programmazione su linux.  :good:
Sto anche progettando una distribuzione e vorrei tanto imparare a creare qualcosa di mio al 100%
Ho fornito la mia distro con Plank una dock molto semplice (immagino che la conoscete già bene).
Esiste un file dove ci sono i parametri di plank (posizione, tema, 3D o 2D etc...) che già so modificare manualmente. Ora mi servirebbe creare un programmino con una GUI che sia in grado di entrare in quel file con i parametri, modificare le righe corrette e in fine salvare il tutto. Non so con cosa crearlo quindi vado su scatola chiusa. Qualcuno sarebbe disponibile a spiegarmi con calma come fare tutto questo ? Grazie mille  :) PS: ho consigliato questo forum a qualche fiera con stand linux (ne faccio parte) e molti utenti sono veramente contenti di voi ! Great job  ;)

arkanoid

Per indirizzarti, ti faccio alcune domande:

Hai mai programmato prima d'ora?
Vuoi imparare a sviluppare in modo serio o ti basta un applicativo scritto anche malaccio ma che funzioni?
Qualcun'altro dovrebbe/potrebbe metter mano al tuo codice in futuro?

511break

Non ho mai programmato (se non in vb ma non lo definisco programmazione) comunque si vorrei imparare seriamente . L'idea di plank era perché mi sarebbe servita ma vorrei fare le cose fatte bene perché sarà anche un mio futuro lavoro . Per quanto riguarda l'ultima domanda non mi dispiacerebbe che qualcuno potesse reperire il codice sorgente soprattutto se un domani farò cose interessanti . Il bello della comunità è proprio questo :)

evilwillneverdie

Se si tratta di mettere insieme un gruppo di dilettanti allo sbaraglio a scopo didattico-e-poi-in-futuro-chissà la mia incapacità è al vs servizio insieme alla mia voglia di imparare e contribuire.... :)

511break


evilwillneverdie


Harald


Dell XPS17, Intel Core i7-2630QM, 6,1GB di ram, skgrafica Intel Tungsten Graphics+NVIDIA 555m(3GB), HD 500GB

evilwillneverdie

Ok, a parte il fatto che c'è già (ma in fondo è pieno di cloni nel mondo Linux, anche a livello di distro, quindi si potrebbe fare comunque) la mia offerta di aderire ad un gruppo didattico è sempre valida, se qualcuno è interessato.

511break


arkanoid

Allora... Spendo due parole sperando di essere utile...

Diciamo che prima di arrivare ad un bel programma scritto in GUI, ci sono un po' di passi da fare. Non spaventarti per questa lista, perchè son solo dei gradini, se trovi la passione riesci a progredire anche abbastanza velocemente. Sulla rete trovi poi materiale a sufficienza,,

1) Capire bene "su carta" la logica della programmazione procedurale (variabili, selezioni, cicli, funzioni) e allenarsi quindi nel risolvere algoritmi in modo "trasversale", non legato ad uno specifico linguaggio.

2) La programmazione ad oggetti è molto utile; non è indispensabile, ma se vuoi raggiungere un alto livello è consigliato lo studio di questo approccio (astrazione, polimorfismo, ereditarietà, overloading, overridding, il concetto di classe ecc.).

A questo punto, assodate le base teoriche, puoi passare allo studio di un linguaggio. Quale scegliere poco importa, ovviamente cerca qualcosa che sia Open Source e offra dei tool usabili sulla tua distribuzione. Visto che vuoi sviluppare applicazioni desktop, evita quelli specifici come PHP (Web), VB (Windows).

Il mio consiglio è quello di acquistare un buon libro che parta dalle basi per poter in questo modo assodare ciò che hai studiato in precedenza. Se ci fai caso, ogni testo generico (ma serio) spinge (non a caso) le interfacce grafiche verso gli ultimi capitoli.

Anche progettare le GUI è un arte, per questo diffida di simili strumenti:

1) Gambas. Non lo conosco bene, ma a quanto so è una specie di "VB linuxizzato". Ergo, fai a finta che non te l'ho nominato...
2) Designer e RAD (mi viene in mente wxGlade per Python). Questi tool producono codice sporco, poco razionalizzato e scarsamente manutenibile. In applicazioni medio/grandi, la scarsa efficienza può essere di ostacolo: se poi in un futuro qualcuno deve mettere le mani in tali sorgenti... Lasciamo perdere...

So anch'io che l'approccio "alla Windows" di disegnare le interfacce con il mouse è comodo e semplice. Tieni presente che così però non capisci la logica che sta dietro a simile meccanismo e hai quindi questi risultati:

1) Il codice non lo scrivi tu e difficilmente riesci a metterci mano.
2) Se le librerie grafiche si aggiornano e cambiano strumenti, devi aspettare un update (se mai ci sarà...) degli strumenti che ti aiutano nel punta e clicca.
3) Il codice non è scritto da una persona in carne ed ossa ed è quindi poco logico.
4) Non impari niente e non riesci a muoverti da solo e a mettere mano a programmi scritti da altri.

Citazione di: Break511 il Giovedì 10 Aprile 2014, 20:01:17
Non ho mai programmato (se non in vb ma non lo definisco programmazione)

È un bene da un punto di vista, perchè potresti avere le basi teoriche e universali che anch'io ho acquisito quando mi hanno inculcato questo "linguaggio".

Tieni presente però che in altri linguaggi difficilmente troverai il "punta e clicca" in stile Visual Studio. Se vuoi programmare bene, anche le GUI vanno costruite, studiate e implementate usando la testa.

Penso di aver detto tutto. Ti auguro solo un buon lavoro... Il segreto per progredire, non è pensare al risultato ma alla correttezza dei mezzi utilizzati per raggiungere uno scopo.

A sostegno di tutto questo poema, ti racconto un episodio a me capitato poco tempo fa. Ho avuto un colloquio come programmatore .NET. E, nonostante l'avessi studiato a scuola, sai cosa ha colpito di più i miei interlocutori? Il fatto che avessi imparato da solo i principi della programmazione ad oggetti grazie allo studio di Python e delle librerie Wx.

Questo per farti capire che qualsiasi sforzo messo in pratica, porterà (prima o poi) i risultati sperati.

Metelliano

Lezione n. 1:
Avete letto il post di arkanoid?
Avete ancora il desiderio di imparare?
Bene!

Domani continueremo con la lezione n. 2
:rofl: :rofl: :rofl:

PS
Scherzo, eh?!  ;)

Nella propria vita un uomo è tale solo per pochi istanti.

diogo

Citazione di: Metelliano il Sabato 12 Aprile 2014, 12:20:48
Lezione n. 1:
Avete letto il post di arkanoid?
Avete ancora il desiderio di imparare?

Io non ho mai avuto quel desiderio,ma ora che ho letto il post di arkanoid,anche se ce l'avessi avuto ,mi sarebbe passato..... ;D ;D

511break

Bene mi metto al lavoro! Quel papiro di roba è stato più che utile e concordo pienamente che il "precotto" (così lo definisce uno che conosco ) non serve a niente, per imparare è sempre meglio fare tutto da se e rifiutare la semplicità. Potrebbe diventare difficoltà in futuro   :coffee:

evilwillneverdie

Io quel desiderio ce l'ho ancora. Non so come scrivere codice ma so come nasce e si sviluppa un SW perché fa parte del mio lavoro, anche se in ambito automazione e sistemi industriali. Ovviamente non mi butterei mai da solo in una cosa del genere, per questo cerco di aggregarmi ad un gruppo, che dovrebbe essere il più eterogeneo possibile per esperienze, formazione e preparazione, altrimenti il rischio per me sarebbe di non essere mai in grado di rispettare il ruolino di marcia del gruppo, ad esempio. La ragione per cui vorrei farlo è che, come già ho spiegato a Break, collaboro con amici che fanno volontariato in America Latina, in particolare in Venezuela, e Linux è uno dei mezzi che usano, ma nessuno di loro è uno specialista, sono insegnanti elementari o cose del genere, e mi piacerebbe acquisire più capacità possibile per sostenerli e aiutarli e magari imparare anche a mettere insieme (attingendo ovviamente a ciò che è già disponibile e magari andando ad operare nel codice se necessario) delle suites educative che possano aiutare questi ragazzini a studiare con i pochi mezzi di cui dispongono. Magari rimarrà un volo di fantasia, ma se devo impegnarmi per qualcosa credo  che non ci sia stimolo più efficace di questo a sostenermi. Inoltre lavorando, tra l'altro in giro per il mondo, non sarei in grado di dedicare ad un progetto una quota di tempo costante nell'arco dell'anno, quindi per forza di cose potrei farlo solo all'interno di un gruppo abbastanza esteso e solido da potersi sostenere da solo anche se per una settimana o due non riesco a dedicarmi alla cosa. Quindi io ribadisco che la mia incapacità è disponibile se qualcuno vuole unire le forze per imparare, e ovviamente la mia riconoscenza a chiunque mi aiuterà a farlo.

arkanoid

Citazione di: Metelliano il Sabato 12 Aprile 2014, 12:20:48
Lezione n. 1:
Avete letto il post di arkanoid?
Avete ancora il desiderio di imparare?
Bene!

Domani continueremo con la lezione n. 2
:rofl: :rofl: :rofl:

Beh, non è solo un post goliardico :D. Diciamo che il leggere e cercare di imparare ovunque, sono importanti per riuscire a programmare bene.

Perchè prima di imparare la sintassi del codice, occorre capire e imparare come ragionare per organizzare il lavoro.

Con un tempo, pazienza e passione si riescono a raggiungere notevoli risultati.

evilwillneverdie

Citazione di: arkanoid il Venerdì 09 Maggio 2014, 23:15:55
Citazione di: Metelliano il Sabato 12 Aprile 2014, 12:20:48
Lezione n. 1:
Avete letto il post di arkanoid?
Avete ancora il desiderio di imparare?
Bene!

Domani continueremo con la lezione n. 2
:rofl: :rofl: :rofl:

Beh, non è solo un post goliardico :D. Diciamo che il leggere e cercare di imparare ovunque, sono importanti per riuscire a programmare bene.

Perchè prima di imparare la sintassi del codice, occorre capire e imparare come ragionare per organizzare il lavoro.

Con un tempo, pazienza e passione si riescono a raggiungere notevoli risultati.
Sono d'accordo...sarebbe già bello iniziare ad imparare a pacchettizzare SW magari esistenti per altre distro o cose di questo genere, uno affronta le proprie difficoltà quotidiane e poi rilascia la soluzione a disposizione della comunità...il problema credo sia il kick off, poi si vede subito se sei portato e allora vai in progressione, o se invece si trattava di una infatuazione momentanea...

arkanoid

Per la pachetizzazione non serve saper programmare. Questo perchè tu fai 'da ponte' tra chi sviluppa software e la distro. Non male come idea per contribuire :)...

evilwillneverdie

Beh, la cosa mi attira, tanto per iniziare e dare il mio contributo ad una community che mi ha dato e continua a darmi tanto ogni gg...

Harald


Dell XPS17, Intel Core i7-2630QM, 6,1GB di ram, skgrafica Intel Tungsten Graphics+NVIDIA 555m(3GB), HD 500GB