My experience with Microsoft Store

Hello, again!

As a hobbyist software developer, I want my applications to be easy to find on the web and easy to download by potential users. When I began developing my first application, KeyPress OSD, I was struck by what hurdles one can face. One of the biggest deterrents would probably be, in my case, malware and virus warnings.

Since Windows 8, Microsoft integrated its own antivirus application in the operating system and made it aggressive. It proactively tries to detect potentially harmful applications. In the past, users were allowed to easily download any application they found on the internet and just run or install it. Now, because of the security measures employed by Microsoft in Windows, it has become very hard to execute any random application you may download. Windows discourages users to run the downloaded app or can even prevent inexperienced users to run it at all.

Now, as a new software developer, I was very unhappy with the aforementioned situation. My applications were labeled and still are, as malware. It feels to me like small developers are shunned or outcasted by Microsoft in the name of security. How to solve this issue? As far as I know, there are two options: sign the binary files using purchased VeriSign or DigiCert certificates, or publish the applications on the Microsoft Store, introduced in Windows 8.

Because I am in a collaboration with Tablet Pro, I had the option to publish my applications on Microsoft Store. Thank you for this, Justice!

My experience with the Microsoft Windows Store is overall positive. It is pretty good, but this post would not be written if everything was positive ;). Humans like to point out the negatives, right?

Microsoft provides users, such as me, with a dashboard where one can manage the submitted applications and their store-front properties. When an application is submitted to be published on Windows Store, it undergoes several stages to be certified and published. Primarily, there are two stages: an automated one and a human-centric one (a person from Microsoft tests the app).

The automated certification process does not return detailed error logs.

I once submitted a package with a malformed DLL, but I was not aware of this. The error I received on the Windows Store dashboard was just: «bad EXE format», but it did not point on what file this error occurred. I e-mailed Microsoft Support numerous times, weeks have passed by, and no one was able to tell me exactly why my package was rejected. It amazed me they were unable to give me an answer. They kept on bouncing the responsibility between different teams.

One day I decided to remove from the .appx package one DLL at a time, and resubmit it to the store, until it no longer fails. I discovered that msvcr100.dll was malformed. I do not know how it got to be malformed. This happened in the context of a major new version of my app. I was packaging it with a new DLL that I wrote and compiled myself. I initially believed the culprit was my new DLL. However, it was not. I had to do stupid trial and error to get to successfully publish the new Church Bells Tower version.

Human error reports lack details or are misleading.

Recently, I submitted Quick Picto Viewer to the Windows Store and it got rejected. The dashboard error report said: «App Quality - Misleading Content; Information within the product or metadata does not accurately represent the product. Products need to have unique functionality and value in the Store». I e-mailed Microsoft Support to ask what they mean by that. They told me, and provided me with a screen shot, that the About panel does not say it is published by Tablet Pro. I found their reply utterly silly. My other apps do not explicitly mention Tablet Pro at About.

To be honest, before submitting it, I did not test QPV on my system in the «Windows Store» mode, because I was lazy. However, I decided to do so, and I discovered it was crashing the very moment one tried to open an image. One could argue the app quality is crap, indeed, but why did they not report this? They could have said in the initial report on the dashboard, and I would not have had to e-mail them about it. A simple message would have sufficed: «App crashes on image open». The reply I got from Microsoft Support was a confirmation that they treat their customers as fragile snowflakes. You cannot hurt your customers by telling them the truth, but it is totally fine to mislead them with euphemisms and irrelevant things.

Microsoft Store dashboard has bugs.

If one tries to reorganize resources, such as screen shots, it sometimes loses the images or messes up the image descriptions. Or, if you try to upload a new package, without deleting the older one first, you get unexpected results: the old package is not replaced or, you get no package at all, after Apply. I am using Firefox and maybe they do not care about making it work well on this browser.

On the positive side of things, when I developed an application for Tablet Pro, Microsoft Support was more than great. One of the guys from there, in his spare time, helped us develop a DLL that we needed.

In conclusion, I am happy at least I have a safe way to distribute my applications to potential users. No virus or malware warnings, and as a big plus, app updates are automatically handled by Windows Store. Overall, I cannot complain much. For now.

Best regards, Marius.

How to face discrimination

Marhaban!

The discrimination of disabled people is omnipresent in the society. Even in civilized countries, it still manifests on many levels, e.g., low presence and representation in the media (movies and TV shows), poorly accessible infrastructure and transportations means. In underdeveloped countries, the situation is much more dramatic. Such a person may not even be able to read, because s/he would not get access to any education, out of sheer carelessness. In other contexts, a device with Internet access is not a commodity, but a luxury item. To understand discrimination as a phenomenon and know how to deal with it, you should:

  • Read literature on disabled people, such as, what it means to be an emancipated disabled person. Only through reading about what kind of prejudices are out there against disabled people, you can learn to observe subtle forms of discrimination that most people are not even aware they employ; even some disabled people do not notice them.
  • Know your human rights, and the associated international treaties and laws that apply irrespective of disabilities in any of the signatory countries.
  • Know the local laws and rights. Look for them on the official sites of the government of the country or state you live in.
  • Learn, be curious, be determinate and be assertive. Discrimination prevails because of ignorance, our ignorance as well.
  • Try to engage other people to help you fight against discrimination.

Most likely, if you are a disabled person, no one will bother to tell you what rights you have, e.g., a disability pension or free tickets to public concerts. You might not be informed even when you are entitled to specific services for your condition. You need to know your rights and demand their implementation, according to each social context you find yourself in. Be assertive and not obedient or compliant. For example, do not accept being refused to get a free ticket, if there is a law stating you are entitled to it.

Whenever you can, ask to talk with the superior authority, to get clear and well-documented explanations as to why you are denied what you know for sure the law entitles you to. It often happens that the people selling something or providing a service are not aware of the relevant legislation for their workplace. Name the laws and be precise, speak eloquently. Print or save on your smartphone the relevant sections to have them at hand, in case you have to be even more persuasive.

Voice your concerns and make people aware of how and when you are being discriminated. Denounce every form of social or institutional discrimination you face. Do it on social networks as well. Make yourself heard. Be vocal! Otherwise, we cannot raise awareness on the issues disabled people face. Sympathize with other communities of disabled people, not just with the one you are a part of. We all must act united in our causes.

Try to engage your friends or, at least, your family to support you in your endeavors. When you interact with the local authorities, you might need help or assistance. Entice your representative(s) to refuse any form of discrimination on your behalf, to be persistent and strong on his or her position, to fight for inclusion. If you know a particular law should apply in your case as well, but you are denied, explain it to your family members. They should be your strongest allies against discrimination and in the fight for emancipation.

Friends or acquaintances that discriminate against you should be avoided entirely. If you are discriminated in less obvious ways, explain it to them, make them aware of it. Denounce discrimination, even when it happens in your family.

When you go out in public, if people suddenly insult you or attempt to bully you, answer with ignorance. Do not stop from your ride, move on. Take these things lightly. Refuse the people that want to pray or give you "the good news", and even those who want to give you money. Show people you have a spine.

And be courageus! Go out whenever possible. Let people see disabled people exist out there in the world.

PS. This article was extracted from my e-book on people with disabilities.

Ciao!

Blending modes math formulas

Hello, again!

I recently overhauled the blending modes maths in Quick Picto Viewer. I decided to write an article here on the maths behind the common blending modes, because I was not able to easily find in one place the mathematical formulas. However, I will not be describing how they visually impact the image or their use cases.

Blending modes describe mathematically how the colours of two images are mixed when composited on top of each other. The mathematical formula is applied on each image colour channel: R, G and B, for each overlapping pixel. The formulas provided here work on normalized RGB values. To normalize the values, one has to divide by 255 each R, G and B value, given they are in the range of 0 to 255. Therefore, floating point precision is necessary for the computations.

In the following table, the base layer is B and the image on top is A, and Z is the result of the math formula which has to be applied on each colour channel. The commutative blending modes are marked with * (asterisk). For these, the layers order does not matter.

Fomula Blend mode Category
z = min(A, B) *Darken Darker
z = A * B *Multiply Darker
z = A + B - 1 *Linear burn Darker
z = 1 - ((1 - B) / A) Color burn Darker
z = max(A, B) *Lighten Brighter
z = 1 - ( (1 - B) * (1 - A) ) *Screen Brighter
z = A + B *Linear dodge (linear add) Brighter
z = B / (1 - A) Color dodge Brighter
if (A < 0.5)
 z = 2 * A * B
else
 z = 1 - (2 * (1 - A) * (1 - B) )
Hard light Contrast
if (A < 0.5)
 z = (1 - 2*A) * (B^2) + 2 * B * A
else
 z = 2 * B * (1 - A) + sqrt(B) * (2 * A - 1)
Soft light Contrast
if (B < 0.5)
 z = 2 * A * B
else
 z = 1 - (2 * (1 - A) * (1 - B) )
Overlay Contrast
if (A <= (1 - B))
 z = 0
else
 z = 1
*Hard mix Contrast
z = B + (2 * A) - 1 Linear light Contrast
if (A < 0.5)
 z = 1 - (1 - B) / (2 * A)
else
 z = B / (2 * (1 - A))
Vivid light Contrast
z = (B + A)/2 *Average Contrast
z = A + B - 2 * (A * B) *Exclusion Inversion
z = abs(B - A) *Difference Inversion
z = B / A Divide Cancelation
z = B - A Substract Cancelation
z = gray(A) + B - gray(B) Luminosity Component
z = gray(B) - gray(A) + B + A/5 Ghosting Component contrast

The gray() function takes the non-normalized RGB values and returns a normalized value. It is defined as:

g = (r*0.299 + g*0.587 + b*0.114)/255.0

I used the NTSC colour weights to convert the colour of the pixel to gray, because I get very similar results with other applications. Of course, one can try more accurate conversion algorithms.

The Ghosting blending mode is a personal concoction :-). The end results one can get with it are quite interesting.

Till next time... best regards, Marius.

Good news everyone!

Hello, earthlings !

I feel I need to start again with... I am still alive, if anyone is wondering :-).

The good news is... my web site was transitioned to Astro framework from Django, after 9 years of using it. What this means is that the back-end of the site has changed entirely. It is now much faster and the caching problems of the old site no longer will occur. Updating the web site has also become considerably easier for me. Therefore, expect I will post at least once or twice per year :-). The hosting service has been changed again also, to Cloudflare and Github.

Many, many, countless thanks to Dennis Schubert who made all this possible! <3.

Since I last posted on my blog, I made only one new image, with my own application:

The cosmic eyestrain

Watch the time lapse video

I did not create more images, because I am very much into coding. I am constantly developing Quick Picto Viewer. It has turned into am image editor as well. I also worked on KeyPress OSD. Very recently, I updated it, with many bug fixes.

All the best everyone! I hope to come back here before 2023 ends ;-).

November 2020

Hello, people !

I am still alive, if anyone is wondering, and kicking too. :-).

All our web sites have now a new hosting provider, DigitalOcean. Thank you very much Dennis Schubert for the awesome help you provided me with this.

Since September 2017 I have been busy learning to code in AHK, an easy to learn scripting/coding language. I added a new page on this web site to list all the applications I have developed until now, see Applications page.

Since I last posted on my blog, I made only three new images:

The naivity scene

Hatching beauty

Mindless reel

See ya next time. I hope to come back here before 2025 ;-).

(Almost) summer 2018 updates

Hello!

Since my last post here I made two new images, both on the subject of love and romance. One is a sketch and the other is a painting.

The Scream of Love

Love Prison

KeyPress OSD

KeyPress OSD video presentation (on Youtube)

Since Septmber 2017, I began working on something new. I started to code and develop an application. It is something I never did before.

I was trying to find an application to help me use it easier, but I was not able to find the right app that suited my needs. I also discovered Autohotkey, a scripting language. Its ease of learning allowed me to develop the application I wanted, suited for my needs and beyond. I loved developing it, because I learned a lot of things. I am still actively working on it and making improvements and fixes.

Learn more about KeyPress OSD

To keep the development going, please donate using PayPal. Follow the development on GitHub or see the version history.

Through the development of this project, Drugwash (from the AHK forums) substantially contributed with code and feedback. Many thanks to you!

Other than this. All is good. Got no precise plans for what I want to do next.

Adios, amigos!

New 3D images

Shalom, amigos!

Yesterday I finished a new 3D image with which I am trying to criticise the hypocrisy of some people regularly attending church. I made this image after a friend of mine insisted on me to try a new render engine (thank you!).

Inversions and contradictions

The following images were made in late autumn 2016. The first is mostly a 3D render and the other is painted.

Incognito

My Elpis

Danke schön!

External post: charts on Christianity

Hello!

This post is from Daniel Oala, a friend of mine. I'm posting this here to help him bring more exposure to his work. It's something quite different in comparision to what I usually do, but I hope you'll like it.

Book of Revelation chart:

The purpose of this project was to make a clear chart about the events in the book of Revelations which has fascinated Christians for centuries and to raise points against the pre-tribulation theory created by John Nelson Darby. This chart is supporting "historic pre-millennialism", the classic Christian theory of the end-times.

Book of Revelation chart

Speaking with tongues chart:

After studying different religions (christian and non-christian) the chart was created to sum up the months of study in an easy-to-read chart that challenges the glossolalia doctrine and offers some biblical answers to the "speaking with tongues" subject matter.

Speaking with tongues chart

Timeline of biblical events:

A simple chart of the main historical events in Christianity meant to help the readers form a perspective on the unfolding of the biblical events. The texts in the image are written in Romanian.

Chart of biblical events

Note. These charts contain stock photos.

2016 updates

Greetin' all the brethren with a holy kiss!

For the past year, I've started again to write poems in Romanian. I decided to have them all published sometime in the future as an e-book. Throughout the past summer I worked on this project.

Today I am publishing most of the new illustrations I made. I hope you like them.

Invitation to my heart Disabilophobia Worshipping The Goddess A moment of change Moon love Tenderness United through love against prejudices Collecting moments of love Fertility incantations Drink my love Complexity and love The fall of relationships Extreme feminism Faces of pain An ocean of suffering A possible ending

The following image is a painting I did during my master degree studies:

The last gathering

The e-book needs just a cover to be ready for the online release. I am also working on two new drawings. I hope to have all these finished sometime next year.

Peace be upon you, brother!

Free 3D objects

Hello!

It's really been a long time since I posted anything here, in English.

I decided to release all the 3D objects I modeled as .OBJs, with no textures. Very few objects included are in the .C4D file format as well. You may notice when you open the .OBJs that most objects are merged into a single mesh. However, I made sure the merged meshes have easy to separate polygon groups. When I thought it is appropriate, I separated the objects in different meshes.

The quality of the objects I provide is without doubt questionable. It also varies because some of them were made in my youth, others with no care for the results. I made very little improvements to the poor meshes, because I want to provide them as they were used in my works.

Download 3D objects pack (ZIP file, 171 mb)

The .ZIP archive contains the following:

  • furniture objects: tables, chairs and armchairs;
  • a spider and butterflies;
  • vases and plants: waterlilies, mimozas and gerberas;
  • various computer components: monitor, tower, speaker, microphone, webcam and others;
  • 4 reposable robot models: Medieval, Marvin, Morfocae and Umanoid;
  • a piano;
  • a complete church in late baroque style;
  • power panel, trash bin, an incomplete wagon;
  • different types of shoes;
  • cowboy hat, pocket watch;
  • book, pen, crayon;
  • toys: dolls in different poses [C4D file includes a rig], a soldier [reposable] and a car;
  • tools: screwdriver, hammer, plier;

You can also find underneath some images, in the description section, a link to the 3D objects from the scene. This way you can download individually the objects you are interested in.

You can use any object freely for personal uses only, but I would appreciate offering me credit by mentioning my name and my web site address. Thank you.

Newer entries

Please subscribe Subscribe to the RSS feed

Current page: 1 of 10.