
A solo un mese dal rilascio della versione 0.2.3 procede a ritmo serrato lo sviluppo di imel giunto alla versione 0.2.4. Le novità al contrario di quanto si possa pensare. dato il poco tempo passato tra le due versioni, sono tante.
Tra le più importanti ritroviamo il supporto a pkg-config così da poter compilare staticamente senza dover scrivere manualmente tutte le librerie, possibilità di tracciare un ellisse e disegnare un cerchio, in più reso possibile il disegno di una linea o una curva con un’immagine così da poter realizzare l’effetto “pennello” presente in molti programmi di grafica e tante altre funzioni.
E novità più importante di tutte: aggiunto il supporto al formato BMP.
Il Changelog con tutte le modifiche dettagliate.
Colgo l’occasione per annunciare la partecipazione di una persona oltre a me a questo progetto: Simone “Skary” Scarinzi, per il momento ha aiutato nella creazione della funzione per il disegno di un ellisse ma per le prossime versioni ci regalerà altre funzioni riguardanti il disegno
Link pacchetto – Link documentazione
P.s.: Il servizio HImages è stato aggiornato per avere il supporto alle bmp.
Non scrivo da tempo sul blog, ultimamente ( specialmente le persone con cui chatto di solito ) avrete notato che son sparito dalla circolazione. Oltre ad avere poco tempo ( lo so è una scusa stupida ) avevo voglia di staccare un po’ la spina, ed è quello che ho fatto. Nelle ultime settimane ho utilizzato il computer solo per programmare qualcosina, rispondere a qualche e-mail e per ascoltare musica.
Comunque programmando poco per volta è nata sotto le mie mani la nuova versione di Imel, tra le novità principali un supporto alla trasparenza migliorato generalmente e anche il suo supporto alle immagini png che ora vengono lette e salvate anche con la trasparenza. Altra novità importante è la riscrittura della funzione per disegnare una linea che non si basa più su quella per disegnare una curva ma utilizza un suo algoritmo molto più snello, semplice e veloce. Altre novità le potete leggere nel ChangeLog.

Link al pacchetto - Link Documentazione
Proprio poco fa stavo parlando in chat con Dani, mentre io insultavo quelli che hanno creato la strcmp ( in quanto se gli si passa uno dei due parametri a NULL fa andare il programma in Segmentation Fault che è una bellezza ), mi ha detto che la strcmp oltre a fare il semplice confronto tra le due stringhe restituisce anche la differenza tra i caratteri, e proprio per questo lui l’aveva utilizzata per riordinare alfabeticamente i pacchetti in slackyd.
Allora non sapendo questa cosa da niubbo della situazione mi son messo a fare un test:
1
2
3
4
5
6
7
8
9
10
11
| #include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
if ( argc < 3 ) return 1;
printf("Diff: `%d'\n", strcmp(argv[1], argv[2]));
return 0;
} |
Benissimo lo vado ad avviare e mi restituisce solo 0 ( uguali ), 1 o -1 ( non uguali ).. dopo vari attimi di stupore da parte sua, va a provare lo stesso identico codice e le stesse identiche stringhe passate come parametro sul suo computer e la funzione lì restituiva davvero la differenza tra le due stringhe!
Ora mi domando cosa renda così variabile una funzione standard che dovrebbbe avere lo stesso funzionamento su tutti i computer del mondo. La versione delle libc comunque era uguale giusto per cronaca. Da notare comunque anche che ho provato la strcasecmp che non dovrebbe far parte del C Standard, e restituisce la famosa differenza tra le due!
? Mah..
P.s.: Altra cosa che mi fa incazzare, se si passa un parametro null alla strcmp, o all’atoi perchè cavolo mi deve compromettere tutto il programma? cosa gli costa a quelli che hanno scritto la gnu c library mettere due piccolissime macro del tipo:
1
2
3
4
5
6
| #define return_if_fail(cond) if ( !(cond) ) { \
return; \
}
#define return_val_if_fail(cond, val) if ( !(cond) ) { \
return (val); \
} |
per controllare che i parametri non siano nulli? BAH!
Io mi domando il perchè certa gente si metta a implementare qualcosa in una libreria considerata con i controcazzi, che non funziona! Ultimamente sto cercando di implementare in Jeex ( l’editor esadecimale che ormai tutti conoscerete, lo trovate comunque nella sezione progetti di hds619.net ) la gestione di più file in Schede, tutto ok dopo qualche momento di Segmentation Fault e errori con la realloc alla fine “ce l’ho fatta”, diciamo, a fare qualcosa con la creazione dei nuovi file, per l’apertura ci devo ancora guardare, ho dovuto riscrivere praticamente tutto il nucleo principale.
Ma vabbè a sto punto vado a fare un pò di prove nel gestire più schede e le informazioni sui vari byte e nella status bar, sorpresa non funzionano appena aggiungo una scheda! Ad esempio seleziono il byte 31 nella scheda 1 e non fa niente, vado nella scheda 2 o altre e mi dà le informazioni su quel byte, la stessa cosa con altre schede. Dopo del sano controllo di ogni singola variabile fino all’esaurimento nervoso scopro che la funzione gtk_notebook_get_current_page mi restituisce non la scheda corrente in cui sto ma quella precedente in cui stavo!
Da esaurimento.. con sto caldo poi.. meglio prendersi una pausa.
Ebbene si, ero un fan di emacs lo ammetto.. ma da oggi son passato all’altra sponda con VIM, dopo segnalazione e tanto esaurimento da parte di Ccjh , mi son messo a vedere un poco gvim.. prima impressione non buona, dato che l’evidenziazione era quella standard e lavorando con le Gtk+ si vedeva per la maggior parte in bianco e nero. Dopo un po’ sempre Ccjh, mi segnala questo pacchetto, lo “installo” riapro vim e attivo la sintassi… Non credevo ( e non credo tutt’ora ai miei occhi )!
La sintassi colorata in modo perfetto, possibilità di aggiungere funzioni, tipi, macro e quant’altro in modo velocissimo, la gestione di più file in TAB e alcuni strumenti presenti in emacs come la ricompilazione di sorgenti e roba varia. C’è anche la possibilità di salvare sessioni di lavoro e ripristinarle in modo velocissimo. Devo dire che mi piace proprio =D
Ora mi sta esaurendo per farmi leggere questo pdf.. si vedrà
per il momento GRAZIE !
Usando la shell a volte ci si imbatte in comandi come ls che producono ( anche se si può disattivare ) un output colorato dipendentemente dal file. Nell’applicazione però sorge qualche dubbio sul come fare a far i colori, c’è chi parla delle ncurses, c’è chi parla di funzioni non standard come printc e c’è, infine, chi come me vi dice che tutto ciò si può realizzare senza nessuna libreria.
Il funzionamento sui colori in realtà non l’ho capito bene nemmeno io ( cioè l’associazione numero|colore che ho visto avviene un pò a caso ) ma alla fin fine funziona. Alla fine di questa mia piccola guida si potranno fare voci in grassetto, sottolineate, colorate oppure con sfondi di altri colori senza alcuna libreria aggiuntiva se non quella standard di input\output.
Prosegui la lettura…
Commenti recenti