|
I hate specs. I'd rather look at code to determine how something works.
To that end I've been working with two SVG parsing codebases in C to determine how SVG works.
You know that point where things finally click? I got there.
And most of it is just propagating attribute values and bubbling them down tags.
The reason for all of this, is I wanted to peephole parse the whole thing, and render top down so I didn't have to keep a representation of the entire document in memory - just enough of a window of it to render the current step.
The result should be much more efficient than what I have been doing, but it's state machines all the way down, because peephole parsing.
In any event I have much of the core in place, and I'm peephole parsing all the attributes in the document. The elements are easy by comparison.
The main thing I have left is storing gradients and matching them up by ID, and then trying to impose viewbox scaling as I'm parsing, which I HOPE is possible.
I'm over the hump.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Wordle 1,183 3/6*
π¨π©π©β¬β¬
β¬π©π©π©β¬
π©π©π©π©π©
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
β¬π©π¨β¬β¬
π©π©β¬π©β¬
π©π©π©π©π©
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,183 3/6*
β¬β¬π¨β¬β¬
π¨β¬π©β¬π©
π©π©π©π©π©
Happiness will never come to those who fail to appreciate what they already have. -Anon
And those who were seen dancing were thought to be insane by those who could not hear the music. -Frederick Nietzsche
|
|
|
|
|
Wordle 1,183 2/6
π¨π¨π©π¨β¬
π©π©π©π©π©
A rare 2!
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
Wordle 1,183 5/6
β¬π¨β¬β¬β¬
π¨β¬β¬β¬β¬
β¬π¨π¨π©β¬
β¬π©π©π©β¬
π©π©π©π©π©
Within you lies the power for good - Use it!
|
|
|
|
|
Wordle 1,183 4/6
β¬β¬π¨π¨β¬
π¨π¨β¬β¬β¬
π¨π©π©β¬β¬
π©π©π©π©π©
Jeremy Falcon
|
|
|
|
|
Wordle 1,183 2/6*
π¨β¬π©β¬β¬
π©π©π©π©π©
|
|
|
|
|
Wordle 1,183 4/6
π¨π¨β¬β¬β¬
π¨π¨π¨β¬π¨
π¨π©π¨π¨β¬
π©π©π©π©π©
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
So I have this embedded SVG mess I'm working on, and being embedded, compromises are often to be made.
One of them is that I don't validate the SVG beyond what I need to parse it. This reduces flash space requirements, and sometimes memory requirements, and can also reduce power/increase execution speed in the margins, although sometimes with more dramatic effect.
Consider the following values for the transform attribute. There can be multiple in a list separated by spaces:
rotate(-10 50 100)
translate(-36 45.5)
skewX(40)
skewY(10)
scale(1 0.5)
matrix(0 0 1 0 1)
Also the space delimiters above may or may not be commas, just to keep things fun, and some of the arguments presented above are not necessarily required
The above would do six transformations in series, as each transformation is presented along with the others, separated by whitespace, resulting in 5 matrix multiplications.
The issue is parsing it.
I don't want to validate all this, because I don't care. So I do things like this:
switch(**current) {
case 'X':
ttype = TRANS_SKEW_X;
state = -1; break;
case 'Y':
ttype = TRANS_SKEW_Y;
state = -1; break;
case 'k':
case 'e':
case 'w':
++(*current);
break;
default:
return FMT_ERROR;
}
That's all a single state in a larger state machine (not pictured). I've "compressed" (lossy) the parsing of skewX vs skewY into two states, with the final state being shown.
Normally you need like N+1 states where N is the number of characters in the phrase you are parsing.
Here, it will except sekwX for example, but what are the odds that you DIDN'T mean skewX on top of the odds that it happens in the first place?
It's a compromise. This is a renderer, not a validator.
But it got me thinking about approximated state machines like this, and I'm trying to sort of float some codeish equations in my head for how to represent them algorithmically, and I'm not seeing it.
I've got "concepts of a plan", is all. That won't get me far.
But it's interesting to me, the idea of compressing state machines in order to approximately match text. I can easily see the use in embedded.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Greetings & Kind Regards
Having stumbled upon various YouTube excerpts of this seemingly fascinating recreation of the Apollo program apparently from the engineering perspective I must pass along:
From the Earth to the Moon (TV Mini Series 1998) - IMDb[^]
"Shut up and calculate." - apparently N.David Mermin possibly Richard Feynman
|
|
|
|
|
I've never eaten any of my neighbors' pets. Have you? Why or why not?
|
|
|
|
|
Most of my neighbors have dogs or cats and I've never been tempted to eat them. One previous neighbor had chickens and I was tempted, but one of the cats ate one first. In Venezuela, iguanas were running all over. I was invited for some iguana stew and it was terrific, but I don't know if that counts as a pet.
CQ de W5ALT
Walt Fair, Jr.PhD P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
Dr.Walt Fair, PE wrote: In Venezuela, iguanas were running all over. I was invited for some iguana stew and it was terrific, but I don't know if that counts as a pet. I'm so glad you provided a reasonable answer. This web forum has members that span the world. I'm pretty sure that eating a pet is illegal in the U.S., at least at the federal level AFAIK, but honestly... What constitutes a "pet" versus an animal raised for the purpose of consumption as sustenance?
I once ate alligator nuggets back when I lived in Phoenix. You know what? They tasted like chicken. If there is at least one human being who owns an alligator as a pet, then I must confess. I've actually eaten an animal that people keep as pets.
|
|
|
|
|
Steve Raw wrote: then I must confess. I've actually eaten an animal that people keep as pets. I just realized I once ate rabbit while living in the UK. My niece owns a pet rabbit...
|
|
|
|
|
Reminds of scene from "Local Hero"
Reaction to eating a rabbit.
"It was a pet, not an animal.
It had a name, you don't eat things with names, this is horrific!"
Great movie. Music score is Mark Knopfler (sp?) inspired.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
jmaida wrote: Great movie.
Up to that point I thought "Local Hero" was a restaurant, and you were describing someone's reaction to someone else's ordering that off the menu.
In my defense, there are a few bar & grill type of restaurants in my area called Local Heroes. I don't think they serve rabbit however.
I've always said, the cuter the animal, the tastier it is.
|
|
|
|
|
General Melchett: Now George, you remember when I came down to visit you when you were a nipper, for your sixth birthday? You used to have a lovely little rabbit, beautiful little thing, do you remember?
Lieutenant George: Flossie.
General Melchett: That's right, Flossie! Do you remember what happened to Flossie?
Lieutenant George: You shot him.
General Melchett: That's right! It was the kindest thing to do after he'd been run over by that car.
Lieutenant George: By *your* car, sir.
General Melchett: Yes, by my car. But that, too, was an act of mercy when you remember that that dog had been set on him.
Lieutenant George: *Your* dog, sir.
General Melchett: Yes, yes, my dog. But what I'm trying to say, George, is that the state young Flossie was in after we'd scraped him off my front tyre, is very much the state that young Blackadder will be in now: if not very nearly dead, then very actually dead!
Lieutenant George: Permission for lip to wobble, sir?
General Melchett: Permission granted.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Steve Raw wrote: I'm pretty sure that eating a pet is illegal in the U.S., at least at the federal level
Actually I doubted that. I could see at the state level though. Apparently it is though. But only since 2018. Only applies to cats and dogs.
Apparently legal to eat your own horse in most states. Rabbits, chickens definitely. I presume other birds also.
|
|
|
|
|
|
You've never had a farmer as a friend?
Decades ago, friends of ours invited us over for dinner. He farmed peanuts, wheat, huge vegetable garden and he was really working on breed stock for beef. At the time, he had one tied up near the house. So, about a month later, we had been invited again for dinner and while grilling I asked where the cow was... he smiled at me and lifted one of the steaks off the grill.... "don't tell the kids..."
If you can grill it, you can eat it. It's all perspective. There was a book written years ago "Coming Out of the Ice: An Unexpected Life by Victor Herman" that will give you a real clear perspective on the insanity rampant in Soviet Russia. He survived by eating rats. Most people were grossed out in the gulag (and died). Toward the end of the book, he mentioned that to this day, if he sees a rat, his mouth waters.
Would I eat my neighbor's pet? Not willing? Would I eat a rabbit, cat or dog if I was starving or my family? Absolutely.
Charlie Gilley
βThey who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.β BF, 1759
Has never been more appropriate.
|
|
|
|
|
charlieg wrote: You've never had a farmer as a friend?
My grandfather was a farmer. Some of his brothers were too.
I've always found farmers were the most down to earth people (quite literally) you'll ever meet.
They also eat well.
I remember one of my uncles saying he worked on my grandfather's brother's farm as a kid. Dirt poor, but his table was always full, and the rule was - help yourself to anything you want, as much as you want, but you have to empty your plate.
|
|
|
|
|
|
points.
I think Disney's Bambi was the beginning of the end of reality. Meats meat.
Charlie Gilley
βThey who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.β BF, 1759
Has never been more appropriate.
|
|
|
|
|
Years ago when the kids were little and we lived in the country on a lifestyle block, the kids had pet lambs for training for school agriculture events.
They didnβt end up in the deep freeze but we had to find homes for them to live out their days living on green fresh grass.
So the theory went! Probably ended up in someoneβs elseβs freezer.
A Fine is a Tax for doing something wrong
A Tax is a Fine for doing something good.
|
|
|
|
|