-
Posts
459 -
Joined
Reputation Activity
-
Bryan Rieger reacted to Jon W in Scripting
Just to (hopefully) draw a line under this scripting language debate:
We chose JavaScript (ECMAScript) for reasons that I'm not going to go into here! JavaScript floating point precision is as good as any other scripting language we could have chosen. Although its native number type is floating point, integers up to 2^53 are represented precisely; if you need more then there's BigInt. If you need integer truncation then there's Math.floor. In other words: it's not a problem. Our JavaScript SDK is implemented as a plugin and built on top of our C++ SDK. This means that although we currently have no plans to do so ourselves, it will be fully possible for anyone to implement "first class" support for Python or any other scripting language. -
Bryan Rieger reacted to NathanC in Wireframe view not showing sketch.
Too used to using the default 'Outline' wireframe mode on my toolbar that I had forgotten about the X-ray mode. I'd agree this is a bug and will get it logged, thanks @Bryan Rieger!
-
Bryan Rieger got a reaction from NathanC in Wireframe view not showing sketch.
@NathanC if you use View > View Mode > Wireframe > X-ray any pixel elements will appear dimmed/semi transparent when the document colour space is set to RGB. However when using CMYK colour space pixel elements are drawn only showing their bounding boxes, which is the same as switching to View > View Mode > Wireframe > Outline.
I'd consider this a bug, and would expect the same behaviour regardless of colour space.
-
Bryan Rieger got a reaction from GRAFKOM in Auto apply Colour Panel's colour picker
I don't think they're finished putting all of the bugs in it yet.
-
Bryan Rieger got a reaction from BBG3 in Auto apply Colour Panel's colour picker
I don't think they're finished putting all of the bugs in it yet.
-
Bryan Rieger got a reaction from HCl in Auto apply Colour Panel's colour picker
I don't think they're finished putting all of the bugs in it yet.
-
Bryan Rieger got a reaction from lepr in Auto apply Colour Panel's colour picker
I don't think they're finished putting all of the bugs in it yet.
-
-
Bryan Rieger reacted to Alfred in iPad '…' Menu doesn't disappear after 'Paste Inside' operation.
Of course they do!
-
Bryan Rieger reacted to Pyanepsion in Affinity Suite: Multiple SVG export anomalies
Hello everyone,
While exporting a very simplified text from Affinity in regular Arial, 8 pt, black), I came across several oddities in the generated SVG file. To illustrate the case, I added “absent” characters represented by a red placeholder, as well as a red rectangle.
And there you have :
- A ghost font named ArialMT (from Adobe), which doesn't exist in my source file or even on my system.
- A totally useless empty group.
- Nested transformations for no good reason. None of the transformations are useful.
- Many useless attributes.
Here's the source file (Unnecessary things in color).
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1334 350" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(4.16667,0,0,4.16667,0,0)">
<g transform="matrix(4.60446,0,0,0.45635,0,0)">
<rect x="0" y="0" width="18.243" height="184.069" style="fill:#e43a30;"/>
</g>
<g id="Fonte" transform="matrix(1,0,0,1,84,2.84217e-14)">
<text x="14px" y="31.954px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">In purus est, mattis eget, imp</text>
<text x="150.948px" y="31.954px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#e43a30;"></text>
<text x="161.615px" y="31.954px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">rdiet nec,</text>
<text x="14px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">f</text>
<text x="16.964px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#e43a30;"></text>
<text x="27.63px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">rm</text>
<text x="40.068px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#e43a30;"></text>
<text x="50.734px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">ntum cong</text>
<text x="100.542px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#e43a30;"></text>
<text x="111.208px" y="45.82px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">e, tortor. Aenean ut</text>
<g transform="matrix(10.6667,0,0,10.6667,187.094,59.687)">
</g>
<text x="14px" y="59.687px" style="font-family:'ArialMT', 'Arial';font-size:10.667px;fill:#11161e;">nibh. Nullam hendrerit viverra mi […]</text>
</g>
</g>
</svg>
Here's why.
<?xml version=“1.0” encoding=“UTF-8” standalone=“no”?> <!-- Can be removed: redundant with file header. --> <!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”> <!-- Obsolete: useless in modern SVG files. --> <svg width=“100%” height=“100%” <!-- Potentially useless: dimensions will often depend on integration via CSS. --> viewBox="0 0 1334 350” version=“1.1” <!-- Superfluous: version is implicit in modern specifications. --> xmlns="http://www.w3.org/2000/svg” xmlns:xlink=“http://www.w3.org/1999/xlink” <!-- Potentially useless: `xlink` is no longer needed in SVG 2.0. --> xml:space=“preserve” <!-- Unnecessary in most cases: `xml:space=“preserve”` has little effect except with intentional spaces. --> xmlns:serif=“http://www.serif.com/” <!-- Totally useless: no use of this namespace in the file. --> style=“fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;”> <!-- Potentially useless if these styles don't concern content. --> To be more precise:
Here's a list of aspects to consider:
1. DTD usage
Criticism:
Use of the DTD <!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”> is obsolete and of little use in a modern context. Most browsers ignore this declaration. Improvement:
Remove the DTD or simply use the XML version without DTD. 2. Inline style
Criticism:
The style attribute in svg and internal elements (rect, text) mixes style definitions in SVG content, making maintenance difficult. Improvement:
Externalize styles in a CSS sheet or group them in a <style> tag in the SVG file to centralize styles. 3. Non-standard fonts
Criticism:
The style font-family:'ArialMT', 'Arial'; includes a non-standard font (ArialMT), which may not be recognized on all systems. This may cause incorrect rendering. Improvement:
Use standard fonts or define reliable fallbacks (font-family: 'Arial', sans-serif;). If the software could also optimize the source, it would produce much smaller images that would load more quickly. 4. Inconsistent attribute values
Criticism:
x-positions for <text> elements use px values when other units might be more suitable (e.g. % or relative coordinates). Dimensions and transformations (matrix(...)) are complicated and difficult to interpret, making manual editing a pain. Improvement:
Simplify transformations and use consistent units or positions to facilitate readability and maintenance. 5. Lack of descriptive tags (accessibility)
Criticism:
The file does not contain accessible descriptions such as <title> or <desc> tags. These tags are useful for assistive technologies (screen readers). Improvement:
Add <title> and <desc> tags to describe visually represented content. 6. Unnecessary or redundant data
Criticism:
The namespace xmlns:serif=“http://www.serif.com/” is declared but never used. The <g transform=“matrix(10.6667,0,0,10.6667,214.422,59.687)”> element is empty, which seems unnecessary. Improvement:
Remove unused elements or declarations to lighten the file. 7. Complex transformations
Criticism:
Matrix(...) transformations are complex and make subsequent modification difficult. They can also cause compatibility problems with certain viewers or tools. Improvement:
Replace matrices with explicit transformations (e.g. translate, scale, rotate) where possible. 8. Fixed dimensions and lack of dynamic viewBox
Criticism:
The dimensions width=“100%” and height=“100%” do not guarantee correct rendering in all contexts, as they depend on the parent container. The viewBox is correctly defined, but its association with dynamic dimensions could be optimized. Improvement:
Add explicit dimensions or use a more flexible viewBox to ensure consistent rendering. 9. Confusing hierarchical structure
Criticism:
The numerous <g> and <text> sub-elements make the structure unwieldy. Each word or fragment is encapsulated in a separate element, making the file difficult to manipulate or modify. Improvement:
Group text in a single <text> element if possible, with <tspan> elements to handle differences in style or position. 10. Style redundancy
Criticism:
Each <text> element repeats the same styles (font-family, font-size, fill), making the file unwieldy. Improvement:
Use classes or global styles to reduce redundancy. 11. Unnecessary inclusion of XML attributes
Criticism:
The xml:space=“preserve” attribute is rarely needed and could be superfluous here. Improvement:
Remove it if its presence does not modify the file's behavior. 12. Longer text spans
Criticism:
The text of an option should not resemble a treasure hunt, but clearly describe its function. The current title, 'Longer text spans', is inappropriate, even a misnomer that can only add to the confusion. In French, the translation also adds a contradiction to the contradiction. This option actually determines whether or not <text> tags include <tspan> child tags. Improvement:
A more suitable formulation would be:
<Text> tag without <tspan> child tags. Or: <Text> tag without <tspan>
In French :
Balise <Text> sans balises enfants <tspan>. Or: Balise <Text> sans <tspan> To take things a step further, here's some optimized code.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1334 350"> <!-- Styles CSS intégrés --> <style> .svg-red { fill: #e43a30; } .svg-black { fill: #11161e; } .svg-text { font-family: Arial, sans-serif; font-size: 10.667px; } </style> <!-- Rectangle rouge --> <rect x="0" y="0" width="76" height="184.069" class="svg-red" /> <!-- Textes noirs --> <text class="svg-text svg-black"> <tspan x="14" y="31.954">In purus est, mattis eget, imp</tspan> <tspan x="161.615" y="31.954">rdiet nec,</tspan> <tspan x="14" y="45.82">f</tspan> <tspan x="27.63" y="45.82">rm</tspan> <tspan x="50.734" y="45.82">ntum cong</tspan> <tspan x="111.208" y="45.82">e, tortor. Aenean ut</tspan> <tspan x="14" y="59.687">nibh. Nullam hendrerit viverra mi […]</tspan> </text> <!-- Textes rouges --> <text class="svg-text svg-red"> <tspan x="150.948" y="31.954"></tspan> <tspan x="16.964" y="45.82"></tspan> <tspan x="40.068" y="45.82"></tspan> <tspan x="100.542" y="45.82"></tspan> </text> </svg> 13. Table with unnecessary transformation sequences
Criticism:
Instead of transforming the table directly into text, and adding a grid, the software produces an unbelievable number of transformations that in reality serve no purpose except to add inaccuracies. Improvement:
Avoid transformations. See discussion below 14. Character style transformed into path
Criticism:
The Small capital character style turns text into a path and adds a <tspan> tag, the underscore becomes a rectangle, the highlight becomes a path, the apostrophe sometimes leads to the insertion of a <tspan> tag. Improvement:
Avoid transformations. See discussion below. Summary of areas for improvement
By streamlining the structure, optimizing the styles and simplifying the transformations, we could make this SVG file :
More readable, lighter, More compatible with modern tools. By adopting these optimizations, Affinity could generate SVG files that are not only more powerful and lightweight, but also conform to modern standards, making them easier to integrate and manipulate in demanding professional workflows.
Wouldn't it be a good thing to be ahead of the game?
test-svg.afpub bad-font.svg
-
Bryan Rieger got a reaction from loukash in Please NO MORE NEW FEATURES!
I don’t have much to add beyond what’s already been said (many times), but my biggest disappointment is the radio silence we’ve had from Serif (and Canva) management since the acquisition.
2.5 was an utterly botched release so that Ash could get up on stage and take part in High School Musical - Canva Edition.
I’m glad Serif are taking their time with 2.6, but that still doesn’t change the fact that in the meantime, trust in Serif and Canva for many folks continues to erode rapidly.
I don’t participate here much anymore (the website takes far too long to load after the recent forum update), and I’m tired of hearing that issues are logged with developers- often for years on end, without resolution.
-
Bryan Rieger got a reaction from Chul in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger got a reaction from GRAFKOM in Please NO MORE NEW FEATURES!
I don’t have much to add beyond what’s already been said (many times), but my biggest disappointment is the radio silence we’ve had from Serif (and Canva) management since the acquisition.
2.5 was an utterly botched release so that Ash could get up on stage and take part in High School Musical - Canva Edition.
I’m glad Serif are taking their time with 2.6, but that still doesn’t change the fact that in the meantime, trust in Serif and Canva for many folks continues to erode rapidly.
I don’t participate here much anymore (the website takes far too long to load after the recent forum update), and I’m tired of hearing that issues are logged with developers- often for years on end, without resolution.
-
Bryan Rieger got a reaction from pdaniun in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger reacted to toddlauzon in How to create Outline Brushes in Affinity Designer 2?
you can always use the Appearance panel and do overlay 2 strokes...for the shadow you would need to use an FX though.
-
Bryan Rieger got a reaction from ElleBee in Why won't Serif listen to customer needs and create a Lightroom alternative for us?
Um, yeah, sure… FWIW if Serif ceased support for iPads I (as a designer and illustrator) wouldn't be using Affinity products at all. I get that some folks really want a DAM, and some folks really want {insert your product/feature request here}, but please let's not minimize others priorities because they don't align with yours.
At the end of the day it all comes down to Serif's priorities for their products, and their business.
-
Bryan Rieger got a reaction from lepr in Please NO MORE NEW FEATURES!
I don’t have much to add beyond what’s already been said (many times), but my biggest disappointment is the radio silence we’ve had from Serif (and Canva) management since the acquisition.
2.5 was an utterly botched release so that Ash could get up on stage and take part in High School Musical - Canva Edition.
I’m glad Serif are taking their time with 2.6, but that still doesn’t change the fact that in the meantime, trust in Serif and Canva for many folks continues to erode rapidly.
I don’t participate here much anymore (the website takes far too long to load after the recent forum update), and I’m tired of hearing that issues are logged with developers- often for years on end, without resolution.
-
Bryan Rieger got a reaction from AdamRatai in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger got a reaction from Brian_J in Please NO MORE NEW FEATURES!
I don’t have much to add beyond what’s already been said (many times), but my biggest disappointment is the radio silence we’ve had from Serif (and Canva) management since the acquisition.
2.5 was an utterly botched release so that Ash could get up on stage and take part in High School Musical - Canva Edition.
I’m glad Serif are taking their time with 2.6, but that still doesn’t change the fact that in the meantime, trust in Serif and Canva for many folks continues to erode rapidly.
I don’t participate here much anymore (the website takes far too long to load after the recent forum update), and I’m tired of hearing that issues are logged with developers- often for years on end, without resolution.
-
Bryan Rieger got a reaction from ronnyb in Please NO MORE NEW FEATURES!
I don’t have much to add beyond what’s already been said (many times), but my biggest disappointment is the radio silence we’ve had from Serif (and Canva) management since the acquisition.
2.5 was an utterly botched release so that Ash could get up on stage and take part in High School Musical - Canva Edition.
I’m glad Serif are taking their time with 2.6, but that still doesn’t change the fact that in the meantime, trust in Serif and Canva for many folks continues to erode rapidly.
I don’t participate here much anymore (the website takes far too long to load after the recent forum update), and I’m tired of hearing that issues are logged with developers- often for years on end, without resolution.
-
Bryan Rieger reacted to loukash in Why I absolutely hate Affinity Photo (Constructive critiscism.)
No offense, but you already lost me during your clickbait-y thread title: "Hate" is supposed to be "constructive"? Gimme a break.
As for the rest of your essay: tl;dr
-
Bryan Rieger got a reaction from Helmuth Pandora in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger got a reaction from DNB in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger got a reaction from Aristocrates in Machine Learning: Object Selection Tool
I haven't used these machine learning models yet, but I just wanted to say how nice a surprise it was to see that these were optional downloads, and not simply bundled into the existing applications. I really appreciate Serif giving creatives the respect to choose whether or not they want to integrate any machine learning into their workflows.
Also, kudos for side-stepping the blanket AI hype train and calling these 'Machine Learning Models', which is not only more accurate, but also helps to frame the discussion in a much more informed manner.
-
Bryan Rieger got a reaction from garrettm30 in Advanced Page Management: General Improvements
Ah, thanks @MikeTO that was it. I didn't realized I had changed them ages ago. this is what my Settings > Publisher > Document > Shortcuts looks like now.
Wouldn't it make sense just to make these the defaults, instead of requiring users go in and set them themselves?