Build 4.5.0.28 of xlsgen brings improvements to speed. Whenever you are creating a large number of ranges, or a large number of strings in cells, xlsgen greatly reduces the memory fragmentation resulting from doing so. And your client source code needs not be updated to take advantage of it.
|  |  | Posted on 14-July-2018 14:49 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.27 of xlsgen adds automatic source code generation support for pivot tables. In other words, the automatic source code generation tool automatically creates the source code for existing pivot tables from XLS, XLSX and XLSB files, in the programming language of your choice. It makes it much simpler to use in practice : just create the pivot table in Excel, and ask the automatic source code generation tool for it. Here is an example : A pivot table in ExcelAnd here is the corresponding source code for it (VB) : Dim pivotTable002s0 As IXlsPivotTable Set pivotTable002s0 = wksht002.NewPivotTable pivotTable002s0.DataSource.Range = "Sheet2!B2:F7" pivotTable002s0.Options.Layout = enumPivotTableLayout.pivottablelayout_tabular pivotTable002s0.Options.BuiltInPivotTableStyle = enumPivotTableStyle.pivottablestyle_light16 pivotTable002s0.Options.ShowRowHeaders = True pivotTable002s0.Options.ShowColumnHeaders = True pivotTable002s0.Options.ShowRowStripes = False pivotTable002s0.Options.ShowColumnStripes = False pivotTable002s0.Options.ShowGrandTotalsForRows = True pivotTable002s0.Options.ShowGrandTotalsForColumns = True Dim pf002s0r1 As IXlsPivotTableField Set pf002s0r1 = pivotTable002s0.Rows.AddByName("s0") pf002s0r1.AggregateFunction = enumPivotAggregateFunction.aggrpivotfunction_none pf002s0r1.UnselectItemByName("aé") Dim pf002s0r2 As IXlsPivotTableField Set pf002s0r2 = pivotTable002s0.Rows.AddByName("s1") Dim pf002s0d1 As IXlsPivotTableField Set pf002s0d1 = pivotTable002s0.Data.AddByName("s2") pivotTable002s0.InsertAt(13, 4) It covers many of the pivot table features, i.e. data source, style, pivot fields (page/row/col/data), pivot field details (sorting, filtering, show values as, number format, ...) |  |  | Posted on 12-July-2018 09:16 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.26 of xlsgen fixes a file migration problem related to ranges. When an XLS file is migrated to a XLSX file or a XLSB file, 256-column wide rows and 65536-row wide column are migrated to respectively 16384-column wide rows and 2^20-row wide columns.
|  |  | Posted on 29-June-2018 18:46 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.25 of xlsgen fixes a problem related to page fields in pivot tables.
When a single item is selected in a page field, Excel defaults to a single-selection UI instead of a multi-selection UI. Oddly enough, this is stored differently in the file too, whether it's a XLS, a XLSX or a XLSB file. xlsgen now does this too even though this is a design snafu.
What this build of xlsgen also brings to the table is perhaps more interesting to the client application developer : it's the ability to select items without unselecting them all first. Indeed, by default, all items in the field are selected by default. And if you'd like to select just one or two of them, before this build, you would have to unselect them all (there is a method that does this in a single call), and only then start selecting single items. With this build, the prior unselection is done for you so you don't have to.
|  |  | Posted on 25-June-2018 11:34 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Je suis assez content de constater que semble-t-il les alertes du dénonceur Snowden sont désormais un échec total sur le fond. Le simple fait que tant de gens utilisent un smartphone est un magnifique contre-exemple sur l'idée que les gens ne sont pas totalement idiots, tant les smartphones sont construits pour partager des informations privées. C'est d'ailleurs la raison pour laquelle, depuis dix ans, la plupart des sites ont désormais leur "app" : en effet, rien de mieux pour construire des bases de données client sans qu'à un instant le client puisse s'y opposer.
Par ailleurs, le système du chiffrement des messages est une vaste blague. D'abord, les protocoles n'ont jamais été pensés pour, ce qui les rend inutilisables en pratique. Deuxio, et c'est fondamental, internet a été fait pour être ouvert, donc particulièrement susceptible d'être écouté par des tiers, voire piraté. C'est sans surprise que la cyber-sécurité est un métier d'avenir, mais uniquement pour des gens sans morale car la distance est faible avec le salopard et le white hat.
Manquerait plus que Snowden, face à cet incroyable fail, fasse dans les droits de l'homme maintenant. Tiens, check.
|  |  | Posted on 20-June-2018 14:54 | Category: France | comment[0] | trackback[0] Le premier problème avec un état qui compte s'octroyer le pouvoir de dire ce qui est vrai et ce qui ne l'est pas, est que c'est la définition du totalitarisme. Un totalitarisme qui fait abstraction de ce que pensent les gens, et n'est par conséquent pas viable.
Le second, c'est que l'état via des minorités actives peut vouloir dire cette vérité pour en réalité prendre le contrôle de l'information, soumettre les supports d'information selon leur désidérata. Ceci ne pose pas de problème tant qu'il y autant de plateforme que nécessaire pour refléter la sensibilité des gens et l'information. Mais dans un monde fait de Google et Facebook, cela pose un problème manifeste tant ces 2 entreprises à elles seules représentent une concentration des supports mondiaux. Exactement comme s'il n'y avait plus qu'un imprimeur sur la planète et que des minorités actives peuvent dicteur leur loi à cet imprimeur.
Pourtant, une vision démocratique des choses tenderait à promouvoir l'émergence, pour l'utilisateur de la platforme, n'ont pas de loi répressive et coercitive, qui est un élément objectif d'un état policier, mais d'outils permettant de ne pas voir des informations que l'on pense éronées ou pas compatibles avec sa sensibilité, un peu comme un filtre anti-spam mais plus générique. Ces outils donnent le pouvoir à chaque utilisateur de ne voir que l'information qu'il souhaite voir et par conséquent lui permet à lui et à lui seul de décider, sans intermédiaire. Dans ce contexte, les plateformes ne sont que des tuyaux, n'ont aucune intelligence et en particulier aucune pression à censurer via des tiers qu'ils soient légitimes (états) ou non (minorités actives).
Il est par conséquent nécessaire que des spécialistes de l'informatique puissent faire partie de ce débat, de façon à équilibrer des discussions qui, autrement, n'enferment que dans une logique policière, qui est loin d'être une solution, ni pérenne, ni morale.
|  |  | Posted on 08-June-2018 11:36 | Category: France | comment[0] | trackback[0] Build 4.5.0.24 of xlsgen improves support for Unicode in CSV export and XML export. For CSV export, the option to export as Unicode UTF8 was already available, but the CSV export did not include a Byte Order Mark right at the beginning of the file that would instruct a consumer application that the file is encoded with Unicode UTF8. This build adds it automatically. If you need to support Unicode UCS2 (i.e. fix 2-byte encoding), this build adds the option in the worksheet export interface. Of course, the corresponding Byte Order Mark is added as well. For XML export, it is exactly the same. Both Unicode UCS2 support is new (default was Unicode UTF8), and also this build adds a Byte Order Mark in the XML output, that lets a consuming application know in advance how the stream/file is encoded. Here is an example (Unicode UCS2) : workbook.WorksheetByIndex(2).Export.Options.UnicodeEncoding = True workbook.WorksheetByIndex(2).Export.ExportAsCSV("filename.csv", True) |  |  | Posted on 06-June-2018 09:42 | Category: xlsgen, Excel generator | comment[0] | trackback[0] J'irai à l'encontre de l'essentiel de la twitosphère à propos du rachat de GitHub par Microsoft, pour un montant colossal qui comme chacun sait ne vise pas à acheter de la technologie (il n'y en a pas), mais 1) la propriété intellectuelle des code repositories privés 2) une part de marché significative des développeurs car depuis 10 ans mettre un projet sur GitHub était une sorte de réflexe.
Je pense que la situation n'est pas la même pour un particulier que pour une entreprise. Pour un particulier, je ne vois pas ce que ça change, sauf si un jour vous êtes obligé d'utiliser un compte Microsoft. Pour les entreprises, c'est totalement différent. Ca se divise en deux cas. Le premier cas, ce sont toutes ces entreprises qui utilisaient GitHub comme produit d'appel pour y mettre des projets démos, des POC, bref du marketing. Pour ceux là, pas de problème, rien ne change.
Le second cas est plus problématique. Ce sont eux qui, sincèrement, mettaient leurs oeufs dans un même panier, externalisaient l'emplacement de leur codes sources sur des serveurs quelque part sur internet et qui ne sont pas les leurs. Cette stratégie était déjà suicidaire. On n'externalise pas sa valeur ajoutée. Et par conséquent, si ces gens là sont punis par la possibilité de Microsoft, un bras armé du gouvernement US, d'accéder à leurs code sources privés, cette punition est méritée. Il fallait réfléchir 2 secondes avant.
Quant à la confiance que l'on peut accorder aux projets open source (java, github, ...), la réalité remet les choses un peu en place. Je n'ai jamais fait d'open source, n'en ferait jamais, et au mieux j'utiliserai de l'open source comme marketing, sans jamais mettre en péril ma valeur ajoutée et ma propriété intellectuelle.
|  |  | Posted on 06-June-2018 09:12 | Category: France | comment[0] | trackback[0] Build 4.5.0.23 of xlsgen has a fix for the calculation engine, for meeting a scenario where cells in error have to be ignored during the calculation of formulas using one or more of the following functions : IFS / SUMIF / SUMIFS / AVERAGEIF / AVERAGEIFS / MINIFS / MAXIFS / COUNTIF / COUNTIFS.
|  |  | Posted on 29-May-2018 20:17 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.22 of xlsgen adds support for shifting cells in a range. Shift cells (before on the left, after on the right)xlsgen shifts cells if a client application deletes entire rows or entire columns. But the client application may need such shift for an arbitrary cell range. When this occurs, the client application must choose to ask xlsgen to fill the blank by shifting cells to the left, or shifting cells up. Here is how it works : worksheet.NewRange("D5:E7").ShiftCellsLeft();or worksheet.NewRange("D5:E7").ShiftCellsUp(); |  |  | Posted on 27-May-2018 23:18 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.21 of xlsgen fixes a problem related to hyperlinks. By default xlsgen url-encodes urls in hyperlinks before they are written to XLSX and XLSB files. Url-encoding, for instance, replaces # characters with %23 sequences (23 is the hexadecimal ascii-code of the # character). It turns out that sometimes the client application passes urls that are already url-encoded to xlsgen. Url-encoding twice simply corrupts the url, so build 4.5.0.21 exposes a UrlEncode property to the IXlsHyperlink interface. Defaulting to true, the client application can set it to false to avoid url-encoding twice. Also build 4.5.0.21 includes a fix for pivot tables in XLSX files where one of the pivot table field names may have appeared with an incorrect "Row Labels" label. |  |  | Posted on 23-May-2018 10:33 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 4.5.0.20 of xlsgen makes it possible to convert dynamic ranges.
xlsgen exposes two kind of ranges : one is the most generic, actually holding a formula, and these are called dynamic ranges. They do not expose much features except an associated name (hence the name, named range) and the ability to enumerate and delete any of them. The other are regular ranges, basically holding one or more cell areas. Regular ranges expose a lot of features (almost 50) : from a regular range, you can create merged cells, outlines, tables, ...
Well it turns out, sometimes you need to use an existing dynamic range in order to create an object that typically is created from a regular range. So you need a way to convert a dynamic range to a regular range seamlessly. That's exactly what xlsgen 4.5.0.20 does. xlsgen does calculate the dynamic range and expands the output as cell areas as a regular range.
xlsgen::IXlsRangePtr regularRange = workbook->NamedRanges->DynamicRange[2]->Range;
|  |  | Posted on 17-May-2018 23:18 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Tous les protocoles de chiffrement ont des vulnérabilités et on les découvre les unes après les autres. C'est au tour de S/MIME et de PGP, après SSL et TLS.
En fait, c'est dû à deux choses :
- la première, c'est qu'internet n'a jamais été pensé pour être fermé (chiffré). Voici un petit poke à ces rigolos de la quadrature du net et compagnie.
- la seconde, c'est qu'il est impossible avec du software de garantir une invincibilité aux vulnérabilités. Mettez-y suffisamment de budget, en gros embauchez un développeur (un vrai, il se trouve que ça ne court pas les rues), capable de travailler avec ollydbg et co, et il n'y a plus qu'à attendre.
Corollaire, c'est une bonne nouvelle pour quelques gros acteurs du cloud pour nous annoncer de nouveaux protocoles de chiffrement, comme par hasard. Et il se trouve que ces acteurs, tous américains, sont des bras armés du département américain des affaires étrangères.
|  |  | Posted on 14-May-2018 21:03 | Category: France | comment[0] | trackback[0] Build 4.5.0.19 of xlsgen is a fix pack :
- chart rendering : the plot area is made smaller, should axis titles be rotated, to avoid some clipping
- hyperlinks : for named anchors, fix for writing such hyperlinks in XLSX files. It was working with XLS and XLSB files.
- CSV import : when a custom data type is specified for a column, it always takes precedence to what xlsgen infers automatically.
|  |  | Posted on 08-May-2018 15:58 | Category: xlsgen, Excel generator | comment[0] | trackback[0] J'ai connu Google, Facebook et Amazon tenter de faciliter la vie des gens en fournissant des services internet, gratuits ou pas, qui permettaient de trouver quelque chose en moins de temps. Le temps gagné permettait de l'occuper à faire autre chose. Le bénéfice était direct, vérifiable.
Aujourd'hui c'est autre chose, car une force inconnue à réussi à faire en sorte que Google, Facebook, Amazon et Microsoft sont dorénavant des censeurs de contenu. D'une part, la chose que vous cherchez sera peut-être introuvable avec leurs services. A l'époque tout était indexable. Aujourd'hui c'est toujours le cas sauf qu'une partie de l'index est rendue inaccessible. Bref, une censure objective.
Deuxio, votre contenu est systématiquement lu et analysé, bien que cela soit moralement répréhensible, légal peut-être aux états-unis car les sociétés high-tech américaines sont soumises aux lois américaines qui, via les lois anti-terroristes, les transforment en bras armé du gouvernement. Petit rappel : le terrorisme doit tuer un million moins de fois par an que quantité d'autres choses dont les victimes peuvent se revendiquer. Par exemple, aux états-unis, il y a une fusillade tous les jours. Pourtant, cela ne fait pas l'objet de la moindre critique ici. Une fois que le contenu est lu et analysé, la fonction censure intervient et Google, Facebook, Amazon et Microsoft peuvent soit décider de rejeter votre contenu, soit, pire encore, de vous dénoncer à la police, sans même vous le dire.
L'ami est devenu votre ennemi. Tout ça pour dire, chaque fois que vous utilisez leurs services, sachez qu'ils ne reflètent qu'un sous-ensemble de ce qui est accessible sur internet. D'autre part, sachez que ces gens peuvent, de manière arbitraire, se retourner contre vous et vous causer les pires misères.
Je dis ça de manière objective car, n'ayant pas de compte Facebook par exemple, je m'exonère de quantités de problèmes. D'ailleurs normalement, ce que je devrais faire c'est établir dans mes connaissances qui a un compte Facebook et les boycotter parce qu'ils ont un compte Facebook. Quant à Google, Amazon et Microsoft, ne pas mettre de contenu sur leurs serveurs non plus.
|  |  | Posted on 03-May-2018 09:26 | Category: France | comment[0] | trackback[0] Build 4.5.0.18 fixes a number of chart rendering issues and one chart reading issue. Fixed chart rendering issues : - render optional drop lines to applicable 2D charts (mostly line charts and area charts)
- render optional drop lines for line 3D charts and area 3D charts
- render axis numbers with locale even when there is no number format (so "0,5" instead of "0.5" if the user country's locale for decimal separation is the comma)
- background gridlines thiner and less black in the PDF output
- Y axis repositioned when data has both negative and positive values
- render pie and doughnut leader lines (between data labels and chart elements)
And also custom data label positions from charts in XLSX and XLSB files were obscured from reading properly due to an artifact. |  |  | Posted on 01-May-2018 09:31 | Category: xlsgen, Excel generator | comment[0] | trackback[0] In build 4.5.0.17 of xlsgen, a number of issues are addressed :
- when rendering a chart with rotated text on axis tick marks, better positioning of the text to avoid clipping with the chart area.
- when reading a chart from XLSX and XLSB files, read drop lines, high-low lines and up-down bars and their associated formattings.
- for pivot tables, better coercing of mixed data types in a column in order to avoid file corruption (Excel super sensitive).
|  |  | Posted on 27-April-2018 11:21 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Depuis que RTL a déménagé à Neuilly sur seine, ce qui en soi en dit long déjà sur ce qu'elle représente, force est de constater que les images qui viennent des leurs podcasts vidéo sont assez étonnantes : lumière de néon, aménagement sommaire, cela fait pas mal penser à une espèce de bunker.
D'autant plus drôle qu'on le sait, pas mal de médias sont effectivement bunkérisés. Ceux qui revendiquent journalistes, témoins de la réalité et du vrai peuple, vivent en réalité dans des bunkers.
Et c'est encore plus drôle quand on sait que les politiques s'y pressent pour pouvoir l'honneur d'y parler. Des politiques qui se soumettent à tout et à ras de terre pour obtenir le droit de parler.
Tout un symbole ! Tout est à l'envers dans ce petit monde pourri.
|  |  | Posted on 18-April-2018 10:42 | Category: France | comment[0] | trackback[0] Le titre de l'article : extrait : "Faites-vous partie des millions de Français qui, sans le savoir, ont donné leurs informations personnelles et fiscales à Google ces derniers jours ?" C'est moi qui met en gras. Cette information, si elle est vraie, devrait faire l'objet d'une saisine judiciaire immédiate. Mais évidemment, ce n'est pas le cas du tout. Il suffit de lire l'article, qui contredit ce que dit son titre ! extrait : "Or, pour chaque vidéo diffusée sur la plateforme, le géant américain collecte des données personnelles sur les internautes en déposant des cookies, des mouchards publicitaires, sur leurs ordinateurs." L'article explique que ce ne sont pas du tout des données personnelles et fiscales qui sont vues par Google, mais uniquement ce que l'on appelle un referrer techniquement, qui est par exemple exactement ce que voit passer facebook à chaque fois que vous regardez une vidéo sur le site de youtube car ceux qui font le site youtube ont décidé de mettre un bouton de partage pour facebook dedans et que, sauf erreur de ma part, ce lien est une ressource principale de la page youtube, pas une ressource activée uniquement en cas de besoin. L'article est mensonger par ailleurs pour ce qui est des cookies, car le cookies de la DGFIP n'est pas envoyé au domaine youtube : les cookies sont segmentés par domaine, précisément. Bref, en résumé, total fake news. Morandini à la poubelle! |  |  | Posted on 18-April-2018 08:17 | Category: France | comment[0] | trackback[0] J'expliquais il y a peu que l'expression intelligence artificielle ne voulait rien dire et que par conséquent ceux qui l'utilisaient s'en servaient soit parce qu'ils ont quelque chose à nous vendre, soit qu'ils veulent se servir de cet écran de fumée pour avancer sur d'autres choses. On le savait, mais la certitude vient du fait que les propos ont été tenus par l'intéressé lui-même, qui pense surement que des français n'iront pas lire une interview de lui dans une revue high-tech californienne à propos de l'intelligence artificielle. Pourtant, Emmanuel Macron, puisque c'est très clairement de lui qu'il s'agit n'y va pas par quatre chemins, pour expliquer ce qu'il entend faire. Voyez plutôt : extrait : "On Thursday, Emmanuel Macron, the president of France, gave a speech laying out a new national strategy for artificial intelligence in his country. The French government will spend €1.5 billion ($1.85 billion) over five years to support research in the field, encourage startups, and collect data that can be used, and shared, by engineers. The goal is to start catching up to the US and China and to make sure the smartest minds in AI—hello Yann LeCun—choose Paris over Palo Alto." Jusque là on se dit vive la France ! Mais c'est sans anticiper ce qui va sortir. Question du journaliste : extrait : "What was the example of how AI works that struck you the most and that made you think, ‘Ok, this is going to be really, really important’?" Et la réponse : extrait : "Probably in healthcare—where you have this personalized and preventive medicine and treatment. (...) AI will raise a lot of issues in ethics, in politics, it will question our democracy and our collective preferences. For instance, if you take healthcare: you can totally transform medical care making it much more predictive and personalized if you get access to a lot of data. We will open our data in France. I made this decision and announced it this afternoon. But the day you start dealing with privacy issues, the day you open this data and unveil personal information, you open a Pandora’s Box, with potential use cases that will not be increasing the common good and improving the way to treat you. " J'ai mis la phrase en gras. Les médias français ont-ils parlé de cette annonce? Et de ses conséquences? La réponse est non. Emmanuel Macron vient juste d'annoncer qu'il va mettre à disposition du privé les données de santé. Quel mal y a -t-il à ça? Imaginez ces données dans les mains des assureurs par exemple : un assureur refusera de prendre en charge quelqu'un en fonction de ce contiennent les données. Nous ne sommes plus dans la santé comme service public, mais comme marché, comme centre de profit, en particulier profit pour les privés qui s'implanteront et exerceront sur les domaines profitables, et dettes pour les hopitaux qui devront s'occuper de ce qui coûte cher et n'est pas rentable. Autrement dit, la création d'une dette publique par la volonté politique libérale. A ceux qui se posent la question de quoi Macron est-il le nom, cette décision y répond parfaitement. On a là la continuité du travail méthodique de destruction, de libéralisation du service public. Une continuité avec l'oeuvre de Sarkozy et de Hollande. |  |  | Posted on 17-April-2018 16:08 | 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)
|