Vim documentation: cmdline
main help file*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18 VIM REFERENCE MANUAL by Bram Moolenaar *Cmdline-mode* *Command-line-mode* Command-line mode *Cmdline* *Command-line* *mode-cmdline* *:* Command-line mode is used to enter Ex commands (":"), search patterns ("/" and "?"), and filter commands ("!"). Basic command line editing is explained in chapter 20 of the user manual |usr_20.txt|. 1. Command-line editing |cmdline-editing| 2. Command-line completion |cmdline-completion| 3. Ex command-lines |cmdline-lines| 4. Ex command-line ranges |cmdline-ranges| 5. Ex command-line flags |ex-flags| 6. Ex special characters |cmdline-special| 7. Command-line window |cmdline-window|
1. Command-line editing *cmdline-editing* Normally characters are inserted in front of the cursor position. You can move around in the command-line with the left and right cursor keys. With the <Insert> key, you can toggle between inserting and overstriking characters. {Vi: can only alter the last character in the line} Note that if your keyboard does not have working cursor keys or any of the other special keys, you can use ":cnoremap" to define another key for them. For example, to define tcsh style editing keys: *tcsh-style* :cnoremap <C-A> <Home> :cnoremap <C-F> <Right> :cnoremap <C-B> <Left> :cnoremap <Esc>b <S-Left> :cnoremap <Esc>f <S-Right> (<> notation |<>|; type all this literally) *cmdline-too-long* When the command line is getting longer than what fits on the screen, only the part that fits will be shown. The cursor can only move in this visible part, thus you cannot edit beyond that. *cmdline-history* *history* The command-lines that you enter are remembered in a history table. You can recall them with the up and down cursor keys. There are actually five history tables: - one for ':' commands - one for search strings - one for expressions - one for input lines, typed for the |input()| function. - one for debug mode commands These are completely separate. Each history can only be accessed when entering the same type of line. Use the 'history' option to set the number of lines that are remembered (default: 20). Notes: - When you enter a command-line that is exactly the same as an older one, the old one is removed (to avoid repeated commands moving older commands out of the history). - Only commands that are typed are remembered. Ones that completely come from mappings are not put in the history. - All searches are put in the search history, including the ones that come from commands like "*" and "#". But for a mapping, only the last search is remembered (to avoid that long mappings trash the history). {Vi: no history} {not available when compiled without the |+cmdline_hist| feature} There is an automatic completion of names on the command-line; see |cmdline-completion|. *c_CTRL-V* CTRL-V Insert next non-digit literally. Up to three digits form the decimal value of a single byte. The non-digit and the three digits are not considered for mapping. This works the same way as in Insert mode (see above, |i_CTRL-V|). Note: Under Windows CTRL-V is often mapped to paste text. Use CTRL-Q instead then. *c_CTRL-Q* CTRL-Q Same as CTRL-V. But with some terminals it is used for control flow, it doesn't work then. *c_<Left>* <Left> cursor left *c_<Right>* <Right> cursor right *c_<S-Left>* <S-Left> or <C-Left> *c_<C-Left>* cursor one WORD left *c_<S-Right>* <S-Right> or <C-Right> *c_<C-Right>* cursor one WORD right CTRL-B or <Home> *c_CTRL-B* *c_<Home>* cursor to beginning of command-line CTRL-E or <End> *c_CTRL-E* *c_<End>* cursor to end of command-line *c_<LeftMouse>* <LeftMouse> Move the cursor to the position of the mouse click. CTRL-H *c_<BS>* *c_CTRL-H* <BS> Delete the character in front of the cursor (see |:fixdel| if your <BS> key does not do what you want). *c_<Del>* <Del> Delete the character under the cursor (at end of line: character before the cursor) (see |:fixdel| if your <Del> key does not do what you want). *c_CTRL-W* CTRL-W Delete the |word| before the cursor. This depends on the 'iskeyword' option. *c_CTRL-U* CTRL-U Remove all characters between the cursor position and the beginning of the line. Previous versions of vim deleted all characters on the line. If that is the preferred behavior, add the following to your .vimrc: :cnoremap <C-U> <C-E><C-U> Note: if the command-line becomes empty with one of the delete commands, Command-line mode is quit. *c_<Insert>* <Insert> Toggle between insert and overstrike. {not in Vi} {char1} <BS> {char2} or *c_digraph* CTRL-K {char1} {char2} *c_CTRL-K* enter digraph (see |digraphs|). When {char1} is a special key, the code for that key is inserted in <> form. {not in Vi} CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>* Insert the contents of a numbered or named register. Between typing CTRL-R and the second character '"'' will be displayed to indicate that you are expected to enter the name of a register. The text is inserted as if you typed it, but mappings and abbreviations are not used. Command-line completion through 'wildchar' is not triggered though. And characters that end the command line are inserted literally (<Esc>, <CR>, <NL>, <C-C>). A <BS> or CTRL-W could still end the command line though, and remaining characters will then be interpreted in another mode, which might not be what you intended. Special registers: '"'' the unnamed register, containing the text of the last delete or yank '%' the current file name '#' the alternate file name '*' the clipboard contents (X11: primary selection) '+' the clipboard contents '/' the last search pattern ':' the last command-line '-' the last small (less than a line) delete '.' the last inserted text *c_CTRL-R_=* '=' the expression register: you are prompted to enter an expression (see |expression|) (doesn't work at the expression prompt; some things such as changing the buffer or current window are not allowed to avoid side effects) When the result is a |List| the items are used as lines. They can have line breaks inside too. When the result is a Float it's automatically converted to a String. See |registers| about registers. {not in Vi} Implementation detail: When using the |expression| register and invoking setcmdpos(), this sets the position before inserting the resulting string. Use CTRL-R CTRL-R to set the position afterwards. CTRL-R CTRL-F *c_CTRL-R_CTRL-F* *c_<C-R>_<C-F>* CTRL-R CTRL-P *c_CTRL-R_CTRL-P* *c_<C-R>_<C-P>* CTRL-R CTRL-W *c_CTRL-R_CTRL-W* *c_<C-R>_<C-W>* CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>* Insert the object under the cursor: CTRL-F the Filename under the cursor CTRL-P the Filename under the cursor, expanded with 'path' as in |gf| CTRL-W the Word under the cursor CTRL-A the WORD under the cursor; see |WORD| When 'incsearch' is set the cursor position at the end of the currently displayed match is used. With CTRL-W the part of the word that was already typed is not inserted again. {not in Vi} CTRL-F and CTRL-P: {only when +file_in_path feature is included} *c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>* *c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>* CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A} CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A} Insert register or object under the cursor. Works like |c_CTRL-R| but inserts the text literally. For example, if register a contains "xy^Hz" (where ^H is a backspace), "CTRL-R a" will insert "xz" while "CTRL-R CTRL-R a" will insert "xy^Hz". CTRL-\ e {expr} *c_CTRL-\_e* Evaluate {expr} and replace the whole command line with the result. You will be prompted for the expression, type <Enter> to finish it. It's most useful in mappings though. See |expression|. See |c_CTRL-R_=| for inserting the result of an expression. Useful functions are |getcmdtype()|, |getcmdline()| and |getcmdpos()|. The cursor position is unchanged, except when the cursor was at the end of the line, then it stays at the end. |setcmdpos()| can be used to set the cursor position. The |sandbox| is used for evaluating the expression to avoid nasty side effects. Example: :cmap <F7> <C-\>eAppendSome()<CR> :func AppendSome() :let cmd = getcmdline() . " Some()" :" place the cursor on the ) :call setcmdpos(strlen(cmd)) :return cmd :endfunc This doesn't work recursively, thus not when already editing an expression. *c_CTRL-Y* CTRL-Y When there is a modeless selection, copy the selection into the clipboard. |modeless-selection| If there is no selection CTRL-Y is inserted as a character. CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* <CR> or <NL> start entered command *c_<Esc>* <Esc> When typed and 'x' not present in 'cpoptions', quit Command-line mode without executing. In macros or when 'x' present in 'cpoptions', start entered command. Note: If your <Esc> key is hard to hit on your keyboard, train yourself to use CTRL-[. *c_CTRL-C* CTRL-C quit command-line without executing *c_<Up>* <Up> recall older command-line from history, whose beginning matches the current command-line (see below). {not available when compiled without the |+cmdline_hist| feature} *c_<Down>* <Down> recall more recent command-line from history, whose beginning matches the current command-line (see below). {not available when compiled without the |+cmdline_hist| feature} *c_<S-Up>* *c_<PageUp>* <S-Up> or <PageUp> recall older command-line from history {not available when compiled without the |+cmdline_hist| feature} *c_<S-Down>* *c_<PageDown>* <S-Down> or <PageDown> recall more recent command-line from history {not available when compiled without the |+cmdline_hist| feature} CTRL-D command-line completion (see |cmdline-completion|) 'wildchar' option command-line completion (see |cmdline-completion|) CTRL-N command-line completion (see |cmdline-completion|) CTRL-P command-line completion (see |cmdline-completion|) CTRL-A command-line completion (see |cmdline-completion|) CTRL-L command-line completion (see |cmdline-completion|) *c_CTRL-_* CTRL-_ a - switch between Hebrew and English keyboard mode, which is private to the command-line and not related to hkmap. This is useful when Hebrew text entry is required in the command-line, searches, abbreviations, etc. Applies only if Vim is compiled with the |+rightleft| feature and the 'allowrevins' option is set. See |rileft.txt|. b - switch between Farsi and English keyboard mode, which is private to the command-line and not related to fkmap. In Farsi keyboard mode the characters are inserted in reverse insert manner. This is useful when Farsi text entry is required in the command-line, searches, abbreviations, etc. Applies only if Vim is compiled with the |+farsi| feature. See |farsi.txt|. *c_CTRL-^* CTRL-^ Toggle the use of language |:lmap| mappings and/or Input Method. When typing a pattern for a search command and 'imsearch' is not -1, VAL is the value of 'imsearch', otherwise VAL is the value of 'iminsert'. When language mappings are defined: - If VAL is 1 (langmap mappings used) it becomes 0 (no langmap mappings used). - If VAL was not 1 it becomes 1, thus langmap mappings are enabled. When no language mappings are defined: - If VAL is 2 (Input Method is used) it becomes 0 (no input method used) - If VAL has another value it becomes 2, thus the Input Method is enabled. These language mappings are normally used to type characters that are different from what the keyboard produces. The 'keymap' option can be used to install a whole number of them. When entering a command line, langmap mappings are switched off, since you are expected to type a command. After switching it on with CTRL-^, the new state is not used again for the next command or Search pattern. {not in Vi} *c_CTRL-]* CTRL-] Trigger abbreviation, without inserting a character. {not in Vi} For Emacs-style editing on the command-line see |emacs-keys|. The <Up> and <Down> keys take the current command-line as a search string. The beginning of the next/previous command-lines are compared with this string. The first line that matches is the new command-line. When typing these two keys repeatedly, the same string is used again. For example, this can be used to find the previous substitute command: Type ":s" and then <Up>. The same could be done by typing <S-Up> a number of times until the desired command-line is shown. (Note: the shifted arrow keys do not work on all terminals) *:his* *:history* :his[tory] Print the history of last entered commands. {not in Vi} {not available when compiled without the |+cmdline_hist| feature} :his[tory] [{name}] [{first}][, [{last}]] List the contents of history {name} which can be: c[md] or : command-line history s[earch] or / search string history e[xpr] or = expression register history i[nput] or @ input line history d[ebug] or > debug command history a[ll] all of the above {not in Vi} If the numbers {first} and/or {last} are given, the respective range of entries from a history is listed. These numbers can be specified in the following form: *:history-indexing* A positive number represents the absolute index of an entry as it is given in the first column of a :history listing. This number remains fixed even if other entries are deleted. A negative number means the relative position of an entry, counted from the newest entry (which has index -1) backwards. Examples: List entries 6 to 12 from the search history: :history / 6,12 List the recent five entries from all histories: :history all -5,
2. Command-line completion *cmdline-completion* When editing the command-line, a few commands can be used to complete the word before the cursor. This is available for: - Command names: At the start of the command-line. - Tags: Only after the ":tag" command. - File names: Only after a command that accepts a file name or a setting for an option that can be set to a file name. This is called file name completion. - Shell command names: After ":!cmd", ":r !cmd" and ":w !cmd". $PATH is used. - Options: Only after the ":set" command. - Mappings: Only after a ":map" or similar command. - Variable and function names: Only after a ":if", ":call" or similar command. When Vim was compiled with the |+cmdline_compl| feature disabled, only file names, directories and help items can be completed. The number of help item matches is limited (currently to 300) to avoid a long delay when there are very many matches. These are the commands that can be used: *c_CTRL-D* CTRL-D List names that match the pattern in front of the cursor. When showing file names, directories are highlighted (see 'highlight' option). Names where 'suffixes' matches are moved to the end. The 'wildoptions' option can be set to "tagfile" to list the file of matching tags. *c_CTRL-I* *c_wildchar* *c_<Tab>* 'wildchar' option A match is done on the pattern in front of the cursor. The match (if there are several, the first match) is inserted in place of the pattern. (Note: does not work inside a macro, because <Tab> or <Esc> are mostly used as 'wildchar', and these have a special meaning in some macros.) When typed again and there were multiple matches, the next match is inserted. After the last match, the first is used again (wrap around). The behavior can be changed with the 'wildmode' option. *c_CTRL-N* CTRL-N After using 'wildchar' which got multiple matches, go to next match. Otherwise recall more recent command-line from history. <S-Tab> *c_CTRL-P* *c_<S-Tab>* CTRL-P After using 'wildchar' which got multiple matches, go to previous match. Otherwise recall older command-line from history. <S-Tab> only works with the GUI, on the Amiga and with MS-DOS. *c_CTRL-A* CTRL-A All names that match the pattern in front of the cursor are inserted. *c_CTRL-L* CTRL-L A match is done on the pattern in front of the cursor. If there is one match, it is inserted in place of the pattern. If there are multiple matches the longest common part is inserted in place of the pattern. If the result is shorter than the pattern, no completion is done. When 'incsearch' is set, entering a search pattern for "/" or "?" and the current match is displayed then CTRL-L will add one character from the end of the current match. The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in a previous version <Esc> was used). In the pattern standard wildcards '*' and '?' are accepted. '*' matches any string, '?' matches exactly one character. If you like tcsh's autolist completion, you can use this mapping: :cnoremap X <C-L><C-D> (Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D) This will find the longest match and then list all matching files. If you like tcsh's autolist completion, you can use the 'wildmode' option to emulate it. For example, this mimics autolist=ambiguous: :set wildmode=longest,list This will find the longest match with the first 'wildchar', then list all matching files with the next. *suffixes* For file name completion you can use the 'suffixes' option to set a priority between files with almost the same name. If there are multiple matches, those files with an extension that is in the 'suffixes' option are ignored. The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored. An empty entry, two consecutive commas, match a file name that does not contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer "prog.c". Examples: pattern: files: match: test* test.c test.h test.o test.c test* test.h test.o test.h and test.o test* test.i test.h test.c test.i and test.c It is impossible to ignore suffixes with two dots. If there is more than one matching file (after ignoring the ones matching the 'suffixes' option) the first file name is inserted. You can see that there is only one match when you type 'wildchar' twice and the completed match stays the same. You can get to the other matches by entering 'wildchar', CTRL-N or CTRL-P. All files are included, also the ones with extensions matching the 'suffixes' option. To completely ignore files with some extension use 'wildignore'. To match only files that end at the end of the typed text append a "$". For example, to match only files that end in ".c": :e *.c$ This will not match a file ending in ".cpp". Without the "$" it does match. The old value of an option can be obtained by hitting 'wildchar' just after the '='. For example, typing 'wildchar' after ":set dir=" will insert the current value of 'dir'. This overrules file name completion for the options that take a file name. If you would like using <S-Tab> for CTRL-P in an xterm, put this command in your .cshrc: xmodmap -e "keysym Tab = Tab Find" And this in your .vimrc: :cmap <Esc>[1~ <C-P>
3. Ex command-lines *cmdline-lines* The Ex commands have a few specialties: *:quote* '"'' at the start of a line causes the whole line to be ignored. '"'' after a command causes the rest of the line to be ignored. This can be used to add comments. Example: :set ai "set 'autoindent' option It is not possible to add a comment to a shell command ":!cmd" or to the ":map" command and friends, because they see the '"'' as part of their argument. *:bar* *:\bar* '|' can be used to separate commands, so you can give multiple commands in one line. If you want to use '|' in an argument, precede it with '\'. These commands see the '|' as their argument, and can therefore not be followed by another Vim command: :argdo :autocmd :bufdo :command :cscope :debug :folddoopen :folddoclosed :function :global :help :helpfind :lcscope :make :normal :perl :perldo :promptfind :promptrepl :pyfile :python :registers :read ! :scscope :tcl :tcldo :tclfile :vglobal :windo :write ! :[range]! a user defined command without the "-bar" argument |:command| Note that this is confusing (inherited from Vi): With ":g" the '|' is included in the command, with ":s" it is not. To be able to use another command anyway, use the ":execute" command. Example (append the output of "ls" and jump to the first line): :execute 'r !ls' | '[ There is one exception: When the 'b' flag is present in 'cpoptions', with the ":map" and ":abbr" commands and friends CTRL-V needs to be used instead of '\'. You can also use "<Bar>" instead. See also |map_bar|. Examples: :!ls | wc view the output of two commands :r !ls | wc insert the same output in the text :%g/foo/p|> moves all matching lines one shiftwidth :%s/foo/bar/|> moves one line one shiftwidth :map q 10^V| map "q" to "10|" :map q 10\| map \ l map "q" to "10\" and map "\" to "l" (when 'b' is present in 'cpoptions') You can also use <NL> to separate commands in the same way as with '|'. To insert a <NL> use CTRL-V CTRL-J. "^@" will be shown. Using '|' is the preferred method. But for external commands a <NL> must be used, because a '|' is included in the external command. To avoid the special meaning of <NL> it must be preceded with a backslash. Example: :r !date<NL>-join This reads the current date into the file and joins it with the previous line. Note that when the command before the '|' generates an error, the following commands will not be executed. Because of Vi compatibility the following strange commands are supported: :| print current line (like ":p") :3| print line 3 (like ":3p") :3 goto line 3 A colon is allowed between the range and the command name. It is ignored (this is Vi compatible). For example: :1,$:s/pat/string When the character '%' or '#' is used where a file name is expected, they are expanded to the current and alternate file name (see the chapter "editing files" |:_%| |:_#|). Embedded spaces in file names are allowed on the Amiga if one file name is expected as argument. Trailing spaces will be ignored, unless escaped with a backslash or CTRL-V. Note that the ":next" command uses spaces to separate file names. Escape the spaces to include them in a file name. Example: :next foo\ bar goes\ to school\ starts editing the three files "foo bar", "goes to" and "school ". When you want to use the special characters '"'' or '|' in a command, or want to use '%' or '#' in a file name, precede them with a backslash. The backslash is not required in a range and in the ":substitute" command. *:_!* The '!' (bang) character after an Ex command makes the command behave in a different way. The '!' should be placed immediately after the command, without any blanks in between. If you insert blanks the '!' will be seen as an argument for the command, which has a different meaning. For example: :w! name write the current buffer to file "name", overwriting any existing file :w !name send the current buffer as standard input to command "name"
4. Ex command-line ranges *cmdline-ranges* *[range]* *E16* Some Ex commands accept a line range in front of them. This is noted as [range]. It consists of one or more line specifiers, separated with ',' or ';'. The basics are explained in section |10.3| of the user manual. *:,* *:;* When separated with ';' the cursor position will be set to that line before interpreting the next line specifier. This doesn't happen for ','. Examples: 4,/this line/ from line 4 till match with "this line" after the cursor line. 5;/that line/ from line 5 till match with "that line" after line 5. The default line specifier for most commands is the cursor position, but the commands ":write" and ":global" have the whole file (1,$) as default. If more line specifiers are given than required for the command, the first one(s) will be ignored. Line numbers may be specified with: *:range* *E14* *{address}* {number} an absolute line number . the current line *:.* $ the last line in the file *:$* % equal to 1,$ (the entire file) *:%* 't position of mark t (lowercase) *:'* 'T position of mark T (uppercase); when the mark is in another file it cannot be used in a range /{pattern}[/] the next line where {pattern} matches *:/* ?{pattern}[?] the previous line where {pattern} matches *:?* \/ the next line where the previously used search pattern matches \? the previous line where the previously used search pattern matches \& the next line where the previously used substitute pattern matches Each may be followed (several times) by '+' or '-' and an optional number. This number is added or subtracted from the preceding line number. If the number is omitted, 1 is used. The "/" and "?" after {pattern} are required to separate the pattern from anything that follows. The "/" and "?" may be preceded with another address. The search starts from there. The difference from using ';' is that the cursor isn't moved. Examples: /pat1//pat2/ Find line containing "pat2" after line containing "pat1", without moving the cursor. 7;/pat2/ Find line containing "pat2", after line 7, leaving the cursor in line 7. The {number} must be between 0 and the number of lines in the file. When using a 0 (zero) this is interpreted as a 1 by most commands. Commands that use it as a count do use it as a zero (|:tag|, |:pop|, etc). Some commands interpret the zero as "before the first line" (|:read|, search pattern, etc). Examples: .+3 three lines below the cursor /that/+1 the line below the next line containing "that" .,$ from current line until end of file 0;/that the first line containing "that", also matches in the first line. 1;/that the first line after line 1 containing "that" Some commands allow for a count after the command. This count is used as the number of lines to be used, starting with the line given in the last line specifier (the default is the cursor line). The commands that accept a count are the ones that use a range but do not have a file name argument (because a file name can also be a number). Examples: :s/x/X/g 5 substitute 'x' by 'X' in the current line and four following lines :23d 4 delete lines 23, 24, 25 and 26 Folds and Range When folds are active the line numbers are rounded off to include the whole closed fold. See |fold-behavior|. Reverse Range *E493* A range should have the lower line number first. If this is not the case, Vim will ask you if it should swap the line numbers. Backwards range given, OK to swap This is not done within the global command ":g". You can use ":silent" before a command to avoid the question, the range will always be swapped then. Count and Range *N:* When giving a count before entering ":", this is translated into: :.,.+(count - 1) In words: The 'count' lines at and after the cursor. Example: To delete three lines: 3:d<CR> is translated into: .,.+2d<CR> Visual Mode and Range *v_:* {Visual}: Starts a command-line with the Visual selected lines as a range. The code ":'<,'>" is used for this range, which makes it possible to select a similar line from the command-line history for repeating a command on different Visually selected lines.
5. Ex command-line flags *ex-flags* These flags are supported by a selection of Ex commands. They print the line that the cursor ends up after executing the command: l output like for |:list| # add line number p output like for |:print| The flags can be combined, thus "l#" uses both a line number and |:list| style output.
6. Ex special characters *cmdline-special* Note: These are special characters in the executed command line. If you want to insert special things while typing you can use the CTRL-R command. For example, "%" stands for the current file name, while CTRL-R % inserts the current file name right away. See |c_CTRL-R|. Note: If you want to avoid the special characters in a Vim script you may want to use |fnameescape()|. In Ex commands, at places where a file name can be used, the following characters have a special meaning. These can also be used in the expression function expand() |expand()|. % Is replaced with the current file name. *:_%* *c_%* # Is replaced with the alternate file name. *:_#* *c_#* #n (where n is a number) is replaced with the file name of buffer n. "#0" is the same as "#". ## Is replaced with all names in the argument list *:_##* *c_##* concatenated, separated by spaces. Each space in a name is preceded with a backslash. #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<* file name n. See |:oldfiles| or |v:oldfiles| to get the number. *E809* {only when compiled with the +eval and +viminfo features} Note that these, except "#<n", give the file name as it was typed. If an absolute path is needed (when using the file name from a different directory), you need to add ":p". See |filename-modifiers|. The "#<n" item returns an absolute path, but it will start with "~/" for files below your home directory. Note that backslashes are inserted before spaces, so that the command will correctly interpret the file name. But this doesn't happen for shell commands. For those you probably have to use quotes (this fails for files that contain a quote and wildcards): :!ls "%" :r !spell "%" To avoid the special meaning of '%' and '#' insert a backslash before it. Detail: The special meaning is always escaped when there is a backslash before it, no matter how many backslashes. you type: result # alternate.file \# # \\# \# *:<cword>* *:<cWORD>* *:<cfile>* *<cfile>* *:<sfile>* *<sfile>* *:<afile>* *<afile>* *:<abuf>* *<abuf>* *:<amatch>* *<amatch>* *E495* *E496* *E497* *E498* *E499* *E500* Note: these are typed literally, they are not special keys! <cword> is replaced with the word under the cursor (like |star|) <cWORD> is replaced with the WORD under the cursor (see |WORD|) <cfile> is replaced with the path name under the cursor (like what |gf| uses) <afile> when executing autocommands, is replaced with the file name for a file read or write <abuf> when executing autocommands, is replaced with the currently effective buffer number (for ":r file" and ":so file" it is the current buffer, the file being read/sourced is not in a buffer). <amatch> when executing autocommands, is replaced with the match for which this autocommand was executed. It differs from <afile> only when the file name isn't used to match with (for FileType, Syntax and SpellFileMissing events). <sfile> when executing a ":source" command, is replaced with the file name of the sourced file; when executing a function, is replaced with "function {function-name}"; function call nesting is indicated like this: "function {function-name1}..{function-name2}". Note that filename-modifiers are useless when <sfile> is used inside a function. *filename-modifiers* *:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>", "<afile>" or "<abuf>". They are also used with the |fnamemodify()| function. These are not available when Vim has been compiled without the |+modify_fname| feature. These modifiers can be given, in this order: :p Make file name a full path. Must be the first modifier. Also changes "~/" (and "~user/" for Unix and VMS) to the path for the home directory. If the name is a directory a path separator is added at the end. For a file name that does not exist and does not have an absolute path the result is unpredictable. :8 Converts the path to 8.3 short format (currently only on win32). Will act on as much of a path that is an existing path. :~ Reduce file name to be relative to the home directory, if possible. File name is unmodified if it is not below the home directory. :. Reduce file name to be relative to current directory, if possible. File name is unmodified if it is not below the current directory. For maximum shortness, use ":~:.". :h Head of the file name (the last component and any separators removed). Cannot be used with :e, :r or :t. Can be repeated to remove several components at the end. When the file name ends in a path separator, only the path separator is removed. Thus ":p:h" on a directory name results on the directory name itself (without trailing slash). When the file name is an absolute path (starts with "/" for Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that part is not removed. When there is no head (path is relative to current directory) the result is empty. :t Tail of the file name (last component of the name). Must precede any :r or :e. :r Root of the file name (the last extension removed). When there is only an extension (file name that starts with '.', e.g., ".vimrc"), it is not removed. Can be repeated to remove several extensions (last one first). :e Extension of the file name. Only makes sense when used alone. When there is no extension the result is empty. When there is only an extension (file name that starts with '.'), the result is empty. Can be repeated to include more extensions. If there are not enough extensions (but at least one) as much as possible are included. :s?pat?sub? Substitute the first occurrence of "pat" with "sub". This works like the |:s| command. "pat" is a regular expression. Any character can be used for '?', but it must not occur in "pat" or "sub". After this, the previous modifiers can be used again. For example ":p", to make a full path after the substitution. :gs?pat?sub? Substitute all occurrences of "path" with "sub". Otherwise this works like ":s". Examples, when the file name is "src/version.c", current dir "/home/mool/vim": :p /home/mool/vim/src/version.c :p:. src/version.c :p:~ ~/vim/src/version.c :h src :p:h /home/mool/vim/src :p:h:h /home/mool/vim :t version.c :p:t version.c :r src/version :p:r /home/mool/vim/src/version :t:r version :e c :s?version?main? src/main.c :s?version?main?:p /home/mool/vim/src/main.c :p:gs?/?\\? \home\mool\vim\src\version.c Examples, when the file name is "src/version.c.gz": :p /home/mool/vim/src/version.c.gz :e gz :e:e c.gz :e:e:e c.gz :e:e:r c :r src/version.c :r:e c :r:r src/version :r:r:r src/version *extension-removal* *:_%<* If a "<" is appended to "%", "#", "#n" or "CTRL-V p" the extension of the file name is removed (everything after and including the last '.' in the file name). This is included for backwards compatibility with version 3.0, the ":r" form is preferred. Examples: % current file name %< current file name without extension # alternate file name for current window #< idem, without extension #31 alternate file number 31 #31< idem, without extension <cword> word under the cursor <cWORD> WORD under the cursor (see |WORD|) <cfile> path name under the cursor <cfile>< idem, without extension Note: Where a file name is expected wildcards expansion is done. On Unix the shell is used for this, unless it can be done internally (for speed). Backticks also work, like in :n `echo *.c` (backtick expansion is not possible in |restricted-mode|) But expansion is only done if there are any wildcards before expanding the '%', '#', etc.. This avoids expanding wildcards inside a file name. If you want to expand the result of <cfile>, add a wildcard character to it. Examples: (alternate file name is "?readme?") command expands to :e # :e ?readme? :e `ls #` :e {files matching "?readme?"} :e #.* :e {files matching "?readme?.*"} :cd <cfile> :cd {file name under cursor} :cd <cfile>* :cd {file name under cursor plus "*" and then expanded} When the expanded argument contains a "!" and it is used for a shell command (":!cmd", ":r !cmd" or ":w !cmd"), the "!" is escaped with a backslash to avoid it being expanded into a previously used command. When the 'shell' option contains "sh", this is done twice, to avoid the shell trying to expand the "!". *filename-backslash* For filesystems that use a backslash as directory separator (MS-DOS, Windows, OS/2), it's a bit difficult to recognize a backslash that is used to escape the special meaning of the next character. The general rule is: If the backslash is followed by a normal file name character, it does not have a special meaning. Therefore "\file\foo" is a valid file name, you don't have to type the backslash twice. An exception is the '$' sign. It is a valid character in a file name. But to avoid a file name like "$home" to be interpreted as an environment variable, it needs to be preceded by a backslash. Therefore you need to use "/\$home" for the file "$home" in the root directory. A few examples: FILE NAME INTERPRETED AS $home expanded to value of environment var $home \$home file "$home" in current directory /\$home file "$home" in root directory \\$home file "\\", followed by expanded $home
6. Command-line window *cmdline-window* *cmdwin* In the command-line window the command line can be edited just like editing text in any window. It is a special kind of window, because you cannot leave it in a normal way. {not available when compiled without the |+cmdline_hist| or |+vertsplit| feature} OPEN There are two ways to open the command-line window: 1. From Command-line mode, use the key specified with the 'cedit' option. The default is CTRL-F when 'compatible' is not set. 2. From Normal mode, use the "q:", "q/" or "q?" command. *q:* *q/* *q?* This starts editing an Ex command-line ("q:") or search string ("q/" or "q?"). Note that this is not possible while recording is in progress (the "q" stops recording then). When the window opens it is filled with the command-line history. The last line contains the command as typed so far. The left column will show a character that indicates the type of command-line being edited, see |cmdwin-char|. Vim will be in Normal mode when the editor is opened, except when 'insertmode' is set. The height of the window is specified with 'cmdwinheight' (or smaller if there is no room). The window is always full width and is positioned just above the command-line. EDIT You can now use commands to move around and edit the text in the window. Both in Normal mode and Insert mode. It is possible to use ":", "/" and other commands that use the command-line, but it's not possible to open another command-line window then. There is no nesting. *E11* The command-line window is not a normal window. It is not possible to move to another window or edit another buffer. All commands that would do this are disabled in the command-line window. Of course it _is_ possible to execute any command that you entered in the command-line window. CLOSE *E199* There are several ways to leave the command-line window: <CR> Execute the command-line under the cursor. Works both in Insert and in Normal mode. CTRL-C Continue in Command-line mode. The command-line under the cursor is used as the command-line. Works both in Insert and in Normal mode. ":close" also works. There is no redraw, thus the window will remain visible. :quit Discard the command line and go back to Normal mode. ":exit", ":xit" and CTRL-\ CTRL-N also work. :qall Quit Vim, unless there are changes in some buffer. :qall! Quit Vim, discarding changes to any buffer. Once the command-line window is closed the old window sizes are restored. The executed command applies to the window and buffer where the command-line was started from. This works as if the command-line window was not there, except that there will be an extra screen redraw. The buffer used for the command-line window is deleted. Any changes to lines other than the one that is executed with <CR> are lost. If you would like to execute the command under the cursor and then have the command-line window open again, you may find this mapping useful: :autocmd CmdwinEnter * map <buffer> <F5> <CR>q: VARIOUS The command-line window cannot be used: - when there already is a command-line window (no nesting) - for entering a encryption key or when using inputsecret() - when Vim was not compiled with the +vertsplit feature Some options are set when the command-line window is opened: 'filetype' "vim", when editing an Ex command-line; this starts Vim syntax highlighting if it was enabled 'rightleft' off 'modifiable' on 'buftype' "nofile" 'swapfile' off It is allowed to write the buffer contents to a file. This is an easy way to save the command-line history and read it back later. If the 'wildchar' option is set to <Tab>, and the command-line window is used for an Ex command, then two mappings will be added to use <Tab> for completion in the command-line window, like this: :imap <buffer> <Tab> <C-X><C-V> :nmap <buffer> <Tab> a<C-X><C-V> Note that hitting <Tab> in Normal mode will do completion on the next character. That way it works at the end of the line. If you don't want these mappings, disable them with: au CmdwinEnter [:>] iunmap <Tab> au CmdwinEnter [:>] nunmap <Tab> You could put these lines in your vimrc file. While in the command-line window you cannot use the mouse to put the cursor in another window, or drag statuslines of other windows. You can drag the statusline of the command-line window itself and the statusline above it. Thus you can resize the command-line window, but not others. AUTOCOMMANDS Two autocommand events are used: |CmdwinEnter| and |CmdwinLeave|. Since this window is of a special type, the WinEnter, WinLeave, BufEnter and BufLeave events are not triggered. You can use the Cmdwin events to do settings specifically for the command-line window. Be careful not to cause side effects! Example: :au CmdwinEnter : let b:cpt_save = &cpt | set cpt=. :au CmdwinLeave : let &cpt = b:cpt_save This sets 'complete' to use completion in the current window for |i_CTRL-N|. Another example: :au CmdwinEnter [/?] startinsert This will make Vim start in Insert mode in the command-line window. *cmdwin-char* The character used for the pattern indicates the type of command-line: : normal Ex command > debug mode command |debug-mode| / forward search string ? backward search string = expression for "= |expr-register| @ string for |input()| - text for |:insert| or |:append| top - main help file


Projects Submitted
{{project.project_title}}
{{project.project_description}}
Current_rating:{{overall_final_rating}}
Vote
Live Project


{% extends "Header.html" %} {% block content %} {% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %} {{ message }} {% endfor %} {% endif %} {% endwith %} Register By creating an account, you agree to our terms and conditions of use. I agree to the terms and conditions of use. Create Account Already have an account? Login here! {% endblock content %}
By creating an account, you agree to our terms and conditions of use.
Already have an account? Login here!


This page will show tips and tricks for helping you, the new (or going to be) driver, as well as how to avoid common mistakes done by new drivers.
What is tailgating? Tailing gating is the act of being too close to the are infront of you meaning there is a higher chance of hitting them. How to avoid this The easiest way to avoid tailgating is to always keep a three second gap between you and the car infront of you. 3 seconds might be a confusing way to look at how much space to keep between you and the car in front of you but this is easily explained.
The way to measure three seconds is to use a fixed point, e.g. a tree as seen in the example, to count the distance between you and the car in front of you. Once the car in front of you have passed the fixed point start counting in your head until your car has reached the point. If the time is three seconds good job!  If the time is longer than three seconds you should speed up a little and if its less it most likely means you are tailgating or close to it and you should slow down.
First and foremost, all L and P platers have a blood alcohol of 0, this means no alochol before driving and if this is done it could result in 1-12 months of license penalties, $1,868 - $3,736 fines and 3 to 9 months of imprisonment.
The reason for alcohol consumption carrying such a heavy penalty is because it affects the brain by blocking the chemical signals between the neurons, resulting in; impulsive behaviour, slurred speech, poor memory and slowed reflexes; the last one in particular being the most important during a close crash experience.
One of the most important things to do while driving is to have 100% of your concentration on driving. This is best done without any distractions to bother you. Common examples of distractions are your phone and music. The best thing to do while driving is to turn the music off while driving and to put your phone to Do Not Disturb mode so your do not get any notfications.
Other distractions could be a talkative passenger, or you eating food while driving. In these situations its best to ask your passenger to kindly shut up be quieter on the chatter so you can make sure you are putting 100% of your focus on driving


Default
Focus
Group Title
Group SubTitle
DK
Card Title
Card, Subtitle
DK
Card Title
Card, Subtitle
DK
Card Title
Card, Subtitle
Group Title
Group SubTitle
DK
Card Title
Card, Subtitle
DK
Card Title
Card, Subtitle
DK
Card Title
Card, Subtitle


The game is simple, you'll be given a cross section of a candy bar. Guess what candy bar each cross section is. Each correct answer get's a point, each wrong answer reduces your time
Once you hit the button you will have 60 seconds, so be ready!
Start


Free to use gallery template for anyone interested in hosting images. Placeholder pictures taken from Unsplash.
Ideal for large galleries which need to be filtered and sorted. No server side code is used for the implementation, therefore suitable for viewing images locally without a web server. Preferences for filtering, sorting, bookmarking and rating images are stored in your Browser Local Storage. Visit the open source GitHub repository for details.
X images to show.


Shared by Abhishek Kumar Shukla on December 29, 2018
Shared by Abhishek Kumar Shukla on December 30, 2018
Shared by Abhishek Kumar Shukla on January 01, 2019
Shared by Abhishek Kumar Shukla on January 03, 2019
Shared by Abhishek Kumar Shukla on January 06, 2019


Pre-Incubatee/Summer Research Intern - Medical Electronics
May 2017 - July 2017 Medical Electronics Biomedical Implants Thermal Energy Harvesting
It started with the selection as the youngest person for the incubation support by the Incubation Center for medical electronics at the Indian Institute of Technology (IIT), Patna, India. I got the support & guidance of Prof. Dr. Kailash Chandra Rayto kick start the project on developing micro thermal energy harvesting systems for biomedical implants like a pacemaker. I worked for nearly a whole year, which comprises working the whole summer in the labs at IIT Patna. So, down below I would like to give a concise description of what this is all about & what we achieved as we move ahead in the project.
 Introduction:
As technology makes rapid strides in all spheres of everyday life, there arises the enduring demand for health-care and monitoring devices that are not only accurate but also efficient. Many of the bio-sensors and bio-devices today are implantable, which means that they are embedded inside the body of the subject. Understandably, then, arises the question of powering such devices.
 The answer to which is: Wireless Charging.
 Millions of people around the world benefit from having artificial pacemakers implanted into their chests, to help restore a normal heartbeat. Yet pacemakers are not without problems. The bulk of the device—which contains its battery and electronic control systems—usually sits just under the wearer's skin. From this box thin, flexible leads are threaded through a vein and into the appropriate part of the heart. These leads detect the heart's electrical activity (which controls when it contracts and is regulated by a cluster of specialized muscle cells that act as a natural pacemaker), transmit that information to the artificial pacemaker's electronics for analysis and, if the natural activity is deemed irregular, deliver an electrical charge from the artificial pacemaker's batteries that causes the cardiac muscle to contract, pacing the pumping of the heart. Currently, many of these devices run on big, long-lasting batteries that still eventually die, generally requiring another round of surgery. Thus to eliminate the bulky batteries and clumsy recharging systems that prevent medical devices from being more widely used, we devised a pacemaker with wireless charging capabilities in order to reduce surgical risk to patients and associated healthcare costs. Earlier, the pacemaker needed to be replaced surgically when the battery run out. With this project, the painstaking and risky process is no longer required!
So, we started working under the guidance of Prof. Dr. Kailash Chandra ray at the Department of Electrical Engineering, Indian Institute of Technology (IIT), Patna, India on bringing this concept into reality. Initially, we started our research on using inductor on-chip for energy transfer but as we move ahead in the project we work on developing a complete thermal energy harvesting power supply for implantable pacemakers which includes an internal startup and does not need any external reference voltage. The startup circuit includes a prestart up charge pump (CP) and a startup boost converter. The prestart up CP consists of an ultralow-voltage oscillator followed by a high-efficiency modified Dickson. Forward body biasing is used to effectively reduce the MOS threshold voltages as well as the supply voltage in oscillator and CP. The steady-state circuit includes a high-efficiency boost converter that utilizes a modified maximum power point tracking scheme. The system is designed so that no failure occurs under overload conditions. However as we made further progress, we worked on bringing a standalone thermoelectric platform that can integrate our previous ( i.e TEG based Power Supply with Internal Startup Circuit for Pacemakers) power management IC with customized TEH (Thermoelectric Heat Pump) into a single microsystem with a regulated output power which is roughly twice the power we need to operate a pacemaker.


--- layout: post title: Cron Helper - Improve your Ruby Cron jobs comments: false share: false date: 2016-02-01 type: post tags: [] ---
I've released my latest Ruby gem named Cron Helper to make life easier for those Ruby & Rails projects that use Cron. It's designed to build on top of the Whenever gem to solve a number of common problems I've encountered over the years. Features include:
Overlapping job prevention: Cron will allow overlapping jobs and this can result in race conditions, resource starvation, and other problems since web developers usually don't encounter them on their development environments. An example of this is an hourly job that starts taking two hours to complete. Cron Helper uses file locking to prevent overlapping jobs since the general rule of thumb is that a longer running job is a better situation to have than a buildup of overlapping jobs.
Tasks: Think of tasks as methods you want to execute when a specific job runs (such as an hourly job). Tasks execute one by one in a guaranteed order within a job. They also provide exception handling so that a failed task won't prevent the tasks after it from running. This gives you fine grained control over how and when code should execute. It also helps prevent resource starvation by encouraging developers to limit the number of concurrent Ruby processes.
Controlled concurrency: In Cron Helper terms, tasks prevent concurrency and jobs permit it. For exmaple, you could create two separate hourly jobs each with ten tasks. Each job only makes guarantees about the tasks that it controls. Tasks in different jobs may end up running concurrently depending on how you schedule them.
Productivity: Traditionally, creating cron jobs was a sysadmin task on a server. One of the great advantanges of the Whenever gem is that it gave this capability to the app developer by making it a first class concept in Rails. Cron Helper builds on on top of this by helping to prevent developers from shooting themselves in the foot. Typically an app has a few jobs on a specific schedule (hourly, weekly, daily, etc). Once these schedules are created, a developer can simply register a new task in the correct one.
Logging: Cron Helper makes it easy to capture all output in a job (stderr & stdout) and decide what to do with it. You have the freefrom to log it locally, send it to a remote service, or simply print it to stdout (the default behavior). Since it's written in Ruby, you also have the power to manipulate it, use regular expressions, or write any other custom logic that your project requires.


Experience
| Compagny : La Gazette de Marcel Rose |
City : Paris , France |
| Job Title : Graphic and Web designer |
From : October 2013 |
To : December 2013 |
Job Description :
- Web design
- Web creation
- Magazine creation
- Shooting photo
|
| Compagny : IdeaFizz |
City : Paris , France |
| Job Title : Graphic and Web designer |
From : june 2013 |
To : july 2013 |
Job Description :
- WebDesign
- Web Development
- Logo Design
|
| Compagny : Recall Agency |
City : Paris , France |
| Job Title : Graphic and Web designer |
From : october 2012 |
To : December 2012 |
Job Description :
- Web Design
- Web Development
- Event creation
- Flyers
- Advertising
|


BATCH VIEW PAGE
Welcome Admin
Teacher
{{#teachers}}
{{Teachername}}
{{/teachers}}
Students
VIEW
DELETE
ADD
{{#students}}
{{Studentname}}
{{/students}}


|
|
|
PART II
DESCRIPTION
201. GENERAL
|
(a) The ECM Mark 2 is an electrically operated ciphering typewriter, assembled as one unit. The machine includes the following parts or features:
(1) Code Wheels and Index Wheels
(2) Cipher Unit
(3) Code Wheel Stepping Assembly
(4) Keyboard
(5) Printer
(6) Zeroizer
(7) Controller
(8) Electric Motor
(9) Main-shaft
(10) Emergency Hand Drive Lever
(11) Automatic Word Spacer
(12) Counter
(13) Spark Suppressors
(14) Input and Output Receptacles
|
202. CODE WHEELS AND INDEX WHEELS.
(a) Each Code Wheel consists of a steel ratchet, two face-plates and the wiring which connects the contacts of one face-plate to the contacts of the other face-plate.
|
(1) The 26 divisions of the steel ratchet serve a dual purpose - as a ratchet which the stepping pawl engages when the Code Wheel is stepped by the machine and as a detent for the detent rollers which hold the Code Wheel in definite positions.
(2) Each face-plate contains 26 contacts. One of the face-plates has the letters of the alphabet engraved on its periphery for reference purposes in making Code Wheel Alignments. The other face-plate is engraved with the identifying number of the Code Wheel. Each face-plate has a projection (between "U" and "V" of the engraved face) called the cam-lobe. The cam-lobe stops the Code Wheel at "O" when zeroizing and controls the stepping of the Code Wheels of the Stepping Maze. (See paragraph 203(d)(2).)
NOTE: Certain Code Wheels designed for use with Adapters to be used in the ECM Mark 2 contain cam-contours (See paragraph 602) on the periphery of each face-plate. Technically, these may be called "detents" , but since a division of the steel ratchet is called a "detent", the designation "cam-contours" is used to differentiate between the two.
(b) The Index Wheels are similar to the Code Wheels but are smaller, containing ten contacts. An Index Wheel has no steel ratchet because it Is not stepped by the machine; all setting must be done by hand. The Index Wheels are part of the Cipher Unit.
|
|
| |
-16-
|
|
203. CIPHER UNIT (CSP 887)
(a) The ciphering action of the ECM Mark 2 is produced by constantly interchanging the 26 alphabet circuits from the Keyboard to the Printer. When set for typing plain language, the machine is essentially an electric typewriter and will print the plain equivalent of the Keylever pressed because the circuits from the Keyboard are directly connected to the Printer. If, however, these circuits are interchanged or scrambled, the result will be a ciphering action. If the interchanged circuits are changed for each letter ciphered, the result will be a complex ciphering action. It is a function of the Code Wheels in the Alphabet Maze to produce the interchange of circuits, and the stepping of the Code Wheels constantly changes the ciphering action. When ciphering, the circuits from the Keyboard are connected through the Alphabet Maze Code Wheel circuits to the Printer.
(b) The Cipher Unit (CSP 887) is composed of six separators with through-contacts, detent rollers, spindles and Index Wheels. Two handles are provided to facilitate handling and four thumb-screws are provided for securing the Cipher Unit in place.
|
(1) The Cipher Unit contains, when the Code Wheels are inserted, all of the variable elements of the ciphering action. The removable feature of the Cipher Unit:
(A) Permits safe stowage of the cryptographic elements.
(B) Facilitates changing from one system to another when two Cipher Units are available.
(C) Facilitates emergency disposition overboard of the cryptographic elements.
NOTE: The ECM Mark 2, exclusive of the Code Wheels is classified CONFIDENTIAL. The Code Wheels are classified SECRET.
|
(c) The rear row of five Code Wheels and 26 associated circuits is called the ALPHABET MAZE. The 26 circuits from the Keyboard are connected through the Alphabet Maze to the Printer, but only one of the circuits is energized at a time. The function of the Alphabet Maze is to produce the ciphering action, which depends upon the arrangement and relative positions of the Code Wheels in the Alphabet Maze. During encipherment or decipherment, all five Code Wheels of the Alphabet Maze step in an erratic manner, in a ciphering cycle of substantially infinite length. IF, BECAUSE OF A FAILURE OF THE STEPPING CONTROL, THE CODE WHEELS DO NOT STEP, A SIMPLE SUBSTITUTION CIPHER RESULTS. (SEE PARA 203(f)).
(d)
|
(1) The front row of five Code Wheels (not the Index Wheels) and 26 associated circuits is called the STEPPING MAZE. Of the twenty-six circuits established only four are energized. The function of the Stepping Maze is to control in an irregular and erratic manner, the stepping of the Code Wheels in the Alphabet Maze.
(2) The automatic stepping of the Code Wheels in the Stepping Maze is controlled by the cam-lobes of the Code Wheels and the Zeroize contacts. The center Code Wheel steps once for each letter during the process of encipherment or decipherment. When the center Code Wheel is aligned to "O", the cam-lobe closes a contact and #4 Code Wheel (immediately to the right of the center Code Wheel) will step once on the next letter of the encipherment or decipherment. When both the center and #4 Code Wheels of the Stepping Maze are aligned to "O", #2 Code Wheel (immediately to the left of the center Code Wheel) will step once on the next letter of the encipherment or decipherment. The two end Code Wheels of the Stepping Maze are not automatically stepped during the process of encipherment or decipherment.
NOTE: If the cam-lobes are broken off or the contact springs are out of adjustment the machine will not function properly. When making the 26-30 Letter Check, the first cycle will cause the stepping of all three center Code Wheels (See paragraph 519).
|
(e) The front row of five Index Wheels is called the INDEX MAZE. Ten circuits are established, but only four (and often only three, two or one) are energized. The function of the Index Maze is to establish stepping control circuits. The Index Maze selects five out of eleven possible stepping ratios and assigns them to the Code Wheels in any one of 120 possible different ways.
|
| |
-17-
|
|
(1) The four circuits of the Stepping Maze are connected through the Index Maze to the Code Wheel Stepping Magnets of the Alphabet Maze. IF, FOR ANY REASON, THE STEPPING CIRCUITS FAIL, THE CODE WHEELS OF THE ALPHABET MAZE WILL NOT STEP, AND A SIMPLE SUBSTITUTION CIPHER WILL RESULT. AN INDEX WHEEL NOT ACCURATELY POSITIONED WILL PRODUCE THIS RESULT.
(g) Cryptographically the Cipher Unit includes the. grouped-end contacts of the Stepping Maze and the Index Maze but physically these contacts are part of the frame of the machine.
204. CODE WHEEL STEPPING ASSEMBLY.
(a) The Code Wheels are stepped automatically by mechanical energy supplied from the main shaft through the stepping mechanism. The stepping bar assembly is moved back and forth once for each cycle. Stepping pawls are located on the stepping bars which, if unlatched will engage the ratchets of the Code Wheels. The Stepping Magnet associated with each pawl, will, when energized, unlatch the pawl, causing the Code Wheel to step. Only a momentary pulse of current through the Stepping Magnet is necessary to unlatch the pawl. The pawl is relatched by mechanical action alter the Code Wheel is stepped.
|
NOTE: The relative position of the pawl and the ratchet is determined by the "fit" of the Cipher Unit. For this reason, the Cipher Unit should always be secured with the four thumb screws.
|
205. KEYBOARD.
(a) The Keyboard is similar to that of a typewriter, providing the alphabet letters, the numerals, dash (-) and space-bar. It has two extra Keys, the "Blank" which is used to step the machine through the ciphering action without printing on the tape and the "RPT" (Repeat) Key which is used to automatically repeat the action of any other Key.
|
NOTE: In using the "RPT" Key, it must be pressed first followed by the other Key.
|
(b) Each Keylever has an associated contact, which is closed by the action of depressing the Keylever. The contacts are located in the base of the machine and are made accessible for inspection, cleaning, adjustment, etc. by removing the base-plate of the machine. This is accomplished by setting the machine upright (using the back as a base support) and removing the two capscrews and the two countersunk nuts which secure the base plate to the machine. The contacts are mounted in two banks, each of which may be cast loose by removing the screws at each end of the bank.
(c) The first five numeral keylevers have two sets of associated contacts, the second of which is used only when the Code Wheels of the Stepping Maze are being aligned by these Keylevers.
(d) A universal bar extends beneath all the keylevers in such a manner that it Is engaged and actuated by the depression of any individual keylever or the space-bar. A contact, operated by the universal bar and called the universal contact, prevents the machine from "repeating".
(e) Since the action of the keylevers depends upon the closing of electrical contacts rather than producing mechanical action, the "touch" of the Keyboard is necessarily different than that of an ordinary typewriter. It is essential that a positive "follow-through" rather than the "staccato touch" of the ordinary typewriter, be used. The machine will function reliably at a speed of 330 letters per minute provided a steady rhythmic typing is maintained. If this speed is exceeded or the typing speed is erratic, characters will drop out, and garbled or undecipherable text will result.
(f) The Keylever contacts are connected by the Controller to the Printer or Cipher Unit according to the operating process desired. Various positions of the Controller render certain Keys electrically inoperative.
206. PRINTER.
(a) The Printer prints the letters on the tape by mechanical energy supplied from the main shaft by the print hammer cam. The letter to be printed is selected electrically by the energizing of a Printer magnet.
|
| |
-18-
|
|
(b) The character is printed on the tape by the action of the print hammer striking the tape against the type wheel with the inked ribbon interleaved. The type wheel is held motionless during the printing through the action of the stop arm (attached to the type wheel) engaging one of the stop pins which are located about the printer shaft in such a manner that, when any one is unlatched, it will engage the stop arm. A stop pin is unlatched by the energizing of its associated magnet, and is relatched by the reset yoke after the letter is printed. A magnet is energized through the closing of a Keylever contact - for plain text the contact is connected directly to its respective magnet, for encipherment or decipherment the circuit is connected through the Alphabet Maze. A Printer magnet exerts a simple triggering action and a momentary surge of current is sufficient to unlatch the stop pin.
(c) In addition to the letter and numeral stop pins, two print suppression stop pins are provided to suppress printing when spacing between words, Zeroizing, making Code Wheel Alignments, etc. When the magnet of a print suppression stop pin is energized, the stop pin is unlatched and prevents the print hammer from striking the paper tape.
(d) The paper tape is advanced by the tape feed rollers which are turned by a friction clutch. The amount of feed is limited by the tape feed pawl and ratchet assembly which:
|
(1) When deciphering or typing plain: advances the tape regularly, one space for each letter.
(2) When enciphering: advances the tape regularly but in addition, adds an extra space every five letters to form five letter groups.
(3) When resetting: prevents advancement of the tape.
|
(e) The paper tape may be manually advanced by pressing the tape release tab at the right of the tape channel. Printing which has not advanced far enough to clear the tape channel may be read by pressing the tape reading tab at the left of the tape channel.
(f) The ribbon feed must be reversed by hand.
207. ZEROIZER.
(a) The switch at the left, just above the Keyboard is called the Zeroizer. When set in the upper position, marked "Zeroize", the Code Wheels can be automatically aligned to "O". The Zeroizer is set in the lower position, marked "Operate", for all other operations.
208. CONTROLLER.
(a) The necessary electrical connections for the various operations of the machine are controlled by a multiple contact electrical switch called the "Controller".
(b) The Controller also controls, through a mechanical link, the spacing of the paper tape in accordance with the operation being performed.
(c) The five settings of the Controller and corresponding effect on the operation of the machine are as follows:
|
(1) "O" (Off) position: The power switch is turned off.
(2) "P" (Plain) position: The Printer prints plain text, exactly as typed, including numerals, dash and spacebar. The circuits to the Stepping Magnets are opened and the Code Wheels do not step. The paper tape is advanced regularly.
(3) "R" (Reset) position: There is no printing on the tape and the paper tape feed is suppressed.
|
(A) Zeroizer at "Zeroize". Only the Blank and RPT Keys are operative. This position is used to zeroize the Code Wheels.
(B) Zeroizer at "Operate". The keylevers "1" to "5" are operative. This position is used to make a Code Wheel Alignment.
|
|
|
| |
-19-
|
|
(4) "E" (Encipher) position. The alphabet, Blank and RPT keylevers and space bar are operative. Numeral and (-) keylevers are inoperative. Letters pressed on the keylevers are enciphered and the resultant cipher equivalents are printed on the tape in groups of five letters. Pressing the space bar results in the printing of a cipher equivalent on the tape. The Code Wheels step with each letter or space enciphered, thus constantly changing the ciphering process.
(5) "D" (Decipher) position: The alphabet, Blank and RPT keylevers are operative. Numeral and dash (-) keylevers and space bar are inoperative. Letters pressed on the keylevers are deciphered and the resultant plain equivalents are printed on the tape with word spacing the same as during encipherment. The Code Wheels step with each letter deciphered, to correspond to the stepping during the encipherment.
|
209. ELECTRIC MOTOR.
(a) The following standard types of motors are available:
| Voltage |
Cycles |
Type |
H.P. |
RPM |
ModelNo. |
ENG |
| 115* |
60** |
AC Induction |
1/40 |
1725 |
S-9037 |
106 |
| 115* |
|
DC Compound |
1/40 |
1725 |
S-9038 |
107 |
| 24# |
|
DC Shunt |
1/40 |
1725 |
S-9045-JU |
130 |
| 12# |
|
DC Shunt |
1/40 |
1725 |
S-9055-JU |
131 |
* These motors are interchangeable in any machine. The AC Motor Plug and the DC Motor Plug are wired differently, the connections being so arranged that when a particular plug is inserted, proper current-limiting resistors are connected into the circuits for correct operation on that type current.
** Will also satisfactorily operate on 50 cycles with slight reduction in speed.
# These motors require special connections They are available only by special request to CNO and for special applications only.
(b) The motor drives the main shaft through a gear a pinion and magnet operated clutch. The motor is mounted on a tilting mounting base which permits adjustment 1 the mesh of the motor pinion and main shaft drive gear by means of the adjusting screw. Since the oil is apt to swell the fiber gear, this adjustment should be checked at frequent intervals especially alter the machine has been idle for a protracted period. (See paragraph 515.)
210. MAIN SHAFT.
(a) The mechanical power of the electric motor is transmitted to the various units of the machine by means of the main shaft. In the normal unoperated position, the motor does not turn the main shaft because the clutch driven member is held out of mesh with the clutch drive member by the clutch throwout lever. When the clutch magnet is energized, the clutch throwout lever releases, permitting the gears to mesh. At the conclusion of the cycle, the driven member is again thrown out of mesh, stopping the main shaft. The main shaft turns only immediately after the depression of a key and makes one revolution for each cycle.
(b) The main shaft provides a timing control as well as the transmission of power.
|
| |
-20-
|
(c) The following parts are mounted on the main shaft in the following order from left to right:
|
(1) Channel cam
(2) Printer reset cam
(3) Printer drive gear
(4) Timing cam (printing)
(5) Timing cam (stepping)
(6) Print hammer cam
(7) Tape feed cam
(8) Counter operating cam
(9) Tape feed drive gear
(10) Math-shaft drive gear
(11) Clutch drive member
(12) Clutch driven member
(13) Hand lever pinion.
|
(d) The cycle of events occurring when a key is depressed during encipherment or decipherment is as follows:
|
(1) The keylever contact closes the circuit to a Printer magnet, through the common side of the printer magnets, through the Printing Contact (which is closed) through the clutch operating magnet, completing the circuit. The Printer magnet is thus energized simultaneously with the clutch trip magnet before the main shaft has commenced to turn.
(2) Depressing the keylever also closes the universal contact keeping a potential on the clutch operating magnet, which prevents the clutch from repeating its operation until the universal contact is opened by releasing the keylever. This prevents the machine from repeating. Closing the "Blank" keylever contact also energizes the clutch operating magnet, and in addition energizes a print suppression magnet which prevents the print hammer from striking the tape.
(3) The clutch operating magnet, when energized, trips the clutch and starts the main shaft turning. Upon turning approximately 1/20 of one turn, the printing contact opens, and the stepping contact closes permitting a pulse of current to flow through the stepping magnets.
(4) The Stepping Contact also closes the circuit to the stepping magnet of the center Code Wheel of the Stepping Maze (and possibly to one or both stepping magnets of the adjacent Code Wheels).
(5) When the main shaft has turned approximately one-tenth of a turn, the stepping contact opens. All electrical functions have been completed at this time, the following functions being mechanical and completed by the main shaft turning the remainder of the turn (cycle):
|
(A) The Printer drive gear turns the Printer typewheel. The Print hammer cam releases the print hammer which strikes the paper tape and prints the character. The Printer reset cam relatches the pin, completing this cycle. Also as a last step of the cycle, the tape feed cam functions, advancing the tape.
(B) The Counter cam imparts motion to the counter operating arm, advancing it one number.
|
|
|
| |
-21-
|
|
(C) The Code Wheel Stepping cam moves the stepping drive bar assembly towards the front of the machine engaging the pawls which have been unlatched, to the steel ratchet of the corresponding Code Wheels, advancing the Code Wheels one letter. During the last one-fourth turn of the main shaft, the Code Wheel stepping cam retracts the drive bar assembly by quick return action. At its farthest retracted point, the pawls are relatched, then the assembly advances about 1/8 " to clear the pawls at which time the main shaft drive clutch disengages and the stepping assembly is ready for the next ciphering cycle.
(D) At the conclusion of the cycle, the clutch members are disengaged automatically, and are locked into the un-meshed position. The clutch may be tripped in two ways:
|
(1) Through the energizing of the Clutch Magnet, which operates through a triggering action.
(2) By reaching inside the case, and pressing down on the clutch throwout lever extension. This lever is located In front of, and nearly under the frame of the motor. This is done for inspection and test only.
|
|
|
(e) It is important to note that the machine first enciphers the character, then advances the Code Wheels to their next position, and finally prints the character as one of the last operations of the cycle. The Code Wheels are at rest while the circuit through them is energized; no current is broken at the Code Wheel contacts.
211. EMERGENCY HAND DRIVE.
(a) The emergency hand drive is provided as a means of manually supplying the mechanical power for operation of the machine in case of failure of the regular power supply.
(b) The energy of the hand drive lever is transmitted to the main shaft through a pawl and ratchet. In normal operation, the pawl is withheld from the ratchet by a channel ring. When using the hand drive lever, the channel ring is slid to the outside, permitting the pawl to engage the ratchet.
|
NOTE: IT IS IMPORTANT THAT THE PAWL BE CARRIED IN THE CHANNEL RING DURING NORMAL OPERATION.
|
(c) When properly adjusted for normal operation the hand drive lever is free to move up and down without effect on the main shaft. If improperly adjusted, normal operation will needlessly wear out the pawl and ratchet, produce excessive noise and, of prime importance, be a potential source of damage to the machine.
(d) When using the hand drive lever, electric power for operation at the Printer and Stepping Magnets may be supplied from any source capable of producing 24 volts D.C. The current drain is quite small and a battery of flash light cells may be used for this purpose. Tests have shown that 18 flashlight cells in series will actuate the machine 200,000 times without exhausting the battery. A standard 22-1/2 volt (or one section of a 45 volt) Radio "B" Battery will provide a satisfactory source of power.
|
NOTE: The machine will operate satisfactorily on any voltage from 20 to 28 volts. Voltages less than 18 volts will not produce satisfactory results, and voltages in excess of 30 volts are dangerous to the machine.
|
|
| |
-22-
|
|
212. AUTOMATIC WORD SPACER.
(a) The ECM Mark 2 is so designed that it is possible to encipher "spaces" with the result that the words of the decipherment are normally spaced. This is accomplished as follows:
|
(1) When the Controller is set at "E" (Encipher), the "Z" keylever contact is parallelled with the "X" keylever contact, and the space bar contact is connected to the "Z" circuit. The "Z" is thus enciphered the same as an "X".
(2) When the Controller is set at "D" (Decipher) the "Z" printer circuit is connected to a print suppressor magnet.
|
(b) Deciphered words will appear with normal spacing as enciphered, but words containing the letter "Z" will be spelled with an "X" instead of a "Z". Example: XERO, XE BRA, etc.
213. COUNTER.
(a) A mechanical counter, indicating from 0000 to 9999 is provided for convenience in counting the number of letters. It is driven by a cam on the cam-shaft. It must be reset by hand.
214. SPARK SUPPRESSORS. (See Plate 7)
(a) The ECM Mark 2 generates a reaction voltage of approximately 750 volts which would short circuit or burn out the Code Wheels, pit contact points, interfere with radio reception, and be otherwise detrimental if it were not dissipated by the spark suppressors.
(b) The failure of spark suppressors may not immediately render the machine inoperative or be immediately apparent, for this reason all elements of the spark suppression circuits should be periodically checked.
(c) Sparking at the Stepping or Printing Contacts is a danger signal. Only a very small spark should be visible when the machine is operating on direct current. When the machine is operated on alternating current, the sparking at the contacts is a little more visible, but the spark is not a healthy spark capable of much damage. Whenever the failure of the spark suppressors is suspected, the machine should be checked at once for a shorted capacitor or burned out resistor. Spare resistors and capacitors are furnished in the Spare Parts Box. (See paragraph 513.)
215. INPUT AND OUTPUT RECEPTACLES.
(a) CSP 889 contains, in the base at the rear, two multiple connector receptacles, one designated "OUTPUT" and the other designated "INPUT". By the use of the connecting cables (ENG 111) the output of one machine may be delivered to a second machine so that, as text is enciphered on the master machine, the enciphered text is deciphered on the second machine, affording an instantaneous check on the encipherment.
(b) The use of the External Connector Receptacles is recommended only when a skilled typist with a smooth rhythmic touch is to operate the machine. (See paragraph 322).
|
| |
-23-
|
|
|
|


I am a graduate student at Indiana University, Bloomington pursuing a Masters degree Computer Science. I have over 4 years of academic and professional experience in software development in domains including Standalone Applications, Web Development, Machine learning and distributed systems. I am looking for full time opportunities as a Software Engineer upon graduation.
As a masters student, I have been focusing my work in the following areas in my projects: 1. Java Development ( Java, JSF, Hibernate) 2. Web application development using modern frameworks like AngularJS, Nodejs, ReactJS. 3. Machine Learning 4. Scalable Systems 5. NoSQL Databases
I have also had the opportunity to be an Intern at Meltwater Group, San Francisco, CA where I worked on different modules of a search engine as a Full Stack Software Developer.
Skills : Software Development, Machine Learning, Web Development , AngularJS , ReactJS, NoSQL Databases ( MongoDB) , Distributed Systems, Full Stack Developer, C++, Java, JSP, Hadoop , Apache Spark and Lucene
Indiana University Bloomington, United States => Associate Instructor
Indiana University Bloomington, United States => Master of Science in Computer Science
Tecso Global, India => Software Developer Intern
Laurentian University, Canada => International Experience Program
GCET IEEE Students Branch, India => Technical Head
Actonate - Activating Innovation, India => Web Developer
G H Patel College of Engineering & Technlogy, India => Bachelors of Engineering in Computer Engineering
Navrachna Vidyani Vidyalaya, India => High School
Send me an email if you would like to get in touch, hire me for your next project, have questions or feedback on my work, or just want to say hello.


SMART TOWNS Sean in Barrie is on Essa Road, just east of Ferndale Drive / Veterans Drive. It's extremely accessible to the 400. Sean Presentation Centre 401 Essa Road, Barrie, L4N 9C8 Get Directions!


TABLE OF CONTENT
A. GS1 Related SOCIAL ISSUES 1. Rajasthan leads in child marriages B. GS2 Related POLITY 1. Cattle slaughter: Not infringing on State laws, says Arun Jaitley 2. EC wants govt to review changes in poll funding laws 3.  India, Russia ink nuclear plant pact C. GS3 Related SCIENCE AND TECHNOLOGY 1. LIGO makes third gravitational wave detection 2. India’s polar ship still a long way off ENVIRONMENT AND ECOLOGY 1. China vows to stick to Paris pact 2. Donald Trump goes rogue, pulls US out of 'partial to India, China' climate deal 3. Earth is on the brink of a sixth mass extinction D. GS4 Related E. Concepts-in-News: Related Concepts to Revise/Learn F. Bills/Acts/Schemes/Orgs in News G. Practice Questions for UPSC Prelims Exam
UPSC Current Affairs 2017: News Analysis
A. GS1 Related
1. Rajasthan leads in child marriages
In News:
- Research conducted by Young Lives in coordination with the National Commission for Protection of Child Rights (NCPCR) has revealed that Rajasthan has reported the highest incidence of child marriages.
Key data:
- Based on 2011 census, 2.5% of marriages of minor girls were reported in Rajasthan.
- Rajasthan also topped in the percentage (4.69%) of boys marrying below the legal age of 21 years.
- According to the Census study, 12.9% of girls got married in the age of 10-17 years and 43.6% between 18-20 years. However, only 4.9% of boys got married in the 10-17 years age group and 11.2 % in the 18-below 21 age group.
- Urban –Rural Divide:
- The decline in rural India, between 2001 and 2011 Census, was marginally higher than in the whole of the country.
- Incidence of child marriage among girls increased substantially in urban India from 1.78% in 2001 to 2.45% in 2011.
1. Cattle slaughter: Not infringing on State laws, says Arun Jaitley
Context: Recent notice issued by the center regarding regulating sales of Cattles in the markets.
In news:
- Finance Minister Arun Jaitley response: State laws on cattle slaughter “had nothing to do” with a recent notification by the Union Environment Ministry prohibiting the sale of bovines for slaughter at animal market places.
- The new notification says that buyers of cattle at animal markets will have to verify they are agriculturalists and declare that they will not sell the animal/s for a period of six months from the date of purchase.
2. EC wants govt to review changes in poll funding laws
In news:
- The Election Commission has conveyed its reservations to the government regarding the recent amendments to the Representation of the People Act and Companies Act, affected through the Finance Bill, with respect to political funding.
Amendments :
- RP Act amendment exempts political parties from declaring donations received through the electoral bonds route
- Companies Act has been updated to remove the ceiling on corporate donations to political parties.
Contention by Election Commission: undermine transparency in funding of political parties.
What does RP Act says regarding donations?
- Section 29 (c) of the RP Act, political parties must declare donations above Rs 20,000
- This is proposed to be further cut to Rs 2,000.
3. Revenge porn surge makes government sit up
In news:
- The government is considering changes in the law to ensure stringent action against cyber crimes targeting women such as `revenge porn videos’ in the light of an increasing number of such incidents surfacing on social media
- Ministry of women and child development (WCD) seeking a greater focus on cyber crime to crack down on online sexual abuse.
- The ministry of women and child development is exploring ways to bridge the gap between existing provisions of the Indian Penal Code and the Information Technology Act to deal with `revenge porn’.
What is revenge porn?
- Sharing of images or videos with sexual content without the consent of the person whose images or videos are put out on the internet has come to be referred to as `revenge porn’.
- This is often the act of a vengeful partner after a relationship has gone sour, the victim ends up being a target twice.
Inter-Ministerial Committee (IMC) consultations:
- Inter-Ministerial Committee (IMC) consultations led to interim measures to curb the menace of online child sexual abuse.
- Under this order, Internet Service Providers (ISPs) are required to adopt and implement the Internet Watch Foundation (IWF) Resources.
- Implementation of IWF Resources will result in relevant content being blocked or removed on an ongoing basis.

Category: INTERNATIONAL RELATIONS
1. India, Russia ink nuclear plant pact
In News:
India and Russia’s new agreement :
- Setting up of two more units of a nuclear power plant in Tamil Nadu: Kudankulam 5 and 6 reactor units.
- Defence cooperation agreement.
- ‘Indra-2017’: first tri-Services exercises
- Start joint manufacture of frigates, adding to the co-production of Kamov-226 military helicopters.
C. GS3 Related
Category: SCIENCE AND TECHNOLOGY
1. LIGO makes third gravitational wave detection
In news:
- The Laser Interferometer Gravitational-Wave Observatory (LIGO) detectors in the U.S. have detected yet another merger of two black holes.

- It is of great interest to the scientific community that the black holes, having masses nearly 31 times and 19 times the sun’s. Until the first detection of gravitational waves by LIGO in 2015 (GW150914) it was not known that such massive black holes could exist.
New findings: How black holes might have been formed?
- The detection has revealed not merely a black hole merger, but also the alignment of the spins of the black holes.
- The spins of the individual black holes making up the merger are probably not aligned along the same direction. This supports the theory which says that black holes form independently in a star cluster, then sink to the centre of the cluster and eventually merge
- The new observations yields support to Einstein’s General Theory of Relativity. According to this theory, gravitational waves, unlike light waves, will not disperse as they travel through space. This too has been confirmed by the analysis of the presently detected signal.
Drawbacks:
- One drawback of having just the two detectors at Hanford, Washington and Livingston, Louisiana tuned to detect gravitational waves is that they cannot accurately figure out where in the sky the signal is coming from.
Contribution by Indians:
- The study had a major Indian contribution and the LIGO-India facility, which is making immense progress will join the club in 2024.
- India’s ASTROSAT mission did a related sensitive search for short duration x-ray flashes associated with the event and did not detect any.
2. India’s polar ship still a long way off
In news:
- India’s plans to acquire a rs. 1,000-crore polar research vehicle (PRV) — a ship that can cut through ice sheets and glaciers — may see fresh delays.
- Earlier attempts: Early 2015, Spanish ship-building company was roped in, the contract fell through, primarily due to escalated costs.
- Indian ship companies are not experienced in building PRVs.
- There are very few companies in the world with such expertise.
Why do we need a PRV?
- The ship is expected to be central to India’s ambitions in the Arctic and Antarctica.
- India has announced plans to rebuild Maitri, its research station in Antarctica, and make it impervious to its harsh environment for at least 25 years.
Basic Information:
- PRV’s are also known as ‘ice-breaker,’ it can cut through a 1.5-metre thick wall of ice.
- It has a lifespan of 30 years.
Category: ENVIRONMENT AND ECOLOGY
1. China vows to stick to Paris pact
Context: Washington planning to pull out of the Paris climate agreement.
In news:
- China reiterated its position to continue to implement promises made to the Paris Agreement, to move towards the 2030 goal step by step steadfastly.
- Russia’s reaction: The withdrawal of key players from the Paris climate deal would “complicate” implementation of the pact.
2. Donald Trump goes rogue, pulls US out of ‘partial to India, China’ climate deal
In news:
- The country’s 45th President, businessman entrepreneur Donald Trump, announced: “Washington is pulling out of the widely-acclaimed climate change accord”.
Reasons given:
- Solemn duty to protect America and its people
- Accord favored China and India.
- Complaints against India, falsely saying New Delhi was demanding “billions and billions and billions” of foreign aid to conform to the deal, and claiming that the accord will allow India to double coal production by 2020.
- Trump said the US will seek to negotiate its way back or negotiate a new climate deal that is “fair” to America
- The US, under President Obama, had stitched together the deal with great difficulty after convincing a majority of the 198 nations, including long-term holdouts such as China and India.
Key Fact:
- China is currently the world’s largest CO2 emitter, having overtaken America in the past decade
- The US historically is the world’s biggest polluter, riding on a century of mass consumption and servicing of everything from large homes to large vehicles.
- In 2015, the US released 5.1.million kilotons of CO2, accounting for a sixth of global emissions and more than that of 28 EU countries combined.
- In comparison, India, with four times the US population, accounted for 2 million tons of CO2.
Paris Agreement on Climate Change: The Paris Agreement on Climate Change is aimed at cutting emissions and keeping global temperatures from rising more than 2 degrees Celsius above pre-industrial levels.
Context:
Experts predictions: Earth is now on the brink of its sixth mass extinction and human activity is to blame.
In news:
Researchers around the world examined the current and future threats to biodiversity, and found that
- Nearly a quarter of mammal species are at risk of extinction, along with 13 percent of birds.
- Human activities are driving the sixth mass extinction in the history of life on Earth
- Ever-expanding human population and exploding demand for food, water and living space, will place animals at ‘unprecedented’ extinction risk in the next 50 years.
- The highest level of threat are more than 360 species of large mammals in Africa, Asia and South America — the most biodiverse regions of the world
What needs to be done?
- Safeguarding Earth’s precious creatures amid such pressures will require the expansion and better management of conservation areas, the authors argued.
- The ultimate drivers of hunting and poaching must be addressed, for example, by providing people with alternative livelihoods or sources of protein.
- Agricultural yields — the crop produced per available hectare of land — must be increased through measures that include protecting soil fertility, and using more pest- and drought-resistant seeds.
- Drastic change to human diets and farming methods could provide ‘healthy diets’ for 10 billion people by 2060, while also preserving liveable habitats for most remaining species.
D. GS4 Related
Nothing here for Today!!!
PIB ArticlesEditorials Roundup
E. Concepts-in-News: Related Concepts to Revise/Learn
F. Bills/Acts/Schemes/Orgs in News
|
Article in News |
About the article |
G. Practice Questions for UPSC Prelims Exam
Question 1: National Centre for Antarctic and Ocean Research (NCAOR) is under which ministry?
- Ministry of science and technology
- Ministry of Earth Sciences.
- Ministry of Environment, Forest and Climate change.
- None of the above
Question 2: The government of India confers awards to the Armed Forces both for services
rendered during war as well as peace. Which of the following is awarded as Peace Time
Gallantary Award?
- Vir Chakra
- Param Vir Chakra
- Shaurya Chakra
- Maha Vir Chakra
Question 3: The Kala Ghoda Arts Festival is associated with which one of the following cities?
- Kochi
- Pune
- Mumbai
- Mysore
Question 4: Which is the most abundant metal in the Earth’s crust?
- Aluminium
- Nickel
- Iron
- Silicon
“Proper Current Affairs preparation is the key to success in the UPSC- Civil Services Examination. We have now launched a comprehensive ‘Online Current Affairs Crash Course’. Limited seats available. Click here to Know More.”
Practice More: Enroll for India’s Largest All-India Test Series


{% extends 'header.html' %} {% block body %}
This is a beta of social graph features for RocketChat. Here's all the information I have on folks now. Add your info here.
| Username | Fullname | Invitee | Tribe | Career |
|---|---|---|---|---|
| {{ graph_datum.username }} | {{ graph_datum.fullname }} | {{ graph_datum.invitee }} | {{ graph_datum.tribe }} | {{ graph_datum.career }} |


Read
- Data Structures and Algorithms in Python
- http://multimedia.ucc.ie/Public/training/cycle1/algorithms-in-python.pdf
- https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275
- Clean Code: A Handbook of Agile Software Craftsmanship
- https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
- Code Complete: A Practical Handbook of Software Construction
- https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670
- Cracking the Coding Interview: 189 Programming Questions and Solutions
- https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850
### Practice * Leetcode * HackerRank
Learn
- Discrete Maths
- https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/
- Linear Algebra
- https://www.udacity.com/course/linear-algebra-refresher-course–ud953
- https://www.youtube.com/watch?v=ZK3O402wf1c&list=PLE7DDD91010BC51F8
- https://www.khanacademy.org/math/linear-algebra
- https://cs.brown.edu/video/channels/coding-matrix-fall-2014/
- Git and GitHub
- https://www.udacity.com/course/how-to-use-git-and-github–ud775
- Front End Web Development
- https://www.coursera.org/learn/html-css-javascript-for-web-developers
- https://www.udacity.com/course/intro-to-html-and-css–ud304
- Systems Design
- https://github.com/donnemartin/system-design-primer
- https://www.hiredintech.com/classrooms/system-design/lesson/55
Create
- AR Project
- freeCodeCamp
- Finish up OkGo
- Contribute to Open Source Projects
- http://www.firsttimersonly.com/
Useful References
Reddit Threads
Medium Articles


HANGING UP A film review by Steve Rhodes Copyright 2000 Steve Rhodes RATING (0 TO ****): 1/2
Fingers scraping across a blackboard.
HANGING UP, one of the most irritating movies of the year, features non-stop phoning. Like fingers grating across a blackboard, these cell and cordless phones ring incessantly.  Populated by clichéd, unbearable characters, with whom you wouldn't want to spend 5 minutes, much less 90+, the film is about as much fun as answering calls from telemarketers while you're trying, unsuccessfully, to have dinner. Essentially a very long infomercial for the joys and trendiness of cell phoning, the movie gets in your face like a drunk at a cocktail party.
Walter Matthau plays a senile, dirty old man named Lou Mozell, whose favorite joke is about the small size of John Wayne's private parts. Lou spends the movie dying and making the audience feel guilty for wanting his end to come as soon as possible.
His three grown daughters cell phone their way through the plot. The film's director, Diane Keaton, proves again than she's a much better actress than a director. She also plays Georgia, the oldest of Lou's daughters. Georgia is a mile-a-minute executive, who says things to callers such as, "I love you. Call me every 5 minutes." The bad news is that she means it.
Meg Ryan plays Eve, a scatterbrained party planner, who wrecks cars while talking on the phone. She has already had 3 smash-ups this year. Eve's son, Jessie (Jesse James), has just discovered an especially insufferable laugh that almost rivals the movie's ubiquitous ringing sounds in detestability.
Lisa Kudrow is the youngest sister, Maddy. Maddy brags that she plays "a fully three-dimensional character" in a television series, which, of course, means that her character is anything but.
To round out this strong but misused cast, Cloris Leachman plays Pat, Lou's ex-wife. Using a variety of outlandish explanations, Lou tells people that she has died. Pat is the sort of "loving" mother who confesses with brutal honesty to Eve that she wished she'd never been a mother in the first place.
The story by Delia Ephron does have a few nice moments -- perhaps the best being when Eve, wearing one of her signature see-through blouses, wakes to the sound of a doorbell. Thinking, of course, that it's the phone, she answers it by picking up a remote control, which turns her place into a cacophony of jarring sounds.
So what did Jessie get for a birthday present when he was little? A toy cell phone, of course.
HANGING UP runs 1:34. It is rated PG-13 for language and some sex-related material and would be acceptable for kids 12 and up.
Email<EMAIL_ADDRESS>Web: http://www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


rect(3f) - [M_calcomp:general] draw a rectangle (LICENSE:PD)
Synopsis
Description
Options
Example
License
subroutine rect(xpage,ypage,height,width,angle,ipen)
RECT is a FORTRAN subroutine used to draw rectangles.
XPAGE,YPAGE are the coordinates, in inches, of the rectangles lower left corner, before rotation. HEIGHT is the rectangles height, in inches. WIDTH is the rectangles width, in inches. (This parameter defines the base of the rectangle.) ANGLE is the angle, in degrees, at which the rectangles base is to be drawn. (Rectangle is rotated about XPAGE,YPAGE.) IPEN is the code that moves the pen to the rectangles starting point. If the value of IPEN is:
3, the pen is up for the move; 2, the pen is down for the move.


A grid based design is when the page is devided into coloumns and different elements fall into different grids. This makes it easier to place elements on the page.
Its a simple way to create a wepage that can adapt to all different devices without have to create multiple sizes.
Semantic structure is defining the level of importance of each piece of content you have and defining them with their respective tag.