xlsgen : Fix for horizontal bar chart rendering

Build of xlsgen fixes a problem related to rendering charts with horizontal bars that happen to also be stacked and stretched. Rendering was incorrect and some of the bars could be clipped entirely.

Posted on 19-April-2023 18:16 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


xlsgen : Preserve custom sheet views

Build of xlsgen adds support for preserving custom sheet views. This was already supported in XLS files, but is now for XLSX and XLSB files.

Custom sheet views are views that have their own zoom level, hidden rows, frozen panes and so on. Custom sheet views can be created in Excel by going to the View menu and clicking on New Window to create a new custom sheet view. All other views are open simultaneously. And to switch which view goes in the foreground, click on Switch windows.

Posted on 19-April-2023 18:13 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


VLC player lagging ? Just use an older version !

The title says it all. I built a brand new PC computer and the VLC player was part of the software I had to install in order to watch my videos. Turns out that even though this computer is by far the fastest I have had (i5 12400, 3200 Mhz memory, NVME SSD and a 1050 ti nvidia gfx card), my videos in VLC would lag. I would get audio out of sync with images.

Turns out Windows media player did not lag at all, so that would put out of question the fact that files were incorrectly encoded.

Then I turn to google and start finding out if there is a tip that would help solve this. Many answers, mostly copies of one another. And none worked for me.

And then I wondered since I installed the latest version of VLC, what if I installed an older version. Bingo! Instead of 3.x I did install 2.x, and the lag was gone.

So there it is. Don't know what the VLC guys are doing these days, apparently insufficient QA testing, but if you lag, and by that I mean the audio is out of sync with images, then simply try uninstalling your copy of VLC and install an old one, thankfully you can still find it on the VLC site since they host an archive of past releases.

Posted on 12-April-2023 07:34 | Category: News | comment[0] | trackback[0]


xlsgen : Strict ISO 29500

Build of xlsgen introduces read and write support for the strict version of XLSX files known as ISO 29500.

This variant is used in corporations out there for compliance purposes. The strict version of XLSX poses less security risk because it does not carry VBA macros. Internally, the XML is also more standard. And there is no pseudo-XML such as VML either.

How to you create such file ? Just like a regular XLSX file, except a property must be toggled before the file is created :

IXlsWorkbook wbk = engine.New("file.xlsx")
wbk.StrictISO29500 = true

IXlsWorksheet wksht = wbk.AddWorksheet("Sheet1)


Posted on 30-March-2023 21:49 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


xlsgen 5.0 has shipped !

xlsgen 5.0 has shipped.

The first and most impacting feature is its licensing model, where we are introducing upgrades on a per year basis, and at a competitive price. In other words, we are done with our 2-year major version licensing model.

Of course, xlsgen is still royalty-free.

Long life xlsgen 5.0 !!!!!

Posted on 18-March-2023 12:15 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


Downloading live TS streams

Downloading live TS streams

Given what I see in the Network tab of the Firefox developer tools, I wanted to use the power of firefox extensions to actually catch up all those TS requests, that I know are the actual meat of live streams. Concatenating those small TS fragments together ends up with the full file on your hard drive for personal consumption.

So that's how the journey begins. In fact those writing a firefox extension have a number of pre-built tools at their disposal. Namely the background script, which really acts as a background thread, where you will fetch and download the TS fragments.

Here is how you build the firefox extension, from scratch.

  • manifest.json // that's how firefox recognizes a firefox extension
  • background.js // your background code
  • icons / border-48.png // a random icon

Here is manifest.json :


"manifest_version": 2,
"name": "TS download",
"version": "1.0",

"description": "---- -----",

"icons": {
"48": "icons/border-48.png"

"background": {
"scripts": [ "background.js" ],
"persistent": true

"permissions": [

The manifest.json file specifies the actual background script, that runs outside of firefox UI. Also the permissions, one of which is used to make sure we are able to fetch and download fragments and save them as a file on the system (firefox's download folder).

Which leads us to background.js :

var filenameFragmentId = 1;

function onStartedDownload(id) {
console.log(`Started downloading: ${id}`);

function onFailed(error) {
console.log(`Download failed: ${error}`);

function logURL(requestDetails) {

filename = "tsFragment" + String(filenameFragmentId).padStart(5, '0') + ".ts";

console.log(`Loading: ${requestDetails.url}, filename: ${filename}`);

var downloading = browser.downloads.download(
url: requestDetails.url,
saveAs: false,
conflictAction: "uniquify",

downloading.then(onStartedDownload, onFailed);




What we do is get notified of firefox actual requests to the live stream server. That's done by passing a function callback (logURL) to the onBeforeRequest listener, also passing a filter limiting our interest to .TS content types.

And in our function callback implementation, what we do is build and download the TS fragment which is a binary response to the incoming request. In order to make the download function work, we need to build a filename, so fragments don't overwrite them, and also we need to make sure that no UI dialog shows up, because that would stop our function from doing anything relevant.

When you get this running, you'll get the following file sequence created in the firefox download folder :

  • tsFragment00001.ts
  • tsFragment00002.ts
  • tsFragment00003.ts
  • tsFragment00004.ts
  • ...

If you use VLC to view those .ts fragments, they work perfectly well. Of course, they are what they are, very short fragments of the actual live stream. What we need to put these together is a copy command.

For this, open up a command window, make sure your current folder is the firefox download folder, and then type this :

copy /B tsFragment*.ts full.ts

Running this copy command creates full.ts, which is the standalone video file for the live stream between the moment the firefox extension started and the moment it got stopped. Properly handling the start time and the end time lets you capture a video of what you actually want.

There is something that must be paid attention to, it is the video bitrate, especially the fact that it stays stable during capture. So if you are capturing a Twitch live stream for instance, just make sure to set a fix video bitrate for your player, for instance 720P if you are on fiber internet, 480P if you are on DSL internet.

To load the firefox extension, just type, in firefox address bar :


and then click on Load temporary add-on and point to the manifest.json file.

Posted on 27-February-2023 17:45 | Category: Automatic Video Slicer | comment[0] | trackback[0]


Support for Microsoft Word .DOC files

The search tool already supported .DOCX and .DOCM Microsoft Word files, but old ones were not.

With this update, .DOC files are also supported.

This may sound a bit odd given how old .DOC files are, but it turns out there must be billions .DOC files within corporation walls out there and asking someone to convert a .DOC file to a .DOCX or .DOCM file only to be made compatible for searching, was not a tenable option.

If you were using the search tool so far, just download the latest version from our website. If you were not using the search tool yet, downloading the search tool comes with this feature.

Other than actual text, objects that are searched for in .DOC files are : header/footer, comments and shapes. When a match is found, the search tool makes it possible to go to the actual match in the .DOC file in question in Word itself, excepts for a match in comments (Microsoft Word does not make this possible programmatically).

Posted on 17-February-2023 09:29 | Category: search tool | comment[0] | trackback[0]


ChatGPT : qu'est-ce qu'on se marre ?

Certains crédules s'étonnent que, lorsqu'ils utilisent leur nouveau joujou technologique ChatGPT, à qui ils demandent de dire des choses positives sur Donald Trump, ce moteur n'arrive pas à produire grand chose. Alors que c'est tout le contraire pour Joe Biden par exemple.

extrait : "When asked to “write a poem about the positive attributes of Trump,” ChatGPT refused to wade into politics. But when asked to do the same thing for current commander-in-chief Joe Biden, ChatGPT obliged."

Me font rire ces gens qui s'en étonnent. Comment pourrait-il en être autrement alors que ChatGPT se nourrit de ce qui est publique sur internet. Hors, pour ce qui est des choses publiques sur internet, chacun sait que la classe médiatico-politique occidentale a rejeté Trump dès son élection, par idéologie pure.

C'est grave pour des gens qui s'en étonnent donc, de croire un seul instant que ce moteur puisse créer quelque chose, alors qu'il se contente de recombiner des morceaux existants.

D'ailleurs pour enfoncer le clou encore un peu plus loin, de simples questions d'arithmétique permette de conclure que ce moteur recrache ce qu'il a indexé quelque part, et est incapable d'inférer d'autres calculs. Alors pouvoir faire un raisonnement, ma bonne dame, il va falloir attendre un peu... Disons un siècle, ce sera déjà bien.

Posted on 05-February-2023 16:29 | Category: France | comment[0] | trackback[0]


Un marqueur de richesse

Noyé au milieu d'un article très anecdotique, on peut lire :

extrait : "La fille aînée du milliardaire Bernard Arnault prend ses fonctions de PDG de la maison de haute couture Christian Dior mercredi 1er février. (...) La maison Dior est loin d’être une inconnue pour Delphine Arnault, puisqu’elle y a travaillé pendant près de douze avant d’en prendre les rênes. (...) Celle qui partage la vie de Xavier Niel, homme d’affaires avec qui elle a deux enfants, admet se « faire très discrète » et ne pas disposer de compte sur les réseaux sociaux. (...) Delphine Arnault est la seule à siéger au comité exécutif de LVMH, instance dirigeante du groupe. Avec cette nomination à la tête de Christian Dior Couture, les spéculations vont bon train à propos de la succession du groupe de luxe."

Etre absent des réseaux sociaux est un vrai marqueur, pour moi.

Posted on 03-February-2023 16:55 | Category: France | comment[0] | trackback[0]


ChatGPT : smart quote of the day

Here we go :

extrait : "These systems (ChatGPT) are just smart autocomplete not creators of original content."

If you are not following Dare already, do yourself a favor.

Posted on 29-January-2023 15:31 | Category: News | comment[0] | trackback[0]


ChatGPT : suite et...fin

Et oui, c'est déjà la fin pour ChatGPT. En deux actes,

Premier acte,

extrait : "Meta’s chief AI scientist, Yann LeCun, told reporters ChatGPT was “nothing revolutionary.” "

Second acte,

extrait : "(...) We (Sayash Kapoor and I) call it a bullshit generator, as have others as well. We mean this not in a normative sense but in a relatively precise sense. We mean that it is trained to produce plausible text. It is very good at being persuasive, but it’s not trained to produce true statements. It often produces true statements as a side effect of being plausible and persuasive, but that is not the goal. (...)"

Et enfin, petit bonus, de la part de Luc Julia (Siri, ...) :

extrait : "(...) On parle de création. Mais en fait ça ne crée strictement rien. (...)"


Posted on 29-January-2023 09:34 | Category: France | comment[0] | trackback[0]


ChatGPT ou ChatGepeto ?

Je dois dire que chaque article sur ChatGPT me fait bien rire. J'éclate de rire même.

Voici le dernier :

extrait : "(...) enseignants, pour lesquels ChatGPT est devenu un véritable cauchemar. Les professeurs ne savent en effet plus si les devoirs qui leur sont rendus sont l'œuvre de leurs élèves/étudiants ou d'une quelconque intelligence artificielle. (...)"

Ah bon? Les enseignants ne savent pas si les devoirs sont faits par leurs élèves ? Et l'orthographe alors ? Les fameuses fautes à tous les mots, ce n'est pas un signe clair et distinctif ? Si on les compare à des textes publiés sur wikipedia pour lesquels l'orthographe est corrigée par le principe de la relecture des pairs, notamment.

Posted on 24-January-2023 09:26 | Category: News | comment[0] | trackback[0]


xlsgen : Pivot table group by feature improvement

Build of xlsgen adds feature improvement to pivot table row grouping.

Before this build, only data interval was made available from the GroupBy interface.

Now MinimalValue and MaximumValue can be manually set.

And here is an example of this (C++) :

xlsgen::IXlsPivotTablePtr pt = worksheet->NewPivotTable();
pt->DataSource->Range = L"Sheet1!D4:F14";

xlsgen::IXlsPivotTableFieldPtr pf1 = pt->Rows->AddByName(L"s2");
pf1->AggregateFunction = xlsgen::aggrpivotfunction_none;
pf1->SortAscending = TRUE;

xlsgen::IXlsPivotTableFieldGroupByPtr pf1g = pf1->GroupBy;
pf1g->Interval = 2;
pf1g->MaximumValue = 40;

xlsgen::IXlsPivotTableFieldPtr pf_d1 = pt->Data->AddByName(L"s3");

pt->Options->Layout = xlsgen::pivottablelayout_tabular;
pt->Options->BuiltInPivotTableStyle = xlsgen::pivottablestyle_medium14;
pt->Options->ShowRowStripes = TRUE;


Posted on 15-January-2023 12:04 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


ChatGPT : flop incoming

Jamais une hype n'aura, depuis NFT, produit une fumée telle que ChatGPT. Aucune intelligence à l'intérieur, mais on parle d'intelligence à tout bout de champ.

Bref, ChatGPT portera bientôt le surnom qu'il mérite, c'est-à-dire son nom. Seuls les français peuvent comprendre cette blague. Pour les autres : j'ai-pété

Posted on 11-January-2023 10:09 | Category: France | comment[0] | trackback[0]


xlsgen : Fix for pivot table name collisions

Build of xlsgen fixes a problem related to colliding names when creating a pivot table.

Thre data source of a pivot table is an arbitrary cell range therefore its columns can have same names and collide. To solve this for Excel, and to avoid an error message, xlsgen disambiguates pivot field names.

Posted on 28-December-2022 21:36 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


Plan blanc numérique dans les hopitaux, on croit rêver

Plan blanc numérique dans les hopitaux, on croit rêver :

extrait : "Après que les hôpitaux de Corbeil-Essonnes et Versailles ont été victimes de piratages informatiques, le gouvernement a annoncé mercredi 21 décembre 2022 le lancement d’un « vaste programme de préparation ». (...) Ce plan doit permettre de « mutualiser les ressources compétentes au niveau de chaque région en lien avec les Agences régionales de santé (ARS) ». "

Plutôt que de donner un os à ronger aux ARS dont l'efficacité est plus que douteuse (crise du COVID par exemple), peut-être faudrait-il faire deux choses assez simples :

- pas d'accès réseau pour les postes PC fonctionnels (radio, chirurgie, etc.)

- pour le personnel administratif susceptible de devoir faire des accès externes (rendez-vous, etc.), une formation pour l'adoption d'une discipline concernant l'usage des postes PC, en plus de la mise en route d'une politique de contrainte technique concernant les emails par exemple, c'est-à-dire mise en oeuvre au niveau des serveurs d'emails.

- pour les services reçus en direct comme les SMS, former le personnel au fait de ne pas cliquer sur les liens qui se trouvent à l'intérieur.

Posted on 21-December-2022 19:17 | Category: France | comment[0] | trackback[0]


xlsgen : XLS Conversion pack

Build of xlsgen adds an XLS conversion pack. It is made of the following :

- XLSX to XLS file conversion (also XLSM to XLS)

- XLSB to XLS file conversion

- XLSX to XLSB : VBA macros preserving

- XLSB to XLSX : VBA macros preserving

The conversion from XLSX or XLSB files back to XLS files is the bigger piece of the pie. In 2022, it sounds a little odd to hear that we are still providing tools to leverage XLS files, but for legacy systems out there, it may be the only option available. So there it is. Of course, converting to a XLS file comes with a baggage : the sheet rows and columns are much smaller (64K rows per sheet instead of one million, ...), a number of objects are not supported at all (such as the data model), and a number of objects are partially supported (such as conditional formattings where databars simply do not exist). Those wanting to leverage XLS files when it's known to be such a subset of XLSX/XLSB better know what they are doing.

Here is how XLSX ==> XLS conversion works :

workbook = engine.Open("inputfile.xlsx", "outputfile.xls");

Open() in-memory variants also work (OpenInMemory, OpenFromMemory).

Posted on 16-November-2022 13:28 | Category: xlsgen, Excel generator | comment[0] | trackback[0]


Wikipedia était déjà moribon, maintenant c'est la mort

extrait : "Une physicienne anglaise travaille depuis 2017 à l’ajout de pages Wikipédia dédiées aux femmes notamment des scientifiques inconnues du grand public."

Ce travail change de nature wikipedia, qui a vocation a être une encyclopédie en ligne permettant de mettre les gens d'accord sur des sujets connus et déjà vulgarisés. Pas du tout pour y mettre des articles féminins puisque manifestement c'est l'argument numéro un pour justifier de rajouter un article.

RIP wikipedia.

Là où le féminisme passe, la vie trépasse.

Posted on 19-October-2022 19:22 | Category: France | comment[0] | trackback[0]


Propagande ordinaire dans le journal Ouest France

Propagande ordinaire dans le journal Ouest France

extrait : "Grand oublié de la crise de l’énergie qui touche actuellement l’Europe, le réseau Internet représente pourtant une part importante de la consommation électrique française."

Affirmation gratuite.

extrait : "« À lui seul, le numérique représente 10 % de la consommation électrique française », expose Julia Meyer, qui constate que cette part augmente à mesure que de nouveaux usages se développent, à l’image du Metaverse, des cryptomonnaies ou même du déploiement de la 5G."

Le minage des cryptomonnaies est mort, car il n'est plus viable financièrement. Par conséquent les chiffres statistiques des administrations ne tiennent pas compte de la réalité. Ca ne les empêche pas de tirer des conclusions hyperboliques. Et de les faire publier sur des journaux comme Ouest France, trop content de publier du contenu original. Faux, mais original...

Posted on 22-September-2022 19:40 | Category: France | comment[0] | trackback[0]


Figma purchased by Adobe for $20 billion, what's the deal ?

When I first heard the news that Adobe was purchasing online softwae Figma for no less than $20 billion, I thought this had to signal something new, kind of the end of an era, the era of on-premise (Adobe) software. And this was extremely bad news for other on-premise software companies.

But now that I have reviewed what Figma actually is, little more than a SVG scene editor, I have to wonder if some people out there are nuts. Indeed, web browsers have been supporting the rendering of SVG shapes for some time. And writing an online program that allows to add such shape in a canvas, and move its pixels, is just nothing to write much about. Besides the fact that SVG specs has a number of metrics, and Figma uses the worst metrics for such things, i.e. pixels, which means someone builds scenes that are not scalable across canvas sizes, i.e. target devices.

Wake me up when you can actually design user interfaces using an online tool. Figma (or Sketch) is none of that. Using a paper is both more comfortable and more productive, assuming that those sheets don't have to be shared with a lot of people. Figma (or Sketch) seems good at sharing those SVG scenes, at least better than sheet of papers, but let's call it what it is then. Not a UI design tool, just a sheet sharing tool. This is not worth $20 billion by any stretch of the imagination.

Posted on 21-September-2022 20:12 | Category: News | comment[0] | trackback[0]



<-- previous page

< April >



This site

Process Explorer
COM Trace injection
AQTime profiler
Source monitor
GDI leaks tracking
Rootkit revealer
Rootkit removal



Le Plan B
Un jour à Paris
Rezo.net (aggr)
Reseau voltaire
Cuba solidarity project
Le grand soir
L'autre journal
Le courrier suisse
L'Orient, le jour
Agoravox (aggr)