Multi-Search3

Curly Counting - Oneliner Shell Script To Generate 216 Websafe Colors


CURLIES FOR COUNTING
I once came across an interesting oneliner on stackoverflow. This little seemingly repetitive sequence of three sets of decimal numbers really was counting. Counting big time! From zero through one thousand! Impressive. Check the original oneliner below.


CURLIES FOR COLOR CODE GENERATION?
A while after reading this, I needed a way to generate websafe colors for my color-matching/color-testing tool and this little guy suddenly jumped at me from nowhere. Can I use this counter for my color tool? If I can get it to create the list of color codes for me, that would be so great since I can improve upon it! I started simply at first and got the list of color codes. Then I added a div to hold the styling elements. Finally I added width, height and background color to the style string and stored the output in a html file with the 216 websafe colors and immediately opened it with the browser all at once. All within the oneliner itself, of course! It was so simple, so easy and so cool. You must try this oneliner and two other variations of it yourself to view the websafe color pages it creates. Don't forget to change the browser if needed!

HOW I UNDERSTAND THE RED,GREEN,BLUE[RGB] COLOR SCHEME
Think of a movie screen with 3 lights behind it colored red, green and blue. Assume you have a brightness controller with a slider for each color numbered 0 through 255 for brightness control. Now it is easy to imagine what would happen when you move all three color sliders down to zero [0 0 0]. There would be complete darkness - color black[#000]! With the sliders maxed out[255 255 255], there would be maximum brightness - color white[#fff]! Moving each slider randomly any way you like, you get all the different colors on the color palette. For example with the sliders at [0 100 0] you get dark green, at [255 0 0] you get red etc. One of my todo items is to mix 1 can each of red, green and blue paints to see how white the mixture would be!

COMMON COLOR NAMES-16 BASIC COLORS
Look at the color pairs below. These 8 pairs make up the 16 basic colors. These complement each other really nicely! Lighter shades of these pairs would be my first choice for simple, no-frills color-coordination!
white #ffffff
black #000000

silver #c0c0c0
gray #808080

red #ff0000
maroon #800000

yellow #ffff00
olive #808000

lime #00ff00
green #008000

aqua #00ffff
teal #008080

blue #0000ff
navy #000080

fuchsia #ff00ff
purple #800080

LIST OF 657 NAMED COLORS
snow
GhostWhite
WhiteSmoke
gainsboro
FloralWhite
OldLace
linen
AntiqueWhite
PapayaWhip
BlanchedAlmond
bisque
PeachPuff
NavajoWhite
moccasin
cornsilk
ivory
LemonChiffon
seashell
honeydew
MintCream
azure
AliceBlue
lavender
LavenderBlush
MistyRose
white
black
DarkSlateGray
DarkSlateGrey
DimGray
DimGrey
SlateGray
SlateGrey
LightSlateGray
LightSlateGrey
gray
grey
LightGrey
LightGray
MidnightBlue
navy
NavyBlue
CornflowerBlue
DarkSlateBlue
SlateBlue
MediumSlateBlue
LightSlateBlue
MediumBlue
RoyalBlue
blue
DodgerBlue
DeepSkyBlue
SkyBlue
LightSkyBlue
SteelBlue
LightSteelBlue
LightBlue
PowderBlue
PaleTurquoise
DarkTurquoise
MediumTurquoise
turquoise
cyan
LightCyan
CadetBlue
MediumAquamarine
aquamarine
DarkGreen
DarkOliveGreen
DarkSeaGreen
SeaGreen
MediumSeaGreen
LightSeaGreen
PaleGreen
SpringGreen
LawnGreen
green
chartreuse
MediumSpringGreen
GreenYellow
LimeGreen
YellowGreen
ForestGreen
OliveDrab
DarkKhaki
khaki
PaleGoldenrod
LightGoldenrodYellow
LightYellow
yellow
gold
LightGoldenrod
goldenrod
DarkGoldenrod
RosyBrown
IndianRed
SaddleBrown
sienna
peru
burlywood
beige
wheat
SandyBrown
tan
chocolate
firebrick
brown
DarkSalmon
salmon
LightSalmon
orange
DarkOrange
coral
LightCoral
tomato
OrangeRed
red
HotPink
DeepPink
pink
LightPink
PaleVioletRed
maroon
MediumVioletRed
VioletRed
magenta
violet
plum
orchid
MediumOrchid
DarkOrchid
DarkViolet
BlueViolet
purple
MediumPurple
thistle
snow1
snow2
snow3
snow4
seashell1
seashell2
seashell3
seashell4
AntiqueWhite1
AntiqueWhite2
AntiqueWhite3
AntiqueWhite4
bisque1
bisque2
bisque3
bisque4
PeachPuff1
PeachPuff2
PeachPuff3
PeachPuff4
NavajoWhite1
NavajoWhite2
NavajoWhite3
NavajoWhite4
LemonChiffon1
LemonChiffon2
LemonChiffon3
LemonChiffon4
cornsilk1
cornsilk2
cornsilk3
cornsilk4
ivory1
ivory2
ivory3
ivory4
honeydew1
honeydew2
honeydew3
honeydew4
LavenderBlush1
LavenderBlush2
LavenderBlush3
LavenderBlush4
MistyRose1
MistyRose2
MistyRose3
MistyRose4
azure1
azure2
azure3
azure4
SlateBlue1
SlateBlue2
SlateBlue3
SlateBlue4
RoyalBlue1
RoyalBlue2
RoyalBlue3
RoyalBlue4
blue1
blue2
blue3
blue4
DodgerBlue1
DodgerBlue2
DodgerBlue3
DodgerBlue4
SteelBlue1
SteelBlue2
SteelBlue3
SteelBlue4
DeepSkyBlue1
DeepSkyBlue2
DeepSkyBlue3
DeepSkyBlue4
SkyBlue1
SkyBlue2
SkyBlue3
SkyBlue4
LightSkyBlue1
LightSkyBlue2
LightSkyBlue3
LightSkyBlue4
SlateGray1
SlateGray2
SlateGray3
SlateGray4
LightSteelBlue1
LightSteelBlue2
LightSteelBlue3
LightSteelBlue4
LightBlue1
LightBlue2
LightBlue3
LightBlue4
LightCyan1
LightCyan2
LightCyan3
LightCyan4
PaleTurquoise1
PaleTurquoise2
PaleTurquoise3
PaleTurquoise4
CadetBlue1
CadetBlue2
CadetBlue3
CadetBlue4
turquoise1
turquoise2
turquoise3
turquoise4
cyan1
cyan2
cyan3
cyan4
DarkSlateGray1
DarkSlateGray2
DarkSlateGray3
DarkSlateGray4
aquamarine1
aquamarine2
aquamarine3
aquamarine4
DarkSeaGreen1
DarkSeaGreen2
DarkSeaGreen3
DarkSeaGreen4
SeaGreen1
SeaGreen2
SeaGreen3
SeaGreen4
PaleGreen1
PaleGreen2
PaleGreen3
PaleGreen4
SpringGreen1
SpringGreen2
SpringGreen3
SpringGreen4
green1
green2
green3
green4
chartreuse1
chartreuse2
chartreuse3
chartreuse4
OliveDrab1
OliveDrab2
OliveDrab3
OliveDrab4
DarkOliveGreen1
DarkOliveGreen2
DarkOliveGreen3
DarkOliveGreen4
khaki1
khaki2
khaki3
khaki4
LightGoldenrod1
LightGoldenrod2
LightGoldenrod3
LightGoldenrod4
LightYellow1
LightYellow2
LightYellow3
LightYellow4
yellow1
yellow2
yellow3
yellow4
gold1
gold2
gold3
gold4
goldenrod1
goldenrod2
goldenrod3
goldenrod4
DarkGoldenrod1
DarkGoldenrod2
DarkGoldenrod3
DarkGoldenrod4
RosyBrown1
RosyBrown2
RosyBrown3
RosyBrown4
IndianRed1
IndianRed2
IndianRed3
IndianRed4
sienna1
sienna2
sienna3
sienna4
burlywood1
burlywood2
burlywood3
burlywood4
wheat1
wheat2
wheat3
wheat4
tan1
tan2
tan3
tan4
chocolate1
chocolate2
chocolate3
chocolate4
firebrick1
firebrick2
firebrick3
firebrick4
brown1
brown2
brown3
brown4
salmon1
salmon2
salmon3
salmon4
LightSalmon1
LightSalmon2
LightSalmon3
LightSalmon4
orange1
orange2
orange3
orange4
DarkOrange1
DarkOrange2
DarkOrange3
DarkOrange4
coral1
coral2
coral3
coral4
tomato1
tomato2
tomato3
tomato4
OrangeRed1
OrangeRed2
OrangeRed3
OrangeRed4
red1
red2
red3
red4
DeepPink1
DeepPink2
DeepPink3
DeepPink4
HotPink1
HotPink2
HotPink3
HotPink4
pink1
pink2
pink3
pink4
LightPink1
LightPink2
LightPink3
LightPink4
PaleVioletRed1
PaleVioletRed2
PaleVioletRed3
PaleVioletRed4
maroon1
maroon2
maroon3
maroon4
VioletRed1
VioletRed2
VioletRed3
VioletRed4
magenta1
magenta2
magenta3
magenta4
orchid1
orchid2
orchid3
orchid4
plum1
plum2
plum3
plum4
MediumOrchid1
MediumOrchid2
MediumOrchid3
MediumOrchid4
DarkOrchid1
DarkOrchid2
DarkOrchid3
DarkOrchid4
purple1
purple2
purple3
purple4
MediumPurple1
MediumPurple2
MediumPurple3
MediumPurple4
thistle1
thistle2
thistle3
thistle4
gray0
grey0
gray1
grey1
gray2
grey2
gray3
grey3
gray4
grey4
gray5
grey5
gray6
grey6
gray7
grey7
gray8
grey8
gray9
grey9
gray10
grey10
gray11
grey11
gray12
grey12
gray13
grey13
gray14
grey14
gray15
grey15
gray16
grey16
gray17
grey17
gray18
grey18
gray19
grey19
gray20
grey20
gray21
grey21
gray22
grey22
gray23
grey23
gray24
grey24
gray25
grey25
gray26
grey26
gray27
grey27
gray28
grey28
gray29
grey29
gray30
grey30
gray31
grey31
gray32
grey32
gray33
grey33
gray34
grey34
gray35
grey35
gray36
grey36
gray37
grey37
gray38
grey38
gray39
grey39
gray40
grey40
gray41
grey41
gray42
grey42
gray43
grey43
gray44
grey44
gray45
grey45
gray46
grey46
gray47
grey47
gray48
grey48
gray49
grey49
gray50
grey50
gray51
grey51
gray52
grey52
gray53
grey53
gray54
grey54
gray55
grey55
gray56
grey56
gray57
grey57
gray58
grey58
gray59
grey59
gray60
grey60
gray61
grey61
gray62
grey62
gray63
grey63
gray64
grey64
gray65
grey65
gray66
grey66
gray67
grey67
gray68
grey68
gray69
grey69
gray70
grey70
gray71
grey71
gray72
grey72
gray73
grey73
gray74
grey74
gray75
grey75
gray76
grey76
gray77
grey77
gray78
grey78
gray79
grey79
gray80
grey80
gray81
grey81
gray82
grey82
gray83
grey83
gray84
grey84
gray85
grey85
gray86
grey86
gray87
grey87
gray88
grey88
gray89
grey89
gray90
grey90
gray91
grey91
gray92
grey92
gray93
grey93
gray94
grey94
gray95
grey95
gray96
grey96
gray97
grey97
gray98
grey98
gray99
grey99
gray100
grey100
DarkGrey
DarkGray
DarkBlue
DarkCyan
DarkMagenta
DarkRed
LightGreen
Read More
http://en.wikipedia.org/wiki/X11_color_names

DECIMAL COLOR NOTATION
All colors can be noted in the decimal form using digits 0,1,2,3,4,5,6,7,8,9. For example the color black has the decimal form [0 0 0] in the RGB representation, three numbers one for red, green and blue each at the one end of the spectrum. The same way, the color white has the decimal form [255 255 255] at the other end.

HEXADECIMAL COLOR NOTATION
All colors can be noted in the hexadecimal form using the digits 0,1,2,3,4,5,6,7,8,9 and the letters a,b,c,d,e and f. For example the color black has the hexadecimal form [#00 00 00] in the RGB representation, three sets of numbers one for red, green and blue each. The same way, the color white has the hexadecimal form [#ff ff ff].

TRIPLETS
All the doubled up hexadecimal colors can be shrunk to 3digits. For example the color black [#00 00 00] can also be written as #000 using just one zero for every doubled up zero. The same way, the color white [#ff ff ff] can also be written as #fff using just one f for every doubled f. This kind of triplet short form is specified by CSS only so they need to be used within the style strings of CSS only. Some browsers may not respect them.
For more information about web colors, visit
http://en.wikipedia.org/wiki/Web_colors

OKAY WITH COLOR THEORY, LET'S GET BACK TO OUR ONE-LINER
First, count the colors. We should have 216 websafe colors.
Good, we have our 216, no problem. Now the color codes themselves.
We just got the skeleton structure for our websafe color list. Let us go ahead and put some flesh on it to make up the html styling.
Insert an empty div tag to hold the styling string. Remember to escape the "<",">","/" characters with "\" since they have special meaning in shell scripting.
Get the style tag in and remember to escape the space character " " and double quote """ escaped with the "\" this time.
Add the width, height, and background tags and escape the ":" and "#" characters.
We're almost done! This in fact is our html content!
Add the code to store the html output in a file and open it with the web browser to view it all at once.
I used Chrome, you change it to match your browser if it is different.
Do you see the html output file displayed? Yes but it's so narrow! Let's increase the width to 100% so we can see the colors in all their glory.

THE FINAL ONELINER CODE

216 WEBSAFE COLORS. HTML OUTPUT
Wow. Our little oneliner looks nothing short of magnificent to me. Don't you agree?
With a little change to the style string, we can easily create two more variations of the same oneliner.

HORIZONTAL

VERTICAL


JWHAT'S "CURLY COUNTER" COMPUTER COUNTING TEST


echo "I can count to a thousand" ...{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}...

I was suddenly inspired to put the original curly counter oneliner above to test on my Toshiba Satellite M45-S165 laptop with 1.50GHz CPU, 1.4GB RAM and 80GB harddisk. While the original counted to a thousand, I tried to count as high as I could in steps. The obvious fact is to repeat the curly sets as many times as you need. For example, a thousand has 3 zeroes so use three curly sets, for 10k use 4 curly sets, for 100k use 5 sets, for 1m use 6 sets and so on. I used the time command to time the runtime of each run of the test.

Counting to 1000-zipped through in .006 seconds
real 0m0.006s
user 0m0.004s
sys 0m0.000s

Counting to 10000-very fast, completed counting in .246 seconds
real 0m0.246s
user 0m0.040s
sys 0m0.000s

Counting to 100000-fast, just about 3 seconds
real 0m2.756s
user 0m0.444s
sys 0m0.016s

Counting to 1000000-slow, 29 minutes
real 0m29.918s
user 0m4.704s
sys 0m0.188s

Counting to 10000000-squeezed the living day lights out of the CPU, RAM and Swap. It just prepped on and on, wouln't start running even after 30 minutes! The 1.5GHz CPU maxed out as expected. The 1.4GB RAM maxed out too. Started swapping after about ten minutes and was about to reach 1.2GB. Luckily I closed my Chrome windows and freed up over 700mb but it didn't help. CPU% dropped and stabilized but swapping continued and threatened to reach max again. It didn't start running so I gave up and exited after about 30 minutes.



CREDITS & LINKS






BlogCollage


Blog Collage - Top Random Posts In No Particular Order

Mouseover the images for title and comments

Most Recent Posts