TCP UDP request catcher

Very often during the software development I face the situation I need to log sent request fro my applications such as logs, metrics and so on. These request are in production directed to ELK stack, Prometheus, influxDB or to another 3rd party service. But for local development I don't want to run these services on my machine because of the resources consumption. I just want to verify if my app sent the data in proper format. Goreqbin is simple Go app that starts UDP and HTTP servers and logs all received requests. New servers and log methods may be easily added. Right now the output logging is to stdout only. It is good enough for me for development usage, but you are very welcome to contribute and and new output methods and/or new servers.

Continue Reading

Amqplib – RabbitMQ the easy way

If you have already worked with RabbitMQ message broker in Node.JS/Typescript you probably met the amqplib that is widely popular on NPM and used among many people. The library itself is very well documented and you may find a lot of interesting facts in the documentation. However, as my programming background is mainly based on modern php, I wanted to work with Rabbitmq connection, publisher and consumer structures in Objec-Oriented way. This lack of OOP I tried to solve with creation of the library that is built on the top of the mentioned amqplib and you may find it on NPM named amqplib-plus.

The goal of amqplib-plus library is to create classes for Connection, Publisher and Consumer. The whole library is written in typescript so you can easily integrate it to your own typescript projects or you can use compiled es6 javascript.

Amqplib-plus key features are:

  • connection auto-reconnect feature
  • easy to use object oriented publisher
  • easy to use object oriented consumer that runs user defined function on every consumed message

You can easily install it by running npm install amqplib-plus

(more…)

Continue Reading

ARES – Administrative Register of Economic Subjects

A few months ago I was asked to implement several open-source libraries in PHP for one czech company called Asisteam. One of them was a simple connector to ARES API (Czech economic subjects registry).

By calling this API endpoints you can get company details and/or validate whether some given company ID (IČO) really exists and correspond to some existing company known by Czech government and law.

You can find the library on github and you’re very welcome to use it and make pull requests if you know of any enhancement or bug fix.

(more…)

Continue Reading

xDent externí nástroje

Note: this blog post is in Czech because it targets the czech software that is not used in foreign countries.

Zubní ordinace používající cloudovou aplikaci xDent určitě narazili na nastavení propojky se svým RVG zařízením. Díky těmto propojkám pak můžete přímo z aplikace xDent spouštět konkrétní RVG nástroj, ve kterém se otevře karta příslušného pacienta. Nemusíte tak v RVG programu hledat pacienta znovu, což každé zubní praxi šetří drahocenný čas.

Reálně to pak vypadá například tak, že lékař vyplňuje informace k pacientovi v xDentu a na kartě každého pacienta má navíc i tlačítka pro přechod do konkrétního RVG nástroje (např. VixWin).
Kliknutím na toto tlačítko dojde k otevření RVG nástroje (VixWin), ve kterém dojde také k otevření karty pacienta a jsou ihned vidět jeho zaznamenané snímky bez nutnosti pacienta vyhledávat podle jména, rodného čísla apod.

Provozovatel aplikace xDent bohužel zpoplatnil zákaznickou podporu při nastavování těchto externích propojek, přestože se většinou jedná pouze o triviální nastavení a je potřeba znát pouze správné jméno sputitelného souboru z konkrétního RVG programu.

Ale popořadě.

  1. Aby bylo možné vůbec propojky provozovat, je na počítači ve kterém do xdentu přistupujete a ve kterém je nainstalovaný i nějaký RVG nástroj nainstalovat zmíněnou propojku. Návod naleznete po přihlášení do xdentu v na stránce Nastavení>>Externí nástroje v záložce Instalace. Stáhnete soubor a postupujete podle průvodce instalací. Na stejné stránce v xdentu je i úplně dole tlačítko na ověření správnosti propojky. Můžete vyzkoušet.
  2. Přidání konkrétního propojení s RVG pak provedete na záložce RVG tlačítkem Přidat nový RVG profil. Nabídka možných RVG je poměrně široká a RVG, které jsme potřebovali v naší ordinaci jsme zde nalezli (KaVo Gendex VixWin, Soredex Digora Optime, Planmeca Romexis OPG, …), ovšem může se stát, že pro nějaký minoritně použivaný software, který používáte právě vy propojka existovat bohužel nebude. Vyberte tedy typ vašeho RVG a pojmenujte si jej podle libosti (tento název se vám následně zobrazí na kartě pacienta jako název tlačítka pro přechod do RVG programu).
  3. V seznamu na záložce RVG se vám objeví nově přidaný RVG profil.

A teď nastává největší problém….

Je totiž potřeba nastavit k danému RVG profilu tzv. Umístění aplikace, což je v podstatě cesta ke spustitelnému souboru daného RVG programu.

V tomto bodě už si uživatelská podpora xDent účtuje několik stokorun za to, aby vám poradili co do tohoto políčka zadat. Protože je však povětšinou nastavení triviální nemusíte xDentu za toto platit, stačí postupovat podle připraveného návodu. Níže uvádím nastavení pro RVG software, který jsme v naší ordinaci zprovoznili. Stačí nastavit správnou cestu k soubory (viz odstavečky Ukázka) do políčka Umístění aplikace, které bylo zmíněno výše.

Pokud používáte jiný program a propojka vám funguje, budu velice rád pokud mi vaše funkční nastavení zašlete a já ho přidám do seznamu níže.

(more…)

Continue Reading

Oh no, why another developer’s blog?

Because I can ….

and I want to. After many years of just consuming someone else’s content I decided to start publishing my own content.
I realized that during my career I gained some experience that may help someone else and I would like to hand over these pieces of knowledge to other people.

Despite being Czech, I’ll write this blog in English in order to address more interested people (if there is some :).

Except programming stuff and articles I will place here some personal things I faced and I want this blog to help me remember.

I hope this blog will not serve just me, but will help someone else too.

(more…)

Continue Reading
Close Menu