|
|
You add enough and you can get them to do marching band formations.
Iβve given up trying to be calm. However, I am open to feeling slightly less agitated.
Iβm begging you for the benefit of everyone, donβt be STUPID.
|
|
|
|
|
#Worldle #619 2/6 (100%)
π©π¨β¬β¬β¬β¬
οΈ
π©π©π©π©π©π
https://worldle.teuteuf.fr
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
On one hand, it's satisfying to have brought something from conceptualization to fruition and be able to use the finished product. On the other, I get tired of it quickly and want to move on to the next thing.
Only finding that next thing isn't easy for me - the illusive inspiration necessary to find something engaging without being overwhelming.
I'm the type that has to spin a lot of plates and keep myself occupied. I'm always creating something or other or I get bored. Between projects is a hard place for me to be.
Right now work is sparse too, and while I welcome the break, the timing of it could be better. I wish I had 3 side projects right now. I don't even have one now that Winduino has a bow on it.
Meh.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
You need a Magnus Opus to keep going back to ... but you'd probably need more memory.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
I sort of have that. I've got my graphics and UI libraries. Issue is I'm stuck.
I'm missing a major feature, and that is anti-aliased draws (excepting TrueType and SVG which are).
The issue is that when combined with alpha blending (semi transparent draws) it becomes really tricky because you can't draw the same pixel in the same place twice - ever or it leads to artifacts as the pixel effectively gets blended with itself thus halving the transparency.
I can't find algorithms to do it properly+efficiently, outside of LVGL and I don't understand the LVGL code to do it, even looking at the documentation and pouring over the source. It uses some kind of masking technique that I don't understand at all.
Without that feature, it makes little sense for me to provide a full suite of controls for my UI library, since I will have to rewrite them all to use anti-aliased draws, and without it they look pretty ugly.
The whole thing is a bit overwhelming so I've been avoiding it.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
I'm working with pixel buffers and "writeable bitmaps" which totally abstract me from the hardware. My productivity is what keeps me going when things get to be a slog ... while new ideas / enhancements are purcolating. And I remind myself it's (partly) the journey.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
 That was the first thing I did in htcw_gfx (GFX)
I wrote a pixel template that allows you to define its binary footprint and color model using a series of "channel_trait" template instantiations that define the channel properties. Many pixels have R G and B channels, but it's not limited to that. Defining each channel individually to make up a pixel allows me to support virtually any binary footprint and color model. I made a brief pixel declaration in my Winduino example for my GFX lib to write out in DirectX native 32bit BGRx format.
From there I wrote a bitmap template class, which is basically a variable that holds pixel data. It can be written to as it itself is a draw target (both draw destination and draw source) or read from and applied to other draw targets. It's templated by the type of pixel (as above, for example RGB565) and the type of palette (if any)
It's so abstract I can support other formats and screen styles by changing barely anything. All my draw routines take pixels in any format and do behind the scenes conversion transparently (w/ alpha blending as available and called for)
I've written whole applications, only to have the screen hardware changed on me last minute. Takes me minutes to update, if I already wrote it to be resolution agnostic (which I typically do)
Here's a series of pixel declaration templates for color models of various types (including grayscale and indexed/palleted pixels) non-exaustive, just so you can see what it looks like:
template<size_t BitDepth>
using rgb_pixel = pixel<
channel_traits<channel_name::R,(BitDepth/3)>,
channel_traits<channel_name::G,((BitDepth/3)+(BitDepth%3))>,
channel_traits<channel_name::B,(BitDepth/3)>
>;
template<size_t BitDepth>
using rgba_pixel = pixel<
channel_traits<channel_name::R,(BitDepth/4)>,
channel_traits<channel_name::G,((BitDepth/4)+(BitDepth%4))>,
channel_traits<channel_name::B,(BitDepth/4)>,
channel_traits<channel_name::A,(BitDepth/4),0,(1<<(BitDepth/4))-1,(1<<(BitDepth/4))-1>
>;
template<size_t BitDepth>
using gsc_pixel = pixel<
channel_traits<channel_name::L,BitDepth>
>;
template<size_t BitDepth>
using yuv_pixel = pixel<
channel_traits<channel_name::Y,((BitDepth/3)+(BitDepth%3))>,
channel_traits<channel_name::U,(BitDepth/3)>,
channel_traits<channel_name::V,(BitDepth/3)>
>;
template<size_t BitDepth>
using yuva_pixel = pixel<
channel_traits<channel_name::Y,((BitDepth/4)+(BitDepth%4))>,
channel_traits<channel_name::U,(BitDepth/4)>,
channel_traits<channel_name::V,(BitDepth/4)>,
channel_traits<channel_name::A,(BitDepth/4),0,(1<<(BitDepth/4))-1,(1<<(BitDepth/4))-1>
>;
template<size_t BitDepth>
using ycbcr_pixel = pixel<
channel_traits<channel_name::Y,((BitDepth/3)+(BitDepth%3))>,
channel_traits<channel_name::Cb,(BitDepth/3)>,
channel_traits<channel_name::Cr,(BitDepth/3)>
>;
template<size_t BitDepth>
using ycbcra_pixel = pixel<
channel_traits<channel_name::Y,((BitDepth/4)+(BitDepth%4))>,
channel_traits<channel_name::Cb,(BitDepth/4)>,
channel_traits<channel_name::Cr,(BitDepth/4)>,
channel_traits<channel_name::A,(BitDepth/4),0,(1<<(BitDepth/4))-1,(1<<(BitDepth/4))-1>
>;
template<size_t BitDepth>
using indexed_pixel=pixel<channel_traits<channel_name::index,BitDepth>>;
You then use them like
gfx::rgb_pixel<16> px = gfx::color<gfx::rgb_pixel<16>>::purple;
px.channel<gfx::channel_name::G>(31);
float r = px.channelr<gfx::channel_name::R>();
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
modified 3hrs 5mins ago.
|
|
|
|
|
Quote: Arguing with an Electrical Engineer is liking wrestling with a pig in mud, after a while you realize the pig is enjoying it!
From Jack Ganssle's newsletter
I don't think before I open my mouth, I like to be as surprised a everyone else.
PartsBin an Electronics Part Organizer - Release Version 1.1.0 JaxCoder.com
Latest Article: SimpleWizardUpdate
|
|
|
|
|
There's more than a grain of truth to that.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
EE's are resistant.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Sometimes, other times we conduct ourselves in a respectful manner.
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
I don't argue with electrical engineers - at least about their field.
I'd as soon argue with a theoretical physicist.
Totally out of my element - foolish of me to think I should.
I just work with 'em. There is one I work with that's kinda difficult, but I think it's mostly because he's looking to retirement and his priorities have shifted away from work.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
In my early career I worked with many EEs and they can be difficult, but I got along with them fairly well.
I don't think before I open my mouth, I like to be as surprised a everyone else.
PartsBin an Electronics Part Organizer - Release Version 1.1.0 JaxCoder.com
Latest Article: SimpleWizardUpdate
|
|
|
|
|
Given that my father is/was one...
|
|
|
|
|
they get a charge out of it.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Is that acceptable current usage?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Amped also works
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
So yeah, um... I can think of others this tooooootaaaalllly applies to as well.
Jeremy Falcon
|
|
|
|
|
Absolutely!
I don't think before I open my mouth, I like to be as surprised a everyone else.
PartsBin an Electronics Part Organizer - Release Version 1.1.0 JaxCoder.com
Latest Article: SimpleWizardUpdate
|
|
|
|
|
I updated C'YaPass in the Windows app store.
You can see it in the app store[^]. Its 100% FREE & open source.
User Experience
Anyways, everything went well with the update so I went to update it on my Win10 computer so I could get the user experience and see how it all worked.
When I visited the app store and looked at the app, it didn't say anything about there being an update.
I was confused -- it had been more than 24 hours after my windows app store dev account said it would be available.
Reboot - Nothing
I rebooted and visited the store again. Again, nothing. It showed that I owned the app but nothing about updates. I started the app from the app store to see if it would trigger anything. It started the older installed version (1.4.7)
I didn't notice anything. Then I decided to shut down the computer and check again later.
WinGet COM Server
When I attempted to shut down the computer, I was notified that some process was running and asked if I'd like to kill it.
I canceled the shutdown and looked in Task Manager and I saw this (snapshot)[^].
WinCOMServer => WindowsPackageManagerServer.exe... and that thing is eating up some process. Wow!
I decided to wait until that service completed.
Yep, after that cryptic service completed then the App Store (which I had closed previously) now had an [Install] button -- but not an [Update] button like it should. Oy!
I ran the install and the latest version 1.4.8 was installed as expected.
So, that is the user experience... 
modified 9hrs ago.
|
|
|
|
|
Just concluded a fifteen day tour of seven countries in Western Europe. Had visited the US more than 10 years ago.
Noticed a similarity in the graffiti font on the walls, in Europe and US. The same styling of letters, the same leftward slant. In more than half of the cases.
Is there someone who teaches the graffiti writers about this so-called graffiti font? Cannot be just a coincidence, isn't it?
|
|
|
|
|
I'm guessing the styles evolve by people playing off of each other's designs. It's similar with music.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
Yes, I noticed that some years ago when I was travelling in Europe regularly. I had previously thought it was only in the UK.
|
|
|
|
|
As far as I know, there are many fonts and styles of graffiti and tags and each has its own name
|
|
|
|
|