Pàgina web personal de Fran Rojas


APLICACIONS

AQUESTA PÀGINA NECESSITA JAVASCRIPT PER A FUNCIONAR

Calculadora multiprecisió


v1.0.2



v1.1



v1.2


Efecte lent


v1.1


v1.2


v1.3


Java File Encoder (encriptador)


v1.0


v1.1


v1.2


v1.3



v1.4



v1.5


Sincronització de subtítols


v1.0


v1.1


Sincronització d'audio


v0.5


Filtrat de fulles de càlcul de Google


v0.5


Chess PDF browser

( Lloc web de ChessPdfBrowser )

v1.0



v1.1



v1.11



v1.20


pdf2pgn


v1.20


Encriptació de texts (Textcrypt)


v1.0


v1.0.2


v1.3


v1.4



v1.5



v1.6


Instrumental Music


v1.0



v1.1


Llibreries de plataforma


v1.0



v1.1



v1.2



v1.3



v1.4


Icones


v1.0


Pdf Inspector


v1.0


Donut


v1.0





Es tracta d'una de les meves primeres aplicacions programades en Java.

Vaig crear una llibreria que feia càlculs de precisión configurable fent ús de la classe BigDecimal. En concret, la llibreria implementa les funcions matemátiques principals acceptant números de tipus BigDecimal i acceptant també la precisió desitjada.

L'aplicació final disposa d'una caixa de text on es poden escriure les operacions que es volen calcular. També permet guardar funcions i variables.

La interfície d'usuari es molt simple i amb alguns errors que fan que sigui una mica tediós utilitzar-la. Tinc pensat programar una nova versió que millorarà una mica aquesta carència.

La manera interna de funcionar, es que quan s'escriu l'operació que es vol calcular, llavors l'aplicació realitza una anàlisi del text introduit i guarda en memòria aquesta operació en forma d'arbre. D'aquesta manera es poden guardar fórmules, perque es pot guardar l'arbre en funció d'una o més variables. Després d'haver obtingut l'arbre d'operacions s'evalua recursivament el resultat i després de finalitzar es mostra el resultat total.

És una nova versió de la calculadora multiprecisió.

Objectius:

L'excusa principal d'aquesta nova versió ha sigut implementar un derivador algebràic.

La idea d'aquesta funcionalitat ve de lluny, quan un professor a l'institut ens va proposar de participar al concurs anual de software presentant una aplicació que permetés derivar.

En aquella ocasió no vam arribar molt lluny al projecte, però amb aquesta versió de la calculadora, gairebé 30 anys després, arriba l'aplicació que deriva :-).


Hi ha un ampli manual on s'explica el funcionament de la aplicació.

Nova versió de la calculadora multiprecisió.

Objectius:


Hi ha un ampli manual on s'explica el funcionament de la aplicació.

La petita aplicació efecte lent va aparèixer com a resultat t'una Setmana Santa sense plans.

Per aquelles dates jo estava acabant de programar la primera versió de l'encriptador (File Encoder Application), i necessitava alguna cosa vistosa per a l'opció "Sobre l'aplicació ..."

La idea original no és meva, si no que la vaig implementar seguint un efecte que havia vist en una d'aquelles legendàries demos de DOS.

La forma d'implementació escollida va ser encapsular l'efecte dins d'un JPanel de Java swing.

Tot el que es fiqui dins del panel, pot ser "ampliat" amb la lent, que pot ser posada a les coordenades que s'escullin.

Va ser especialment costós aconseguir que els refrescos dels components de text (en concret quan es modifica la ubicació del text seleccionat), no afectés negativament a l'efecte visual.

Internament, la manera de funcionar és que quan es crea el LensJPanel, se li passa el JPanel que té el contingut al que es vol fer l'efecte, el radi de la lent i si serà una lent d'ampliació o de disminució.

Com tenim el radi i si la lent serà d'ampliació o de disminució, es crea una matriu quadrada de dues dimensions, amb un element per cada pixel del quadrat que conté la lent.
Per a cada un d'aquestos píxels (píxel destí), es calculen las coordenades de la imatge original (píxel origen) d'on s'haurà d'agafar el color per quan es faci la transformació.
La transformació és senzilla, això sí, en coordinades polars. Ara explicaré aquesta transformació pel cas de lent d'ampliació:
Per a una posició determinada del quadre de la lent, es calcula un píxel del que es recollirà el color quan s'hagi de fer la transformació. Aquest píxel, estarà també dins del quadre de la lent. A més, per a un píxel determinat, es calcula el radi (desde el centre de la lent) i l'angle.El píxel "origen" pel píxel que estem calculant tindrà aquest mateix angle, però canviarà el radi. El radi sempre varia del 0% al 100%, tant pels píxels "origen" com pels píxels "destí", on el 100% és la longitud del radi de la lent. És a dir, per a cada píxel destí, per a calcular el seu píxel origen, es manté l'angle i el radi es transforma, utilitzant una función amb derivada monòtona creixent en l'interval entre 0 i 1, on f(0) tindrà un valor de 0 i f(1) tindrà un valor de 1, on 0 es el 0% del radi de la lent i 1 es el 100% del radi de la lent. Això voldrà dir que els radis prendran el seu píxel origen d'un radi menor, cosa que farà l'efecte de que a prop del dentre de la lent s'amplia la imatge. Fora del cercle de la lent, la transformaciò serà la identitat (és a dir, els píxels destí en aquesta zona, seran iguals que els píxels origen).


L'explicació ha quedat una mica confusa, però si t'interessa el tema, te pots posar en contacte amb mí.

Espero que a algú li sigui d'utilitat :-)

La nova versió de l'aplicació obre una finestra gràfica circular amb la lent que es pot moure fent click amb el ratolí i arrossegant.

Es poden veure un parell de problemes:

La nova versió de l'aplicació corregeix un error de transparència que es produïa a entorns Mac i Linux.

També millora el problema del pixel.lat que hi havia a les versions anteriors.

Això s'aconsegueix passant a la imatge de la lent un filtre de suavitzat gaussià que fa un efect de difuminat i disminueix l'efecte de pixel.lació de l'ampliació.

La última subversió disponible d'aquesta versió, funciona tant amb Java-8 com amb Java-11.

Aquesta aplicació va aparèixer amb la necessitat d'encriptar arxius amb un mètode propi.

Permet encriptar arxius d'una manera molt configurable, permetent obtener formes d'encriptació realment costoses en temps (cosa que dificulta els atacs per força bruta), que poden ser utilitzats per a encriptar arxius petits.

Hi ha un manual d'usuari bastant extens, en el que s'expliquen tots els detalls del funcionament, tant de cara a l'usuari com intern de l'aplicació.

Aquesta nova versió de l'aplicació va sortir degut a que la nova versió de JRE d'aquella època va afectar a l'aspecte visual de l'aplicació v1.0. Per això va aparèixer aquesta versió, per intentar solucionar aquests problemes.

El manual d'usuari no va canviar amb aquesta versió i es va mantenir el mateix que per a la versió anterior.

A aquesta versió de l'aplicació es van fer un parell de canvis:

Hi ha un manual d'usuari específic d'aquesta versión, on s'expliquen tots el detalls.

A aquesta versió s'han fet diferents canvis:

Hi ha un manual d'usuari específic d'aquesta versió, al que s'expliquen tots els detalls.

Aquest versió ha aparegut per a intentar evitar un error que apareixia per la interacció amb una nova funcionalitat de Java-9, que tracta amb pantalles d'alta densitat de píxels.

També s'inclou suport per a Maven.

Hi ha un manual d'usuari específic d'aquesta versió, al que s'expliquen tots els detalls.

L'objectiu d'aquesta versió és afegir la consulta de nova versió per a tenir una estadística de quanta gent fa servir l'apliació.

S'afegeix l'opció de mode obscur

Hi ha un manual d'usuari específic d'aquesta versió, al que s'expliquen tots els detalls.

Aquesta és la primera versió d'una petita aplicació en Java que permetia ajudar a sincronitzar els subtítols aplicant un factor temporal als arxius de subtítols de tipus (.srt).

L'aplicació autodetecta el joc de caracters de l'arxiu de subtítols i permet escollir un joc de caracters per a generar l'arxiu de sortida (o utilitzar la codificació detectada durant la lectura).

A aquesta versió es van afegir diverses coses:

Això fa que, prèviament coneixent els valors de retard i factor, es puguin sincronitzar perfectament vídeo i subtítols.

Aquesta aplicació d'interfície de comandes programada en C++, permet l'aplicació d'un factor temporal als arxius d'audio.

Aquesta operació implica que els arxius d'audio d'entrada i de sortida, tindran tamanys diferents (i duració diferent).

La manera de realitzar aquesta transformació, es mitjançant la interpolació de senyals digitals.

Hi ha un ampli manual que parla de l'aplicació i del seu funcionament intern.

Aplicació programada en Java que permet connectar-se a Google Drive i llegir una fulla de càlcul.

Després d'això, l'aplicació col-loca les dades en una JTable i en permet fer un filtrat.

Hi ha un ampli manual en castellà que explica pas a pas com configurar l'aplicació.

La Chess PDF Browser és una aplicació programada en Java que permet navegar per llibres d'escacs en format PDF.

També permet treballar amb arxius de partides en format .pgn.

Mostra un taulell d'escacs on es pot navegar per les partides.

Permet obrir llibres d'escacs en PDF i extreure les seves partides, per a poder guardar-les en format .pgn

També es poden editar les variant de les partides que té a la memòria (bé llegides de .pgn, extretes d'un PDF, o bé creades directament movent les peces del taulell.

Hi ha un ampli manual on s'explica el funcionament de l'aplicació.

Amb la nova vesrió de l'aplicació, s'han corregit diversos errors, i s'han afegit algunes noves característiques:

Hi ha ampli manual on s'explica el funcionament de l'aplicació.

Amb la nova vesrió de l'aplicació, s'han actualitzat els manuals d'usuari.

Hi ha ampli manual on s'explica el funcionament de l'aplicació.

Amb la nova versió de l'aplicació s'han afegit vàries noves característiques:

Hi ha ampli manual on s'explica el funcionament de l'aplicació.

Complement de la aplicació ChessPdfBrowser

Aplicació d'interfície de comandes que permet obtenir les partides d'un llibre d'escacs en pdf en format .pgn

Accepta diferents paràmetres que permeten:


Hi ha uns scripts bàsics per als diferents entorns que fan la invocació java passant els paràmetres a la aplicació:

TextCrypt és una petita aplicació programada en Java que permet encriptar i desencriptar textos plans.

Els textos no arriben a estar guardats mai al disc dur en clar, sempre està encriptat.

El format de l'arxiu encriptat creat amb aquesta aplicació és compatible amb el de l'aplicació Java File Encoder, simplement canviant adequadament l'extensió.

A aquesta versió es van corregir alguns errors.

A aquesta versió es van corregir alguns errors.

A aquesta versió de l'aplicació s'han introduit algunes noves funcionalitats:

En aquesta vesrió de l'aplicació s'intenta evitar un error que es produïa per la interacció amb una nova funcionalitat de Java-9 (que tracta automàticament les pantalles amb alta densitat de píxels (dpi)).

Como a novetat, s'afegeix suport per a Maven.

Aquesta versió de l'aplicació inclou la consulta de nova versió.

Nova opció de mode obscur

Instrumental music és una petita aplicació programada en Java que permet escoltar del micròfon.

I processar l'entrada capturada, obtenint en temps real la nota predominant calculada.

Es pot provar xiulant notes i configurant l'aplicació per a que emeti la mateixa nota en MIDI.

És un simple entreteniment.

Amb aquesta versió s'actualitza la versió de les llibreríes de plataforma:

Ara també es pot configurar l'umbral d'amplitud per a detectar una nota

Aquest mòdul inclou les llibreries que contenen classes comuns a totes les aplicacion que he anat programant.

Bàsicament està organitzat en dues subllibreries:

La libGeneric inclou classes que no depenen de l'entorn, i que (en teoria) es poden fer servir en aplicacions sota qualsevol entorn, inclós Android.


La libGenericDesktop, inclou classes que són més depenents de swing (entorn de java estàndard d'escriptori). Inclou:

Aquest mòdul inclou les llibreries que contenen classes comuns a totes les aplicacion que he anat programant.

Respecte a la versió anterior, s'afegeix:

Aquest mòdul inclou les llibreries que contenen classes comuns a totes les aplicacion que he anat programant.

Respecte a la versió anterior, s'afegeix:

Aquest mòdul inclou les llibreries que contenen classes comuns a totes les aplicacion que he anat programant.

Respecte a la versió anterior, s'afegeix:

Aquest mòdul inclou les llibreries que contenen classes comuns a totes les aplicacion que he anat programant.

Respecte a la versió anterior, s'afegeix:

Noves llibreries externes, que s'han inclós per comoditat de compilació, també s'han separat les llibreries en dos grups segons la seva llicència (lgpl y gpl):


Funcionalitat de les llibreries

Aquesta petita aplicació permet de crear les icones d'una aplicació prenent com a entrada una imatge i redimensionant-la a diferents mides d'icones estàndar per a Windows:

També permet redimensionar la imatge d'entrada a una mida configurable que pot ser diferent dels anteriors.

Al procès de redimensionament, es pot traduir un color concret a un altre (això por anar bé per a canviar, per exemple, el color de fons, que podria ser transparent, a blanc.

També es pot canviar el component alpha (de transparència) de la resta de píxels.

Nova opció de mode obscur

Amb aquesta aplicació es poden obrir llibres en Pdf i inspeccionar les seves imatges y text.

És un exemple bàsic del que es pot fer amb la llibreria pdfbox.

Nova opció de mode obscur

Aquesta aplicació mostra un Donut en tres dimensions, donant la possibilidad d'aplicar rotacions en ambdos eixos.


És un exemple bàsic del que es pot fer amb les llibreries de plataforma.


Funcionalitat de les llibreries