26 de febrer del 2023

chatGPT : qué és i què pot fer ?

Segurament haureu sentit a parlar de chatGPT, una AI (intel·ligència artificial) que es pot utilitzar lliurament. He tingut ocasió de provar-la i crec que pot ser molt útil com a eina d'ajuda als programadors, però vull que sigui ella mateixa qui es presenti.

Si voleu provar-la, simplement connecteu a https://chat.openai.com/. Si no teniu un compte de Microsoft, el primer cop caldrà crear-ne un (jo vaig utilitzar les credencials de GitHub). En tot cas, us demanarà un telèfon per verificar les vostres dades.

Un cop fet, s'arriba a una senzilla pàgina i ja podeu preguntar el que vulgueu :




I dit això, us transcric literalment la conversa que hem tingut:

[Jo]: Hola, entens el català ?

[chatGPT]: Sí, entenc català. Com puc ajudar-te?

No ho tinc molt clar. Qué pots fer ?

Com a assistent virtual, puc ajudar-te en diverses coses, com ara:

  • Respondre a preguntes i proporcionar informació sobre diferents temes. 
  • Oferir-te suggeriments i consells sobre diversos assumptes. 
  • Realitzar tasques com ara programar reunions, establir recordatoris i enviar correus electrònics.
  • Fer càlculs i conversió d'unitats, com ara convertir monedes o mesures. 
  • Realitzar traduccions a diferents idiomes, entre ells català. 
Fes-me saber en què puc ajudar-te específicament i intentaré ajudar-te de la millor manera possible.

Pots escriure una presentació sobre tu, d'unes 200 paraules que pugui utilitzar en un blog ?

Sí, és clar que sí. Aquí tens una presentació de 200 paraules sobre mi:

Sóc ChatGPT, un assistent virtual creat per OpenAI. Em considero una eina útil per a totes aquelles persones que necessiten ajuda en diferents àmbits. Amb mi pots conversar en diversos idiomes, com ara català, espanyol, anglès, francès, entre altres.

La meva funció principal és respondre a preguntes i proporcionar informació sobre diferents temes. Em baso en una extensa base de dades per oferir respostes precisos i actualitzades. També puc fer càlculs i conversió d'unitats, com ara convertir monedes o mesures.

A més, em considero un assistent personal virtual que pot realitzar tasques com programar reunions, establir recordatoris i enviar correus electrònics. Em preocupo per la privacitat dels meus usuaris, i les converses amb mi es mantenen segures i confidencials.

En resum, sóc una eina útil i versàtil que pot ajudar-te en molts aspectes de la teva vida quotidiana. Si tens alguna pregunta o necessites ajuda en alguna cosa, no dubtis a preguntar-me. Estic aquí per ajudar-te.

Gràcies ! Com puc descarregar aquesta conversa per inserir-la en el bloc ?

Pots copiar la conversa i enganxar-la en el teu blog. També pots fer servir una captura de pantalla de la conversa i afegir-la al teu bloc com una imatge. Si vols descarregar la conversa com a document, depèn del programa que estiguis utilitzant per al bloc, però normalment pots seleccionar tota la conversa, copiar-la i enganxar-la en un document de text o processador de textos com Microsoft Word o Google Docs i desar-lo en el teu ordinador.



Ho hem deixat aquí, que per una primera impressió ja serveix. Tot i que segurament en tornaré a parlar en el futur.

Si teniu curiositat, no deixeu de provar-la i comenteu-me què us ha semblat.

30 de gener del 2022

Error: Chromium no carrega a Ubuntu 20.04 [Solucionat]

Després de solucionar el problema de l'apagada del meu ordinador, m'he trobat que el navegador Chromium no arrencava correctament. Hi havia processos corrent, però cap finestra :-(

He buscat per internet i els motius poden ser diversos, així que he optat per la solució clàssica de d'informàtica: suprimir i tornar a instal·lar. En l'Ubuntu 20.04 Chromium s'instal·la via paquets snap, així que les comandes per fer-ho son les següents :

$ sudo snap remove chromium
$ sudo snap install chromium

I, com sol passar, a partir d'aquí tot ha tornat a la normalitat !



Error: shutdown waiting for process contained-shim [Solucionat]

 Fa un temps que arrossegava un problema amb el meu Ubuntu 20.04: es quedava penjat a l'apagar-lo amb un error similar a (perdoneu si no és exacte, l'escric de memòria):

shutdown: waiting for process contained-shim to terminate

El problema és que es quedava "penjat" durant uns minuts, així que normalment l'acabava apagant forçant-lo (mantenint el botó d'apagat durant uns segons). A part que és emprenyador, sempre hi ha el risc de perdre dades...

Total, que avui he tingut un moment per mirar de corregir-ho. En principi, ho he relacionat amb els meus experiments amb Docker, així que l'he desinstal·lat. Malauradament, això no ha corregit el problema.

Llavors he recordat que també havia fet petites coses amb Kubernetes i, efectivament, aquest era el culpable. Com que ara mateix no el necessito, la solució ha estat eliminar-lo:

snap remove microk8s

I problema resolt: el PC s'apaga ens uns segons un altre cop !

21 de maig del 2021

Wifi ON/OFF amb un botó a RouterOS (Mikrotik hAP ac^2)

Si heu seguit el meu bloc, potser sabreu que m'agrada apagar la xarxa sense fils quan ningú l'utilitza, ja sigui amb un botó (TP-Link TL-WR14032ND o TP-Link WDR3600) o automàticament per temps si no hi ha ningú connectat (TP-Link WDR3600). En tots aquests casos, l'encaminador funcionava amb un sistema Openwrt.

El meu nou encaminador (router) és un model Mikrotik hAP ac^2 que treballa amb RouterOS (vegeu les primeres impressions) i lògicament, no podia ser menys i hi havia d'afegir aquesta funcionalitat.

L'encaminador disposa d'un botó (programable) en la part superior, així que anem a veure com ho podem fer. En primer lloc, creem un script per commutar l'estat de la xarxa sense fils. El codi pot ser similar a:

:log info message=("> Mode button was pressed");
:local i
:if ( [/int wir get 0 disabled ] = true ) do={
:log info message=("--> Wifi ON");
:foreach i in= [ /int wir find ] do={ :int wir enable $i };
} else={
:log info message=("-- > Wifi OFF");
:foreach i in= [ /int wir find ] do={ :int wir disable $i };
}

L'hem d'afegir usant el menú "System -> Scripts -> Add New", donant-li un nom i verificant les prioritats tal com es veu en la imatge:


En aquest moment podem executar-lo amb "Run Script" i verificar el seu bon funcionament: la xarxa sense fils s'ha d'apagar/engegar amb cada execució, i un missatge ha d'aparèixer si accedim al menú "Log". 

Ara ja només queda associar-lo al botó. Per això accedim al menú "Terminal" (o connectem per ssh) i teclegem la comanda següent:

/system routerboard mode-button set on-event=wifi_on_off enabled=yes

Amb això tenim el botó per apagar/engegar la xarxa sense fils configurat! Ja em direu què us sembla...


17 de maig del 2021

Mikrotik hAP ac^2 amb RouterOS: primeres proves

 Ja fa un temps que pensava canviar l'encaminador (router) de casa. Les últimes millores en la línia (ara amb 600MB simètrics) han fet que el meu antic TP-Link WDR3600 amb Openwrt/LEDE, no acabi de treure'n tot el profit possible.

Buscava un encaminador amb les següents característiques :

  • Prou potent per aconseguir la màxima velocitat de la línia.
  • Fiable.
  • Que pogués suportar Openwrt (mínim 8MB/64MB de memoria Flash/RAM respectivament).
  • Que permetés algun tipus de bloquejador d'anuncis (quan t'hi acostumes, no hi ha marxa enrere).
  • No molt car.
De fa temps, tenia molt bones referències dels encaminadors de la marca Mikrotik, més orientats als sistemes professionals que als domèstic, però fins ara els havia descartat per què eren cars, funcionaven amb un sistema propi (RouterOS) i eren complexos de configurar.

Doncs bé, per fer-ho curt, m'he decidit a provar el model Mikrotik hAP ac2 :

  • És un quàdruple-core, amb potència de sobres.
  • Té 16MB de Flash i 128MB de RAM.
  • Suporta Openwrt, tot i que en principi és millor deixar-lo amb el seu sistema propi, RouterOS.
  • Es pot trobar per menys de 65€.
  • Té un USB 3.0 per expandir-lo i un botó configurable.
Amb la tranquil·litat de saber que el puc passar a Openwrt si calgués, he començat a instal·lar-lo. No és trivial, ja que els menús avançats poder espantar una mica, però amb un xic de coneixement i consultant els fòrums habituals, tampoc no ha resultat cap drama.

I arriba l'hora de la veritat :




Tal com es pot veure, treballa amb els 600MB simètrics sense problemes. I tot plegat amb un 5%-10% de la CPU de l'encaminador !!

De moment, molt content amb la compra 😀

8 de juliol del 2020

Ionic 5 amb Angular

Fa una mica més de 2 anys, vaig presentar una sèrie d'articles per explicar pas a pas com fer una aplicació multi-plataforma amb Ionic. Es tractava d'indicar a quina hora surt i s'amaga el sol en un lloc determinat, en un dia determinat. Ha passat el temps i un parell de versions d'Ionic, així que anem a veure què ha canviat, reformulant la mateixa idea, però ara amb Ioniv 5.

En primer lloc, instal·lem o actualitzem la versió de Ionic:
npm install -g @ionic/cli
Tot seguit, creem una aplicació base, amb pestanyes:
ionic start SunriseSunset tabs
Passarem per diverser preguntes senzilles:
  • com a Framework, escollim Angular 
  • escollim també integrar l'aplicació amb Capacitor.
  • no cal crear un compte a Ionic.
Tot seguit podem anar al directori de l'aplicació i engegar-la per veure el seu aspecte:
cd ./SunriseSunset
ionic serve
Amb això l'aplicació serà compilada i s'obrirà automàticament en el navegador, mostrant una pantalla similar a:

Res gaire espectacular de moment, però almenys tenim una base per on començar !!

Si mirem l'estructura del projecte, veurem que cada pàgina està definida en el seu propi mòdul, i amb el seu fitxer de routing. També s'inclou el fitxer de specs per poder testejar la pàgina. És important mantenir cada pàgina en el seu propi directori, ja que això facilitarà l'organització del projecte.

4 de juliol del 2020

ERROR: node-sass errors.missingBinary() [SOLUCIONAT]

Us ha passat mai que en anar a executar la vostre aplicació Ionic/Angular us salti un error del tipus ?
  • Node Sass could not find a binding for your current environment

I que un npm install clàssic tampoc no ho solucioni ?

No patiu, que no és tan greu. L'error apareix típicament quan hem canviat la versió del node. Llavors, simplement cal recompilar el paquet node-sass a mà:
npm rebuild node-sass
I tal com podeu veure en la imatge següent, després ja podrem executar l'aplicació normalment:


Ja em comentareu si us ha servit !