Vim documentation: intro
main help file*intro.txt* For Vim version 7.2. Last change: 2008 Jun 24 VIM REFERENCE MANUAL by Bram Moolenaar Introduction to Vim *ref* *reference* 1. Introduction |intro| 2. Vim on the internet |internet| 3. Credits |credits| 4. Notation |notation| 5. Modes, introduction |vim-modes-intro| 6. Switching from mode to mode |mode-switching| 7. The window contents |window-contents| 8. Definitions |definitions|
1. Introduction *intro* Vim stands for Vi IMproved. It used to be Vi IMitation, but there are so many improvements that a name change was appropriate. Vim is a text editor which includes almost all the commands from the Unix program "Vi" and a lot of new ones. It is very useful for editing programs and other plain text. All commands are given with the keyboard. This has the advantage that you can keep your fingers on the keyboard and your eyes on the screen. For those who want it, there is mouse support and a GUI version with scrollbars and menus (see |gui.txt|). An overview of this manual can be found in the file "help.txt", |help.txt|. It can be accessed from within Vim with the <Help> or <F1> key and with the |:help| command (just type ":help", without the bars or quotes). The 'helpfile' option can be set to the name of the help file, in case it is not located in the default place. You can jump to subjects like with tags: Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back. Throughout this manual the differences between Vi and Vim are mentioned in curly braces, like this: {Vi does not have on-line help}. See |vi_diff.txt| for a summary of the differences between Vim and Vi. This manual refers to Vim on various machines. There may be small differences between different computers and terminals. Besides the remarks given in this document, there is a separate document for each supported system, see |sys-file-list|. This manual is a reference for all the Vim commands and options. This is not an introduction to the use of Vi or Vim, it gets a bit complicated here and there. For beginners, there is a hands-on |tutor|. To learn using Vim, read the user manual |usr_toc.txt|. *book* There are many books on Vi that contain a section for beginners. There are two books I can recommend: "Vim - Vi Improved" by Steve Oualline This is the very first book completely dedicated to Vim. It is very good for beginners. The most often used commands are explained with pictures and examples. The less often used commands are also explained, the more advanced features are summarized. There is a comprehensive index and a quick reference. Parts of this book have been included in the user manual |frombook|. Published by New Riders Publishing. ISBN:<PHONE_NUMBER> For more information try one of these: http://iccf-holland.org/click5.html http://www.vim.org/iccf/click5.html "Learning the Vi editor" by Linda Lamb and Arnold Robbins This is a book about Vi that includes a chapter on Vim (in the sixth edition). The first steps in Vi are explained very well. The commands that Vim adds are only briefly mentioned. There is also a German translation. Published by O'Reilly. ISBN: 1-56592-426-6.
2. Vim on the internet *internet* *www* *WWW* *faq* *FAQ* *distribution* *download* The Vim pages contain the most recent information about Vim. They also contain links to the most recent version of Vim. The FAQ is a list of Frequently Asked Questions. Read this if you have problems. VIM home page: http://www.vim.org/ VIM FAQ: http://vimdoc.sf.net/ Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS Usenet News group where Vim is discussed: *news* *usenet* comp.editors This group is also for other editors. If you write about Vim, don't forget to mention that. *mail-list* *maillist* There are several mailing lists for Vim<EMAIL_ADDRESS>For discussions about using existing versions of Vim: Useful mappings, questions, answers, where to get a specific version, etc. There are quite a few people watching this list and answering questions, also for beginners. Don't hesitate to ask your question here<EMAIL_ADDRESS>*vim-dev* *vimdev* For discussions about changing Vim: New features, porting, patches, beta-test versions, etc<EMAIL_ADDRESS>*vim-announce* Announcements about new versions of Vim; also for beta-test versions and ports to different systems. This is a read-only list<EMAIL_ADDRESS>*vim-multibyte* For discussions about using and improving the multi-byte aspects of Vim<EMAIL_ADDRESS>*vim-mac* For discussions about using and improving the Macintosh version of Vim. See http://www.vim.org/maillist.php for the latest information. NOTE: - You can only send messages to these lists if you have subscribed! - You need to send the messages from the same location as where you subscribed from (to avoid spam mail). - Maximum message size is 40000 characters. *subscribe-maillist* If you want to join, send a message to<EMAIL_ADDRESS>Make sure that your "From:" address is correct. Then the list server will give you help on how to subscribe. *maillist-archive* For more information and archives look on the Vim maillist page: http://www.vim.org/maillist.php Bug reports: *bugs* *bug-reports* *bugreport.vim* Send bug reports to: Vim bugs<EMAIL_ADDRESS>This is not a maillist but the message is redirected to the Vim maintainer. Please be brief; all the time that is spent on answering mail is subtracted from the time that is spent on improving Vim! Always give a reproducible example and try to find out which settings or other things influence the appearance of the bug. Try different machines, if possible. Send me patches if you can! It will help to include information about the version of Vim you are using and your setup. You can get the information with this command: :so $VIMRUNTIME/bugreport.vim This will create a file "bugreport.txt" in the current directory, with a lot of information of your environment. Before sending this out, check if it doesn't contain any confidential information! If Vim crashes, please try to find out where. You can find help on this here: |debug.txt|. In case of doubt or when you wonder if the problem has already been fixed but you can't find a fix for it, become a member of the vim-dev maillist and ask your question there. |maillist| *year-2000* *Y2K* Since Vim internally doesn't use dates for editing, there is no year 2000 problem to worry about. Vim does use the time in the form of seconds since January 1st 1970. It is used for a time-stamp check of the edited file and the swap file, which is not critical and should only cause warning messages. There might be a year 2038 problem, when the seconds don't fit in a 32 bit int anymore. This depends on the compiler, libraries and operating system. Specifically, time_t and the ctime() function are used. And the time_t is stored in four bytes in the swap file. But that's only used for printing a file date/time for recovery, it will never affect normal editing. The Vim strftime() function directly uses the strftime() system function. localtime() uses the time() system function. getftime() uses the time returned by the stat() system function. If your system libraries are year 2000 compliant, Vim is too. The user may create scripts for Vim that use external commands. These might introduce Y2K problems, but those are not really part of Vim itself.
3. Credits *credits* *author* *Bram* *Moolenaar* Most of Vim was written by Bram Moolenaar<EMAIL_ADDRESS>Parts of the documentation come from several Vi manuals, written by: W.N. Joy Alan P.W. Hewett Mark Horton The Vim editor is based on Stevie and includes (ideas from) other software, worked on by the people mentioned here. Other people helped by sending me patches, suggestions and giving feedback about what is good and bad in Vim. Vim would never have become what it is now, without the help of these people! Ron Aaron Win32 GUI changes Zoltan Arpadffy work on VMS port Tony Andrews Stevie Gert van Antwerpen changes for DJGPP on MS-DOS Berkeley DB(3) ideas for swap file implementation Keith Bostic Nvi Walter Briscoe Makefile updates, various patches Ralf Brown SPAWNO library for MS-DOS Robert Colon many useful remarks Marcin Dalecki GTK+ GUI port, toolbar icons, gettext() Kayhan Demirel sent me news in Uganda Chris & John Downey xvi (ideas for multi-windows version) Henk Elbers first VMS port Daniel Elstner GTK+ 2 port Eric Fischer Mac port, 'cindent', and other improvements Benji Fisher Answering lots of user questions Bill Foster Athena GUI port Google Lets me work on Vim one day a week Loic Grenie xvim (ideas for multi windows version) Sven Guckes Vim promoter and previous WWW page maintainer Darren Hiebert Exuberant ctags Jason Hildebrand GTK+ 2 port Bruce Hunsaker improvements for VMS port Andy Kahn Cscope support, GTK+ GUI port Oezguer Kesim Maintainer of Vim Mailing Lists Axel Kielhorn work on the Macintosh port Steve Kirkendall Elvis Roger Knobbe original port to Windows NT Sergey Laskavy Vim's help from Moscow Felix von Leitner Previous maintainer of Vim Mailing Lists David Leonard Port of Python extensions to Unix Avner Lottem Edit in right-to-left windows Flemming Madsen X11 client-server, various features and patches Microsoft Gave me a copy of DevStudio to compile Vim with Paul Moore Python interface extensions, many patches Katsuhito Nagano Work on multi-byte versions Sung-Hyun Nam Work on multi-byte versions Vince Negri Win32 GUI and generic console enhancements Steve Oualline Author of the first Vim book |frombook| Dominique Pelle figuring out valgrind reports and fixes A.Politz Many bug reports and some fixes George V. Reilly Win32 port, Win32 GUI start-off Stephen Riehm bug collector Stefan Roemer various patches and help to users Ralf Schandl IBM OS/390 port Olaf Seibert DICE and BeBox version, regexp improvements Mortaza Shiran Farsi patches Peter da Silva termlib Paul Slootman OS/2 port Henry Spencer regular expressions Dany St-Amant Macintosh port Tim Thompson Stevie G. R. (Fred) Walter Stevie Sven Verdoolaege Perl interface Robert Webb Command-line completion, GUI versions, and lots of patches Ingo Wilken Tcl interface Mike Williams PostScript printing Juergen Weigert Lattice version, AUX improvements, UNIX and MS-DOS ports, autoconf Stefan 'Sec' Zehl Maintainer of vim.org I wish to thank all the people that sent me bug reports and suggestions. The list is too long to mention them all here. Vim would not be the same without the ideas from all these people: They keep Vim alive! In this documentation there are several references to other versions of Vi: *Vi* *vi* Vi "the original". Without further remarks this is the version of Vi that appeared in Sun OS 4.x. ":version" returns "Version 3.7, 6/7/85". Sometimes other versions are referred to. Only runs under Unix. Source code only available with a license. More information on Vi can be found through: http://vi-editor.org [doesn't currently work...] *Posix* Posix From the IEEE standard 1003.2, Part 2: Shell and utilities. Generally known as "Posix". This is a textual description of how Vi is supposed to work. See |posix-compliance|. *Nvi* Nvi The "New" Vi. The version of Vi that comes with BSD 4.4 and FreeBSD. Very good compatibility with the original Vi, with a few extensions. The version used is 1.79. ":version" returns "Version 1.79 (10/23/96)". There has been no release the last few years, although there is a development version 1.81. Source code is freely available. *Elvis* Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't as flexible as Vim. The version used is 2.1. It is still being developed. Source code is freely available.
4. Notation *notation* When syntax highlighting is used to read this, text that is not typed literally is often highlighted with the Special group. These are items in [], {} and <>, and CTRL-X. Note that Vim uses all possible characters in commands. Sometimes the [], {} and <> are part of what you type, the context should make this clear. [] Characters in square brackets are optional. *count* *[count]* *E489* [count] An optional number that may precede the command to multiply or iterate the command. If no number is given, a count of one is used, unless otherwise noted. Note that in this manual the [count] is not mentioned in the description of the command, but only in the explanation. This was done to make the commands easier to look up. If the 'showcmd' option is on, the (partially) entered count is shown at the bottom of the window. You can use <Del> to erase the last digit (|N<Del>|). *[quotex]* ["x] An optional register designation where text can be stored. See |registers|. The x is a single character between 'a' and 'z' or 'A' and 'Z' or '"'', and in some cases (with the put command) between '0' and '9', '%', '#', or others. The uppercase and lowercase letter designate the same register, but the lowercase letter is used to overwrite the previous register contents, while the uppercase letter is used to append to the previous register contents. Without the ""x" or with """" the stored text is put into the unnamed register. *{}* {} Curly braces denote parts of the command which must appear, but which can take a number of different values. The differences between Vim and Vi are also given in curly braces (this will be clear from the context). *{char1-char2}* {char1-char2} A single character from the range char1 to char2. For example: {a-z} is a lowercase letter. Multiple ranges may be concatenated. For example, {a-zA-Z0-9} is any alphanumeric character. *{motion}* *movement* {motion} A command that moves the cursor. These are explained in |motion.txt|. Examples: w to start of next word b to begin of current word 4j four lines down /The<CR> to next occurrence of "The" This is used after an |operator| command to move over the text that is to be operated upon. - If the motion includes a count and the operator also has a count, the two counts are multiplied. For example: "2d3w" deletes six words. - The motion can be backwards, e.g. "db" to delete to the start of the word. - The motion can also be a mouse click. The mouse is not supported in every terminal though. - The ":omap" command can be used to map characters while an operator is pending. - Ex commands can be used to move the cursor. This can be used to call a function that does some complicated motion. The motion is always characterwise exclusive, no matter what ":" command is used. This means it's impossible to include the last character of a line without the line break (unless 'virtualedit' is set). If the Ex command changes the text before where the operator starts or jumps to another buffer the result is unpredictable. It is possible to change the text further down. Jumping to another buffer is possible if the current buffer is not unloaded. *{Visual}* {Visual} A selected text area. It is started with the "v", "V", or CTRL-V command, then any cursor movement command can be used to change the end of the selected text. This is used before an |operator| command to highlight the text that is to be operated upon. See |Visual-mode|. *<character>* <character> A special character from the table below, optionally with modifiers, or a single ASCII character with modifiers. *'character'* 'c' A single ASCII character. *CTRL-{char}* CTRL-{char} {char} typed as a control character; that is, typing {char} while holding the CTRL key down. The case of {char} does not matter; thus CTRL-A and CTRL-a are equivalent. But on some terminals, using the SHIFT key will produce another code, don't use it then. *'option'* 'option' An option, or parameter, that can be set to a value, is enclosed in single quotes. See |options|. *quotecommandquote* "command" A reference to a command that you can type is enclosed in double quotes. *key-notation* *key-codes* *keycodes* These names for keys are used in the documentation. They can also be used with the ":map" command (insert the key name by pressing CTRL-K and then the key you want the name for). notation meaning equivalent decimal value(s) <Nul> zero CTRL-@ 0 (stored as 10) *<Nul>* <BS> backspace CTRL-H 8 *backspace* <Tab> tab CTRL-I 9 *tab* *Tab* *linefeed* <NL> linefeed CTRL-J 10 (used for <Nul>) <FF> formfeed CTRL-L 12 *formfeed* <CR> carriage return CTRL-M 13 *carriage-return* <Return> same as <CR> *<Return>* <Enter> same as <CR> *<Enter>* <Esc> escape CTRL-[ 27 *escape* *<Esc>* <Space> space 32 *space* <lt> less-than < 60 *<lt>* <Bslash> backslash \ 92 *backslash* *<Bslash>* <Bar> vertical bar | 124 *<Bar>* <Del> delete 127 <CSI> command sequence intro ALT-Esc 155 *<CSI>* <xCSI> CSI when typed in the GUI *<xCSI>* <EOL> end-of-line (can be <CR>, <LF> or <CR><LF>, depends on system and 'fileformat') *<EOL>* <Up> cursor-up *cursor-up* *cursor_up* <Down> cursor-down *cursor-down* *cursor_down* <Left> cursor-left *cursor-left* *cursor_left* <Right> cursor-right *cursor-right* *cursor_right* <S-Up> shift-cursor-up <S-Down> shift-cursor-down <S-Left> shift-cursor-left <S-Right> shift-cursor-right <C-Left> control-cursor-left <C-Right> control-cursor-right <F1> - <F12> function keys 1 to 12 *function_key* *function-key* <S-F1> - <S-F12> shift-function keys 1 to 12 *<S-F1>* <Help> help key <Undo> undo key <Insert> insert key <Home> home *home* <End> end *end* <PageUp> page-up *page_up* *page-up* <PageDown> page-down *page_down* *page-down* <kHome> keypad home (upper left) *keypad-home* <kEnd> keypad end (lower left) *keypad-end* <kPageUp> keypad page-up (upper right) *keypad-page-up* <kPageDown> keypad page-down (lower right) *keypad-page-down* <kPlus> keypad + *keypad-plus* <kMinus> keypad - *keypad-minus* <kMultiply> keypad * *keypad-multiply* <kDivide> keypad / *keypad-divide* <kEnter> keypad Enter *keypad-enter* <kPoint> keypad Decimal point *keypad-point* <k0> - <k9> keypad 0 to 9 *keypad-0* *keypad-9* <S-...> shift-key *shift* *<S-* <C-...> control-key *control* *ctrl* *<C-* <M-...> alt-key or meta-key *meta* *alt* *<M-* <A-...> same as <M-...> *<A-* <D-...> command-key (Macintosh only) *<D-* <t_xx> key with "xx" entry in termcap Note: The shifted cursor keys, the help key, and the undo key are only available on a few terminals. On the Amiga, shifted function key 10 produces a code (CSI) that is also used by key sequences. It will be recognized only after typing another key. Note: There are two codes for the delete key. 127 is the decimal ASCII value for the delete key, which is always recognized. Some delete keys send another value, in which case this value is obtained from the termcap entry "kD". Both values have the same effect. Also see |:fixdel|. Note: The keypad keys are used in the same way as the corresponding "normal" keys. For example, <kHome> has the same effect as <Home>. If a keypad key sends the same raw key code as its non-keypad equivalent, it will be recognized as the non-keypad code. For example, when <kHome> sends the same code as <Home>, when pressing <kHome> Vim will think <Home> was pressed. Mapping <kHome> will not work then. *<>* Examples are often given in the <> notation. Sometimes this is just to make clear what you need to type, but often it can be typed literally, e.g., with the ":map" command. The rules are: 1. Any printable characters are typed directly, except backslash and '<' 2. A backslash is represented with "\\", double backslash, or "<Bslash>". 3. A real '<' is represented with "\<" or "<lt>". When there is no confusion possible, a '<' can be used directly. 4. "<key>" means the special key typed. This is the notation explained in the table above. A few examples: <Esc> Escape key <C-G> CTRL-G <Up> cursor up key <C-LeftMouse> Control- left mouse click <S-F11> Shifted function key 11 <M-a> Meta- a ('a' with bit 8 set) <M-A> Meta- A ('A' with bit 8 set) <t_kd> "kd" termcap entry (cursor down key) If you want to use the full <> notation in Vim, you have to make sure the '<' flag is excluded from 'cpoptions' (when 'compatible' is not set, it already is by default). :set cpo-=< The <> notation uses <lt> to escape the special meaning of key names. Using a backslash also works, but only when 'cpoptions' does not include the 'B' flag. Examples for mapping CTRL-H to the six characters "<Home>": :imap <C-H> \<Home> :imap <C-H> <lt>Home> The first one only works when the 'B' flag is not in 'cpoptions'. The second one always works. To get a literal "<lt>" in a mapping: :map <C-L> <lt>lt> For mapping, abbreviation and menu commands you can then copy-paste the examples and use them directly. Or type them literally, including the '<' and '>' characters. This does NOT work for other commands, like ":set" and ":autocmd"!
5. Modes, introduction *vim-modes-intro* *vim-modes* Vim has six BASIC modes: *Normal* *Normal-mode* *command-mode* Normal mode In Normal mode you can enter all the normal editor commands. If you start the editor you are in this mode (unless you have set the 'insertmode' option, see below). This is also known as command mode. Visual mode This is like Normal mode, but the movement commands extend a highlighted area. When a non-movement command is used, it is executed for the highlighted area. See |Visual-mode|. If the 'showmode' option is on "-- VISUAL --" is shown at the bottom of the window. Select mode This looks most like the MS-Windows selection mode. Typing a printable character deletes the selection and starts Insert mode. See |Select-mode|. If the 'showmode' option is on "-- SELECT --" is shown at the bottom of the window. Insert mode In Insert mode the text you type is inserted into the buffer. See |Insert-mode|. If the 'showmode' option is on "-- INSERT --" is shown at the bottom of the window. Command-line mode In Command-line mode (also called Cmdline mode) you Cmdline mode can enter one line of text at the bottom of the window. This is for the Ex commands, ":", the pattern search commands, "?" and "/", and the filter command, "!". |Cmdline-mode| Ex mode Like Command-line mode, but after entering a command you remain in Ex mode. Very limited editing of the command line. |Ex-mode| There are six ADDITIONAL modes. These are variants of the BASIC modes: *Operator-pending* *Operator-pending-mode* Operator-pending mode This is like Normal mode, but after an operator command has started, and Vim is waiting for a {motion} to specify the text that the operator will work on. Replace mode Replace mode is a special case of Insert mode. You can do the same things as in Insert mode, but for each character you enter, one character of the existing text is deleted. See |Replace-mode|. If the 'showmode' option is on "-- REPLACE --" is shown at the bottom of the window. Virtual Replace mode Virtual Replace mode is similar to Replace mode, but instead of file characters you are replacing screen real estate. See |Virtual-Replace-mode|. If the 'showmode' option is on "-- VREPLACE --" is shown at the bottom of the window. Insert Normal mode Entered when CTRL-O given in Insert mode. This is like Normal mode, but after executing one command Vim returns to Insert mode. If the 'showmode' option is on "-- (insert) --" is shown at the bottom of the window. Insert Visual mode Entered when starting a Visual selection from Insert mode, e.g., by using CTRL-O and then "v", "V" or CTRL-V. When the Visual selection ends, Vim returns to Insert mode. If the 'showmode' option is on "-- (insert) VISUAL --" is shown at the bottom of the window. Insert Select mode Entered when starting Select mode from Insert mode. E.g., by dragging the mouse or <S-Right>. When the Select mode ends, Vim returns to Insert mode. If the 'showmode' option is on "-- (insert) SELECT --" is shown at the bottom of the window.
6. Switching from mode to mode *mode-switching* If for any reason you do not know which mode you are in, you can always get back to Normal mode by typing <Esc> twice. This doesn't work for Ex mode though, use ":visual". You will know you are back in Normal mode when you see the screen flash or hear the bell after you type <Esc>. However, when pressing <Esc> after using CTRL-O in Insert mode you get a beep but you are still in Insert mode, type <Esc> again. *i_esc* TO mode Normal Visual Select Insert Replace Cmd-line Ex FROM mode Normal v V ^V *4 *1 R gR : / ? ! Q Visual *2 ^G c C -- : -- Select *5 ^O ^G *6 -- -- -- Insert <Esc> -- -- <Insert> -- -- Replace <Esc> -- -- <Insert> -- -- Command-line *3 -- -- :start -- -- Ex :vi -- -- -- -- -- - NA -- not possible *1 Go from Normal mode to Insert mode by giving the command "i", "I", "a", "A", "o", "O", "c", "C", "s" or S". *2 Go from Visual mode to Normal mode by giving a non-movement command, which causes the command to be executed, or by hitting <Esc> "v", "V" or "CTRL-V" (see |v_v|), which just stops Visual mode without side effects. *3 Go from Command-line mode to Normal mode by: - Hitting <CR> or <NL>, which causes the entered command to be executed. - Deleting the complete line (e.g., with CTRL-U) and giving a final <BS>. - Hitting CTRL-C or <Esc>, which quits the command-line without executing the command. In the last case <Esc> may be the character defined with the 'wildchar' option, in which case it will start command-line completion. You can ignore that and type <Esc> again. {Vi: when hitting <Esc> the command-line is executed. This is unexpected for most people; therefore it was changed in Vim. But when the <Esc> is part of a mapping, the command-line is executed. If you want the Vi behaviour also when typing <Esc>, use ":cmap ^V<Esc> ^V^M"} *4 Go from Normal to Select mode by: - use the mouse to select text while 'selectmode' contains "mouse" - use a non-printable command to move the cursor while keeping the Shift key pressed, and the 'selectmode' option contains "key" - use "v", "V" or "CTRL-V" while 'selectmode' contains "cmd" - use "gh", "gH" or "g CTRL-H" |g_CTRL-H| *5 Go from Select mode to Normal mode by using a non-printable command to move the cursor, without keeping the Shift key pressed. *6 Go from Select mode to Insert mode by typing a printable character. The selection is deleted and the character is inserted. If the 'insertmode' option is on, editing a file will start in Insert mode. *CTRL-\_CTRL-N* *i_CTRL-\_CTRL-N* *c_CTRL-\_CTRL-N* *v_CTRL-\_CTRL-N* Additionally the command CTRL-\ CTRL-N or <C-\><C-N> can be used to go to Normal mode from any other mode. This can be used to make sure Vim is in Normal mode, without causing a beep like <Esc> would. However, this does not work in Ex mode. When used after a command that takes an argument, such as |f| or |m|, the timeout set with 'ttimeoutlen' applies. *CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G* The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when 'insertmode' is set. Otherwise it goes to Normal mode. This can be used to make sure Vim is in the mode indicated by 'insertmode', without knowing in what mode Vim currently is. *Q* *mode-Ex* *Ex-mode* *Ex* *EX* *E501* Q Switch to "Ex" mode. This is a bit like typing ":" commands one after another, except: - You don't have to keep pressing ":". - The screen doesn't get updated after each command. - There is no normal command-line editing. - Mappings and abbreviations are not used. In fact, you are editing the lines with the "standard" line-input editing commands (<Del> or <BS> to erase, CTRL-U to kill the whole line). Vim will enter this mode by default if it's invoked as "ex" on the command-line. Use the ":vi" command |:visual| to exit "Ex" mode. Note: In older versions of Vim "Q" formatted text, that is now done with |gq|. But if you use the |vimrc_example.vim| script "Q" works like "gq". *gQ* gQ Switch to "Ex" mode like with "Q", but really behave like typing ":" commands after another. All command line editing, completion etc. is available. Use the ":vi" command |:visual| to exit "Ex" mode. {not in Vi}
7. The window contents *window-contents* In Normal mode and Insert/Replace mode the screen window will show the current contents of the buffer: What You See Is What You Get. There are two exceptions: - When the 'cpoptions' option contains '$', and the change is within one line, the text is not directly deleted, but a '$' is put at the last deleted character. - When inserting text in one window, other windows on the same text are not updated until the insert is finished. {Vi: The screen is not always updated on slow terminals} Lines longer than the window width will wrap, unless the 'wrap' option is off (see below). The 'linebreak' option can be set to wrap at a blank character. If the window has room after the last line of the buffer, Vim will show '~' in the first column of the last lines in the window, like this: +-----------------------+ |some line | |last line | |~ | |~ | +-----------------------+ Thus the '~' lines indicate that the end of the buffer was reached. If the last line in a window doesn't fit, Vim will indicate this with a '@' in the first column of the last lines in the window, like this: +-----------------------+ |first line | |second line | |@ | |@ | +-----------------------+ Thus the '@' lines indicate that there is a line that doesn't fit in the window. When the "lastline" flag is present in the 'display' option, you will not see '@' characters at the left side of window. If the last line doesn't fit completely, only the part that fits is shown, and the last three characters of the last line are replaced with "@@@", like this: +-----------------------+ |first line | |second line | |a very long line that d| |oesn't fit in the wi@@@| +-----------------------+ If there is a single line that is too long to fit in the window, this is a special situation. Vim will show only part of the line, around where the cursor is. There are no special characters shown, so that you can edit all parts of this line. {Vi: gives an "internal error" on lines that do not fit in the window} The '@' occasion in the 'highlight' option can be used to set special highlighting for the '@' and '~' characters. This makes it possible to distinguish them from real characters in the buffer. The 'showbreak' option contains the string to put in front of wrapped lines. *wrap-off* If the 'wrap' option is off, long lines will not wrap. Only the part that fits on the screen is shown. If the cursor is moved to a part of the line that is not shown, the screen is scrolled horizontally. The advantage of this method is that columns are shown as they are and lines that cannot fit on the screen can be edited. The disadvantage is that you cannot see all the characters of a line at once. The 'sidescroll' option can be set to the minimal number of columns to scroll. {Vi: has no 'wrap' option} All normal ASCII characters are displayed directly on the screen. The <Tab> is replaced with the number of spaces that it represents. Other non-printing characters are replaced with "^{char}", where {char} is the non-printing character with 64 added. Thus character 7 (bell) will be shown as "^G". Characters between 127 and 160 are replaced with "~{char}", where {char} is the character with 64 subtracted. These characters occupy more than one position on the screen. The cursor can only be positioned on the first one. If you set the 'number' option, all lines will be preceded with their number. Tip: If you don't like wrapping lines to mix with the line numbers, set the 'showbreak' option to eight spaces: ":set showbreak=\ \ \ \ \ \ \ \ " If you set the 'list' option, <Tab> characters will not be shown as several spaces, but as "^I". A '$' will be placed at the end of the line, so you can find trailing blanks. In Command-line mode only the command-line itself is shown correctly. The display of the buffer contents is updated as soon as you go back to Command mode. The last line of the window is used for status and other messages. The status messages will only be used if an option is on: status message option default Unix default current mode 'showmode' on on command characters 'showcmd' on off cursor position 'ruler' off off The current mode is "-- INSERT --" or "-- REPLACE --", see |'showmode'|. The command characters are those that you typed but were not used yet. {Vi: does not show the characters you typed or the cursor position} If you have a slow terminal you can switch off the status messages to speed up editing: :set nosc noru nosm If there is an error, an error message will be shown for at least one second (in reverse video). {Vi: error messages may be overwritten with other messages before you have a chance to read them} Some commands show how many lines were affected. Above which threshold this happens can be controlled with the 'report' option (default 2). On the Amiga Vim will run in a CLI window. The name Vim and the full name of the current file name will be shown in the title bar. When the window is resized, Vim will automatically redraw the window. You may make the window as small as you like, but if it gets too small not a single line will fit in it. Make it at least 40 characters wide to be able to read most messages on the last line. On most Unix systems, resizing the window is recognized and handled correctly by Vim. {Vi: not ok}
8. Definitions *definitions* screen The whole area that Vim uses to work in. This can be a terminal emulator window. Also called "the Vim window". window A view on a buffer. A screen contains one or more windows, separated by status lines and with the command line at the bottom. +-------------------------------+ screen | window 1 | window 2 | | | | | | | |= status line =|= status line =| | window 3 | | | | | |==== status line ==============| |command line | +-------------------------------+ The command line is also used for messages. It scrolls up the screen when there is not enough room in the command line. A difference is made between four types of lines: buffer lines The lines in the buffer. This is the same as the lines as they are read from/written to a file. They can be thousands of characters long. logical lines The buffer lines with folding applied. Buffer lines in a closed fold are changed to a single logical line: "+-- 99 lines folded". They can be thousands of characters long. window lines The lines displayed in a window: A range of logical lines with wrapping, line breaks, etc. applied. They can only be as long as the width of the window allows, longer lines are wrapped or truncated. screen lines The lines of the screen that Vim uses. Consists of the window lines of all windows, with status lines and the command line added. They can only be as long as the width of the screen allows. When the command line gets longer it wraps and lines are scrolled to make room. buffer lines logical lines window lines screen lines 1. one 1. one 1. +-- folded 1. +-- folded 2. two 2. +-- folded 2. five 2. five 3. three 3. five 3. six 3. six 4. four 4. six 4. seven 4. seven 5. five 5. seven 5. === status line === 6. six 6. aaa 7. seven 7. bbb 8. ccc ccc c 1. aaa 1. aaa 1. aaa 9. cc 2. bbb 2. bbb 2. bbb 10. ddd 3. ccc ccc ccc 3. ccc ccc ccc 3. ccc ccc c 11. ~ 4. ddd 4. ddd 4. cc 12. === status line === 5. ddd 13. (command line) 6. ~
top - main help file


The answer to the query above is that they both spend much of their time analyzing corpses.
A live program is dynamic; it changes over time; it is animated. A program is alive when it's running. When you work on a program in a text editor, it is dead.
A live program has behavior, and that behavior is what we are interested in. It is very hard to discern the behavior of an organism on the basis of an autopsy. Did dinosaurs care for their young? If only we could look at some live dinosaurs and see.
Likewise, it is very hard to understand the behavior of a program just by looking at its code.  As Shalabh Chaturvedi suggests, machines are much better at that, and so we should have them do it instead.
I discussed this problem back in 2012/2013. I proposed that IDEs should always present code in the context of live data. Every variable in the program should have a value; you can then evaluate code at any point and see how it behaves. I even built a simple prototype (here's an old demo and a shorter one).
Ultimately, I abandoned the prototype. The approach I was taking was too clever. It attempted to synthesize sample data automatically. One can do this in various ways, using tests, types, results of prior evaluations, program analysis etc. This involves a lot of hard work, which I find distasteful.
Recently, I had an inspiration: why not do this the easy way? Below is what you see in the latest Newspeak IDE when you click on class BankAccount.
The IDE runs in the browser; the view below is live, not a screenshot. You can play with it.
What you get is an object inspector on an instance of BankAccount. The code of the class is embedded therein. Now you can evaluate expressions in the code; self is bound to the instance being inspected; method parameters have plausible bindings as well.
To demonstrate this, open the withdraw: method by clicking on it. Select an expression in the method body and use the Evaluate Selection button; the result will display just below the method.
Caveats galore: not everything works yet - for example, the Start Live Evaluation button only works in the object inspector, not for methods.
If you press the Debug button above a method, you enter a debugger, stopped at the start of the method.
You can use the navigation buttons at the top of the embedded IDE to go back from the debugger to the object inspector.
What makes this work, and moreover, what makes it easy? Rather than synthesizing exemplars automatically, we ask the user to tell us how to create them. At the top of the class you can see its factory method, balance: (note the colon at the end). If you click on it you'll see a a comment:
(* :exemplar: BankAccount balance: 100 *)
This is a metadata comment. It is distinguished from an ordinary comment by the fact that it begins with a metadata tag, which is delimited by colons. Here the tag is :exemplar:. The tag identifies a metadata processor that looks at the rest of the comment and decides what to do with it. In our case, the metadata processor is the IDE, and it assumes the remainder of the comment is an invocation of the classes' factory method, which will yield a sample instance of the class, an exemplar.
I got the idea when looking at Tudor Girba's fabulous Glamorous Toolkit (aka GT). I noticed their extensive use of pragmas, which are basically a form of metadata. GT doesn't use metadata for this specific purpose - at least not yet; but they could probably make it work in short order.
There is a question of what scope to evaluate the expression in; the IDE uses its namespace for top level classes (since Newspeak has no global scope). For nested classes, it uses the scope of the exemplar of the enclosing class.
A similar trick works for methods. The exemplar metadata is a sample method invocation, which is sent to the exemplar of the class. You can have multiple exemplar metadata comments, and you can choose which one to use.
Obviously, if a method does not take parameters, one doesn't need to provide metadata. If we do require metadata but none is provided, or if evaluating the metadata fails, we revert back to showing dead code.
One criticism of this approach is that it may discourage people from ensuring that the code works for all possible values, and not just the exemplars. I'd argue that exemplar based IDEs are complementary to other techniques, such as testing and typechecking. You can use multiple exemplars, and that can be used to ascertain code coverage. One can infer types based on exemplars; this is very close to Hernan Wilkinson's excellent work on Live typing.
The obvious downside here is that you need to write the metadata. That isn't very hard if you do this as you write your code, but when you have an existing code base, it's a bit tiresome and a lot of work.
Of course, you can apply various techniques to generate the metadata for you as I suggested above. Once you have some live methods, it gets easier; you can see what methods they send, and use the calls to create live data for the methods being invoked, recursively. I haven't yet pursued these options; the tooling is in its infancy right now.
There's a lot more one can do with this information. For example, we don't support name completion - but obviously, that is easy to do once you have live exemplar data.
Interesting to note that static types are not really needed for name completion in this scenario.
In fact, we can use the exemplar information in the opposite direction, to generate tests, or type information.
The current version still needs a lot of polish in terms of UI. I hope that over time, we'll gain more experience and fine tune the interface accordingly.
Nevertheless, the first step, as I've argued many times, is to choose life.


Full Stack developer with Front End tendencies. Lead UI/UX designer on projects like Reel Big and Travelynx. Team player and natural leader, Graduate of the Leadership Dekalb Class of 2010. Never one to stop learning or creating, a motivated self-starter and founder at heart. Give the client AND the user what they want.
Front End:
Very Proficient in HTML, CSS, Bootstrap, Materialize.
Novice Rapidly: Javascript, jQuery, Node, Express, React.
Back End:
Novice Axios, MySQL, Mongo, Mongoose, Sequelize, MySQL Workbench, 3T, Postman.
Dev Tools:
Proficient in VS Code, Bash, Github, Heroku, Illustrator, Photoshop, InDesign.
- Brad Johnston


ML-Yacc is a parser generator for Standard ML modeled after the
Yacc parser generator. It generates parsers for LALR languages, like Yacc,
and has a similar syntax. The generated parsers use a different algorithm
for recovering from syntax errors than parsers generated by Yacc.
The algorithm is a partial implementation of an algorithm described in [1].
A parser tries to recover from a syntax error
by making a single token insertion, deletion, or
substitution near the point in the input stream at which the error
was detected. The parsers delay the evaluation of semantic actions until
parses are completed successfully. This makes it possible for
parsers to recover from syntax errors that occur before the point
of error detection, but it does prevent the parsers from
affecting lexers in any significant way. The parsers
can insert tokens with values and substitute tokens with values
for other tokens. All symbols carry left and right position values
which are available to semantic actions and are used in
syntactic error messages.
ML-Yacc uses context-free grammars to specify the syntax of languages to
be parsed. See [2] for definitions and information on context-free
grammars and LR parsing. We briefly review some terminology here. A
context-free grammar is defined by a set of terminals T, a set of
nonterminals NT, a set of productions P, and a start
nonterminal S.
Terminals are interchangeably referred to as tokens. The terminal
and nonterminal sets are assumed to be disjoint. The set of symbols is the
union of the nonterminal and terminal sets. We use lower case
Greek letters to denote a string of symbols. We use upper case
Roman letters near the beginning of the alphabet to denote nonterminals.
Each production gives a
derivation of a string of symbols from a nonterminal, which we will
write as A ® a. We define a relation between strings of
symbols a and b, written a |- b and read
as a derives b, if and only if a = d A g,
b = d f g and
there exists some production A ® f. We write the
transitive closure of this relation as
|-*. We say that a string of terminals a is a valid sentence
of the language, i.e. it is derivable, if the start symbol
S |-* a. The sequence of derivations is often
visualized as a parse tree.
ML-Yacc uses an attribute grammar scheme with synthesized attributes.
Each symbol in the grammar may have a value (i.e. attribute) associated
with it. Each production has a semantic action associated with it.
A production with a semantic action is called a rule.
Parsers perform bottom-up, left-to-right evaluations of parse trees using semantic
actions to compute values as they do so. Given a production
P = A ® a, the corresponding semantic action is
used to compute a value for A from the values of the symbols in a.
If A has no value, the semantic action is still evaluated but the value is ignored.
Each parse returns the value associated with the start symbol S of the
grammar. A parse returns a nullary value if the start symbol does not carry a value.
The synthesized attribute scheme can be adapted easily to inherited
attributes. An inherited attribute is a value which propagates from
a nonterminal to the symbols produced by the nonterminal according to
some rule. Since functions are values in ML,
the semantic actions for the derived symbols
can return functions which takes the
inherited value as an argument.
1.2 Modules
ML-Yacc uses the ML modules facility to specify the interface between
a parser that it generates and a lexical analyzer that must be supplied
by you. It also uses the ML modules facility to factor out
a set of modules that are common to every generated parser.
These common modules include a parsing structure, which contains
an error-correcting LR parser1, an LR table structure, and a structure
which defines the representation of terminals. ML-Yacc produces
a functor for a particular parser parameterized by the LR table
structure and the representation of terminals. This functor
contains values specific to the parser, such as the
LR table for the parser2, the
semantic actions for the parser, and a structure containing
the terminals for the parser. ML-Yacc produces a signature
for the structure produced by applying this functor
and another signature for the structure containing the terminals for
the parser. You must
supply a functor for the lexing module parameterized this
structure.
Figure 1 is a dependency diagram of the modules that summarizes this
information. A module at the head of an arrow is dependent
on the module at the tail.
parsing structure
¾®
values for a particular parser
values for a particular parser
¾®
lexical analyzer
parsing structure,
¾®
particular parser
values for a particular parser,
lexical analyzer
Figure 1: Module Dependencies
1.3 Error Recovery
The error recovery algorithm is able to accurately recover from many
single token syntax errors. It tries to make a single token
correction at the token in the input stream at which the syntax error
was detected and any of the 15 tokens3 before that token. The algorithm checks corrections
before the point of error detection because a syntax error is often
not detected until several tokens beyond the token which caused the
error.4
The algorithm works by trying corrections at each
of the 16 tokens up to and including the token at which the
error was detected. At each token in the input stream, it
will try deleting the token, substituting other tokens for the
token, or inserting some other token before the token.
The algorithm uses a parse check to evaluate corrections. A parse
check is a check of how far a correction allows a parser to
parse without encountering a syntax error.
You pass an upper bound on how many tokens beyond the error
point a parser may read while doing a parse check as an argument to the
parser. This allows
you to control the amount of lookahead that a parser reads
for different kinds of systems. For an interactive system, you
should set the lookahead to zero. Otherwise, a parser may hang
waiting for input in the case of a syntax error. If the lookahead
is zero, no syntax errors will be corrected. For a batch system,
you should set the lookahead to 15.
The algorithm selects the set of corrections which allows the parse
to proceed the farthest
and parse through at least the error token. It then removes those
corrections involving keywords which do not meet a longer minimum
parse check. If there is more than one correction possible after this,
it uses a simple heuristic priority scheme to order the corrections,
and then arbitrarily chooses one of the corrections with the highest priority.
You have some control over the priority scheme by being able to
name a set of preferred insertions and a set of preferred substitutions.
The priorities for corrections, ordered from highest to lowest
priority, are
preferred insertions, preferred substitutions, insertions, deletions,
and substitutions.
The error recovery algorithm is guaranteed to terminate since it always
selects fixes which parse through the
error token.
The error-correcting LR parser implements the algorithm by keeping
a queue of its state stacks before shifting tokens and using
a lazy stream for the lexer.
This makes it possible to restart the
parse from before an error point and try various corrections. The
error-correcting LR parser does not defer semantic actions. Instead,
ML-Yacc creates semantic actions which are free of side-effects
and always terminate.
ML-Yacc uses higher-order functions to defer the
evaluation of all user semantic actions until the parse is successfully
completed without constructing an explicit parse tree.
You may declare whether your semantic actions are free of side-effects
and always terminate, in which case ML-Yacc does not need to defer
the evaluation of your semantic actions.
1.4 Precedence
ML-Yacc uses the same precedence scheme as Yacc for resolving
shift/reduce conflicts. Each terminal may be assigned a precedence and
associativity. Each rule is then assigned the precedence of its rightmost
terminal. If a shift/reduce conflict occurs, the conflict is resolved
silently if the terminal and the rule in the conflict have
precedences.
If the terminal has the higher precedence, the shift is chosen. If
the rule has the higher precedence, the reduction is chosen. If both
the terminal and the rule have the same precedence, then the associativity
of the terminal is used to resolve the conflict. If the terminal is
left associative, the reduction is chosen. If the terminal is
right associative, the shift is chosen. Terminals may be declared to
be nonassociative, also, in which case an error message is produced
if the associativity is need to resolve the parsing conflict.
If a terminal or a rule in a shift/reduce conflict does not have
a precedence, then an error message is produced and the shift
is chosen.
In reduce/reduce conflicts, an error message is always produced and
the first rule listed in the specification is chosen for reduction.
1.5 Notation
Text surrounded by brackets denotes meta-notation. If you see
something like {parser name}, you should substitute the actual
name of your parser for the meta-notation. Text in a bold-face
typewriter font (like this) denotes text in a specification
or ML code.


WSO2 Complex Event Processor (CEP) is a lightweight, easy-to-use, open source Complex Event Processing Server (CEP) available under Apache Software License v2.0. WSO2 CEP identifies the most meaningful events within the event cloud, analyzes their impact, and acts on them in real-time. It's built to be extremely high performing and massively scalable. WSO2 CEP is built up on the award-winning, WSO2 Carbon platform, which is based on the OSGi framework enabling better modularity for your service oriented architecture (SOA). WSO2 Carbon framework contains many enhanced features and optional components to customize the behavior of the server through simple, point-and-click provisioning. CEP features can be installed in other WSO2 products built on top of the same WSO2 Carbon platform. In other words, CEP is lean and lightweight with just the right set of features needed for efficient functioning, but can also be easily customized and enhanced to according to constantly changing business needs. In other words, WSO2 CEP is future-proof. CEP can also be tightly integrated with WSO2 Business Activity Monitor, by adding support for recording and post processing events with Map-Reduce via Apache Hadoop. The WSO2 CEP is an on-going project. It undergoes continuous improvements and enhancements with each new release, to address new business challenges and customer expectations. WSO2 invites users, developers and enthusiasts to get involved or get the assistance from our development teams at many different levels through online forums, mailing lists and support options. We are committed to ensure you a fulfilling user experience at any level of involvement with WSO2 CEP.
Figure1: Complex Event Processor Home Page


Before you use autocomplete, you may need to run the following command in a terminal to get the latest Python stubs:
$ pip install --upgrade quantconnect-stubs


Mystic Orbs
These reagents can be bought from any magic items vendor or by killing monsters. Mystic Orbs add a magical bonus to an item at the cost of a higher required level to use the item.
You can only apply up to 15 of the same Mystic Orb to your item.
Any Mystic Orb effects applied on a runeword are lost upon unsocketing, but the effects applied to the base item stay.
Warning! The level requirement penalty is applied after taking into account both the base item reqired level and the level of any socket fillers. This means for example if you have a belt with required level 20, add five orbs (level penalty +10) and socket a Rha rune (required level 100), you get a belt with required level 100+10 = 110. For that reason, to avoid going over required level 120 on accident, always add the socket fillers before adding orbs.
Oskills
If an item has a skill bonus with no character class requirement (eg. +3-6 to Summon Shadows), then
the bonus is an 'oskill', giving this skill to any class for free.
NOTE: Not all Mystic Orbs are for sale. There are 70 known types in circulation, but rumours persist of lost ancient orbs with miraculous powers...
See THIS PAGE for more information about the Unique Mystic Orbs.
|
Any Weapon - Mystic Orbs Mystic Orb
Cube with Any Weapon to Add Bonus +1% Experience Gained +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 2% Life Stolen per Hit +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 2% Mana Stolen per Hit +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 1% Chance to cast Level 3 Celerity on Attack +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 25% Bonus to Attack Rating +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus +15% Enhanced Damage +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus +10 to Maximum Damage +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus Adds Stun Attack: 0.2 seconds +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 1% Chance of Crushing Blow +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus +4 Life after each Kill +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 1% Chance to cast Level 4 Spike Nova on Attack +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 1% Chance to cast Level 3 Miasma on Attack +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 1% Chance to cast Level 6 Crucify on Attack +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus Luck Trial* +2 Required Level * 2% chance to add Orb Effects Applied to this Item are Doubled Only one chance per item, trying more times is useless. If it succedes, the Lucky/Blessed Lucky/Lottery recipe and Athulua's Blessing will always work. The bonus does not double the Mystic Orb effects added before the Luck Trial recipe. Mystic Orb
Cube with Any Weapon to Add Bonus +10 Life on Striking in Melee +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus +10 Mana on Striking in Melee +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus +2 Energy Factor to Spell Damage +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus Enhanced Weapon Damage Plus 10% +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 3% Faster Cast Rate +2 Required Level Mystic Orb
Cube with Any Weapon to Add Bonus 3% Increased Attack Speed +2 Required Level |
Any Armor - Mystic Orbs Mystic Orb
Cube with Any Armor to Add Bonus Fire Resist +6% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Cold Resist +6% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Lightning Resist +6% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Poison Resist +6% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 2% Curse Length Reduction +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus +15% Enhanced Defense +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Total Character Defense Plus 2% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus +4 to Life when Struck +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus +6 to Mana when Struck +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 1% Uninterruptable Attack +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus All Resists +2% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Requirements -1% +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 1% Reanimate As: Skeleton +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 10% Damage Reflected +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 3% Faster Block Rate +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 5% Faster Run/Walk +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 3% Faster Hit Recovery +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus Regenerate Life +5 +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 1% Reanimate As: Fallen One +2 Required Level Mystic Orb
Cube with Any Armor to Add Bonus 1% Chance to cast Level 1 Teleport when Struck +2 Required Level |
|
Ring/Amulet - Mystic Orbs Mystic Orb
Cube with Ring/Amulet to Add Bonus Regenerate Mana 4% +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus 3% Bonus to Poison Skill Duration +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +1 to Wyrd +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +25 Defense +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus 1% Chance to cast Level 3 Thunder Hammer when you Kill an Enemy +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +25 Crafting Points +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +1% to Buff/Debuff/Cold Skill Duration +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus Poison Length Reduced by 2% +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +1 to Summon Daystar +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +1 to Summon Shredder +2 Required Level Mystic Orb
Cube with Ring/Amulet to Add Bonus +1 to Summon Bane Monster +2 Required Level |
Item - Mystic Orbs Mystic Orb
Cube with Item to Add Bonus +2 to Strength +2 Required Level Mystic Orb
Cube with Item to Add Bonus +2 to Dexterity +2 Required Level Mystic Orb
Cube with Item to Add Bonus +2 to Energy +2 Required Level Mystic Orb
Cube with Item to Add Bonus +2 to Vitality +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% to Fire Spell Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% to Cold Spell Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% to Lightning Spell Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% to Poison Spell Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% to Physical/Magic Spell Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus Damage Reduced by 2 +2 Required Level Mystic Orb
Cube with Item to Add Bonus +2% Bonus to Summoned Minion Damage +2 Required Level Mystic Orb
Cube with Item to Add Bonus +2% Bonus to Summoned Minion Life +2 Required Level Mystic Orb
Cube with Item to Add Bonus +1% Bonus to Summoned Minion Resistances +2 Required Level Mystic Orb
Cube with Item to Add Bonus 10% Extra Gold from Monsters +2 Required Level Mystic Orb
Cube with Item to Add Bonus 2% Better Chance of Getting Magic Items +2 Required Level Mystic Orb
Cube with Item to Add Bonus -1% to Enemy Fire Resistance +2 Required Level Mystic Orb
Cube with Item to Add Bonus -1% to Enemy Cold Resistance +2 Required Level Mystic Orb
Cube with Item to Add Bonus -1% to Enemy Lightning Resistance +2 Required Level Mystic Orb
Cube with Item to Add Bonus -1% to Enemy Poison Resistance +2 Required Level |


Before Change
n_size = [1]
seed = 1001
with pytest.raises(ValueError):
// nodes should be a list of node ids even for a single node
bfw.run(
nodes=None, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)
bfw.run(nodes=0, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed)
// only list is acceptable type for nodes
bfw.run(
nodes=(1, 2), n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)
// n has to be positive integer
bfw.run(
nodes=nodes, n=-1, n_size=n_size, graph_schema=graph_schema, seed=seed
)
bfw.run(
nodes=nodes, n=10.1, n_size=n_size, graph_schema=graph_schema, seed=seed
)
bfw.run(
nodes=nodes, n=0, n_size=n_size, graph_schema=graph_schema, seed=seed
)
// n_size has to be list of positive integers
bfw.run(nodes=nodes, n=n, n_size=0, graph_schema=graph_schema, seed=seed)
bfw.run(nodes=nodes, n=n, n_size=[-5], graph_schema=graph_schema, seed=seed)
bfw.run(
nodes=nodes, n=-1, n_size=[2.4], graph_schema=graph_schema, seed=seed
)
bfw.run(
nodes=nodes, n=n, n_size=(1, 2), graph_schema=graph_schema, seed=seed
)
// graph_schema must be None or GraphSchema type
bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema="graph schema", seed=seed
)
bfw.run(nodes=nodes, n=n, n_size=n_size, graph_schema=9092, seed=seed)
// seed must be positive integer or 0
bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema=graph_schema, seed=-1235
)
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed=10.987665,
)
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed=-982.4746,
)
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed="don"t be random",
)
// If no root nodes are given, an empty list is returned which is not an error but I thought this method
// is the best for checking this behaviour.
nodes = []
subgraph = bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)
After Change
n_size = [1]
seed = 1001
with pytest.raises(ValueError):
// nodes should be a list of node ids even for a single node
bfw.run(
nodes=None, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)
with pytest.raises(ValueError):
bfw.run(nodes=0, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed)
with pytest.raises(ValueError):
// only list is acceptable type for nodes
bfw.run(
nodes=(1, 2), n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)
// n has to be positive integer
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=-1, n_size=n_size, graph_schema=graph_schema, seed=seed
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=10.1, n_size=n_size, graph_schema=graph_schema, seed=seed
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=0, n_size=n_size, graph_schema=graph_schema, seed=seed
)
// n_size has to be list of positive integers
with pytest.raises(ValueError):
bfw.run(nodes=nodes, n=n, n_size=0, graph_schema=graph_schema, seed=seed)
with pytest.raises(ValueError):
bfw.run(nodes=nodes, n=n, n_size=[-5], graph_schema=graph_schema, seed=seed)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=-1, n_size=[2.4], graph_schema=graph_schema, seed=seed
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=n, n_size=(1, 2), graph_schema=graph_schema, seed=seed
)
// graph_schema must be None or GraphSchema type
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema="graph schema", seed=seed
)
with pytest.raises(ValueError):
bfw.run(nodes=nodes, n=n, n_size=n_size, graph_schema=9092, seed=seed)
// seed must be positive integer or 0
with pytest.raises(ValueError):
bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema=graph_schema, seed=-1235
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed=10.987665,
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed=-982.4746,
)
with pytest.raises(ValueError):
bfw.run(
nodes=nodes,
n=n,
n_size=n_size,
graph_schema=graph_schema,
seed="don"t be random",
)
// If no root nodes are given, an empty list is returned which is not an error but I thought this method
// is the best for checking this behaviour.
nodes = []
subgraph = bfw.run(
nodes=nodes, n=n, n_size=n_size, graph_schema=graph_schema, seed=seed
)


This example shows you how you can do partial rendering for htmx requests.
The view uses an alternative base template for requests made with htmx.
This base template only renders the <main>
element, saving time and bandwidth.
Paginate through the below list of randomly generated people to see this in action, and study the view and template.
| id | name |
|---|---|
| {{ person.id }} | {{ person.name }} |
| No people on this page. |


Scan Cat retrieves public information about websites faster than humans can.
It lets support teams and developers grab facts and guesstimates to help with troubleshooting, returning information such as:
</html>
tags).
You can pass a URL to Scan Cat with the url param:
https://www.scancat.io/?url=example.com
Scan Cat is currently optimised for WordPress sites and StudioPress themes and plugins. Other platform and theme support is planned.
Scan Cat is written by Nick Cernis. Find the source on GitHub or report issues and feature requests here.
Cat illustrations by Denis Sazhin at ikonka.com. Find commercial licenses here.
The site is programmed in Python with Flask, Flask-Sockets, and Beautiful Soup. It’s hosted with Heroku.


I love being comfortable in all occasions and all situations. That's why I'm starting my line with the basic foundations of shirts, sweatshirts, hoodies, beanies, skirts and dresses.
I do it for the love of fashion and the love of looking good in the process. I do it for the coolness in you.
See my samplesFeel free to email me at<EMAIL_ADDRESS>Want some cool shirts for free? Subscribe to my newsletter to find out how (don't worry...


Join Organization
Do you wish to join the Student Organization?
***Placeholder for Emergency Contact Information***
Edit Emergency Contact Information
By checking this box and submitting, you agree to send your emergency contact information to the organization above.


Regions in NooBaa is a location tag.
The regions configuration allows customers to associate resources with location.
Associate a region with location helps to improve performance by setting locality awareness while taking data placement decision and reading data. In addition, using regions is another way to reduce egress costs due to locality awareness during data consumption activities.
How does it work?
Resources within the same region will be prioritized for data assignments and for serving read requests.
Using a local endpoint in this region will benefit the proximity to the local resources by reading and writing the data directly from local resources, if possible, and mirror data to a remote location after achieving the required resiliency level locally.
Another example is using an endpoint in the cloud provider network, and associate both the endpoint and the cloud resource in NooBaa with a region, so applications that run in the cloud would use the right endpoint to avoid redundant egress cost.
How to use regions in NooBaa management console?
In order to use regions in NooBaa system, you need to assign regions to the resources.
Steps:
1. Go to Resources > Node pools or cloud storage resource page
2. In the resource page, click on Assign Region
3. Type the name of the resource region as you decide. To add a new region hit Enter key, if you wish to use an existing region (from another resource), start typing and choose the wanted option from the suggestion box. The region name can be anything you consider as a region (Continent, city, building etc.).
Once the region is set, you can connect the resources of the same region as
data placement for data buckets.


Gelfand: Chunk 16 - Polynomial Division - Remainders, Bezout and Roots
March 7, 2017
There Must be an Easier Way…
All this polynomial division is very exciting and all, but it’s also very long-winded. Surely there’s an easier way? (At least in certain circumstances?)
Reassuringly there is, at least for remainders, and factoring, and this is all up next, courtesy of Bezout and his Polynomial Remainder Theorem.Bezout was a busy guy, and there are other theorems he came up with which you should not confuse with this one. There is even one called “Bezout’s Theorem” which is not this one. Confusing, right?
I’ll let you go to GelfandSection 37. for the simple reason why this works, but in general, if is an arbitrary polynomial (i.e. any polynomial in a single variable, in what follows) which we want to divide by then we can use the following equality to give us a jump on things:
This simple formula gives us a bunch of cool stuff and these cool things are the subject of the rest of this post.
Tricks Arising (Pt. 1)
Find the Remainder Quickly and Simply - Bezout’s Remainder Theorem
We can use Bezout’s theorem in a sneaky way. To find the remainder when is divided by , simply substitute for . We don’t need to calculate the quotient to be able to do this either.
E.g. we have a polynomial which is , and we want to know what the remainder is when we divide it by . In this scenario, , and we can put this along with into our equality.
This is the aforementoned Remainder Theorem, discovered by Etienne Bezout.Note, this is only a method for finding the remainder. If you need the quotient, you still have to take the long way round as we described in Chunk 14.
Find out if is Divisible by , aka “Roots” to Factoring Joy
The previous trick was nice, but not too magical. Up next is a consequence of Bezout’s theorem, and it’s going to give us another weapon in our fight against factoring.
Now that’s magical.
First we need to take a step back. Two in fact. Forget about polynomials, and forget about division. We’re going to introduce properly the concept of polynomial roots.Polynomial roots are not roots of numbers such as square roots and cube roots. I’ve written a separate section to disambiguate all this. If you feel the need jump over there now to make sure you’re happy with the difference, and what we are and arent talking about here.
Polynomials have things called roots. If I tell you they are also called a “zero” you might think back to the last time we heard the “zero” word with regards to factoring, in Chunk 11 - Factoring to Zero. In that post we found great solace for our annihilated-terms woes by “looking for the zero result”.
Gelfand is now going to take the finding-the-remainder element of this approach, and bring us up to speed with roots in general (without explicitly calling out the link I’ve just made - I found it by reading around the topic). (Oakley FTW!)
The definition of a root of a function from the above linked page is as follows:
I.e. the number represented by is a root of the function represented by because when you make the result is .
Pause a while for that to sink in. It’s very simple, but powerful. It means if we find an (and there could be more than one, then we have a root of .
Now consider the fact that is just another way of representing our polynomial, . We have seen that is the root of this polynomial. When this is the case, will be a factor (because , we’re just rearranging our expression using standard laws).
That last bit might have been a bit fast, so lets step up on it slowly, and we’ll do it from the Bezout angle this time.
Remember this from Bezout?
If we state Bezout in a different way we can see why this is a logical consequence.
“To find whether polynomial is divisible by (without remainder), test whether it becomes zero after substitution of for .”
That means (and it’s not too much of a brain stretch to see it) that when you put a value into your polynomial , and the result does become zero, then it is divisible by , then that means is a root of . (We have rooted our polynomial .) That also means is a factor of .
One last pointPerhaps a self-evident one, but I dislike loose ends. How does this relate to division (polynomial or otherwise)? Remember, two or more factors are the result of dividing a polynomial. To get back to the original polynomial, you simply take their productWhich is just a fancy maths word for multiplying them together. Bezout’s formula is simply one which make evident both sides of the situation - a polynomial in entirety, and the same, but broken into pieces by division and about to be multiplied and added up again.
Still Too Magical? Let’s Check With Some Problems
Does that seem a little too magical? Are you feeling that adding strings to factoring bows should be harder-fought? lets tackle some of the followiung problems to check.
Problem 146(a)
Lets start trying values for to see if we get a zero result. first.
Nope. Not the answer we were looking for. How about ?
Super! That means is a root of , which in turn means that must be a factor of the same polynomial.
To factor from here we need to use the good-ole polynomial division to see what’s left once we factor out
Awesome. That means our factoring is as follows:
We could go farther, and factor , but you get the gist.
We’ll do one more before moving on, because it introduces another little clue for us to pick up on
Problem 146(b)
First up, let’s try with
Thats no good. How about ?
That’s no good either. And we’re actually moving away from a zero result too. How about ?
That’s our root!
We can then take this into our division to get the quotient for our factoring.
Which means our factoring is as follows:
Tricks Arising (Pt. 2)
Nothing Subtracted? Try a Negative
If when you look at your polynomial you see that nothing is subtractedAs in Problem 146(b) above. you know that your root will have to be a negative number (so that your sum will add to zero when you mix in the ).
How Many Roots?
The gory details of how to get to this fact are in Gelfand, but its a truism that a polynomial of degree will have at most different roots. The “different” is important - remember a polynomial can have two roots which are the same (n.b. which translates as two roots which are the same). Mathematicians say this has “two equal roots”.
Further Reading
There is a lot more to know about all this, but we’ve covered what Gelfand needs us to know for now. If you are excited to learn more, I’d recommend the Fundamental Theorem of Algebra on MathsIsFun. It sounds scary, but it is really well written.


In 2000, ten years later, the international community met again at the World Education Forum in Dakar, Senegal, an event which drew 1100 participants.
The forum took stock of the fact that many countries were far from having reached the goals established at the World Conference on Education for All in 1990.
The participants agreed on the Dakar Framework for Action which re-affirmed their commitment to achieving Education for All by the year 2015, and identified six key measurable education goals which aim to meet the learning needs of all children, youth and adults by 2015.
Enrollment info for life skill training Enrollment info for life skill training Enrollment info for life skill training Enrollment info for life skill training Enrollment info for life skill training Enrollment info for life skill training
Polytechnics information june 2017 Polytechnics information june 2017 Polytechnics information june 2017 Polytechnics information june 2017 Polytechnics information june 2017 Polytechnics information june 2017
Academic inspection formats Academic inspection formats Academic inspection formats Academic inspection formats Academic inspection formats Academic inspection formats
ABC initiatives in practice ABC initiatives in practice ABC initiatives in practice ABC initiatives in practice ABC initiatives in practice ABC initiatives in practice


WITNESS LIST
Finance
February 6, 2019 9:00 AM
FOR:
Benestante, Jacquie Director of Advocacy & Outreach (also providing written testimony)
(Autism Society of Texas), Austin, TX
Briggs, MD, Emily Family Physician (also providing written testimony) (TMA, TAFP,
TPS, TAOG), New Braunfels, TX
Carson, Wayne CEO (also providing written testimony) (ACH Child & Family Services)
Cogan, Alexandra Public Policy Advocate - Criminal Justice (also providing written
testimony) (The Arc of Texas), Austin, TX
Crockett, Sarah Public Policy Coordinator (also providing written testimony) (Texas
CASA), Austin, TX
Cruz Garbutt, Liz Non-profit service provider (also providing written testimony) (The
SAFE Alliance), Austin
De La Paz, Rafael CEO, Health Center (also providing written testimony) (Community
Health Centers of South Central Texas, Texas Association of Community Healths),
Gonzales, TX
Falcon MD, Antonio physician (myself, Texas Academy of Family Physicians), Rio Grande
City, TX
Goodell, Vita CEO, Fort Bend Women's Center (Fort Bend Women's Center), Richmond,
TX
Hamm, Jackie Board President (Meals on Wheels Assoc of TX), WF, TX
Hawkins, John (also providing written testimony) (TX. Hospital Assn.), Austin, TX
Homer, Andrew Director (also providing written testimony) (Texas CASA), Austin, TX
Lee Pavey, Heather Deaf Blind Educator (also providing written testimony) (Texas
Support Service Provider Coalition), Austin, TX
Lukefehr MD, James Pediatrician (also providing written testimony) (Texas Medical
Association/ Texas Pediatric Soc.), San Antonio, TX
Montez, Angela Registered Nurse (Nurse Family Partnership), San Antonio, TX
Mueller, Thomas E. Physician - Family Medicine (myself & the Texas Academy of Family
Physicians), Columbus, TX
Murphree, Susan Sr. Policy (Disability) Specialist (also providing written testimony)
(Disability Rights TX), Austin, TX
Niles, Chandy Executive Director, Rescare (also providing written testimony) (Rescare)
Olse, Katie CEO (also providing written testimony) (TX Alliance of Child & Family
Services)
Powers, Kim Guest Speaker (also providing written testimony) (Deaf Blind Service Center
of Austin), Austin, TX
Rauls, Joy CEO (also providing written testimony) (Children's Advocacy Centers of
Texas), Austin
Retzer, Tegan (also providing written testimony) (Self)
Routon, Randy Community center, ECI provider (LifePath Systems)
Terry, Gloria A. CEO (also providing written testimony) (Tx Council on Family Violence)
Thorne, Richard CFO (also providing written testimony) (Advo Companies), Amarillo, TX
Turner, James Police Officer Austin Police Department (Austin Police Department)
WITNESS LIST
Finance
February 6, 2019 9:00 AM
White, Angela CEO (also providing written testimony) (Alpha Hume / ASAP), Magnolia,
TX
Wilson, Stacy President (also providing written testimony) (Children's Hospital Assn of
Tx), Austin
ON:
Adami, Summer Director, Clinical Operations (also providing written testimony) (Blue
Sprig Pediatrics)
Berman, Charles (also providing written testimony) (Self), Spring, TX
Berry, Jason Berry Family Services (Self; Self), Rowlett, TX
Black, Beverly (also providing written testimony) (Self), Fort Worth, TX
Blackmore, Lynn COO (also providing written testimony) (Dept. of Family & Protective
Services), Austin, TX
Blackstone, Kristene Associate Commissioner - CPS (also providing written testimony)
(Dept. of Family & Protective Services), Austin, TX
Borrel, Dennis Advocate (also providing written testimony) (Coalition of Texans with
Disabilities)
Boyte, Melanie (ADAPT)
Breitengross Bitter, Sandra non-profit (TX State Independent Living Council), Austin, TX
Broughal, Christine Advocate (Texans for SPED Reform), Cedar Park, TX
Browning, Ronnie (also providing written testimony) (Self), Spring, TX
Burek, Susan Retired (also providing written testimony) (Medicaid MCO Members with
HIPP), Austin, TX
Burns, Sonja Advocate (People going through the revolving door of ER's, jail, state
hospitals), ATX, TX
Carmical, Audrey General Counsel (Dept. of Family & Protective Services), Austin, TX
Conwell, Audra CEO, Alliance of Independent Pharmacists (also providing written
testimony) (Independent Pharmacists), Austin, TX
Cranston, Ron advocate (PACT/ADAPT), Aus, TX
Crowther, Nancy Community Advocacy (Personal Attendant Coalition of Texa)
Davis, Khrystal K Author, Speaker & Patient Advocate (also providing written testimony)
(Texas Rare Disease Patients), Austin, TX
Delgado, Evelyn Chair of Texas Women's Healthcare Coalition (also providing written
testimony) (Texas Women's Healthcare Coalition), San Antonio, TX
Dillen, Jeffrey Licensed Behavior Analyst (also providing written testimony) (TxABA
PPG), Rosenberg, TX
Donnelly, Sophia G Community Attendant (also providing written testimony)
(PACT/ADAPT)
Dooley, Michelle Mother, Guardian, Community Now! (also providing written testimony)
(Morgan), Ft Worth
Doty, Kathy (also providing written testimony) (Arc of Forth Worth), Forth Worth, TX
Dudensing, Jamie CEO (also providing written testimony) (Texas Association of Health
Plans)
Dunkelberg, Anne Associate Director (also providing written testimony) (Center for Public
Policy Priorities)
Dunson, Leigh Administraton (also providing written testimony) (Mary Lee Foundation)
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Ensminger, Melissa Registered Nurse / Parent (also providing written testimony) (My
child), Conroe, TX
Fernandez, Mariel BCBS (also providing written testimony) (Autism Treatment Center),
Dallas, TX
Garcia, Mimi Director of Policy (also providing written testimony) (Texas Association of
Community Health Centers), Austin, TX
Garza Kauffman, Olga health specialist (also providing written testimony) (Urban
Strategie), SA
Gerkew, Lauen Public Policy Fellow (The Arc of Texas)
Gonzalez, Freddy ADAPT (ADAPT)
Griffin, Kimberly Texas Executive Director Nurse-Family Partnership (also providing
written testimony) (Nurse-Family Partnership), Pearland, TX
Groel, William Director Product Managment (also providing written testimony) (Self)
Guerra-Cardus, Laura Deputy Director (also providing written testimony) (Children's
Defense Fund - Tx), Austin, TX
Haddad, Roberto A Counsel for Government Affairs (also providing written testimony)
(DHR Health), McAllen, TX
Hammon, Rachel Executive Director (also providing written testimony) (Tx Association
for Home Care & Hospice)
Hansch, Greg Public Policy Director (National Allionce on Mental Illness (NAMI) TX)
Harracksing, Rachel Life Ambulance President (TAA & Life Ambulance)
Helgesen, Wanda RN, Border Regional Advisory Council (RAC) (also providing written
testimony) (Border RAC & Texas EMS, Trauma, & Acute Care Foundation (TETAF)), El
Paso, TX
Hernandez, Richard Govt. Relations Director (Brightspring Health Care (ResCare, Inc.)),
Austin, TX
Hocker, Mel (also providing written testimony) (Self), Woodway, TX
Hoffman, Shannon Policy Fellow (also providing written testimony) (The Hogg
Foundation for Mental Health)
Hohfeld, Brooke Texas Advocates (also providing written testimony) (Myself)
Hurt, Ricky Art Instructor Reach Unlimited (disability Advocate), Cypress, TX
Kafka, Bob Organizer (ADAPT & PACT)
Kenton, Alexander B. Doctor (also providing written testimony) (Mednax/ Physicians),
San Antonio
Kinkade, Paige CEO (Texas Special needs kids), Missouri City, TX
Kinsey, David CFO (also providing written testimony) (Dept of Family & Protective
Services), Austin, TX
Kohler, Adriana (also providing written testimony) (Texans Care for Children), Austin
Lavelle, Tanya Policy Program Specialist (also providing written testimony) (Hogg
Foundation for Mental Health)
Litzinger, Amy Policy specialist (also providing written testimony) (Easter seals), Austin,
TX
Litzinger, Linda public policy specialist (also providing written testimony) (Texas Parent
to Parent), Austin, TX
Lofton, Keith Adapt Home (Self), TX
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Lopez, Renee Community Advocate (ADAPT of Texas), Austin, TX
Lucy, Jennifer Director of Public Policy (also providing written testimony) (Texprotects)
Mares, Bryan Public Policy Fellow (also providing written testimony) (Texas CASA)
Mayeaux, Ginger State Policy Director (also providing written testimony) (The Arc of
Texas), Austin, TX
McGeady, John LBB Staff (also providing written testimony) (LBB)
McPhail, Jennifer Community Organizer (ADAPT of Texas)
Mehta, Hannah parent & Executive Director (also providing written testimony) (myself &
Protect TX Fragile Kids)
Merahn, MD, Steven Physician (also providing written testimony) (Centra Healthcare),
Richardson, TX
Morgan, Mason President, Tx Ops - Caregiver, Inc. (also providing written testimony)
(Caregiver)
Moskowitz, Mara Educational Consultant/Advocate (Texans for Special Education
Reform/Parent)
Murphey M.D., Donald Physician (also providing written testimony) (Texas Medical
Associatio, Tx Pediatric Society and Texas Academy of Family Physician)
Naranjo, Mary Owner - A Piney woods Home Services (A Piney woods Home Services),
Lufkin, TX
Nati, Dr. Carol Physician (MHMR of Tarrant County)
Nikic, Andrea LBB Staff (also providing written testimony) (LBB)
Piccola, Kyle Government Relations Officer (The Arc of Texas)
Pile, Darrell CEO (also providing written testimony) (SouthEast Texas Regional Advisory
Council), Houston, TX
Post, Alicia parent/advocate (also providing written testimony) (self/Emmett Post),
Richardson, TX
Post, Emmett student (also providing written testimony) (Self), Richardson, TX
Potts, Joe T. Father of man w IDD (also providing written testimony) (My Family & Son)
Prado, Elizabeth LBB Staff (also providing written testimony) (LBB)
Rabalais, Carroll HCS Case Manager (also providing written testimony) (Mary Lee
Foundation), Austin
Rangel, Lauren TCDD Public Policy Fellow (also providing written testimony)
(Easterseals Coalition Serving Texas), Austin, TX
Reese, Joyce organizer (ADAPT/PACT)
Reimer, David Healthcare Administration (Aveame Healthcare, Homecare Industry),
Dallas, TX
Riley, Jennifer Sage Care therapy - VP operations (also providing written testimony) (Sage
Care), Dallas
Robledo, Lorrie IDD Residential Services (also providing written testimony) (RsCare &
people with IDD), Brownwood, TX
Robles Cranston, Catherine Personal Care Attendant (Personal Care Coalition of TX),
Austin, TX
Romeuboyrs, James (Texas Advocates), SA, TX
Rose, Lauren Director of Public Policy (also providing written testimony) (Texas Network
of Youth Services), Austin
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Ross, Julie office manager - self employed (myself), Dallas, TX
Saenz, Danny (Self), Austin, TX
Salovitz, Heiwa community organizer (ADAPT/PACT)
Sheldon, Tyler Political organizer (Texas State Employees Union), Austin, TX
Smith, Douglas Senior Policy Analyst (also providing written testimony) (Texas Criminal
Justice Coalition), Austin, TX
Stahmer, Denise Physical Therapist (also providing written testimony) (myself - my
company), Stafford, TX
Stavinoha, Shannan Executive Director (also providing written testimony) (Parks Youth
Ranch), Richmond, TX
Stitt, Keri Emergency Shelter (Promise House), Dallas, TX
Stoeltje, Mark Executive Director Clubhouse Texas (also providing written testimony)
(Self), SA, TX
Swallow, David Christian Retired (Texas Advocates), Fort Worth
Thomas, Stephanie disability rights (Self), Austin, TX
Tunnell, Jeffrey Executive Director, Gulf Bend Center (also providing written testimony)
(Gulf Bend Regional Community Collaborative)
Ursitti, Judith CPA, Director State Govt. Affairs (also providing written testimony)
(Autism Speaks), Dover, MA
Warner, Carrie Community Caregiver (ADAPT & PACT)
Warren, Kevin Long Term Care (also providing written testimony) (Texas Health Care
Association), Dripping Springs
Weizenbaum, Jon Volunteer (also providing written testimony) (AARP), Austin, TX
Whitman, Hank Commissioner (also providing written testimony) (Dept. of Family and
Protective Services), Austin, TX
Williams, Beanca Director/Volunteers of America Texas (also providing written testimony)
(Volunteers of America Texas), Houston, TX
Wilson, Co-lumba P. Hairstylist (Self)
Wilson, Dennis D. Sheriff, Limestone County Texas (Sheriff's Association of Texas),
Groesbeck, TX
Wittie, David Disability Rights (also providing written testimony) (ADAPT of Texas)
Wold, Kez Associate Commissioner of APS (also providing written testimony) (Dept. of
Family & Protective Services), Austin, TX
Registering, but not testifying:
FOR:
Emmons, Lindsey (Self; Stable life concepts), Temple, TX
Emmons, Stephanie (Self; Stable Life Concepts), Temple, TX
Gagen, Charlie Grassroots Director (Tobacco 21)
Gilley, Rockie Kennedale City Councile place 1 (Self), Kennedale, TX
Hall-Barrow, Julie Sr. Vice President, Network Development (Self; Children's Health),
Dallas, TX
Jackson, Anesia Esthetician/Wellness (Self)
Johnson, Windy (Texas Conference of Urban Counties)
Kidd, Tom (Self; Brenham SSLC Family Association), Austin, TX
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Lundy, Scott CEO (Arrow Child & Family Services)
McDowell, Susan Executive Director (Lifewerks)
Molnar, Thomas COO - Divinity Family Services (Divinity Family Services)
AGAINST:
Voelkel (Self), Austin, TX
ON:
Aguilar, Jeannie (Self; Blue Sprig Pediatrics), Austin, TX
Bauman, Ellen (Self), Joshua, TX
Brown, Andrew C. Director, Center for Families and Children (Texas Public Policy
Foundation), Austin, TX
Castro, Aaron Superior Care Emergency Medical Services (Texas Ambulance Association),
Boerne, TX
de la Garza Rankin, Gloria special education Advocate (my children)
Demers, Tracey (Self), Austin, TX
Gilani, Vicki Speech pathologist (Self), Houston, TX
Hinojosa, Veronica Behavior Analyst/Sister of Adult w/ ASD (The Center for Autism &
Related Disorders), Austin, TX
Jarriel, Jenifer CEO (Depelchin)
Mathew, Leena (Self), Sugar Land, TX
Paschall, Cindi mom (Self), NRH, TX
Robison, Kristen Angels of Care Pedi Home Health, RN (Angels of Care & myself),
Sherman, TX
Ross, Steve Statewide Coalition Specialist (Texans Standing Tall), Austin, TX
Sanders, Jolene Advocay Manager (Easterseals), ATX
Scepanski, Jon Healthcare (Apex Primary Care), Edinburg, TX
Scepanski, Renee TMHP Outsource Billing (Consultant) (TX Home Care Agencies),
Edinburg, TX
Schleifer, Jessica Director of Advocacy (Teaching Hospitals of Texas), Austin, TX
Smith, Jessica Board Certified Behavior Analyst (BCBA); ABA professional (Center for
Autism and Related Disorders LLC), Austin, TX
Stallings, Kellie social work - Connections Individual and Family Services (Texas Network
of Youth Services and Connections Individual and Family Services), New Braunfels, TX
Steele, Burrell N\A (Pact)
Swallow, David (Self), Fort Worth, TX
Whitaker, Marcia (intervener), Buffalo, TX
Williams, Jerry (Self), Fort worth, TX
Zendjas, Mario (Self), Austin, TX
Providing written testimony:
FOR:
Bravens, Shalyn Director of Family Connects (Self), Austin, TX
Francis, Will social worker/ Lobbyist (Nat'l Assoc. of Social Workers - Texas Chapter)
Hart, Ann (Self), Austin, TX
Hayter, Kara Autism Specialist (Centria Autism Services), Richardson, TX
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Hunter II, Carl F. Peer Policy Fellow- Recovery People (Self), Austin, TX
Kunish, Eric Mr (Self; National Aliance on Mental Illness), Austin, TX
McEnery, Claire Director of Texas Parents as Teachers (Mental Health America of Greater
Dallas), Austin, TX
Palomo, M.Ed., Kathy Autism Expert, Life Coach & Facilitator (Self), Austin, TX
Ramirez, Stacey Clinical Supervisor Designee (Self), Austin, TX
Romero, Michelle Director, Legislative Affairs (Texas Medical Association), Ausin, TX
Travis, Clayton Director of Advocacy (Texas Pediatric Society, Texas Medical Association,
Texas Academy of Family Physicians), Austin, TX
AGAINST:
Bradshaw, Jill (Self; Protect Texas Fragile Kids), Austin, TX
Kurtz, Dershie physical therapist/ provider (Texas Kids Home Therapy and Nursing),
Boene, TX
Kurtz, Stephen Texas Kids Home Therapy & Nursing (Texas Kids), Boerne, TX
Touron, Jessica Texas Kids Home Therapy & Nursing (Self), Boerne, TX
ON:
Aleman, Steven Policy Specialist (Disability Rights Texas), Austin, TX
Alexander, Troy Director for Legislative Affairs (Texas Medical Association for Texas
Public Health Coalition), Austin, TX
Bales, Kathy (Self), Fort worth, TX
Baucom, Alison behavior analyst (Baucom Behavioral), Austin
Biundo, Jennifer (Texas Campaign to Prevent Teen Pregnancy), Austin, TX
Capers, Greg (Self; Fight Crime: Invest in Kids), Coldspring, TX
Carriker, Terri Mom (Self)
Crisp, Kaycee (Self; Circle Up, United Methodist Women), Austin, TX
DePrang, Jo Research Policy Associate (Children's Defense Fund - Texas), Austin, TX
Dinn, Gabriel CFO (Self; Kids Developmental Therapy/Kids Developmental Clinic),
Houston, TX
Dombroski, Jenny (Self), Georgetown, TX
Fuerst, Taylor Reverend (Self; First United Methodist Church, Austin), Austin, TX
Gerlach DDS, William (Texas Dental Assn), Austin, TX
Ghahremani, Kay President and CEO (Texas Associatiom of Central Health Plans), Austin,
TX
Hartman, Marilyn Mental Health Advocate (Self; As Member of NAMI Austin, advocating
for people with serious mental illness), Austin, TX
Hartman, Vivecca A DBMAT President (DBMAT), Houston, TX
Humphrey, Cynthia Executive Director (Self; Association of substance abuse programs),
Kerrville, TX
Kaighin, Katie (Self; Circle Up: United Methodist Women), Austin, TX
Kent Davis, Helen Director, Governmental Affairs (Texas Medical assn, Texas Academy of
Family Physicians, Texas Pediatric Society, Texas Assn. of Obstetricians and Gynecologists,
and American College of OBGyns), Austin, TX
Keppler, Matt March of dimes (March of Dimes), Austin, TX
Limerick, Stefanie (Self), Hutto, TX
WITNESS LIST
Finance
February 6, 2019 9:00 AM
Linial, George President (LeadingAge Texas), Austin, TX
Lopez, Guillermo Senior Director Any Baby Can ECI (Self; Any Baby Can), Austin, TX
Lord, Jenni CEO (Chosen Care)
Meyer, Daryl (Baylor Scott & White Health), Waco, TX
Olson, Jonathan Director of the Southwest (Corporation for Supportive Housing), Houston,
TX
Pol, Aschwin (Self), San Antonio, TX
Rosenlund Executive director (Self; Easter seals rio grande valley), Mcallen, TX
Sabo, Jason (Children at Risk), Austin, TX
Thommen, Rany (Self; ABA Today), Georgetown, TX
Thurman, Whitney (Self; Circle Up, United Methodist Women), Austin, TX
Williams, Jay (Self), Fort worth, TX
Withrow, Heather Graduate student (Self; DBMAT and SSPs for DeafBlind Texans),
Austin, TX
Zendejas, Alejandra (Self), Austin, TX


#Logging and Debugging
Socket.IO is now completely instrumented by a minimalistic yet tremendously powerful utility called debug by TJ Holowaychuk.
Before 1.0, the Socket.IO server would default to logging everything out to the console. This turned out to be annoyingly verbose for many users (although extremely useful for others), so now we default to being completely silent by default.
The basic idea is that each module used by Socket.IO provides different debugging scopes that give you insight into the internals. By default, all output is suppressed, and you can opt into seeing messages by supplying the DEBUG
env variable (Node.JS) or the localStorage.debug
property (Browsers).
You can see it in action for example on our homepage:
#Available debugging scopes
The best way to see what information is available is to use the *
:
DEBUG=* node yourfile.js
or in the browser:
localStorage.debug = '*';
And then filter by the scopes you’re interested in. You can use ,
to separate them.


Plugin Information |
|---|
View Stack Hammer on the plugin site for more information. |
Stack Hammer Plugin
This plugin integrates Jenkins with Cloudsmith Stack Hammer to validate and/or deploy Puppet configurations (stacks) stored in a repository at GitHub.
Validation
Add the Stack Hammer Validation build step to a Jenkins project and specify the GitHub repository name and Stack Hammer API key (available from the Stack Hammer UI). You can optionally specify a branch.
When the job runs, Stack Hammer will fetch the Puppet configuration from GitHub and check it for errors and warnings using Geppetto and puppet-lint. The resulting report will contain a list of errors and/or warnings and a full dependency graph of the stack.
Testing
Add the Stack Hammer Testing build step to a Jenkins project and specify the GitHub repository name and Stack Hammer API key (available from the Stack Hammer UI). You can optionally specify which tests to run and whether to undeploy the test harness when done.
When the job runs, Stack Hammer will fetch the Puppet configuration from GitHub and run the rspec-puppet tests in it on a test harness machine at Amazon AWS. The resulting report will contain output for each test that was run.
Deployment
Add the Stack Hammer Deployment build step to a Jenkins project and specify the GitHub repository name and Stack Hammer API key (available from the Stack Hammer UI). You can optionally specify a branch and whether to deploy in dry-run mode.
When the job runs, Stack Hammer will fetch the Puppet configuration from GitHub and deploy it to Amazon AWS. The resulting report will contain a list of logs and catalog graph for each host that was deployed.
Change Log
Version 1.0.6 (Sep 24, 2012)
Diagnostic type added to validation diagnostic display
Version 1.0.5 (Sep 06, 2012)
A Test Runner build step was added
Version 1.0.4 (Jun 15, 2012)
Fixed bug that caused NPE when no global configuration had been stored
Version 1.0.3 (Jun 15, 2012)
Release failed half way though but cannot be removed. Don't use this version.
Version 1.0.2 (Jun 9, 2012)
This is the initial release


Consultation is the core of what we offer. We aim to provide you with the best course of action to result in the success of your company
Expert analysis in your industry to provide you with accurate information to make proper decisions
Our connectitons in industries have provided us with tools and software that we offer to you at no extra charge
BLC was founded by Gokul Babu and Tony Le in 2017 during their attendance at the Wilfrid Laurier University.
Both students were paired together in a programming course where they shared business ideas and eventually came up with a business consulting firm where they would utilize their skills and experience to provide a professional service.
From then on, the two used their programming skills and every resource imaginable to create a develop business relations to garner accurate information on an array of industries to become proficient in consulting fellow entrapreneurs and their ideas.
After months of work and prepartion, the duo began consulting for various startups that grew into succesful companies which allowed BLC to continue growing and gain a trustworthy and reputable name for themselves as they continue to strive in the years ahead.
Co-founder
Co-founder
The founders of BLC, and currently attends Wilfrid Laurier University while offering consultation.


Staff
66th Secretary
of State
Born: 11-14-1954
Hometown: Birmingham, Alabama
Education: University of Denver,
University of Notre Dame
As the former Secretary of State, Rice would advice Bush on international matters. She played a pivotal role in shaping Bush's legacy in the Middle East.