Build 5.0.0.26 of xlsgen adds another round of memory optimizations, this time related to Infer() scenarios. Lower memory consumption, less fragmentation resulting in faster execution.
Infer() scenarios include the ability for xlsgen to discover tables inside a worksheet, including headers, data types and styles.
| | | Posted on 21-March-2024 10:25 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.25 of xlsgen reduces memory consumptions in a number of scenarios working with large files, that is importing data (CSV/XML/JSON/HTML), inferring worksheets and duplicating worksheets. Memory reduction is designed to make it more scalable as the data grows.
| | | Posted on 13-March-2024 18:08 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.24 of xlsgen has a fix related to memory corruption.
The scenario includes opening and updating a XLSX or XLSB file with a long file path (possibly due to sub-folders). A workaround to the fix is, instead of opening X and saving as X, to open as X and save as Y, assuming Y is later renamed to X or whatever. Also a workaround consists in saving to memory, thereby with all the freedom to write back as a file later on.
| | | Posted on 23-February-2024 12:24 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.23 of xlsgen fixes a problem related to duplicating smooth lines in line/scatter charts in XLSX/XLSB files.
Recent Excel versions differ on how they act on the default value on the smooth line option and as such we did see different appearance depending on the Excel version being used to open the files. xlsgen makes sure to avoid default values on the smooth line option.
| | | Posted on 13-February-2024 15:25 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.22 of xlsgen is a fix pack. Includes the following fixes :
- better rendering of date axis in charts wherever applicable. For instance, the number of labels along the axis is made so it's more readable.
- improved shape size compute for rendering purposes.
| | | Posted on 31-January-2024 21:26 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.21 of xlsgen improves printing row and column headings (print, PDF, ...). It clips shapes and other objects so they don't overlap headings.
| | | Posted on 30-January-2024 08:39 | Category: xlsgen, Excel generator | comment[0] | trackback[0] With all the regulations and upending justice actions, mobile marketplaces are in a turmoil right now. Expect big and brutal changes. But if you are a small indie, expect the worst, because you (we) are the guys who are going to get the hardest hits, because we can't afford it in the first place. It's really a bad time to be there right now.
| | | Posted on 17-January-2024 10:09 | Category: News | comment[0] | trackback[0] Twitch laying off 35% of staff a year after doing a large layoff does not bode well for Twitch's future especially when you see that Twitch is grabbing every cent possible from streamers (lower commission, trying to get a hand on donations, multiplication of ads...).
Obviously I don't know what it costs to run this delivery network, but one thing I know is that if Twitch is forced to use and pay AWS servers (Amazon is the parent company), then perhaps it's costing them too much compared to their own specialized hardware.
Does not bode well for streamers.
With that said, 90% of streamers have less than 10 viewers so streamers could just as well host their own video servers instead of defaulting to Twitch. That is, until their view count crosses a profitability threshold and Twitch servers become viable.
| | | Posted on 12-January-2024 19:12 | Category: News | comment[0] | trackback[0] Je commence à m'intéresser à Android et je suis quand même effaré de ce que je découvre. D'abord l'éditeur principal pour faire du soft sur cette plateforme c'est Android Studio, et cette merde arrive à aplatir de souffrance un PC relativement costaud. Raison principale étant ce que cette merde est écrite en Java au lieu d'un langage natif, bref vous vous prenez dans la tronche tous les bagages et porte-bagages du runtime Java, avant même d'avoir écrit une ligne de code.
Deuxio ce qui sert à faire de l'UI est une merde comparé à ce qu'était l'éditeur d'UI dans Visual Studio il y a 25 ans ! Ca il faut le faire. Par exemple, si vous insérez un bouton et que vous double-cliquez dessus, cela ne génerera en rien le squelette de code pour gérer ce qui se passe lors d'un click. Et tout compte fait il y a peut-être une raison à cela, c'est qu'aujourd'hui l'event handling doit passer par un callback en plusieurs couches. Là encore ça me laisse bouche bée. C'est destiné à qui cette horreur ? Comment imaginer que les gens qu'on va mandater pour faire des UI vont faire autre chose que de récupérer des UI existantes sur internet, notamment sur Git Hub ? Inimiginable autrement. Et l'ironie de l'histoire c'est que l'IA générative va mettre ces gens au chomage.
Je continue.
Comme chacun sait, un appareil mobile peut être orienté en portrait ou en paysage, et de plus il y a de grands écrans, typiquement des tablettes. Et même là ce n'est pas clair si on compare la résolution d'écran d'un téléphone récent par rapport à celle d'un téléphone d'il y a 8 ans, et la résolution d'une tablette. Sans surprise, Android Studio encourage la création d'autant d'UI que de combinaisons. Dans n'importe quelle application qui cherche à afficher son UI correctement, il y aura 4 fichiers différents, téléphone/portrait, téléphone/paysage, tablette/portrait, tablette/paysage. Le moindre changement d'UI devra être reporté (et testé) dans 4 fichiers différents ! C'est ultra productif et pas du tout error prone ! Notez l'ironie.
Dernière chose en date, alors que je teste ma première app en réel, je constate que mon UI explose si l'utilisateur ne choisit pas un réglage standard de taille de police. Ce qui est son choix et il faut évidemment le respecter. Android Studio crée des bouts de texte en les dimensionnant par des "sp", scalable pixels, qui est une variante du "dp", device independent pixels. Mais ce "sp" casse tout en réalité car il permet que l'UI soit dimensionnée pour tenir compte de la résolution de l'écran de l'appareil de l'utilisateur. Ce qui est une bonne chose. Mais, pour répondre au souhait de l'utilisateur, les textes affichés sont aussi redimensionnés pour tenir compte à la fois de résolution de l'écran mais aussi du choix de taille de police de l'utilisateur, alors que le concepteur de l'UI ne le prévoit pas en ayant mis "sp". Bref, l'UI explose, le texte se retrouve tronqué, illisible, c'est terminé ! Au cas où ça ne serait pas clair, "dp" c'est spécifier des centimètres pour faire une UI, donc ne pas tenir compte de la taille de l'écran de l'utilisateur. Et d'ailleurs quand vous commencez à utiliser des centimètres, le meilleur pour faire ça c'est un bout de...papier !
La solution, en tout cas une solution c'est d'utiliser "dp" pour spécifier les tailles des polices lors de la conception des UI, c'est-à-dire de ne pas donner la possibilité à l'utilisateur d'imposer la taille des polices. Ainsi la maitrise du rendu de l'UI sur son appareil est conservée. L'UI n'explose pas et ainsi il y a une petite chance que l'utilisateur puisse l'utiliser, bien que ce soit sans la taille de police qu'il souhaite ! Android Studio, par le fait de mettre par défaut des "sp" partout pour les bouts de texte, favorise une mauvaise conception des UI. Ce qui est proposé par défaut compte énormément dans ce que font une majorité de développeurs.
C'est à peine croyable en 2023. Et encore, je m'arrête là car je n'en sais pas plus encore sur ce que je risque de découvrir. Ca fait peur.
| | | Posted on 31-December-2023 20:47 | Category: anti-Google | comment[0] | trackback[0] In the previous post, I made a comment related to how FastSpring was in my opinion either committing suicide or deliberately removing small vendors from their market place, by implementing a very expensive risk screening fee. The announcement came with a short date ultimatum, the way they implemented it was speaking volume in and of itself... Now, those MFs have sent a reminder, and that fee that was announced as a one-time fee has now become an annual fee ! RIP FastSpring. You are not getting a single dollar from me anymore. | | | Posted on 27-November-2023 16:22 | Category: News | comment[0] | trackback[0] Build 5.0.0.20 of xlsgen adds read and write support for the following functions :
- GROUPBY : allows you to create a summary of your data via a formula. It supports grouping along one axis and aggregating the associated values. For instance, if you had a table of sales data, you might generate a summary of sales by year. Syntax :
=GROUPBY(row_fields,values,function,[field_headers],[total_depth],[sort_order],[filter_array])
- PIVOTBY : allows you to group, aggregate, sort, and filter data based on the row and column fields that you specify. Syntax :
=PIVOTBY(row_fields,col_fields,values,function,[field_headers],[row_total_depth],[row_sort_order],[col_total_depth],[col_sort_order],[filter_array])
- PERCENTOF : returns the percentage that a subset makes up of a given data set. Syntax :
=PERCENTOF(data_subset,data_all)
Functions are available from Microsoft in Excel 365. In beta at the time of writing. | | | Posted on 26-November-2023 14:40 | Category: xlsgen, Excel generator | comment[0] | trackback[0] I had been a happy software seller using FastSpring payment processing since 2014. When in 2020, FastSpring decided unilaterally to outsource monthly payments to PayPal subsidiary HyperWallet, I knew there was something going on. Indeed why would a payment company outsource a payment to another payment company, in addition to being competitors ?
HyperWallet in turn only allowed seller accounts to be actually paid after an identity verification took place. I thought they were being ANAL, after all, those guys are a private company, not the IRS, so what the hell. Yet I went through it and once completed I never had a problem with monthly payments. However I never liked having to deal with two companies even though my contract was basically with only one. Just did not have other options at the time being.
Yet things went on, and I thought perhaps that was the end of troubles. Well I guess until now. In November 13, 2023, FastSpring sent an email with this :
"FastSpring Risk Screening Process: Action needed
We would like to express our sincere gratitude for your continued support and trust in our services. As the e-commerce industry continues to evolve, we, as a responsible merchant of record, are obligated to perform regulatory requirements aimed at ensuring the security and integrity of our platform. In line with these evolving industry standards, we are implementing a Risk Screening Process, which is essential for maintaining a secure and reliable marketplace for all of our users. This process will include ID and address verification and will be conducted by our trusted partner, ShuftiPro.com who is renowned for its expertise in this field."
This is the first part of that email, and yet I am being let known that yet another third-party from nowhere is being introduced, and that probably I'll have to show identity papers even though I owe nothing to them. And of course, they probably think they owe nothing to me either, so whatever identity papers I show them, they get to sell them to any party they want if so they choose. How does that can possibly fit my contract with FastSpring ? How many additional third parties will get added in the long run ?
And here is the rub,
"We have implemented a fee of $150.00 to complete the Risk Screening. (...) If the fee payment isn't received by the specified date (December 4, 2023), your account will be unfortunately disabled, resulting in loss of access to the FastSpring platform and payment processing capabilities, including subscription renewals. Any existing payouts will be held for a duration of 90 days to account for potential refunds or chargebacks before being released."
So I have to pay for this even though I am the one providing identity papers. Really ?
And if I don't, my FastSpring account gets disabled next month regardless the sales going on. Oh and by the way, pending payments will be held as well.
Extortion, scam, phishing, I am out of words to describe what's going on here. How come a company that I came to respect along the years can coerce me into doing these things without giving alternatives ?
Oh and that's before you realize that the $150 USD they ask is before the VAT. Because yes, you'll be paying a VAT on it. In euros, it's a total of 175 euros instead of 142 euros.
I have asked support at FastSpring what was going on and got nothing relevant and was not offered options. Yes, support ended right there. That's it.
Now you know, next time you are wondering if FastSpring is a company to rely on, the answer is a definitive NO.
I went through a lot of shit already : I was in contract with Plimus/Bluesnap before and they screwed me too with monthly maintenance fees that were held and eventually never paid. Lost more than $300 USD with them, along with a despicable support people policy.
I am not saying this is the end for payment companies. Just that those that haven't been sold yet are taking a look at their margins, and probably doing this to get rid of small sellers. But this does not bode well for payment companies on the one hand, for individuals trying to sell software out there by relying on such payment companies on the other hand.
The first thing I did is try a non US company if perhaps the operating norms are a bit more loose and they won't be as much ANAL and as a result those guys won't screw sellers as much as those mentioned above did.
I am holding my breath though. Not quite confident that this will go smooth for the foreseeable future. It's really as if, when it comes to getting paid, something trivial, if you are a small company trying to sell out there, things are being made harder for doing just that. So you can have ultra speed internet fiber, PCs that can run all the software you want, but unable to make a business in this environment unless you are large and known. I am pretty sure if I were able to afford to send them a lawyer, things would take a different turn. Disgusting to say the least.
| | | Posted on 19-November-2023 16:17 | Category: News | comment[0] | trackback[0] Les résultats financiers de Google et de Microsoft donnent le tournis tant ils sont en croissance, et ce malgré la fin du covid et donc des achats massifs de matériels et de logiciels pour pouvoir travailler à distance. D'ailleurs depuis quelques années, il se vend de moins en moins de PC et il est difficile de croire que la situation va changer, sauf si Microsoft OBLIGE littéralement les gens à acheter de nouveaux ordinateurs.
Concernant les résultats financiers, ce qu'on ne dit pas ce que ce fric est fait aux dépends des petits acteurs historiques qu'étaient les éditeurs de logiciels petits et moyens, les prestataires de service petits et moyens, bref ce fric arrive de la mort de ces acteurs à qui il revenait collectivement.
Peut-être, avec le recul, est-ce du darwinisme et que Google et Microsoft sont juste meilleurs.
Mais peut-être que ce n'est pas ça du tout et que ce n'est que la concrétisation d'une double fuite en avant.
D'abord cette fuite en avant sécuritaire qui interdit pratiquement d'installer quelque application que ce soit sur un ordinateur alors même que c'est sa fonction première, et la fuite en avant du "cloud" qui consiste à ne proposer plus que des services en ligne, piégeant une fois pour toutes les utilisateurs finaux et les entreprises.
A noter que si un petit acteur qui se pose en concurrent de Google et Microsoft propose une solution cloud à des entreprises, il sera toutefois obligé de faire reposer sa solution sur un cloud détenu par Google et Microsoft. Impossible d'y échapper désormais : le petit acteur sert d'ouvrier pour Google et Microsoft ; il creuse sa propre tombe.
| | | Posted on 05-November-2023 09:19 | Category: France | comment[0] | trackback[0] Build 5.0.0.19 of xlsgen ensures that Excel files storing Python functions coming from the recent Python in Excel feature introduced by Microsoft are preserved as is.
Most notably, supporting reading and writing the new PY() function.
xlsgen does not run Python script however. If you want to use xlsgen and Python together, you can load xlsgen from a python environment and continue from there. This has been available forever.
| | | Posted on 29-October-2023 11:07 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Je me pose la question aujourd'hui de savoir si la boutique Google play ne serait pas du scam par hasard. Parmi la grande quantité d'informations très personnelles qui sont demandées, il y a celles-ci : Create and manage your payments profile
Your Google payments profile stores information like:
Name, address and tax ID (when required legally) of the person who is responsible for the profile Credit cards, debit cards, bank accounts and other payment methods that you've used to buy through Google in the past Receipts and other information about past transactions Subscriptions and recurring payments People that you have invited to use your profile
Ceci est obligatoire rien que pour pouvoir publier une application sur la boutique Google play, même si votre application est parfaitement gratuite (pas de paiement au téléchargement, ni à l'intérieur). Et je le répète, ce n'est à ce stade qu'une partie des informations personnelles obligatoires. Je trouve que donner ces informations c'est donner plus que je ne donne aux impôts. Et mon petit doigt me dit qu'il y a quelque chose qui ne va pas. Je vais peut-être être obligé d'annuler mes prétentions à faire des produits Android. Et franchement, ce sera sans regret si on ne fait que m'imposer des contraintes. La boutique Google play devrait être mon assistante pour diffuser en ligne mes applications, et rien d'autre. De gros doutes sur la finalité de mes informations. Google au service de la NSA ? | | | Posted on 17-October-2023 18:01 | Category: anti-Google | comment[0] | trackback[0] Build 5.0.0.18 of xlsgen adds support for running Windows PowerShell scripts. Windows PowerShell is part of Windows and is more security-aware than other scripting languages such as VBScript and JScript. Since it can create and run COM object instances, and expose the object model to the client application, it is important to make it available to everyone in the context of xlsgen applications. Windows PowerShell scripts are .ps1 files. And PowerShell is one of the available programming language targets available in the automatic source code generation tool that comes with the xlsgen install so you can get going in a snap. Build 5.0.0.18 comes with a code sample (/samples/PowerShell) that creates a simple worksheet. A copy of it is below. Note that the xlsgen object model has constants (enumerated types) that PowerShell does not expose after reading the xlsgen type-library so we are making available, also in code samples, a file called xlsgen.ps1 that exposes all constants available from the object model. Below is a code sample using PowerShell : # Produced by xlsgen code generator (c) ARsT design. # For more info, see http://xlsgen.arstdesign.com # # To use this code in your PowerShell script editor, remember to add the # xlsgen constant-library with the following statement : # .samples/PowerShell/xlsgen.ps1 # # In order to import the .ps1 script, make sure to run PowerShell as admin and # set the appropriate execution policy as in : # Set-ExecutionPolicy RemoteSigned # which allows to run the .ps1 script within a console #
$engine = new-object -ComObject ExcelGenerator.ARsTDesign $workbook = $engine.New( "C:\tmp\myfile.xlsx" )
$wksht001 = $workbook.AddWorksheet( "Sheet1" )
$wksht001.Cell(1,2).HtmlFloat = "<font color=#000000 size=11 name=""Calibri"">154</font>" $wksht001.Cell(1,3).HtmlLabel = "<font color=#000000 size=11 name=""Calibri"">this is a test</font>" $wksht001.Cell(3,3).HtmlFloat = "<font color=#000000 size=11 name=""Calibri"">1</font>" $wksht001.Cell(4,3).HtmlFloat = "<font color=#000000 size=11 name=""Calibri"">2</font>"
$workbook.Close()
| | | Posted on 13-October-2023 19:00 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.17 of xlsgen complements build 5.0.0.15 related to sorting data. It comes with the following features :
- support for sorting horizontally
- support for merged cells inside the sort area. Merged cells are preserved if they satisfy a number of logical constraints, otherwise the cells are unmerged.
- support for sorting inside auto-filters. A Sort property is now available in the auto-filter object, and saved as such in the file so you can combine sorting and filtering.
| | | Posted on 08-October-2023 18:41 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.16 of xlsgen fixes a problem related to page breaks in XLSX and XLSB files which appears in Excel's user interface.
Excel can't handle print areas made of adjacent areas, as it breaks print previews in Excel, so a special flag is added to disable the problem altogether.
| | | Posted on 29-September-2023 19:27 | Category: xlsgen, Excel generator | comment[0] | trackback[0] Build 5.0.0.15 of xlsgen adds advanced data sorting. Before this build, sorting on values was already available. This build adds the following : - on values
- on cell color : background cell color or font color
- on associated icon (related to icon-based conditional formatting)
This is illustrated as follows : Sort on values (ascending) by column CSort on background cell color (descending) by column DSort on cell font color (ascending) by column ESort on icons (ascending) by column GAny number of sort conditions can be added (up to 3 if you target XLS files) so if you'd like to sort on column C then on column D, the corresponding conditions can be added to the tree of conditions, accordingly. Here is an example for sorting on background cell color : C++ code |
xlsgen::IXlsWorkbookPtr wbk = engine->Open( L"data.xls", L"output.xls" );
xlsgen::IXlsWorksheetPtr wksht = wbk->WorksheetByIndex[1];
xlsgen::IXlsRangePtr r = wksht->NewRange(L"C4:F7"); xlsgen::IXlsSortPtr sort = r->NewSort();
xlsgen::IXlsSortConditionPtr sc = sort->NewCondition();
sc->SortOnWhat = xlsgen::sortcondition_oncellbkgndcolor; // cell background color is used as sort criteria sc->columnIndex = 2; // 2nd column of the range, i.e. column D sc->SortColor = 0xFFFF00; // 0xFFFF00 = yellow
sort->Apply();
|
And another one for sorting on icons (related to existing conditional formatting of type icon) : C++ code |
xlsgen::IXlsWorkbookPtr wbk = engine->Open( L"data.xls", L"output.xls" );
xlsgen::IXlsWorksheetPtr wksht = wbk->WorksheetByIndex[1];
xlsgen::IXlsRangePtr r = wksht->NewRange(L"C4:F7"); xlsgen::IXlsSortPtr sort = r->NewSort();
xlsgen::IXlsSortConditionPtr sc = sort->NewCondition();
sc->SortOnWhat = xlsgen::sortcondition_onicon; // cell icon is used as sort criteria sc->columnIndex = 4; // 4th column of the range i.e. column F sc->SortIconset = xlsgen::iconset_3trafficlights_unrimmed; // icon set to match sc->SortIconsetIndex = 1; // which icon in iconset to match (1-based)
sort->Apply();
|
| | | Posted on 29-September-2023 16:26 | Category: xlsgen, Excel generator | comment[0] | trackback[0] On croit rêver mais c'est vrai. Titre de l'article du ouest france : extrait : "La Terre sera inhabitable beaucoup plus tôt que prévu" Titre extrèmement putaclic et stressant. Puis on lit l'article. Et dans le premier paragraphe : extrait : "Une étude internationale publiée ce lundi 25 septembre 2023 dans la revue « Nature Geoscience » indique que la Terre connaîtra des températures invivables dans 250 millions d’années." Je crois qu'on va s'en remettre, finalement.... | | | Posted on 27-September-2023 09:17 | 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)
|