Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - shordi

Pagine: [1]
1
Ieri ho scoperto che, non sapendo quale versione, il controllo della combobox è stato riscritto in gambas3. Da lì è stato facile modificare questo controllo per creare una casella combinata che viene visualizzata durante la digitazione e ricerca nell'elenco la corrispondenza più vicina al testo digitato, passando il valore selezionato quando si preme invio.
La ricerca è sfocata, quindi non importa se l'elenco è ordinato o meno (non sono sicuro se questo sia preferibile alla ricerca sempre in sequenza... ma penso che lo sia).

L'indizio di dove guardare mi è stato dato dal grande Gianluigi e da qui lo ringrazio.

Come sempre è molto poco testato, che l'impazienza di portarlo qui può farmi venire, quindi se lo provi e trovi dei bug te ne sarò eternamente grato.

Spero che vi piaccia e/o che vi sia utile.

Saluti

2
Vi presento una tecnica che ho sviluppato qualche tempo fa e che abbiamo usato nella mia azienda per gestire le macchine client.
Il caso è che distribuisci o installi da solo il tuo pacchetto di installazione sui computer dei client e all'inizio molto bene, ma poi, ad esempio, carichi nuove versioni nel repository e scopri che i client non hanno aggiornato il macchinari.

Devi aggiornare, ma questa è una questione di root

O per qualsiasi motivo, si desidera che la password immessa dall'utente nella propria applicazione corrisponda a quella presente nel sistema operativo.

Ma consultare quella chiave è una questione di root

Oppure hai sviluppato un "programma ausiliario" (copie di backup, ad esempio) che desideri installare anche sul computer del Cliente, che non sa come installare nulla e non comprende semplici istruzioni per telefono (non parliamo per iscritto).

Devi installarlo, ma è una questione di root.

Oppure vuoi controllare quale software è stato installato e ciò sta ostacolando il funzionamento del tuo programma e disinstallarlo se ciò viola il contratto che hai stipulato con esso.

Ma la disinstallazione è root

Bene, ti mostrerò come, dai miei programmi, eseguo azioni di root con sudo senza che mi venga mai chiesta la password.

Il trucco è:
Il sistema sudo consente il rilassamento di alcuni comandi in modo da non richiedere la password. Il più semplice che vedi ogni giorno: se esegui "apt update" sulla console, il sistema non lo consente e se lo fai con sudo ti chiede la password. Quindi, come diavolo fa il gestore degli aggiornamenti per dirti che ci sono aggiornamenti in sospeso? In che modo a quel programma non viene chiesta la chiave?

La spiegazione è: Sudo consente ad alcuni comandi specifici di avere "autorizzazioni speciali" quando eseguiti. Non darò ulteriori spiegazioni sull'argomento che San Gúgul ne sia pieno. Sappi solo che se individuiamo un file chiamato "sidi" con questo contenuto

Cmnd_Alias SIDI = /tmp/sididar
ALL ALL = (root) NOPASSWD:SIDI

Nella cartella /etc/sudoers.d, stiamo dicendo al sistema che il comando /tmp/sididar viene eseguito come root e la password non è richiesta. Sì, so che questo comando non esiste, ma lo faremo.
(A proposito, SIDI per Simón Dice e sididar per SImon DIce Do As Root)

Sulla base di ciò facciamo quanto segue:

A) FILE SIDI:

Creiamo questo file "sidi" con il contenuto sopra nella cartella .hidden del nostro progetto.
Quando creiamo il pacchetto di installazione .deb, sullo schermo 8 inseriamo questo:



Con questo, quando installi il nostro programma (a quel punto ti verrà richiesta la chiave di root, ovviamente), oltre a installare il nostro progetto, copierai sidi nella cartella di destinazione.

B) COMANDO / tmp / sididar
Una volta installato sidi, questo comando, chiamato con sudo, verrà eseguito senza password.
Questo comando è in realtà uno script di shell con il seguente contenuto:

#/bin/bash
$1

Cioè, basta semplicemente lanciare il primo parametro che riceve nella shell.

Immagino che tu abbia già l'idea: se crei in /tmp il file sididar con permessi di esecuzione e, ad esempio, digita

sudo /tmp/sididar apt update

Il sistema verrà aggiornato senza richiedere una password.

Di seguito è riportato un esempio che confronta la chiave digitata con la password dell'utente nel file /etc/shadow system che è root con 640 autorizzazioni

La copia di sidi in /etc/sudoers.d, è fatta al momento dell'installazione del programma tramite .deb sul computer (ovviamente per testarlo nell'IDE dovrai copiarlo tu stesso in quella cartella)

/tmp/sididar viene creato in fase di esecuzione per l'esecuzione del comando che ci interessa e viene rimosso immediatamente dopo per non lasciare "buchi" di sicurezza aperti.

Questo viene fatto da una funzione che ti ha passato all'interno di un modulo nel progetto di esempio e che ti consente di eseguire comandi ricevendo l'output della console in una variabile; esegui comandi ignorando l'output della console ed esegui i comandi in background (&) e continua con l'esecuzione del nostro progetto.

Questa tecnica è senza dubbio un buco nella sicurezza della macchina installata, ma non così grave come potrebbe sembrare.

Prima di tutto, se il comando /tmp/sididar non viene richiesto per la password, ciò non significa che possa essere utilizzato da qualcuno che non appartiene al gruppo sudo, quindi tutto ciò che viene eseguito con questa tecnica è qualcosa che lui Avrebbe potuto correre tranquillamente se stesso. Lo spazio risiede in quegli utenti che, appartenenti al gruppo di sudoer, hanno la loro sessione impostata in modo che non chiedano la password all'inizio, il che lascia il computer aperto a chiunque inizi a rovistare.
Può anche essere un problema per i computer fisicamente accessibili che un utente lascia sbloccato mentre va a colazione o altro.

D'altra parte, è una tecnica che ho inventato e che sto pubblicando qui per la prima volta, e quindi non nota al momento (anche se sospetto di aver reinventato la ruota) sebbene qualsiasi utente avanzato nel funzionamento di Linux (e caricato con cattive intenzioni il figlio di puttana) può indovinare guardando la cartella /etc/sudoers.d

In sintesi, una volta installato il sistema, la responsabilità della sicurezza ricade ancora di più sull'utente, che dovrà istruire e minacciare le pene dell'inferno se trascura la sua password o lascia aperto il dispositivo.

Naturalmente, i nostri programmi, con questo, diventano onnipotenti nella macchina in cui sono installati.

Scusa per il mattone.

3
Progetti degli utenti / Un nuovo controllo: TreeTable
« il: 17 Settembre 2019, 10:52:31 »
È un mix tra Gridview e TreeView che fa ... beh fa questo:



Cioè, riceve una query ordinata con "order by" e tratta il primo campo come una vista ad albero e il resto come una vista a griglia.

Ne avevo bisogno per un programma e l'ho fatto sotto forma di controllo ... anche se penso che non lo userò per nient'altro (non lo saprai mai)
Ho una versione modificabile all'ordine del giorno che supporta più livelli di Tree, non solo il primo campo.

Spero che lo trovi utile.

4
Progetti degli utenti / Un nuovo controllo: RtEditor. Editor RichText
« il: 12 Settembre 2019, 12:52:15 »
In realtà non è una novità, ho già caricato una versione precedente qualche tempo fa ma l'ho riscritta quasi da zero, quindi posso dire che è nuova. Come fa lo stesso dell'altro, e molte altre cose, perché posso inserire "Nuovo" nel titolo.
Non è né finito né stabile, ma ho raggiunto quel punto in cui la cosa principale è già stata fatta e un po 'catturata con spille e un pilota / i di prova, zero utenti, click martyrs, donatori di tempo, sarebbero molto apprezzati. curiosi irredentos ... mi capisci.



Cose che fa:
-Edita RichText, ovviamente, cioè per coloro che non conoscono il semplice HTML in cui la definizione degli stili è incorporata nel codice e non supporta, in linea di principio, nient'altro. Solo "Testo arricchito"
-Facile la formattazione del testo (allineamenti, caratteri, dimensioni, colori, formati, ecc.) Tramite barra dei pulsanti, menu contestuali e tasti di scelta rapida.
-Facilita una schermata di aiuto per i tasti rapidi, ovviamente.



-Supporta la creazione e la modifica di stili di testo predefiniti



-Consente la ricerca e la sostituzione del testo



-Consente il controllo ortografico del testo scritto e di quello scritto "al volo".
-Consente la modifica diretta di RichText con evidenziazione del colore



Ci sono cose che non mi piacciono e cose che vorrei inserire e non ho idea di come farlo, ma fondamentalmente fa già quello che voglio che faccia.
Il problema più grande che hai (se qualcuno sa come risolverlo, prometto di essere grato) è che si basa sul controllo TextEdit del componente gb.qt4.ext o gb.qt5.ext. Funziona perfettamente con entrambe le versioni, per quanto ho provato, ma ciò impedisce la generazione di pacchetti di doppia installazione per i nostri utenti. Cioè, o facciamo una versione del programma per qt4 o lo facciamo per qt5, oppure facciamo entrambe le cose e facciamo decidere all'utente, ma non c'è modo di usare gb.gui.qt che sarebbe l'ideale.

Questo problema, quando ho fatto programmi pensando di distribuirli a tutiplen dalla mia azienda, era qualcosa di serio e mi ha portato a sviluppare il controllo httpedit che fa lo stesso (quasi) ma per HTML e basato sul controllo WebView che può essere collegato a gb. gui.qt.

Tuttavia, la gestione di WebView si è rivelata una caraffa del diavolo che ho sbuffato e con i baffi rigidi: non voglio saperne di più su di lui. Ecco perché sono tornato al vecchio RichText, ho trascorso alcuni giorni per migliorare ciò che avevo già fatto e questo è ciò che è emerso.

Spero che lo trovi utile

5
Era una vecchia aspirazione che non avevo mai deciso di fare. Ora dovevo farlo come correprisas (l'ho iniziato ieri a mezzogiorno) e spero che non sia troppo "buggy" che direbbe uno Yankee.
Per quanto ho provato funziona benissimo, anche se ci sono molte opzioni da implementare (Seleziona dizionari diversi dalla lingua predefinita; esegui il debug del tipo e della quantità di suggerimenti che fai, ecc.) Ma penso che almeno sia già presentabile in modo che gli dai la canna ... e mi dici degli errori che ha, che li ha.
Si basa sull'utilità di GNU aspell ed è necessario affinché funzioni, a meno che tu non abbia l'ordinanza inglese, che installi il dizionario aspell della tua lingua (aspell-it è chiamato italiano).
Per quanto riguarda l'interfaccia ho fatto quello che potevo dare i limiti di lavorare con una casella di testo. Eventuali suggerimenti per il miglioramento saranno molto ben accolti.

Sto anche realizzando una versione dell'editor HTML che incorpora questa ortografia in un modo più bello (cambiando anche i colori e sottolineando la fonte, come "quelli reali"). Non appena lo avrò, lo passerò.
L'ho appeso anche alla fattoria di Gambas e sarà lì dove emergeranno le modifiche e i miglioramenti, il che è più semplice e tutti abbiamo accesso.

Spero che lo trovi utile.

6
Ho bisogno di uno script di shell che confronta le versioni
 
L'idea è: ho una directory A piena di pacchetti di installazione per programmi generati da gambas. Vale a dire:

miprogram_0.0.1-0ubuntu1_all.deb
elotroprograma_0.0.1-0ubuntu1_all.deb
altri programmi_1.0.4-0ubuntu1_all.deb
yotro.0.0.3-ubuntu1_all.deb

in un'altra directory B ho alcune nuove versioni

miprogram_0.0.2-0ubuntu1_all.deb
programanuevo_0.0.1-0ubuntu1_all.deb

Ho bisogno di uno script che copi le nuove versioni di B in A, che sia facile e che scopra se ci sono vecchie versioni e le elimino, il che è dove non chiarisco.
L'ho fatto a occhio per sempre, ma l'elenco cresce e cresce e diventa sempre più difficile.

A causa del suo ambiente è qualcosa che non può essere risolto con Gambas, deve essere uno script di shell.


Saluti

7
In realtà avevo bisogno di un editor Richtext e qualche tempo fa ne ho creato uno basato sul controllo textEdit, ma il controllo textEdit si trova nel componente esteso di qt4 o qt5 e non c'era modo di generare correttamente i pacchetti con esso, quindi ho creato uno basato sul controllo webview, che si trova nel componente gb.gui.qt.webkit ed è valido per qt4 e qt5.
Formatta il testo, cancella e seleziona caratteri, colori, stili predefiniti, rientri, ecc.
Supporta anche collegamenti e immagini, ecc.
Solo HTML, non eccitarti troppo. Nessun javascript o php o cose del genere.

Sembra così:


L'ho usato soprattutto per inviare e-mail da Gambas.
Spero che lo trovi utile

Saluti

8
In quasi tutti i miei progetti, di solito associo una cartella FTP a ciascun registro del database. Se hai un cliente e sei un avvocato, avrai documenti, assicurazioni. Se sei un'associazione, avrai il modulo di affiliazione, la fotografia, l'autorizzazione bancaria, se si tratta di un progetto contabile, ti verranno inviate le fatture dai clienti ... qualunque cosa.
Il server FTP non è un problema quando sei un'azienda, né dovrebbe esserlo quando sei un professionista ... Ho già caricato sul forum cose relative all'FTP ma non ho avuto molte risposte perché, immagino, non è un campo che tocca molto al di fuori del campo professionale e le persone di solito non hanno accesso ai server FTP.
Pertanto, ho impostato per l'uso e mi godo un server FTP nel caro RaspberryPi e con quello come supporto ti permetto di presentare il controllo FTPView.
Come tale controllo puoi includerlo in qualsiasi finestra di qualsiasi forma e passandogli i parametri appropriati avrai una finestra FTP associata a ciò che desideri. Come nel corso degli anni ho dovuto affrontare molte diverse esigenze e situazioni, ho aggiunto opzioni e più opzioni (ho già detto da qualche parte che mi piacciono i controlli complessi) e ora funziona, a parte i bug, per la mia soddisfazione.
Nel progetto Test che lascio qui, vengono toccate quasi tutte le opzioni di configurazione del controllo in tempo reale. Il suo aspetto iniziale è questo:

e semplicemente cambiando la proprietà Orientation, ad esempio, diventa questa:

In tutte le opzioni ho inserito ciò che fanno nella descrizione comando (tooltip), quindi posizionando il cursore su di esse dovrebbe essere chiaro.
Come sempre mi capita, per estrarlo dal suo contesto e semplificarlo per la pubblicazione, tocco molte cose e può essere pieno di bug. Se riesci a isolarne uno, apprezzerei molto il feedback. Con l'equipaggiamento che fabbrichiamo tra loro, lo porterò alla fattoria quando sarò abbastanza maturo.
Incorpora traduzioni di Google in inglese e italiano. Se ci sono errori, anche tu mi dici: "Che Google non è perfetto."

Spero che lo trovi utile

saluti

9
Ho creato un risponditore automatico di posta POP3 per il forum di gambas. Mi ci è voluto un giorno intero e mi sono divertito molto a farlo. Spero vi piaccia.
saluti
https://translate.google.es/translate?sl=es&tl=it&u=https%3A%2F%2Fforo.gambas-es.org%2Fviewtopic.php%3Ff%3D5%26p%3D45749%23p45749

Pagine: [1]