Multi-Search3
Showing posts with label Shell Scripts. Show all posts
Showing posts with label Shell Scripts. Show all posts

MonkeyWordSearch - Powerful, Free Linux Keyword-search Utility!




Searching for a free search program(Linux bash script) with GUI input controls? Want to see results on your browser? Love keyword highlighting? Need to see not just result fragments from file but the file itself? Want to restrict searches to ASCII/text files only but need to view list of files that weren't searched also? Want a clickable link for EVERY FILE with or without a match within the domain of the search? Want to see the progress of the search with an oscillating progress bar and a scrolling percentage-completed tailbox?

Welcome to MonkeyWordSearch! The Monkey's got it all for you!

Read on.

REQUIREMENTS

1.Zorin7 OS [Ubuntu] Linux
2.A modern browser that supports CSS3 transitions [I used Chrome28.0, Firefox28.0, Opera12.16]
3.Zenity [I used version 3.6.0]
4.GNU Awk 4.0.1
5.Rxvt v2.6.4
Screen resolution: 1280 x 800 [Recommended]

FEATURES

MonkeyWordSearch is a powerful recursive keyword search utility with GUI input box, file select control, file-type and maxdepth filters which let you search files on your Linux PC/Laptop for your search phrases. It's features are listed below.

1.View results on browser: Display the search results on the browser.

2.Highlight keywords/search phrase[Case-insensitive!]: Highlight the keywords within search results for emphasis. You'll like it that Monkey displays a match regardless of whether it is UPPERCASE, lowercase or CamelCase!

3.List text files with/without result: Locate and separately list which files contain results and which do not.

4.List non-text(skipped) files: Locate and separately list skipped non-text/ASCII files.
4a.Here's something even more interesting. Click on the [Clickable File List] button to view the clickable version of the same page useful for viewing pdfs, images etc but remember to NOT CLICK on executable or very large files.

5.Display results as Encoded or Normal: Click anywhere inside the result box or click on the [View Results] link above the result box to display the results page that pops up for text-view or web-view of the search results. While the top [HTML-Encoded text view] is always intact, remember that the bottom [Normal HTML web view] below it may sometimes seem broken since incomplete HTML code in search results might make it look broken. This is normal behavior. Click on the [Result Fragments: Normal] button on top of the page TWICE to bring up the normal section to top.

6.View search file itself, not just results: Click on the [View File] link on the top-right of the search result box to view the file on the browser. If this link did nothing, then the filename may have goofy characters in it and, most often we can click either on the search result box or the [View Results] link and then click on the link to the file on top of the results page. If this didn't work either, at least we have the filename parts with the path so we can open the file manually.

7.Exclude big files from search but view their names: Exclude big files [greater than 5MB] from the search but view their names.

8.Find search progress percentage-completed [MonkeyWordSearchTailbox window]

How do I activate/de-activate this window? This window is activated by default. To de-activate it, find and comment these two lines in the [$HOME/tools/MonkeyWordSearch/Mws.bash] file.

[You may activate it again by uncommenting the two lines above if you choose to.]

How is it useful? Once you press [OK] on the 4th and final input box, you see this window if it is activated. This Rxvt terminal window with a fast-scrolling tailbox displays the total file count, percentage-completed, current file being processed with path among other things.

How do I exit from it? Press [CTRL-C] from within this window to exit from it. Double-click on [$HOME/tools/MonkeyWordSearch/MwsCleanup.bash] script to terminate MonkeyWordSearch completely. Find more details at the [III.Termininating MonkeyWordSearch] section below.

Is there a search log? Remember to check the [$HOME/tools/MonkeyWordSearch/MwsSearchLog.htm] file for the complete record of the search after the search completes.

9.MonkeyWordSearch window: Once you press [OK] on the 4th final input box, this [oscillating progress-bar] window starts up along with the [MonkeyWordSearchTailbox] window. Along with keyword and other input parameter details, you can also view the search progress with an oscillating progress bar. You may stop and exit from the Monkey before it completes by pressing [Escape] from within this window and pressing [Ctrl-C] from the MonkeyWordSearchTailbox window. Don't forget to cleanup strays with [$HOME/tools/MonkeyWordSearch/MwsCleanup.bash] before re-running the Monkey!

10.Use 4 GUI input boxes: These are used for inputs. Press [Escape] to exit.


NOTE 1: LINUX COMMANDS AND TOOLS USED
You wouldn't believe it that a simple program such as MonkeyWordSearch needs so many Linux commands and tools to fetch you the results! First you need to manually verify or set 4 files at the top of the $HOME/tools/MonkeyWordSearch/Mws.bash script. Change samples below to suit your environment.

#Define your browser location below
BROWSER=/usr/bin/chrome
#Define awk location below
AWK=/usr/bin/awk
#Define rxvt location below
RXVT=/usr/bin/rxvt
#Define zenity location below
ZENITY=/usr/bin/zenity

Apart from these, there are 17 Linux commands/tools Monkey needs. You may appreciate the fact that Monkey automatically scans and sets the locations of these following essential Linux commands without you having to manually check each one of them. When you run Monkey, one of the first things it does is to check for these 17 files and error out if it misses anything. If MonkeyWordSearch doesn't start up, open the [$HOME/tools/MonkeyWordSearch/MwsMissing.out] file to view the details of found and not found files and fix the problems if any and re-run Monkey after fixing problems. Here's the list of these mostly standard and almost always available 17 Linux commands/tools:

mkdir bash mv rm touch echo grep cat sed find sleep file wc expr bc cp sort 

NOTE 2: SIZE OF EXCLUDE FILES
While leaving out non-text/ASCII files, Monkey also excludes text files bigger than 5MB from being searched but lists their names so you can search those big files manually if you choose to. You can change the default big file size by searching for and changing the line below in the Mws.bash script

if [ $fsize -le 5242880 ]; then

NOTE 3: OPENING FILES FROM MONKEYWORDSEARCH BROWSER LINKS OR BUTTONS
MonkeyWordSearch has made it easy for you to be safe when you click on files to open them from the browser by segregating non-text/ASCII files and excluding them from being searched. Again, even among text/ASCII files it picks out and excludes files bigger than 5MB from being searched. Best of all, MonkeyWordSearch presents you a  skipped(non-text) files page with non-clickable list of file names by default, but you can make it clickable by pressing the button just above the list. Talk about having the best of both worlds, safety and convenience! As a general rule of thumb, though, ALWAYS exercise caution when clicking on links because of the way browsers make file-associations. For example, don't click on executables, huge files etc.

NOTE 4: BROWSE YOUR SEARCH FOLDER WITH YOUR BROWSER!
Click on the link to the right of [Search Location] on the top of the main search result page to browse the search folder with your browser.

NOTE 5: X-RAY-MONKEY: MONKEY FOUND A RESULT BUT I CAN'T FIND IT IN THE FILE - HEY WHAT'S UP?
The result box shows a match but when you open the file and search for it you don't find it, what's going on? This may happen when you're searching html files where there could be matches found in non-content areas such as html code or javascript code. If you're opening the html search file with your browser, rightclick and select [view page source] and then press [CTRL-F] to do a search and you'll find it.

NOTE 6: [ViewFile] LINK ON TOP-RIGHT OF SEARCH RESULT BOX WON'T WORK - HEY WHAT'S UP?
If the [ViewFile] link on the top-right of the search result box doesn't open the file, the filename possibly has some weird characters. Click inside the result box to open the results page on a new tab/window and click on the link on the top of the page to open the file. If this doesn't work either, at least we have the path and filename of this rogue! Just open it with your file manager.

NOTE 7: RESULTS FROM A ZIP FILE IS SHOWING UP IN THE RESULT BOX - HEY WHAT'S UP?
Sometimes you may see results from zip files shown in the result box. This may be normal. If a html file is compressed into a zip file, it may be seen as "HTML document, UTF-8 Unicode text, with very long lines" by the [file] command that is used to filter text/ascii files. In this case, the file may be opened by a text editor.

NOTE 8: SMART IDEA - SAVE THAT SEARCH!
Let's say you just searched for files with the keyword [Linux] and want to save it for future. Just copy the [Mws.htm] file and rename it to something such as [Mws.linux.htm]. This will benefit especially those who keep their stuff well-organized on their PC/Laptop since they will have only one two places to search for anything! Isn't this a good idea?

NOTE 9: DUMB SEARCHES[?]
1.Avoid searching system folders if you don't intend to.[Eg. /var, /usr, /etc etc.]
2.If you delete lots of files using PcManFM GUI file manager, then your [/root/.local/share/Trash] folder for root user or [$HOME/.local/share/Trash] folder for non-root users may be huge. Remember to avoid searching these if you don't intend to.
3.Your [$HOME/.thumbnails] folder may have tens of thousands of files, you may not want to search these.

CONCLUSION

This Monkey sure made me go all bananas! Seriously, it took a lot of time and effort to get it going but it sure will make your life easy if you choose to use it! MonkeyWordSearch makes searching files on your Linux system for keywords a much better experience first since it lets you view results on your browser with keyword highlighting. Secondly you can view not just the results but the file itself. Thirdly you get a clickable list of files with results and those without. Fourthly you get a clickable list of skipped(non-text) files. And most of all, it lets you view the progress of the search the whole time while letting you terminate it INSTANTLY with just a double-click on [$HOME/toos/MonkeyWordSearch/MwsCleanup.bash] then clicking [Open] or by typing [mwsclean] from the commandline!

Here's the secret. Once you get used to typing [mws] and [mwsclean] from the commandline or its equivalent of double-clicking on [$HOME/toos/MonkeyWordSearch/Mws.bash] and [$HOME/toos/MonkeyWordSearch/MwsCleanup.bash] and then clicking [Open] to start and terminate the Monkey, I guarantee you'll be using them all the time without knowing it!

  • Visit my website [Sqlhtm.com]
  • Read my blog at Blogger [Sqlhtm.blogspot.com]
  • Read Some Top Tweets From Me And Others!
  • Read Some DIY[Do-It-Yourself] Ideas Of Mine
  • PolarVerses - Display Your Tweets/Bible Verses Proudly! Free!
  • Multi-search3 - Powerful 3-in-1 Web Search! Free!
  • Aesop Fables Browser - Legendary Animal Tales With My Short Summary Tweets! Free!
  • Font3dTemplates - Slideshow Of Wordart I Made With It.[Chrome15.0-Win7/XP]. Free!
  • Bible Reader - You can still read the Bible from here! Free!
  • A Cool Database Tool I Made! Free!
  • Another Neat Database Tool You Can't Be Without! Free!
  • 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!

    Sig3 - Simple Image Gallery For Linux

    "No, no, this isn't a world band shortwave radio, this is Sig3-a tiny Linux image gallery generator!"

    Sig3 is an image gallery generator for Linux. By making thumbnails of common image files in a folder, Sig3 helps you preview them and also open them with your browser where you can do almost anything and everything to them with browser addons and plugins.

    For example, assuming you have installed ColorZilla for Firefox, when you run Sig3 and the image gallery comes up on a Firefox window, you'll also notice ColorZilla's colorpicker icon on the toolbar.[Enable it first with Menu->View->Toolbars->Navigation Toolbar]. Now click on it and move it over the thumbnails on the left panel of the Sig3 image gallery to view the color code of every pixel on every thumbnail! Just click to copy it to the clipboard so you can paste it without memorizing it! How cool! By identifying color codes of an image you can style the image's container or page with a matching or contrasting color in your web projects! This is just a little example. Think of all the image addons, plugins, tools, possibilities!

    I built it on Zorin OS 7/Ubuntu Linux with a shell script and use it often myself. I am sure you'll find tons of uses for it. It's really easy to use, you can either type [sig3] from a terminal, [double-click] on the [sig3.bash] script or [Rightclick] on an image folder and select [sig3.bash] from the [Open With] menu to create and view the image gallery on your browser. Obviously, as mentioned later, you need to create a link called sig3 at /usr/bin and also make sure it is executable before you can do that. I used a Linux user account [jc] with root privileges. You might need root privileges to create the link at /usr/bin. Remember to disregard the square brackets used throughout for highlight and emphasis. Go ahead and read more.






    UPDATE

    Have you tried Sig3 on your laptop/pc yet? Have you at least tried the online demo? If you feel that things are a little slow or that the transitions don't work for you, it probably is the image size and number of images! Try it on a folder with small [clipart type] images and I guarantee that things will work perfectly! I experienced this myself! This is something I have also observed not just here, but also in many online image galleries; the more the number of images in the gallery and the bigger the sizes of images, the longer it takes for the images to load and the transitions to work. Also make sure your browser supports CSS3 transitions by comparing with other image galleries with transitions. Well, that's my humble opinion!


    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