Build 4.5.0.12 of xlsgen improves the speed of calculations by 25%
Work has been done in two scenarios : cell traversal (i.e. calculations with many depending cells carrying little or no formulas) ; and deep nesting (i.e. calculations with formulas depending on a chain of other formulas). That's 25% faster. And that includes 10% less memory page faults for the former scenario.
|  |  | Posted on 10-April-2018 06:43 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.11 of xlsgen adds exposure to the SpecialCells property in xlsgen, which is a mechanism for selecting cells based on one of a number of conditions. The application interface for special cells in xlsgen is the programmatic equivalent of the special cells user interface dialog in Excel, raised from Ctrl+G and then the Special button. Special cells is a range of cells, single area or a union of areas, that meets a certain criteria. One example, is cells carrying a formula. Another is cells with number literals. The conditions are one of these : specialcells_type_allformatconditions : cells with conditional formatting(s)specialcells_type_allvalidation : cells with data validation(s)specialcells_type_blanks : blank (empty) cellsspecialcells_type_comments : cells with comment notesspecialcells_type_constants : cells with non-formula values (*)specialcells_type_formulas : cells carrying formulas (*)specialcells_type_lastcell : last cell of the range (bottom right corner)specialcells_type_sameformatconditions : cells with the same conditional formattingspecialcells_type_samevalidation : cells with the same data validationspecialcells_type_visible : visible cells (neither row nor column are hidden)
(*) : If the chosen condition is either constants or formulas, then the application may filter according to the literal data type, one or more of the following : specialcells_value_na : not applicable (no filter)specialcells_value_error : cells with formula errorsspecialcells_value_logical : cells with a logical (boolean) valuespecialcells_value_number : cells with numbers (integer, float, date)specialcells_value_text : cells with text
Special cells is exposed as a range property, so an existing range must be specified to limit the bounding area where the special cells filtering applies. If the client application knows no such area, it can pass either A1 as range or use the UsedRange which is the area of the current worksheet that encompasses all content and formulas. Here is an example : Java code | // find cells with a formula, turn them red XlsRange r = workbook.getWorksheetByIndex(1). getUsedRange().getSpecialCells(xlsgen.specialcells_type_formulas, xlsgen.specialcells_value_na); r.getStyle().getPattern().putBackgroundColor(0xFF0000); r.Apply();
|
|  |  | Posted on 06-April-2018 14:43 | Category: xlsgen, Excel generator | comment[0] | trackback[0] C'est tout de même embêtant que le gouvernement français en fasse tant, en terme de communication, en formulant tant d'espoir sur la "révolution" de l'intelligence artificielle, alors qu'aucun scientifique n'utilise cette expression car elle ne veut rien dire.
Des détails supplémentaires?
Il n'y a pas d'intelligence artificielle car les ordinateurs, aujourd'hui capables d'être miniaturisés et connectés à internet, n'ont aucune intelligence. Tout ce qu'ils ont ce sont des règles programmées. Et ces règles sont extrèmement rustiques, primitives et sont particulièrement facile à identifier car précisément elles sont incapables de produire quoi que ce soit qui ne soit programmé à travers ces règles.
La seconde chose, c'est qu'un terme plus concret comme l'apprentissage par machine, supervisé ou non, est une chose qui se fait depuis 40 ans au moins, et qui se fait en effet de plus en plus vu qu'on ne sait pas quoi faire de la capacité de calcul toujours grandissante des ordinateurs.
La troisième chose, c'est que le plan d'investissement à hauteur de 1.5 milliard de la part du gouvernement français, doit représenter pas plus d'une semaine d'investissement de la silicon valley dans ce type d'entreprise. Normalement c'est 1.5 trilliard qu'il faudrait engager là dedans, si le but est de développer des technologies qui permettront de créer des emplois, en tout cas de compenser la fonte de l'emploi actuel en France.
Je crains que l'annonce très suspecte de multinationales comme Microsoft et Google de créer des centres de R et D en France ne soit qu'un moyen de détourner la vraie finalité du virage annoncé de ce qui se cache derrière cette expression intelligence artificielle qui ne veut rien dire. Je pense qu'il s'agit de l'ouverture, bien que non consentie, des données personnelles pour exploitation commerciale, en particulier les données de santé. Ce qui est pourtant un interdit à juste titre (les compagnies d'assurance ne signeront pas le contrat d'assurance d'une personne malade, par exemple). C'est une manne incroyable à exploiter pour quelques acteurs, aux dépends de l'intérêt général.
Et, en réalité, tout ceci n'est qu'une matérialisation de la commercialisation du vivant, qui s'accompagne comme on peut le constater d'une interdiction de la liberté d'expression, objet d'une répression à mon avis sans comparaison dans l'histoire.
|  |  | Posted on 03-April-2018 14:10 | Category: France | comment[0] | trackback[0] A l'occasion des écoutes téléphoniques légales de Nicolas Sarkozy, qualifié de délinquant chevronné, je me suis interrogé sur le fait que Nicolas Sakorzy n'était pas poursuivi pour usurpation d'identité, car après tout il aurait fait crééer une ligne téléphonique sous un faux nom, et il me semblait que ce seul fait tombait directement sous le coup de la loi. En fait, pas du tout, l'usurpation d'identité n'est constituée que sur la plainte explicite de la personne dont l'identité a été exploitée, sur la base d'une atteinte à l'honneur. Ainsi : extrait : "Le préjudice effectif ou éventuel s’analyse en un trouble de la tranquillité de la personne dont l’identité est usurpée ou celle d’un tiers, ou en une atteinte à son honneur ou à sa réputation.
L’auteur de l’infraction, personne physique, encourt un an d’emprisonnement et 15.000€ d’amende. La condamnation peut atteindre 75.000€ lorsque l’auteur de l’infraction est une personne morale." C'est un élément troublant, d'une part par ce trou juridique manifeste, qui permet à Sarkozy de ne pas être poursuivi à ce titre, à ma connaissance, d'autre part sur ce que cela dit des opérateurs télécom, qui donnent en réalité la possibilité d'utiliser un téléphone sous fausse identité. Et, plus troublant encore, le fait que les mêmes opérateurs télécom laissent la possibilité de réaliser des appels téléphoniques de type spoofing, c'est-à-dire qui font croire au destinataire de l'appel que l'appelant à un numéro de téléphone arbitraire, sous-entendu fabriqué par l'appelant et non par son opérateur télécom. On vit une drôle de période. D'un côté, un enregistrement et un archivage intégral de l'activité numérique de la population dans sa totalité. De l'autre, la possibilité, pour les délinquants (chevronnés ou non), de s'en soustraire s'ils le souhaitent. |  |  | Posted on 03-April-2018 09:51 | Category: France | comment[0] | trackback[0] Build 4.5.0.10 of xlsgen fixes a GDI leak that occurred during print/preview/PDF generation/XPS generation. It could have harmed the ability to run xlsgen in server environments.
|  |  | Posted on 02-April-2018 18:41 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.9 of xlsgen ensures that named ranges are copied over during a worksheet duplicate, whether they have a local scope (to the worksheet being copied), or a global scope (with a range definition restricted to the worksheet being copied).
|  |  | Posted on 30-March-2018 16:14 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Outre le fait que l'affaire facebook n'en est pas une, facebook a en effet donné accès aux données personnelles de ses utilisateurs et à défaut de fermer facebook, je ne vois pas bien ce qui pourrait changer, on parle moins en ce moment du fait qu'un des pontes de l'intelligence artificielle chez facebook, est un français. Je rappelle que l'expression intelligence artificielle est totalement bullshit, un moyen par lequel les entreprises de service en informatique tentent de pénétrer les bases de données de leurs clients potentiels. Tant que les clients sont consentants, comme les utilisateurs facebook, ça marche. Mais il ne faut pas se plaindre des conséquences. Pour moi, facebook devrait même poursuivre en justice pour diffamation les journaux qui ont publié ce qu'ils publient depuis 10 jours. Mais facebook préfère passer pour des salopards. Tout le monde n'a pas le moyen de préférer se faire passer pour des salopards.
|  |  | Posted on 25-March-2018 14:39 | Category: France | comment[0] | trackback[0] The fact that Microsoft is willing to make sure that, in the future, their next iteration of web browser (called Edge to make the infamous Internet Explorer branding go away) is more tied to other applications in Windows regardless the choice of users, is reminiscent to what Microsoft did in the past. If you are young enough to not know what that means, let's just say that Microsoft tried to crush any competing web browser application twenty years ago with hardwired and questionable ties within Windows, combined with external software distribution. Since Microsoft has always an arm of the US government, they managed to get away with that, something any other corporation wouldn't have survived on the merit of it.
Well, apparently Microsoft is doing it again. This time, I'm not surprised, not even infuriated. I think Windows 10 in and of itself should be the subject of criminal investigation for its built-in spy and surveillance tools (phones home every few minutes) and everything else is just a minor detail compared to it. I also think Microsoft sees Windows as fading, and the trick they think they have found is to bring it back to life by making it a service corporations out there would have to subscribe for, on a per user per month basis. Something that in itself should accelerate the move from corporations to greener pasture.
Also there is this idea that, by tying two programs from Windows together, this makes Windows more secure. This claim is demonstrably not true, since everyone out there can comment and swear on two decade worth of Internet Explorer vulnerabilities, with a new row of critical security fixes coming every month.
Tying together by ignoring user's choice is both a step towards closing the open Windows as we knew it, effectively destroying Windows. Also there is this sence that stepping towards Windows as a service, this operating system is no longer something you own. Something that, at every moment, may act against you by virtues of the changes incorporated in the latest software upgrade you can't not allow in. Effectively like a surveillance tool in your work room.
|  |  | Posted on 25-March-2018 09:17 | Category: anti-Microsoft | comment[0] | trackback[0] Build 4.5.0.8 of xlsgen adds support for charset and language for the 4 import file formats : CSV, HTML, JSON and XML. By default, xlsgen infers data types using the user's regional settings when it comes to the language, and it relies on charset markup built in files, whenever applicable, to parse files. Regarding language, such as en_US, en_GB and fr_FR, those affect how data type inference recognizes numbers, currencies and dates. When you know in advance the file being imported is of a given language, you can pass it to xlsgen before importing it by setting the following property : worksheet.Import.CSV.Options.Language = "fr_FR"; // example of custom language used in an imported CSV file And this option is equally available for HTML, JSON and XML files and buffers. Worth noting the syntax of the language parameter. This is made of the primary language initials, followed by an underscore, and the secondary language initials. As such, US English behaves differently than British English. It's normalized as RFC 1766. Regarding charsets, it's a bit more involved, because charset may be present or not in each file being imported, and specs vary depending on the file format. - CSV file : the charset can be implicit for Unicode 2 and Unicode UTF-8 with the presence of BOM markers at the beginning of the file. xlsgen already handles BOM. Otherwise it is assumed the charset is the user's current code page. This can be overridden by setting the following property : worksheet.Import.CSV.Options.Charset = "iso-8859-1"; // example of custom charset used in an imported CSV file - XML file : the charset is explicit in the XML markup, in the first line. This can be overridden by setting the following property : worksheet.Import.XML.Options.Charset = "iso-8859-1"; // example of custom charset used in an imported XML file - JSON file : the charset is defaulting to Unicode UTF-8. This can be overridden by setting the following property : worksheet.Import.JSON.Options.Charset = "iso-8859-1"; // example of custom charset used in an imported JSON file - HTML file : the charset is explicit in the HTML markup, in optional meta HTTP equiv markup. This can be overridden by setting the following property : worksheet.Import.HTML.Options.Charset = "iso-8859-1"; // example of custom charset used in an imported HTML file When any of those files are imported from the internet, the HTTP response headers have a charset spec too, that is seen and passed along by xlsgen. But the custom charset setting always override everything else. |  |  | Posted on 24-March-2018 17:48 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.7 of xlsgen fixes a default setting for formulas in calculations. The setting is now defaulting to recalc on open, which makes sure that when generated files are eventually opened in Excel, Excel checks whether values resulting from formulas are up-to-date.
It was 2 years it wasn't the case anymore, and a client application could have defaulting to this by changing the setting in workbook.CalculationOptions.AutoRecalc.
|  |  | Posted on 24-March-2018 17:25 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Difficile pour moi de condamner facebook.
D'une part, les gens qui ont un compte facebook et qui l'utilisent sont régulièrement informés que leurs données personnelles sont exploitées voire sur-exploitées, et que facebook ne s'en cache pas via la licence utilisateur que tout personne qui souhaite créer un compte facebook valide en la signant d'un clic. Que ceux qui ont eu la paresse de lire cette licence utilisateur veuillent bien cesser de passer pour des victimes, car il s'agit là en l'occurence de victimes parfaitement consentantes.
Il y a pire, bien entendu qu'il y a pire. Quelque chose qui rend toute cette histoire totalement dérisoire, surtout que ce qui est sous-tendu par cette affaire, c'est une fois de plus que Trump n'a pas gagné les élections américaines parce que les gens ne voulaient pas de Clinton, mais que c'est uniquement le fruit d'une manipulation dont facebook aurait été partie prenante, à son corps défendant ou pas. Un jour il faudra admettre que les américains ont refusé de mettre Clinton au pouvoir et qu'il n'y a rien de plus à dire sur le sujet.
Cette chose qui est pire, c'est qu'évidemment on se fait plaisir à pointer le doigt sur une société privée, forcément ogre commercial qui menace les petites gens (tout cela est orchestré), pour ne pas parler du vrai ogre que sont devenus les états policiers de nos chères (très chères) démocraties. Car si facebook est accusé d'avoir écouté et exploité les données personnelles des gens, alors que devrait-on dire de nos opérateurs télécom ici et des lois d'exception votées depuis une petite quinzaine d'années (la plupart par un certain Nicolas Sarkozy, le reste par un certain Manuel Valls).
Donc, de qui se moque-t-on?
La France est désormais un état policier. Avec toutes les conséquences que cela implique. S'essuyer les pieds sur une entreprise privée est dérisoire par rapport aux vrais enjeux qui sont devant les citoyens.
|  |  | Posted on 22-March-2018 12:26 | Category: France | comment[0] | trackback[0] Posted on 14-March-2018 14:50 | Category: News | comment[0] | trackback[0] Build 4.5.0.6 adds another fix pack for pivot tables. It has the following :
- improved integrity check avoiding the creation of a corrupt file case for XLS files (subtotals parameters applied to fields in the Page area)
- improved integrity check avoiding the creation of a corrupt file case for XLSX files (expected data type for columns)
- support for XLSX pivot table styles in XLS files
- support for sorting pivot table columns in XLS files
|  |  | Posted on 14-March-2018 08:39 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.5 of xlsgen is a fix pack for pivot tables in XLSX (and variants), XLSB and XLS files.
It includes the following :
- improved pivot table insertion point whenever the pivot table has at least one field in the Page area (also known as Report filters area). The insertion point refers to row headers, and page headers are above it. Inserting at row 1 would cause Excel to show an error message "There isn't enough memory to complete this action. " only because internally the row for page headers becomes negative, equivalent to a very large 32-bit number, and Excel can't allocate the corresponding memory. The error message is mostly bogus anyway, but with this fix it won't appear anymore.
- exposure of the ShowExpandControls boolean property in pivot table options : defaulting to true, this option shows or hides the [-] expand/collapse controls next to row items
- exposure of the ResizeOnUpdate boolean property in pivot table options : defaulting to true, instructs Excel to reshape and resize whenever there is a data refresh.
- exposure of the MergeItems boolean property in pivot table options : defaulting to false, instructs Excel to show row items merged wherever applicable.
- exposure of the ShowGrandTotalsForRows boolean property in pivot table options : defaulting to true, instructs Excel to show grand totals for rows.
- exposure of the ShowGrandTotalsForColumns boolean property in pivot table options : defaulting to true, instructs Excel to show grand totals for columns.
|  |  | Posted on 13-March-2018 08:39 | Category: xlsgen, Excel generator | comment[0] | trackback[0] On le sait, je n'attends rien de la part de Microsoft. Je pense que c'est une entreprise qui depuis très longtemps trahit les gens qui ont acheté un ordinateur avec Windows parce qu'ils n'avaient pas d'autre choix, et je pense d'une certaine façon que c'est comme une punition du ciel que rien d'autre de ce qu'ils font n'a un succès commercial.
Mais de temps en temps, Microsoft se surpasse dans sa médiocrité. On se dit qu'ils touchent le fond, mais non ils creusent et s'enfoncent toujours plus. Voici encore un exemple.
Pour les emails, j'utilise ma messagerie personnelle mais pour aller sur les forums technologiques autour de Excel, je suis obligé ou quasi obligé d'utiliser une adresse email chez Microsoft, anciennement hotmail aujourd'hui outlook.
J'apprends par hasard que, pour la x-ième fois, ils changent la licence utilisateur pour toute boite email hébergée par outlook.com, et je m'interroge.
D'abord, Microsoft fournit un résumé des changements par rapport à la dernière version de la licence. Ces changements sont au nombre de 25. 25 alinéas. Pour tout hébergeur de boite email, une telle quantité de changements serait équivalente à un changement de pied en cap du service. Donc, première chose, on peut légitimiment se poser des questions sur l'exploitation de la boite email étant donné la quantité de changements.
Et les changements sont assez drôles. Voici quelques uns des plus drôles :
- "Dans la section Code de conduite, nous avons rappelé l'interdiction de l'utilisation d'un langage offensif" : un langage offensif ? Outre que ces propos semblent venir d'une traduction automatique de l'anglais, il me semble que des injures ne sont pas répréhensibles et je ne vois pas bien de toute façon ce que Microsoft, comme hébergeur de la boite email, vient faire là-dedans. Et pourquoi pas interdire certains mots pendant qu'on y est?
- "Dans la section Licence de logiciel, nous avons clarifié que pour certains dispositifs, un tel logiciel peut être préinstallé pour votre utilisation personnelle et non commerciale des Services." : préinstallé? Dans le cadre de l'utilisation d'une boite email, Microsoft s'amuserait à préinstaller un ou des logiciels? Pour quelle raison? Pour espionnage?
- "Dans la section Utilisation d'applications et de services tiers, nous avons expliqué que les applications et services tiers peuvent comprendre des compétences, des intégrations et des robots. Nous avons également déclaré que Microsoft ne pourra voir sa responsabilité engagée envers vous ou d'autres personnes au titre des informations ou des services fournis par des applications et services tiers." : Microsoft pas responsable? Ah bon, mais qui alors est responsable ?
On l'a compris, la licence d'utilisateur, si elle était lue par un individu conscient de ce qu'il est en train de signer, refuserait de signer. Ca passera surement comme d'habitude, comme une lettre à la poste.
|  |  | Posted on 12-March-2018 14:14 | Category: anti-Microsoft | comment[0] | trackback[0] Le football est un sport populaire? C'est surement pour ça que lorsqu'un match à objectif européen a lieu, aucune chaîne française ne le retransmet.
Foot est synonyme de fric, rien d'autre.
|  |  | Posted on 07-March-2018 15:23 | Category: France | comment[0] | trackback[0] Build 4.5.0.4 of xlsgen adds support for custom data mapping when importing data from CSV, HTML, JSON and XML files. If you know in advance that in column 2 of your file, there's data of the form 152 kms, where kms is short for kilometers, xlsgen will by default import the data as a string and as a result it will not be possible to make numeric calculations on this column without first translating strings into numbers. Beginning with this build, with the introduction of the ColumnDataMappingFormatByIndex property, you can specify a custom data mapping, before importing the file, which takes care of this and as a result imports the data as numbers with the appropriate number format. The consequence is that any calculation can be triggered right after the import phase process without manual changes. Here is an example of source code, for an HTML file, but this works equally well for CSV, HTML, JSON and XML files : xlsgen::IXlsWorkbookPtr wbk = engine->New( L"output.xlsx" );
xlsgen::IXlsWorksheetPtr wksht = wbk->AddWorksheet( L"Sheet1" );
wksht->Import->HTML->Options->ColumnDataMappingFormatByIndex[3] = L"0 \"kms\""; // note the use of double-quotes
wksht->Import->HTML->ImportFile(L"input\\data.html");
wbk->Close();
There is hope that in the course of 2018, pattern recognition, some form of AI, will be added so that xlsgen can figure out those patterns alone, so automatic type inference will be more powerful. It has already been improved in xlsgen 4.5 |  |  | Posted on 28-February-2018 15:46 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Windows on ARM (WOA) is dead on arrival (DOA).
What made the success of Windows? Every time a new release came, it came with 100%, or almost 100%, compatibility with every application and driver that existed before. In fact, what every new version of Windows was additions, new capabilities, that developers could embrace, and as a matter of fact take as upgrade incentive for their own business matters.
The release of Windows Vista was the first to cause serious harm to this, and to all software developers out there. That was when Microsoft decided to change the device driver model. This in effect broke every existing device and left users forced to either wait for hardware vendors to ship a compatible driver (never came) or to purchase Windows Vista compatible devices.
That alone almost broke Microsoft. But the install base was so big, everyone took their time to consider Windows Vista, that in fact taking just 3 years before upgrading left enough time for a number of device drivers to come along. In fact, this set of device drivers of the Vista era were shipped as Windows 7 back in 2007.
Everyone then was happy to upgrade and return back to their business.
Then Windows took a big wrong turn with Windows RT, a release that effectively broke application compatibility. No one ever upgraded to Windows RT. Big fail. Fortunately Windows RT was not the only Windows release, Microsoft indeed also shipped Windows 8. That almost failed too, but application compatibility was kept and device drivers were not changed. In fact Windows 8 took a hit only because of the UI changes, Microsoft thought that that would be a useful addition despite the fact that desktops could not take advantage of most of what was new (touch UI).
Windows 10 is released since and you know that it is successful because, again, application compatibility and device driver compatibility. The only reluctance to upgrading is that the system comes with a surveillance tool (that phones home personal data every few minutes), and ad placements in several places. Not enough to convince the majority of Windows users to avoid it at all cost, even though it is known these days that Windows 10 is evil.
Windows 10 S was then released, in 2017 and broke application compatibility. Microsoft indeed chose to only let applications from their own garden be allowed to install, essentially killing vendors out there not willing to submit themselves to uncalled for slavery. We are in 2018 and it is still too soon to tell, but there is good reason to believe that Windows 10 S will fail just like Windows RT. Even though you could find a justification as a software vendor to develop and sell software through Microsoft garden store, it appears that it is a bit too strong a thing to accept for most sensible vendors out there, essentially because Microsoft is willing to act like god : has death and life power on to you, and you lose the ability to control software that your own customers effectively install and use. Your own customers cannot install software from your website anymore.
We learn that in fall 2018, Microsoft will ship Windows RT 2, their second attempt at derailing the x86 era of software, by introducing ARM emulation. Of course, that was a non secret, this comes with compatibility problems for applications, and also zero support for existing x86 device drivers. If you read what was said before, this is effectively twice the reasons enough for Windows RT 2 (also known as WOA 2) to fail in the market. Of course, to be successful, Microsoft would have to stick it to every mouth by essentially forcing OEMs to include it in PC hardware. Never going to happen, because that would incur major risks to all OEMs out there.
|  |  | Posted on 22-February-2018 13:49 | Category: anti-Microsoft | comment[0] | trackback[0] J'avais déjà beaucoup d'estime pour Poutine, mais lorsque j'apprends qu'il déclare publiquement ne pas utiliser de smartphone, mon estime augmente encore un peu.
Bravo!
Et à tous ceux qui se disent à quel point c'est rétrograde, qu'ils continuent à donner gratuitement leurs données privées à des dizaines d'entreprises tous les jours.
|  |  | Posted on 10-February-2018 11:53 | Category: France | comment[0] | trackback[0] Posted on 06-February-2018 23:11 | Category: France | comment[0] | trackback[0] <-- previous page
|
This site Home Articles
DevTools
CPU-Z
EditPlus
ExplorerXP
Kill.exe
OllyDbg
DependencyWalker
Process Explorer
autoruns.exe
Araxis
COM Trace injection
CodeStats
NetBrute
FileMon/Regmon
BoundsChecker
AQTime profiler
Source monitor
GDI leaks tracking
Rootkit revealer
Rootkit removal
RunAsLimitedUser(1)
RunAsLimitedUser(2)
Liens
Le Plan B
Un jour à Paris
Meneame
Rezo.net (aggr)
Reseau voltaire
Cuba solidarity project
Le grand soir
L'autre journal
Le courrier suisse
L'Orient, le jour
Agoravox (aggr)
|