|
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
3. No sys-admin, networking, "how do I setup XYZ" questions. For those use the SysAdmin[^] or Hardware and Devices[^] forums.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
modified 16-Sep-19 9:31am.
|
|
|
|
|
Is always just a whim away...
A whim away, a whim away, a whim away...
|
|
|
|
|
Thank you, I now have an ear worm that is likely to last until tea time. 
|
|
|
|
|
Or until my next SOTW
|
|
|
|
|
That song works well on cats. They fall asleep instantly.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
Quote: I'm gonna be iron like a lion in Zion
I'm gonna be iron like a lion in Zion
Iron lion Zion

|
|
|
|
|
I've always liked this[^] version performed live by Rockapella[^].
Software Zen: delete this;
|
|
|
|
|
I'm building the drawing portions of my graphics library finally - the bit that lets you draw things like filled rectangles, ellipses and lines.
The library supports *any* pixel format as long as the pixel is less than or equal to 64 bits. You define what it looks like yourself.
But.
I have yet to build a "driver" portion that allows it to interface with some real display hardware.
So I've been using the library to draw lines and circles and stuff all over bitmaps, and then I'm rendering those bitmaps to "4 bit grayscale" ASCII art and rendering that to the console.
I didn't think making ascii bitmaps would be this much fun though. It's silly how much I'm enjoying "drawing" on the console screen.
This is one of those rare moments when testing made itself fun for me. I need more of these.
Edit: Here's a result - the size is necessary because ASCII - it's only 128x128 "pixels" minus a few rows i cropped:
template <typename BitmapType>
void dump_bitmap(const BitmapType& bmp) {
static const char *col_table = " .,-~;*+!=1%O@$#";
using gsc4 = pixel<channel_traits<channel_name::L,4>>;
for(int y = 0;y<bmp.dimensions().height;++y) {
for(int x = 0;x<bmp.dimensions().width;++x) {
const typename BitmapType::pixel_type px = bmp[point16(x,y)];
char sz[2];
sz[1]=0;
const auto px2 = px.template convert<gsc4>();
size_t i =px2.template channel<0>();
sz[0] = col_table[i];
printf("%s",sz);
}
printf("\r\n");
}
}
int main() {
static const size_t bit_depth = 24;
using bmp_type = bitmap<rgb_pixel<bit_depth>>;
using draw = draw<bmp_type>;
using color = color<typename bmp_type::pixel_type>;
size16 bmp_size(128,128);
uint8_t bmp_buf[bmp_type::sizeof_buffer(bmp_size)];
bmp_type bmp(bmp_size,bmp_buf);
bmp.clear(bmp.bounds());
srect16 b =srect16(spoint16(0,0),ssize16(bmp.dimensions().width,bmp.dimensions().height));
srect16 cr = b.inflate(-50,-50);
draw::filled_ellipse(bmp,cr,color::lawn_green);
draw::ellipse(bmp,cr,color::lavender_blush);
srect16 r = b.inflate(-4,0);
srect16 r2=r.inflate(-r.width()*.30,-r.height()*.30);
auto fr2 = r2.inflate(15,5);
draw::filled_rectangle(bmp,fr2,color::purple);
draw::rectangle(bmp,fr2,color::hot_pink);
draw::line(bmp,r,color::white,&r2);
draw::line(bmp,r.flip_horizontal(),color::white);
dump_bitmap(bmp);
return 0;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%===================================================================#==========
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------------------------------------#----------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------------------------------------#-----------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------------------------------------#------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------------------------------------#-------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------#----------------------------------------------#--------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------#--------------------------------------------#---------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------#-------------------------------------------#---------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------#-----------------------------------------#----------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------#---------------------------------------#-----------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------#-------------------------------------#------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------#-----------------------------------#-------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------#----------------------------------#--------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------#--------------------------------#---------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------#------------------------------#----------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------#----------------------------#-----------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------#--------------------------#------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------#------------------------#-------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------#----------------------#--------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------#--------------------#---------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------#------------------#----------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------#----------------#-----------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------#--------------#------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------#-------------#------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#-----------#-------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#----------#--------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------#--------#---------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------#------#----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------#----#-----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------------#--#------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------------##-------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------------##-------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------------#--#------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------#----#-----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------#------#----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------#--------#---------------------------------=
$%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#----------#--------------------------------=
$$%%%%%%%%%%%%%%%%%%%%%%=-------------------------------#-----------#--------------------------------=
$$%%%%%%%%%%%%%%%%%%%%=------------------------------#-------------#-------------------------------=
$$%%%%%%%%%%%%%%%%%%=------------------------------#--------------#------------------------------=
$$%%%%%%%%%%%%%%%%=-----------------------------#----------------#-----------------------------=
$$$%%%%%%%%%%%%%=----------------------------#------------------#----------------------------=
$$$%%%%%%%%%%=---------------------------#--------------------#---------------------------=
$$$$$%%%%%=--------------------------#----------------------#--------------------------=
$$$$$=-------------------------#------------------------#-------------------------=
=------------------------#--------------------------#------------------------=
=-----------------------#----------------------------#-----------------------=
=----------------------#------------------------------#----------------------=
=---------------------#--------------------------------#---------------------=
=--------------------#----------------------------------#--------------------=
=-------------------#-----------------------------------#--------------------=
=------------------#-------------------------------------#-------------------=
=-----------------#---------------------------------------#------------------=
=----------------#-----------------------------------------#-----------------=
=---------------#-------------------------------------------#----------------=
=---------------#--------------------------------------------#---------------=
=--------------#----------------------------------------------#--------------=
=-------------#--------------------------------------------------------------=
=------------#---------------------------------------------------------------=
=-----------#----------------------------------------------------------------=
=----------#-----------------------------------------------------------------=
==========#===================================================================
#
#
#
Real programmers use butterflies
modified 7hrs 20mins ago.
|
|
|
|
|
A long time ago in a building far, far away... (not really; the old building is next door to the current one)
Aaaaanywaaay, we make commercial ink-jet printers and the smaller models originally came with built-in hand-tweaked bitmap fonts. The first printer in the product line (early 90's) could only do 120x120 dpi resolution and later 120x240 resolution, so the character bitmaps needed to be adjusted by hand. This was especially true for bar codes which could be rendered unusable due to ink spread.
Our original font "source" files were simple ASCII text, with the bitmaps drawn using period (.) and at signs (@) and were edited using MS-DOS Edit. Yes, it was that long ago (early 90's). These source files were compiled into a binary form that could be downloaded to the printer or written directly to a monstrous 4MB PCMCIA Flash memory. Good times.
Software Zen: delete this;
|
|
|
|
|
victim, brainwashed by starvation and 24/7 exposure to a playlist of Sander Rossel's favorite tunes: She did what she had to do to survive [^]; justice, in this case, is finding Her not guilty by reason of insanity.
We pray your Worships will recommend sending this Cat to a facility that will provide respite and therapy for restoring her divine Cat-nature to its usual radiant and playful state.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
Quote: The feline felon was stopped outside the Nueva Esperanza jail
What an incongruous name for a jail.
|
|
|
|
|
Well the inmate can hope they will get out ...
"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!
|
|
|
|
|
You have too much time on your hands -
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
pkfox wrote: You have too much time on your hands After so much time slipped through my fingers ... i'm glad some of it sticks .., now that i am past my use-by date.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
You and me both
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
Panama?
Leaves and vegetable matter. Guessing.. Psychotria viridis and a monoamine oxidase inhibitor.
Just guessing
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
The cat was a mule?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
BillWoodruff wrote: 24/7 exposure to a playlist of Sander Rossel's favorite tunes Not even I would keep my sanity
|
|
|
|
|
... up to a lap dancing club in New York's web site - I sure you were only thinking of my mental health in the lockdown - but it is a little disconcerting to get emails with the subject line "Die Happy Tonight!".
I'm sure the free membership they keep offering will come in really handy should I decide to fly 3,500 miles to just look at pretty ladies who clearly need a larger clothing allowance.
"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!
|
|
|
|
|
OriginalGriff wrote: hould I decide to fly 3,500 miles to just look at pretty ladies who clearly need a larger clothing allowance.
They'd probably deny you a visa, claiming that you were entering the United States for immoral purposes...
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
There is nothing moral about this country. We accept all kinds, clearly. 
|
|
|
|
|
Why didn't I think of doing that?
OriginalGriff wrote: to just look at pretty ladies who clearly need a larger clothing allowance. I swear, the smaller the thing is and the less fabric it uses, the more expensive it seems to be.
Had a similar argument over my new glasses; tiny piece of plastic to hold lenses, is bloody expensive due to "design". Asked him if they had any without "design". They didn't.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
You're welcome. I did the hard work, you just need to book your plane tickets.
|
|
|
|
|
No need for that as you already have a laptop dancing cat 
|
|
|
|
|
So I have an a$$ton of work going on. Multiple VMs zooming along, editors all over, yada yada.
Converted a project from ancient VS to VS2019. I was prompted to update VS2019. Now I have this Installer prompt that says:
"Success! One more step to go. Please restart your computer..."
Why? Seriously, why do I need to reboot? It's just a holdover from the "reboot Windows" it might fix it history. Or is VS really doing things to the OS that requires me to reboot? I'm not being sarcastic here. Help me understand.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|