Multi-Search3
Showing posts with label Tips'nTricks. Show all posts
Showing posts with label Tips'nTricks. Show all posts

Linux[Zorin7 OS] Power Tip - Make The Start Menu And Task Bar Truly Yours

If you're like most people, you just use your pc/laptop as you bought it - with no snooping, no messing around - use it just the way it is. Why fix stuff if it isn't broken in the first place, right? While this policy may be best-suited for most end-users, it may not be good enough for the adventurous few, especially the geeky programmers, developers etc. They tend to take everything apart, whether or not they can put them back together. Adding user programs and scripts to the Start Menu was beyond most people's reach not too long ago. Why bother when you can create shortcuts on the desktop? Not any more. Zorin7 OS [Ubuntu] comes with a program called [Main Menu] you can start from [Start Menu->Accessories] that helps us add our programs and scripts to the Start Menu. It also has an applet on the task bar [Application launch bar settings] to add stuff to the task bar. You can start this by rightclicking on an icon in the task bar on the LHS, to the right of the [Start Menu] icon.

We are going to accomplish four things in this exercise


  1. We'll create a oneliner shell script that digs up a random word, looks it up on the dictionary and lets you view the results from your browser.
  2. We'll describe the steps to add it to the Zorin7 OS startup menu.
  3. We'll describe the steps to add it to the Zorin7 OS taskbar with an icon for a one-click word lookup anytime.
  4. We'll conclude everything with a bigger and better script that includes both the random word lookup on step1 above(no user input) and ALSO a user-word lookup(optional user input).

STEP 1: CREATE THE ONELINER SHELL SCRIPT FOR RANDOM WORD LOOKUP


A. Create the oneliner shell script for our random dictionary lookup

First create a folder such as /home/jwhat1/Tools/LDWords, create a new file[LookupDictWords.sh] and save the code below in that file within that folder (You can use a GUI editor such as Geany or Leafpad or you can use terminal editors such as Vi or Emacs or Nano to create/edit a text file in Linux).


Download script

B. Open up a terminal and change the file to executable.



Instead of running the command above from a terminal, you could also locate it on PCManFM file manager, rightclick on this file, select [properties], and set [view content] and [execute] to [anyone] and [change content] to [only owner and group] on the [permissions] tab.

C. Associate this file to be run by /bin/bash.

Rightclick on this file, select [Open With], click on [Custom Command Line] tab and enter [/bin/bash] in the [Command Line To Execute] input box, and click [OK].

D. Run the script

I.From the commandline on a terminal
Type
$bash LookupDictWords.sh

II.With PCManFM GUI file manager
1.Rightclick on LookupDictWords.sh and select [/bin/bash] to run it.
2.Doubleclick on it and when you see [Execute file] dialog box, click on [Open] to run it.

Yes! It works!(Click on image above for bigger view)

STEP 2: ADD THE SCRIPT TO THE ZORIN7 OS START MENU


So we have completed the first step of creating the file. Now let us see what we need to do to put it in the Start Menu.
1.First bring up [Main Menu] from [Start Menu->Accessories->Main Menu]. (Click on image above for bigger view)
2.Open the [New Menu] input box from [Main Menu->New Menu] and type the name of the menu/program group and a comment. Click on the icon on the top left on the input box to select an icon for our new program group if you wish.(Click on image above for bigger view)
Do you see the new Main Menu group we just created on top left? (Click on image above for bigger view)
3.Now, create a new menu item
  1. [IMPORTANT] Click FIRST on the new menu group we created on top left.
  2. Click on [New Item] button on the right.
  3. Now enter a name. Use the [Browse] button to select the script or enter it manually. Type a comment if you want.
  4. Click on the icon on the top left of the input box to select an icon for our new program if you want. (Click on image above for bigger view)
Make sure to confirm the new menu item we just created(It's in the middle right on top). (Click on image above for bigger view)
4.Click on [Start Menu->LDWords->LookupDictWords.sh] to run our new script! Did you see the random word lookup results on your browser? I did. We have successfully accomplished the first half of our goal - configuring the Main Menu to display our script! (Click on image above for bigger view)
Before and after images of the Start Menu. Do you see the menu group[LDWords] and menu item[LookupDictWords.sh] we just created in the Start Menu? Good! (Click on image above for bigger view)

STEP 3: DISPLAY THE SCRIPT ON THE ZORIN TASKBAR


1.Rightclick on an icon in the taskbar on the LHS to the right of the [Start Menu] and select [Application Launch Bar Settings] to bring up the [Application Launch Bar]. (Click on image above for bigger view)
2.Click on the [Arrow] to expand the [LDWords] group on the RHS and select the [LookupDictWords.sh] script. (Click on image above for bigger view)
3.Now click on the [+Add] button in the middle of the box to add the script to [Applications] on the LHS. Use the [Up] and [Down] buttons in the middle to move program icons on the task bar to the left or right. (Click on image above for bigger view)
4.Can you now see our script on the taskbar on the LHS to the right of the Start Menu? Click on it to run the script. (Click on image above for bigger view)
Yes! It works! We've got the results displayed on the browser automatically! (Click on image above for bigger view)
From now on, whenever you are thirsty for learning words or just bored, click on our icon on the taskbar to look up a random word! Just wait till you see the results on the browser before clicking again because clicking fast might return unpredictable results.
Before and after images of the task bar . Do you see the icon for LookupDictWords.sh in the task bar? Good! (Click on image above for bigger view)

STEP 4: USE THE BIGGER AND BETTER SCRIPT [Includes BOTH User Word Lookup & Random Word Lookup]


Here's a bigger and better script that
  • Lets you lookup YOUR OWN WORD on the dictionary
  • Comes up with a random word if you leave the input box empty and press [OK]
  • Above all, looks much better than the random script output!
Here are the steps.

Step 4A. Back up the random word script above(For when you want to use the random script above seperately).
$cp LookupDictWords.sh LookupDictWords.sh.random
Step 4B. Open LookupDictWords.sh. Select all code, delete it. Now copy the code from the box below, paste it to the LookupDictWords.sh file and save.



Step 4C. Click on the task bar icon for LookupDictWords.sh script to start.

FOR USER INPUT
Enter your word and press [OK] for user word lookup or
FOR RANDOM WORD
Leave input empty and press [OK] for random word lookup or
TO EXIT
Press [Escape] key or click on [CANCEL] to exit.
If you like this bigger script, leave it as it is. If you are lazy or if you want no input box annoyance, use the code we saved and backup this for later use instead.

PLEASE NOTE


REQUIREMENTS
Zorin7 OS and a browser(I used Chrome 28).
Zenity(I used version 3.6.0).

ADD SCRIPT TO MAIN MENU FIRST
User programs and scripts need to be added to the Start Menu first before you can add them to the task bar.

DEBUGGING
First open a terminal, go to /tmp directory and run one or more of the following commands to debug.
cd /tmp;
If the browser won't start, make sure you can start your browser manually by typing at the command prompt
$chrome
or
$firefox
etc. Use
$which chrome
or
$which firefox
etc to get the path and insert it in the script if needed.

You may also use the commands below.
ls -l dicx.htm [See if output file exists]
cat dicx.htm [View contents of output file]
ps -ef|grep LookupDictWords.sh [Use this to see if the script is running and possibly remove it with the [kill -9 pid] command if needed]

CLICK-AND-WAIT
Click gently on the LookupDictWords.sh icon on the task bar, and WAIT for the browser to come back with the results BEFORE CLICKING AGAIN. Fast and furious clicking may cause unpredictable results.

CREDITS


Random number selection logic in the oneliner: Advanced Bash-Scripting Guide[MC]

THAT'S ALL FOR NOW!


How do you like what we have done so far? Starting our favorite programs from the task bar is like flying. Hunting for them everytime all over is like crawling on all fours. Which one do you think is better? The first one, of course! I know where you are headed - to create a shortcut for your favorite oneliner from two great places on the web HERE or HERE, aren't you?

Remember to visit sqlhtm.com for the latest tweet/Bible verse viewer "Polar Verses" and more tools!

Chunk-A-File: Two Ways To Split A File In Linux


Today's generations have it all easy. Even a monkey can take a more awesome picture than you can. Chips have gotten smaller and smaller(computer chips not potato chips!) but better and better. Memory once measured in bytes, and kilobytes, now gets thrown around in gigabytes and terrabytes on the desktop, primitive and bland websites of the pre-y2k era have become dizzyingly attractive, versatile and complex.
Alright, now back to file-splitting. If my memory serves me right, I don't think there were any native Unix or Linux split commands in the 1980s-90s. One would probably have a "splitting headache" just thinking about how to accomplish file splits and end up having to use third party tools! With the arrival of the native Linux split command in the early 2000s, you could, for example,  now use the [split --number=10 words.out] command for dividing the words.out file into 10 equal chunks by size, and the [split --lines=9917 words.out] command to split it into 10 equal parts by line counts. However, let's explore two home-cooked scripts that I came up with, using [head] and [tail] commands, for splitting a Linux text file, the first to split it equally into 10 equal parts, and the second script to split it to its tenths both using line counts and not file size to accomplish the division.

PREP WORK - CREATE INPUT DATA FILE

PREP 1. We'll use a copy of the [/usr/share/dict/words] file as the input file.



To find the line count to divide the file into 10 parts, first find the total lines, then divide it by 10.


PREP 2. If you find it [/usr/share/dict/words file] missing, don't worry, we'll create another one[wordfile.out] on the fly.
We'll create a dummy file and populate it with output from [ls] command run on [/bin], [/usr/bin], [/usr/local/bin] folders, and even add a [.tmp] suffix to every file name for extra safety.



Good. We see that we have generated 2238 lines for our input file [wordfile.out]. Though we have created two input files [words.out and wordfile.out], we'll use the [words.out] file for this exercise. Now to display the line counts for tenths, use this oneliner.



The oneliner above calculates the total and the tenths in one loop. Remember the numbers denote line numbers in the input file.

SCRIPT 1: Script to divide the file into 10 equal parts by line count.

Ok. Here's the first script[ChunkAFile.bash] that divides the input file into 10 equal parts by line count.



The image below shows how we list the script name first, then run it, and also display the output files[t01, t02 through t10].

Let's check the wordcount [l(lines);m(characters);c(bytes)]. Towards the bottom of the image below, also notice that the line count is same[9917] for all 10 files on the first column of the listing. This verifies that our ten output files are equal by line count.



SCRIPT 2: Script to divide the file to its tenths by line count.

Let's now examine the second script[ChunkAFileTenth.bash] that divides the input file to its tenths by line count. Here's the script



Same as above with script1, the image below shows the listing of the script name, then shows it being run, and finally displays the output files[01-tenth.out through 10-tenth.out]. See how their sizes increase with every tenth.

Finally let's also verify the counts [l(lines);m(characters);c(bytes)]




THAT'S ALL FOR NOW!

Okay. We are through with our two scripts! We have come up with new ways to calculate and accomplish how to split a file into ten equal parts, and also to split it to its tenths and verified our results with line counts. Remember we can use the same technic to extend it to split a file to its hundredths[1/100th(1%), 2/100th(2%) through 100/100th(100%) etc.]



Hopefully, our two little scripts will inspire us to come up with newer and better ways to accomplish similar familiar tasks, all the while looking out to improve stuff at the same time. Remember to visit sqlhtm.com for the latest tweet/Bible verse viewer "Polar Verses" and more tools!

Fresh New Look! Come Take A Look! Sqlhtm.com Has A Redesigned Home Page!

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