Appendix E. Quick Reference
This quick reference is arranged topically, in roughly the same order
as the commands were treated in the text. Unfortunately, it's
impossible to be both "quick" and
thorough, particularly with an editor as large and comprehensive as
GNU Emacs. We've tried to take a middle road between
completeness and quickness; we'll confess that, if
we've erred, we've erred on the
side of quickness.
Table E-1. File-handling commands (Chapter 1)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x C-fFile
Open File
|
find-file
|
Find file and read it in a new buffer.
| |
C-x C-v
|
find-alternate-file
|
Read an alternate file, replacing the one read with C-x C-f.
| |
C-x iFile
Insert File
|
insert-file
|
Insert file at cursor position.
| |
C-x C-s File
Save (current buffer)
|
save-buffer
|
Save file.
| |
C-x C-w File
Save Buffer As
|
write-file
|
Write buffer contents to file.
| |
C-x C-c File
Exit Emacs
|
save-buffers-kill-emacs
|
Exit Emacs.
|
Table E-2. Cursor movement commands (Chapter 2)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-f
|
forward-char
|
Move forward one character (right).
| |
C-b
|
backward-char
|
Move backward one character (left).
| |
C-p
|
previous-line
|
Move to previous line (up).
| |
C-n
|
next-line
|
Move to next line (down).
| |
M-f
|
forward-word
|
Move one word forward.
| |
M-b
|
backward-word
|
Move one word backward.
| |
C-a
|
beginning-of-line
|
Move to beginning of line.
| |
C-e
|
end-of-line
|
Move to end of line.
| |
M-e
|
forward-sentence
|
Move forward one sentence.
| |
M-a
|
backward-sentence
|
Move backward one sentence.
| |
C-v
|
scroll-up
|
Move forward one screen.
| |
M-v
|
scroll-down
|
Move backward one screen.
| |
M-<
|
beginning-of-buffer
|
Move to beginning of file.
| |
M->
|
end-of-buffer
|
Move to end of file.
| |
(none)
|
goto-line
|
Go to line n of file.
| |
(none)
|
goto-char
|
Go to character n of file.
| |
M-n
|
digit-argument
|
Repeat the next command n times.
| |
C-u n
|
universal-argument
|
Repeat the next command n times (four times if
you omit n).
|
Table E-3. Deleting, yanking, region, and clipboard commands(Chapter 2)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-d
|
delete-char
|
Delete character under cursor.
| |
Del
|
delete-backward-char
|
Delete previous character.
| |
M-d
|
kill-word
|
Delete next word.
| |
M-Del
|
backward-kill-word
|
Delete previous word.
| |
C-yEdit
Paste Most Recent
|
yank
|
Restore what you've deleted.
| |
C-w Edit
Cut
|
kill-region
|
Delete a marked region (see next section).
| |
C-@ or
C- Space
|
set-mark-command
|
Mark the beginning (or end) of a region.
| |
C-x C-x
|
exchange-point-and-mark
|
Exchange location of cursor and mark.
| |
C-w
|
kill-region
|
Delete the region.
| |
C-y
|
yank
|
Paste most recently killed or copied text.
| |
M-w
|
kill-ring-save
|
Copy the region (so it can be pasted with C-y).
| |
C-x h
|
mark-whole-buffer
|
Mark buffer.
| |
M-y
|
yank-pop
|
After C-y, pastes earlier deletion.
| |
(none)
|
clipboard-kill-region
|
Cut region and place both in kill ring and on system clipboard.
| |
(none)
|
clipboard-yank
|
Paste text from clipboard.
| |
(none)
|
clipboard-kill-ring-save
|
Copy text to clipboard.
|
Table E-4. Text filling and reformatting commands (Chapter 2)|
Keystrokes
|
Command name
|
Action
|
|---|
|
(none) Options
Word Wrap in Text Modes
|
auto-fill-mode
|
Toggle auto-fill mode, in which Emacs formats paragraphs as you type
them.
| |
M-q
|
fill-paragraph
|
Reformat paragraph.
| |
(none) Edit
Fill
|
fill-region
|
Reformat individual paragraphs within a region.
|
Table E-5. Stopping and undoing commands (Chapter 2)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-g
|
keyboard-quit
|
Abort current command.
| |
C-x u
|
advertised-undo
|
Undo last edit (can be done repeatedly).
| |
C-_ Edit
Undo
|
undo
|
Undo last edit.
| |
(none)
|
revert-buffer
|
Restore buffer to the state it was in when the file was last saved
(or auto-saved).
|
Table E-6. Search and replace commands (Chapter 3)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-s Edit
Search
Incremental Search Forward
String
|
isearch-forward
|
Start incremental search forward; follow by search string. Also, find
next occurrence (forward) of search string.
| |
C-r Edit
Search
Incremental Search Backward
String
|
isearch-backward
|
Start incremental search backward; follow by search string. Also,
find next occurrence (backward) of search string.
|
Table E-7. Regular expression search commands (Chapter 3)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-M-s Enter Edit
Search
Regexp Forward
|
re-search-forward
|
Search for a regular expression forward.
| |
C-M-r Enter Edit
Search
Regexp Backwards
|
re-search-backward
|
Search for a regular expression backward.
| |
C-M-s Edit
Search
Incremental Search Forward
Regexp
|
isearch-forward-regexp
|
Search incrementally forward for a regular expression.
| |
C-M-r Edit
Search
Incremental Search Backward
Regexp
|
isearch-backward-regexp
|
Search incrementally backward for a regular expression.
| |
C-M-% Edit
Replace
Replace Regexp
|
query-replace-regexp
|
Query-replace a regular expression.
|
Table E-8. Spell-checking commands (Chapter 3)|
Keystrokes
|
Command name
|
Action
|
|---|
|
(none) Tools
Spell Checking Spell-Check
Buffer
|
ispell-buffer
|
Check spelling of the buffer.
| |
(none) Tools
Spell Checking Spell-Check
Comments
|
ispell-comments-and-strings
|
Checks spelling of comments and strings in a program.
| |
(none)
Tools Spell
Checking
Automatic Spell-Checking (Flyspell)
|
flyspell-mode
|
Enter the flyspell minor mode, in which incorrectly spelled words are
highlighted.
| |
(none)
|
flyspell-buffer
|
Spell-check the current buffer, underlining all misspelled words. Use
middle mouse button to correct.
|
Table E-9. Buffer commands (Chapter 4)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x b Buffers
Select Named Buffer
|
switch-to-buffer
|
Move to the buffer specified.
| |
C-x
Buffers Next Buffer
|
next-buffer
|
Move to the next buffer in the buffer list.
| |
C-x Buffers
Previous Buffer
|
previous-buffer
|
Move to the previous buffer in the buffer list.
| |
C-x C-b Buffers
List All Buffers
|
list-buffers
|
Display the buffer list.
| |
C-x k
|
kill-buffer
|
Delete the buffer specified.
| |
(none)
|
kill-some-buffers
|
Ask about deleting each buffer.
|
Table E-10. Windows and frames (Chapter 4)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x 2 File
Split Window
|
split-window-vertically
|
Divide current window into two windows, one above the other.
| |
C-x 3
|
split-window-horizontally
|
Divide current window into two side-by-side windows.
| |
C-x o
|
other-window
|
Move to the other window; if there are several, move to the next
window.
| |
C-x 0
|
delete-window
|
Delete the current window.
| |
C-x 1 File
Unsplit Windows
|
delete-other-windows
|
Delete all windows but this one.
| |
C-x 4 f
|
find-file-other-window
|
Find a file in the other window.
| |
C-x 4 b
|
switch-to-buffer-other-window
|
Select a buffer in the other window.
| |
(none) Tools
Compare (Ediff) This Window
and Next Window
|
compare-windows
|
Compare this window with the next window and show the first
difference.
| |
C-x 5 o Buffers
Frames
|
other-frame
|
Move to other frame.
| |
C-x 5 0 File
Delete Frame
|
delete-frame
|
Delete current frame.
| |
C-x 5 2 File
New Frame
|
make-frame
|
Create a new frame on the current buffer.
| |
C-x 5 f
|
find-file-other-frame
|
Find file in a new frame.
| |
C-x 5 r
|
find-file-read-only-other-frame
|
Finds a file in a new frame, but it is read-only.
| |
C-x 5 b
|
switch-to-buffer-other-frame
|
Make frame and display other buffer in it.
|
Table E-11. Shell mode commands (Chapter 5)|
Keystrokes
|
Command name
|
Action
|
|---|
|
(none)
|
shell
|
Enter shell mode.
| |
C-c C-c Signals
BREAK
|
comint-interrupt-subjob
|
Interrupt current job; equivalent to C-c.
| |
C-c C-z Signals
STOP
|
comint-stop-subjob
|
Suspend or stop a job; C-z in Unix
shells.
| |
M-p In/Out
Previous Input
|
comint-previous-input
|
Retrieve previous commands (can be repeated to find earlier
commands).
| |
M-n In/Out
Next Input
|
comint-next-input
|
Retrieve subsequent commands (can be repeated to find more recent
commands).
| |
Enter
|
comint-send-input
|
Send input on current line.
| |
Tab
|
comint-dynamic-complete
|
Complete current command, filename, or variable name.
|
Table E-12. Dired commands (Chapter 5)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x d File
Open Directory
|
dired
|
Start Dired.
| |
C Operate
Copy to
|
dired-do-copy
|
Copy file.
| |
d Mark
Flag
|
dired-flag-file-deletion
|
Flag for deletion.
| |
D Operate
Delete
|
dired-do-delete
|
Query for immediate deletion.
| |
f
|
dired-advertised-find-file
|
Find (so you can edit).
| |
g Immediate
Refresh
|
revert-buffer
|
Reread the directory from disk.
| |
m or * m
Mark
Mark
|
dired-mark
|
Mark with *.
| |
Q Operate
Query Replace in Files
|
dired-do-query-replace
|
Query replace string in marked files.
| |
R Operate
Rename to
|
dired-do-rename
|
Rename file.
| |
s
|
dired-sort-toggle-or-edit
|
Sort the Dired display by date or by filename (toggles between
these).
| |
t Mark
Toggle Marks
|
dired-toggle-marks
|
Toggle marks on files and directories; pressing t once marks all unmarked files and
directories; pressing t again
restores original marks.
| |
u Mark
Unmark
|
dired-unmark
|
Remove mark.
| |
+ Immediate
Create Directory
|
dired-create-directory
|
Create a directory.
| |
* ! or M-Del
Mark Unmark
All
|
dired-unmark-all-files
|
Remove all marks from all files.
|
Table E-13. Macro commands (Chapter 6)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x (
|
kmacro-start-macro
|
Start macro definition.
| |
F3
|
kmacro-start-macro-or-insert-counter
|
Start macro definition. If pressed while defining a macro, insert a
counter.
| |
C-x )
|
kmacro-end-macro
|
End macro definition.
| |
F4
|
kmacro-end-or-call-macro
|
End macro definition (if definition is in progress) or invoke last
keyboard macro.
| |
C-x e
|
kmacro-end-and-call-macro
|
Execute last keyboard macro defined. Can type e to repeat macro.
| |
C-x C-k n
|
name-last-kbd-macro
|
Name the last macro you created (before saving it).
| |
C-x C-k e
|
edit-kbd-macro
|
Edit a keyboard macro by typing C-x e for the last keyboard macro
defined, M-x for a named macro, C-h l for lossage, or keystrokes for
a macro bound to a key.
| |
C-x C-k Enter
|
kmacro-edit-macro
|
Edit the last keyboard macro.
|
Table E-14. Outline mode commands (Chapter 7)|
Keystrokes
|
Command name
|
Action
|
|---|
|
(none)
|
outline-mode
|
Toggle outline mode
| |
C-c C-t Hide Hide
Body
|
hide-body
|
Hide all body lines.
| |
C-c C-a Show Show
All
|
show-all
|
Show everything that's hidden.
|
Table E-15. Compilation mode commands (Chapter 9)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x `
|
next-error
|
Move to the next error message and visit the corresponding source
code.
| |
M-n
|
compilation-next-error
|
Move to the next error message.
| |
M-p
|
compilation-previous-error
|
Move to the previous error message.
| |
C-c C-c
|
compilation-goto-error
|
Visit the source code for the current error message.
|
Table E-16. Basic indentation commands (Chapter 7 and Chapter 9)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-M-\
|
indent-region
|
Indent each line between the cursor and mark.
| |
M-m
|
back-to-indentation
|
Move to the first nonblank character on the line.
| |
M-^
|
delete-indentation
|
Join this line to the previous one.
|
Table E-17. C motion commands (Chapter 9)|
Keystrokes
|
Command name
|
Action
|
|---|
|
M-a
|
c-beginning-of-statement
|
Move to the beginning of the current statement.
| |
M-e
|
c-end-of-statement
|
Move to the end of the current statement.
| |
M-q
|
c-fill-paragraph
|
If in comment, fill the paragraph, preserving indentations and
decorations.
| |
C-M-a
|
beginning-of-defun
|
Move to the beginning of the body of the function surrounding the
point.
| |
C-M-e
|
end-of-defun
|
Move to the end of the function.
| |
C-M-h
|
c-mark-function
|
Put the cursor at the beginning of the function, the mark at the end.
| |
C-c C-q
|
c-indent-defun
|
Indent the entire function according to indentation style.
| |
C-c C-u
|
c-up-conditional
|
Move to the beginning of the current preprocessor conditional.
| |
C-c C-p
|
c-backward-conditional
|
Move to the previous preprocessor conditional.
| |
C-c C-n
|
c-forward-conditional
|
Move to the next preprocessor conditional.
|
Table E-18. SQL mode commands (Chapter 9)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-c C-c
|
sql-send-paragraph
|
Send the paragraph the cursor is on. A paragraph is defined by the
particular database client. For the sql-mysql process, for example, a paragraph
begins with a statement like select or update and ends with a
semicolon. Any number of lines can intervene.
| |
C-c C-r
|
sql-send-region
|
Send the marked region.
| |
C-c C-b
|
sql-send-buffer
|
Send the entire buffer.
|
Table E-19. Lisp commands (Chapter 9)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-M-b
|
backward-sexp
|
Move backward by one S-expression.
| |
C-M-f
|
forward-sexp
|
Move forward by one S-expression.
| |
C-M-t
|
transpose-sexps
|
Transpose the two S-expressions around the cursor.
| |
C-M-@
|
mark-sexp
|
Set mark to the end of the current S-expression; set the cursor to
the beginning.
| |
C-M-k
|
kill-sexp
|
Delete the S-expression following the cursor.
| |
(none)
|
backward-kill-sexp
|
Delete the S-expression preceding the cursor.
| |
C-M-n
|
forward-list
|
Move forward by one list.
| |
C-M-p
|
backward-list
|
Move backward by one list.
| |
C-M-d
|
down-list
|
Move forward and down one parenthesis level.
| |
(none)
|
up-list
|
Move forward out of one parenthesis level.
| |
C-M-u
|
backward-up-list
|
Move backward out of one parenthesis level.
| |
C-M-a
|
beginning-of-defun
|
Move to the beginning of the current function.
| |
C-M-e
|
end-of-defun
|
Move to the end of the current function.
| |
C-M-h
|
mark-defun
|
Put the cursor at the beginning of the function, put the mark at the
end.
|
Table E-20. VC commands (Chapter 12)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-x v v
|
vc-next-action
|
Go to the next logical version control state.
| |
C-x v d
|
vc-directory
|
Show all registered files beneath a directory.
| |
C-x v =
|
vc-diff
|
Generate a version difference report.
| |
C-x v u
|
vc-revert-buffer
|
Throw away changes since the last checked-in revision.
| |
C-x v ~
|
vc-version-other-window
|
Retrieve a given revision in another window.
| |
C-x v l
|
vc-print-log
|
Display a file's change comments and history.
| |
C-x v i
|
vc-register
|
Register a file for version control.
| |
C-x v h
|
vc-insert-headers
|
Insert version control headers in a file.
| |
C-x v r
|
vc-retrieve-snapshot
|
Check out a named project snapshot.
| |
C-x v s
|
vc-create-snapshot
|
Create a named project snapshot.
| |
C-x v c
|
vc-cancel-version
|
Throw away a saved revision.
| |
C-x v a
|
vc-update-change-log
|
Update a GNU-style ChangeLog file.
|
Table E-21. Ediff commands (Chapter 12)|
Keystrokes
|
Command name
|
Action
|
|---|
|
Space or n
|
ediff-next-difference
|
Move to the next difference between the files.
| |
Del or p
|
ediff-previous-difference
|
Move to the preceding difference between the files.
| |
j
|
ediff-jump-to-difference
|
Go to the difference specified as a numeric prefix argument.
| |
a
|
ediff-copy-A-to-B
|
Copy the version of the current difference found in buffer A to
buffer B.
| |
b
|
ediff-copy-B-to-A
|
Copy the version of the current difference found in buffer B to
buffer A.
| |
r a or r
b
|
ediff-restore-diff
|
Restore the current difference in buffer A (or B) to the way it was
before copying from the other buffer.
| |
A or B
|
ediff-toggle-read-only
|
Switch the specified buffer into (or out of) read-only mode.
| |
g a or g
b
|
ediff-jump-to-difference-at-point
|
Recenter the comparison buffers on the difference nearest to your
current location (point) in the specified buffer.
| |
!
|
ediff-update-diffs
|
Recalculate and redisplay the highlighted regions; useful if
you've manually made extensive changes to a buffer.
| |
w a or w
b
|
ediff-save-buffer
|
Save the specified buffer to disk.
| |
z
|
ediff-suspend
|
Close the Ediff control window, but leave the session active so you
can resume it later.
| |
q
|
ediff-quit
|
Close the Ediff window and end this comparison session.
|
Table E-22. CUA mode commands (Chapter 13)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-c C-x C-x
|
cua-exchange-point-and-mark
|
Exchange location of cursor and mark.
| |
C-x or C-w or S-Delete
|
kill-region
|
Delete the region.
| |
C-v or C-y or S-Insert
|
cua-paste
|
Paste most recently killed or copied text.
| |
C-c
|
copy-region-as-kill
|
Copy the region.
| |
M-v
|
cua-repeat-replace-region
|
After highlighting and replacing a string, find the next string and
replace it the same way.
| |
M-y
|
cua-paste-pop
|
After C-v, pastes earlier deletion.
| |
C-z or C-x u
|
cua-undo
|
Undoes the last change.
| |
C-x C-z
|
iconify-frame
|
Minimize the current frame (what C-z
does outside CUA mode).
|
Table E-23. Help commands (Chapter 14)|
Keystrokes
|
Command name
|
Question answered
|
|---|
|
C-h k Help
Describe
Describe Key
|
describe-key
|
What command does this keystroke sequence run, and what does it do?
| |
C-h f Help
Describe
Describe Function
|
describe-function
|
What does this function do?
| |
C-h v Help
Describe
Describe Variable
|
describe-variable
|
What does this variable mean, and what is its value?
| |
C-h m Help
Describe
Describe Buffer Modes
|
describe-mode
|
Tell me about the modes the current buffer is in.
| |
C-h b Help
Describe
List Key Bindings
|
describe-bindings
|
What are all the key bindings for this buffer?
| |
C-h a Help
Search Documentation
Find Commands by Name
|
apropos-command
|
What commands include this word?
| |
(none)
Help Search
Documentation Find Options by
Name
|
apropos-variable
|
What variables include this regular expression?
| |
(none)
Help Search
Documentation Find Any Object by
Name
|
apropos
|
What functions and variables involve this regular expression?
|
Table E-24. Documentation help commands (Chapter 14)|
Keystrokes
|
Command name
|
Action
|
|---|
|
C-h t Help
Emacs Tutorial
|
help-with-tutorial
|
Run the Emacs tutorial.
| |
C-h i
|
info
|
Start the Info documentation reader. If prefaced with C-u, reads an Info file of your choice.
| |
C-h r Help
Read the Emacs Manual
|
info-emacs-manual
|
Open the Emacs manual.
| |
C-h K Help
More Manuals
Find Key in Manual
|
Info-goto-emacs-key-command-node
|
Start Info documentation reader at the node that discusses this key
sequence.
| |
(none)
Help Search
Documentation Look Up Subject in
User Manual
|
emacs-index-search
|
Search the index of the Emacs user manual.
| |
C-h p
|
finder-by-keyword
|
Invoke a menu that lets you get information about Emacs Lisp packages
available on your system.
|
Table E-25. Important modes|
Mode
|
Function
|
|---|
|
fundamental-mode
|
The default mode
| |
text-mode
|
Major mode for writing text (Chapter 2)
| |
outline-mode
|
Major mode for writing outlines (Chapter 7)
| |
picture-mode
|
Major mode for creating ASCII drawings using the keyboard (Chapter 7)
| |
html-mode
|
Major mode for writing HTML (Chapter 8)
| |
sgml-mode
|
Major mode for writing SGML and XML (Chapter 8)
| |
latex-mode
|
Major mode for formatting files for TEX and LATEX (Chapter 8)
| |
c-mode, c++-mode
|
Major mode for writing C and C++, and Java programs (Chapter 9)
| |
java-mode
|
Major mode for writing Java programs (Chapter 9)
| |
perl-mode, cperl-mode
|
Major modes for writing Perl programs (Chapter 9)
| |
sql-mode
|
Major mode for interacting with databases using SQL (Chapter 9)
| |
emacs-lisp-mode
|
Major mode for writing Emacs Lisp functions (Chapter 9 and Chapter 11)
| |
lisp-mode
|
Major mode for writing Lisp programs (Chapter 9 and Chapter 11)
| |
lisp-interaction-mode
|
Major mode for writing and evaluating Lisp expressions (
Chapter 9 andChapter 11)
| |
auto-fill-mode
|
Minor mode that enables word wrap (Chapter 2)
| |
overwrite-mode
|
Minor mode that replaces characters as you type instead of inserting
them (Chapter 2)
| |
flyspell-mode
|
Minor mode for flyspell spell-checker (Chapter 3)
| |
flyspell-prog-mode
|
Minor mode for spell-checking programs with flyspell (Chapter 3)
| |
abbrev-mode
|
Minor mode for word abbreviations (Chapter 3)
| |
artist-mode
|
Minor mode for creating ASCII drawings using the mouse (Chapter 7)
| |
font-lock-mode
|
Minor mode for highlighting text in colors and fonts (Chapter 9)
| |
vc-mode
|
Minor mode for using version control systems (Chapter 12)
|
|


In formalized mathematics definitions and proofs are written in a computer language so that they can be formally verified by a machine. This project uses the Isabelle/Isar theorem prover as the language and proof checker. Isabelle is a generic theorem prover that supports several logical frameworks. IsarMathLib uses the ZF logic which implements Zermelo-Fraenkel (untyped) set theory.
The current release contains over 2000 facts and 150 definitions in algebra (groups, rings and fields), general topology and other areas of mathematics. In addition, about 1200 facts and 600 proofs have been translated from Metamath. Release 1.0.0 finished formal verification of a construction of real numbers from the group of integers described for example in R. D. Arthan: "The Eudoxus Real Numbers", N. A'Campo: "A natural construction for the real numbers" and R. Street et al.: "The Efficient Real Numbers".
IsarMathLib is also about readable presentations of formalized mathematics. One such experiment is the FormalMath.org site, which provides an HTML presentation of the most recent version of most of IsarMathLib theories. The official Isabelle generated proof document contains all theorems with formally verified proofs from the last release. The outline contains all theorems and comments, but does not contain the proofs. Isabelle generated HTML rendering can be browsed here.
Sometimes I write about IsarMathLib on my blog.
Q1: Why would anyone want to do formalized mathematics?
A: Because it is fun and a good exercise for your brain. Some people also believe that formalized mathematics can be useful.
Q2: Why Isabelle/Isar and not any of the other provers of the world?
A: The first reason is that the Isar syntax allows to write proofs that can be read and followed by anyone familiar with standard mathematical notation. The second reason is that Isabelle/Isar is free software, distributed under the modified BSD license. It can also be downloaded free of charge.
Q3: Why ZF logic?
A: Almost all mathematics I know about is based on the first order logic and Zermelo-Fraenkel set theory. This is what I was taught in high school and feels natural to me. I am sure other logical frameworks, like HOL, are interesting and useful, but someone would have to pay me money to make me twist my brain around HOL and its typed set theory.
Q4: How can I contribute?
A: Clone IsarMathLib, formalize some math and send a pull request to the IsarMathlib's repository on GitHub. The Style Guide provides information about the suggested writing style. If you submit a theory file the copyright of that theory file will be assigned to you. Single theorems will be attributed in the proof document. I may edit your submission and move the theorems to different theory files.
This page was last modified August 02nd 2020.


The Last Mile
Catalysts of technology, business, and behavior
January 11, 2017
The term “Last Mile” has been used to describe the final leg of product supply chains and telecommunications networks that deliver products or services to consumers. In both instances, the ultimate beneficiaries aren’t able to realize the value of what is being delivered until the gap between users and suppliers is filled. It is a distribution problem. And one that is often the bottleneck of both supply chains and networks.
But the “Last Mile” and its problems aren’t limited to the topics or thinking presented above. I define the “Last Mile” as the innovations of technology, business, and behavior needed to catalyze future innovations and customer adoption.
Not only does that definition encompass the previous uses of the term, but it also enables a framework for looking at problems throughout the rest of the value chain. This framework can also be applied to the creation of products, not just their distribution.
Take the first metal tools, for example1. Making them required metal, initially copper, and a stone tool for forming. Since metals like copper are naturally occurring and stone tools had been around long before metal ones, the last mile problem was forming that metal into something useful. Even if copper had been discovered at the dawn of man, it wouldn’t have been as useful until the stone tool came along to form it. Therefore, stone tools can be seen as the last mile catalyst of metal tools - it was necessary that they come first.
That’s a crude example of the subject, but provides insight into the new Last Mile framework. It’s not only a question of distribution, but also one of foundation. What comes after is the result of something that came before2. Be it a technological breakthrough, new way of doing business, or shift in consumer sentiment.
This blog will serve as a record of my thoughts as I research and expound upon the different themes of the Last Mile. My goal is to explore the innovations of past and present, identify the last mile of the process, study the problems that had to be overcome, chronicle the solutions to those problems, and develop a system to identify the various routes to innovations of tomorrow.
-
This is a rough example of the concept, but it shows how the new Last Mile framework is not only applicable to various parts of the value chain, but also not limited to era of supply chains and telecom networks. ↩
-
On some level this may seem to contradict Perter Thiel’s Zero to One. However, in the first chapter, Thiel acknowledges, “No one can predict the future exactly, but we know two things: it’s going to be different, and it must be rooted in today’s world.” Additionally, if you take one of his first examples of going from 0 to 1, going from typewriter to word processor, you can see the roots of the innovation in the pre-word processor world. Even simplifying the concept, a word processor requires a computer and coding language upon which the software is built (both necessary precursors need as a foundation). Instead, the Last Mile framework coexists with 0 to 1 logic, because even revolutionary innovations are built with components rooted in today’s world. ↩


In June, 2020, I worked as teaching assistant (TA) for stochastic simulation at Technical University of Denmark. The course consists of 6 lecture days (3 hours lecture and 4 hours exercise per day) and a group project. Because of the COVID-19 pandemic, everything has to be done online, which made it harder for everyone.
Group Forming
There are three TAs in total, and we relied on a online registration platform to collect information on students’ questions and requests for help. The platform is made out of Google Forms and Google Sheets. Any student can fill a form, and it will appear immediately in a online sheet, which can be seen by TAs and the teacher. The platform helped a lot indeed, but we ignored the most important problem, forming groups.
In Denmark, most of the courses require students to form groups and write reports together. I always think the real reason is to reduce the number of reports that teachers must evaluate. There are 174 students registered this course, and a project report usually takes 40 minutes for one TA to read and write feedback. So to form groups is mandatory. Nevertheless, it is really challenging for students, international students especially, to find a group when the course is happening online. The teacher spent the whole first day helping students who don’t know others find a teammate. There should be some online platform to let students exhibiting their abilities and preferences and match them instead of doing manually. In my experience, to have reliable teammates is critical in obtaining a a high grad and even finish the course. The teacher told us that he would like students from the same major to form a group, because he believe that everyone relies on alumni in the same sector. I agree to some extent, and hope that they use the same programming language.
Tests
The most important thing I learnt during the preparation is to test the
implementation. I realised the power of validation when taking the econometrics
course (regression analysis and time series analysis) in Spring 2020, and . In
particular, I reproduced all the examples in
hendry2007econometric, so that my code for the final assignment
have been validated. In a similar manner, I did all the exercises from the
course again using
Python (MATLAB in 2019), wrote tests using unittest
Package. Last year, most
of the validation is done through asking TAs, but I managed to find test cases
from ross2017introductory and ross2012simulation
this time. This approach has boosted my confidence in my results, and I have
kept writing tests for all my repositories since then.
Another reason behind tests is that a large part of this simulation course is about validation. A real-world simulation program consists of multiple probability models that must be validated against data. There are two aspects, in my mind. First, the code must behave as expected and be robust enough. Mathematical simulation is code-intensive, but I found most of the students didn’t have enough experience with coding. The coding skill, I believe, is as important as writings, and others can hardly help if someone is unable to maintain about 1000 lines of code in a course like this.
The second step is to do statistical inference, which is even harder for those without such background knowledge. Last year, I had no idea as well, but tried my best to gain help from TAs. During the preparation, I realised that this was my first course that relies on scientific procedure, namely, hypotheses, experiment, and inference, even though with a background in thermal physics. My understanding was deepened when I answered questions, and it is discussed in the following two sections.
Key Points and Hints
Another key ability for this course besides the implementation, I think, is to read books. As far as I can remember, last year, my reading kept up with lectures. That is, I was able to go through corresponding sections in the textbook, which was not easy. Three-hours lectures were given everyday consecutively, so I had to read for many hours every night. Nevertheless, in my view, to have lots of patience with books can save the time.
This year, I found most students unable to grasp even the basic points. Most likely, they never read the recommended book, ross2012simulation. I do not think anyone can remember all the points mentioned by the teacher in the lecture. Even if there is a recording, it is hard to review the detail. In contrast, to highlight key points when reading is very easy and helps a lot in recap. I always remember the following advice of a physics teacher in my high school:
A lecture is the time when you think critically about the points emphasised by someone else, not when you learn something new.
Furthermore, it is impossible, I think, for someone to give step-by-step instructions for the implementation in terms of coding. There are many small-scale, specific issues that must be handled by the students in this course, and there are usually multiple ways to do a coding task. For example, to build a 2-D array for irregular sample space is a technique I thought of last year. Actually, to write code only takes a small portion of the project time, while how to write takes a lot of thinking. I tried my best to give hints, which had not been emphasised in the book, and most students were happy to take their time and think about my hints. To do something new by solving such manageable puzzles requires a deeper understanding of the task, which also gives students motivation for reading. On the other hand, the problem is not too open, and the students can always consult a well-written textbook or the teaching team.
Such idea played an important role, when I was designing a final project for the course, which is discussed in the following section.
100% Solar Energy Project
Each group had to choose one of the available projects as the final assignment. A real-world simulation project usually comes with context, and no available project was designed in the context of energy industry. I really like the “bottom-up” approach to simulate electricity consumption profiles [widén2010high]. The teacher agreed to let me design a new project based on that. One weekend is all the time I got to pull it off, but I decided to give it a try. My best friend in Denmark invited me for hot pot that weekend, because he was leaving Denmark for a PhD in Netherlands, but I have to say no. That is the first and probably the only project I design.
In the very beginning, I chose to publish the instruction on RPubs, which could be easily modified. In the mean time, to remind students of new contents, the “latest updates” section was put at the top of that webpage. I kept updating the whole webpage and received lots of valuable feedback.
To help them focus on the simulation part, I searched many websites, identified a reliable dataset, and transformed it into two compact CSV files. Actually, I am convinced that the transformation is the hardest part. After the deadline, I graded their reports, and was satisfied with their writing.
References
- Hendry, D. F., & Nielsen, B. (2007). Econometric modeling: a likelihood approach. Princeton University Press.
- Ross, S. M. (2017). Introductory statistics. Academic Press.
- Ross, S. M. (2013) Simulation, 5th edition. Academic Press. https://www.elsevier.com/books/simulation/ross/978-0-12-415825-2
- The syllabus at that time.
- Widén, J., & Wäckelgård, E. (2010). A high-resolution stochastic model of domestic activity patterns and electricity demand. Applied energy, 87(6), 1880-1892.
- On April 8, 2021, finished key points and hints for the first time.
- On April 9, 2021, finished 100% solar energy project for the first time and updated the “hints” part in key points and hints.


2012-05-24 version 1.3.0
- update clear_vars() in Base by use of Ruby metaprogramming, this trick avoids repetitive overriding it in each derived subclass
- re-organize LasVegasFilter, LasVegasIncremental and Random into algo_both/, since they are applicable to dataset with either discrete or continuous features, even with mixed type
- update data_from_csv() so that it can read CSV file more flexibly. note by default, the last column is class label
- add data_from_url() to read on-line dataset (in CSV, LibSVM or Weka ARFF file format) specified by a url
2012-05-20 version 1.2.0
- add KS-Test algorithm for continuous feature
- add KS-CCBF algorithm for continuous feature
- add J-Measure algorithm for discrete feature
- add KL-Divergence algorithm for discrete feature
- include the Discretizer module for algorithms requiring data with discrete feature, which allows to deal with continuous feature after discretization. Those algorithms requiring data with continuous feature now do not include the Discretizer module
2012-05-15 version 1.1.0
- add replace_by_median_value! for replacing missing value with feature median value
- add replace_by_knn_value! for replacing missing value with weighted feature value from k-nearest neighbors
- replace_by_mean_value! and replace_by_median_value! now support both column and row mode
- add EnsembleSingle class for ensemble feature selection by creating an ensemble of feature selectors using a single feature selection algorithm
- rename Ensemble to EnsembleMultiple for ensemble feature selection by creating an ensemble of feature selectors using multiple feature selection algorithms of the same type
- bug fix in FileIO module
2012-05-08 version 1.0.1
- modify Ensemble module so that ensemble_by_score() and ensemble_by_rank() now take Symbol, instead of Method, as argument. This allows easier and clearer function call
- enable select_feature! interface in Ensemble module for the type of subset selection algorithms
2012-05-04 version 1.0.0
- add new algorithm INTERACT for discrete feature
- add Consistency module to deal with data inconsistency calculation, which bases on a Hash table and is efficient in both storage and speed
- update the Chi2 algorithm to try to reproduce the results of the original Chi2 algorithm
- update documentation whenever necessary
2012-04-25 version 0.9.0
- add new discretization algorithm (Three-Interval Discretization, TID)
- add new algorithm Las Vegas Filter (LVF) for discrete feature
- add new algorithm Las Vegas Incremental (LVI) for discrete feature
2012-04-23 version 0.8.1
- correct a bug in the example in the README file because discretize_by_ChiMerge!() now takes confidence alpha value as argument instead of chi-square value
2012-04-23 version 0.8.0
- add new algorithm FTest (FT) for continuous feature
- add .yardoc_opts to gem to use the MarkDown documentation syntax
2012-04-20 Tiejun Cheng<EMAIL_ADDRESS>- update to version 0.7.0
2012-04-19 Tiejun Cheng<EMAIL_ADDRESS>- add new algorithm BetweenWithinClassesSumOfSquare (BSS_WSS) for continuous feature
- add new algorithm WilcoxonRankSum (WRS) for continuous feature
2012-04-18 Tiejun Cheng<EMAIL_ADDRESS>require the RinRuby gem (http://rinruby.ddahl.org) to access the statistical routines in the R package (http://www.r-project.org/)
because of RinRuby (and thus R), removed the following modules or implementations: RubyStats (FishersExactTest.calculate, get_icdf) and ChiSquareCalculator


About the Project
This project was built in March 2015 at a weekend hackathon called
Apps for Democracy.
It's not affiliated with any political party or faction; rather, its purpose is simply transparency.
What's Next
We'd love to add more data and features to this site. We've thought of
a few ideas
but we'd love to hear yours. Tell us!
Contributing
There's always room on the team. We can use help in several ways
- Research - Searching google for photos, contact info, news stories, and anything else interesting, and then adding them to a spreadsheet
- Writing - How can we best explain the ward and committee system to the general public?
- Data Analysis - There's a lot of data out there. Some of it just needs some basic extracting/analysis to be added to the app.
- Design - How can we improve the user experience of the site?
- Development - Adding features and functionality requires front-end coding
Join us at the weekly
Code for Philly meetup, dive into the
source code, or join the conversation around
pending issues.
The Team
Philly Ward Leaders is now maintained by Committee of Seventy
Sources
We used several official data sources and a lot of research on google for the rest. The combined data was put into a
spreadsheet
that powers this site.


Gateway
BOT
15-Apr-19 06:08 PM
[dscrd-hush] <dukeleto> @ComputerGenie - ChickenPool xanax + coffee = enlightenment?
[dscrd-hush] <ComputerGenie - ChickenPool> chillax
[dscrd-hush] <dukeleto> @Matthias good question, Agama seeds from old HUSH will work on new HUSH3
(edited)
[dscrd-hush] <dukeleto> Many things are happening folks, Thanks For Your Patience
[dscrd-hush] <dukeleto> The airdrop is being tested thoroughly, this is not something that can be easily fixed if there is an error in the script.
[dscrd-hush] <dukeleto> So I will do a test airdrop on a testchain, and make sure it does exactly what I think it should. If it does, then that same exact script gets run against mainnet
[dscrd-hush] <dukeleto> everything will be publicly verifiable, open source, open data, all that good stuff
[dscrd-hush] <dukeleto> Anything else is uncivilized
[dscrd-hush] <dukeleto> This is a good time to be mining, if you believe in HUSH. Some CPU miners made some really good money yesterday! Many pools have not yet switched, so if you are an early adopter, you get a lot more block reward right now
[dscrd-hush] <dukeleto> Many people are still mining the old legacy Hush chain, all their hashrate going the wrong place helps all the miners on the current mainnet
[dscrd-hush] <dukeleto> Just some thoughts for the small-time miners, like myself
[dscrd-hush] <dukeleto> Also, for people JUST maybe thinking about ASICs: Everybody is getting rid of their z9m's for almost NOTHING! And yes, they are old and not competitive against brand new asics. But for ~$200 you could be mining HUSH with an asic, and you also have the option to switch to KMD, ZEN, ZEC or various other coins. It's cheaper than a mid-range GPU to get into equihash asic mining. These machines were something like $2000 when they were new
Find great deals on eBay for z9 mini batch 1. Shop with confidence.
[dscrd-hush] <dukeleto> uh oh, CG is typing
[dscrd-hush] <ComputerGenie - ChickenPool> z9m's for almost NOTHING
depends on perspective, imo anything over $200 landed is too much given the new ones about to push out
[dscrd-hush] <dukeleto> I wouldn't pay more than $250ish for a z9m these days, but if you can get a real Bitmain PSU, those are worth about $100 new by itself
[dscrd-hush] <dukeleto> z9m is amazing device to learn on, super cheap
[dscrd-hush] <ComputerGenie - ChickenPool> yes with psu is definitely worth more
[dscrd-hush] <dukeleto> Some people are selling batch 1 z9m with PSU for really good prices, to get rid of them. It's a good buy for a beginner miner
[dscrd-hush] <dukeleto> you can also use an old desktop PSU you have laying around, if you want to save money. But Bitmain PSU will be more efficient, and use less electricity
[dscrd-hush] <dukeleto> Z11 is compatible with HUSH, but good luck getting one
[dscrd-hush] <dukeleto> I suggest used A9 or A9+ from ebay, if you have more funds
[dscrd-hush] <ComputerGenie - ChickenPool> imo, for anyone looking ahead to expand, server PSUs with breakoutboard is the next best thing if you don't have an old PSU (far more options with them than a BM PSU)
[dscrd-hush] <dukeleto> A9 is the better financial move, but will cost around $1500 last I checked. z9m is super cheap and will teach you about ASICs without breaking the bank
[dscrd-hush] <ComputerGenie - ChickenPool> and for anyone looking to get in and stay in, the A9++ is key
[dscrd-hush] <dukeleto> if you have super cheap power, z9m is fine, but if not, the power efficiency of better miners is very important
[dscrd-hush] <dukeleto> @ComputerGenie - ChickenPool do they have automated website ordering yet?
[dscrd-hush] <dukeleto> or do I have to fax a pigeon in China?
[dscrd-hush] <ComputerGenie - ChickenPool> still same setup
[dscrd-hush] <ComputerGenie - ChickenPool> form/email
[dscrd-hush] <dukeleto> I don't like the risk of paying tariffs, either
[dscrd-hush] <dukeleto> if you buy on Ebay, no tariff risk
[dscrd-hush] <dukeleto> I payed a surprise $300 tariff on my batch 2 z9m
[dscrd-hush] <dukeleto> :carlos:
[dscrd-hush] <ComputerGenie - ChickenPool> the "best" option boils down to 2 things
budget
hobby vs profession
[dscrd-hush] <ComputerGenie - ChickenPool> each having its different "best"
[dscrd-hush] <dukeleto> agreed
[dscrd-hush] <ComputerGenie - ChickenPool> fwiw, I still have a wall of GPUs and a wall of minis and the GPUs are comming back on line this weekend


I will be there with you in your heart and soul whenever you seek me. I love you.
always.
ZEF


Nodes can be rendered with checkboxes if the checkable
property is true. The default is false
and can be specified per node in the JavaScript array or for the entire tree for the DuxTree
component. The defaultChecked
property on a node specifies if the node should be checked when that
node is initialized.
For the purpose of this discussion a node is defined as an item with no children. A folder is defined as an item with children consisting of nodes and/or additional folders. Nodes with checkboxes are bi-state, either checked or unchecked. Folders are tri-state: checked, unchecked, or indeterminate. If a folder is checked, that means all descendant nodes are also checked. If a folder is unchecked, all descendant nodes are also unchecked. Indeterminate indicates some descendant nodes are checked, but not all. If the user interacts with the folder's checkbox, that changes the check state of all descendants. If the folder is unchecked or indeterminate, all descendant nodes are checked. If the folder is checked, all descendant nodes are unchecked.
By default, DuxTree
renders checkboxes using HTML <input>
tags. Of course, this
affects appearance in different browsers. If desired, you can specify a JSX component to use instead. This is
done with the checkboxChecked
, checkboxUnchecked
, and checkboxIndeterminate
properties to DuxTree
. Here is an example using Google's Material Icons:
<DuxTree data={treeData} checkable={true} checkboxUnchecked={check_box_outline_blank} checkboxChecked={check_box} checkboxIndeterminate={indeterminate_check_box} />
Below are two example trees. The first is rendered with the browser's <input>
tags. The
second tree is rendered using Google Material Icons.


--- layout: post title: Soap Video date: '2016-01-05 15:53:28 -0500' categories: - Movies tags: [] comments: [] ---
I made a video explaining how soap works. Here she is:


Depression and stroke
Strokes are caused when your brain loses its blood supply. This often happens because of a blood clot that is blocking the passage of blood through an artery. People who’ve had a stroke often report feeling symptoms of depression. Post-stroke depression is the most frequentTrusted Source psychiatric complication of stroke. Almost a third of those who’ve had a stroke develop depression. However, most of cases of depression after stroke aren’t diagnosed. Doctors may overlook checking for depression signs. People who have had a stroke can either hide the symptoms or not be aware of them. A caregiver can give great insight and help identify depression early. Depression can affect a person’s quality of life. It can also make it more difficult to recover from a stroke. Depression can also increase the risk of cardiovascular disease, which in turn increases the risk of experiencing another stroke. Mortality rates are 10 times higher in people who experience depression after a stroke. Post-stroke depression can be managed with treatment. ResearchTrusted Source suggests that mental function is improved in people who are treated for depression.
Risk factors for depression after a stroke
You’re more likely to have depression after a stroke if you: had a previous mental illness are female had a previous condition that affected how you think, such as a traumatic brain injury had previous functional difficulties, such as those that may be caused by Parkinson’s disease or other neuromuscular disorders live alone Strokes that cause a high degree of physical disability and neurological problems also raise your risk. For example, if you develop aphasia after a stroke, you’re more likely to become depressed. Aphasia reduces your ability to talk and understand words.
Symptoms of post-stroke depression
Every case of post-stroke depression can have different symptoms and duration. Most symptoms appear between three to six months after a stroke. However, the onset can be as early as a month and as late as several years after a stroke. This difference in onset times may be due to two factors — biochemical changes that occur in the brain following a stroke and changes in mood and personality that occur over time. The latter may result from:- social circumstances, such as loneliness, lack of social interaction
- genetics
- limitations in physical and mental abilities following the stroke If you’re the caregiver of a person who has recently suffered a stroke, watch out for these nine symptoms:
- continuous feelings of sadness and
- loss of interest in normally pleasurable activities
- feelings of worthlessness and hopelessness
- fatigue
- difficulty focusing and irritability
- disturbed sleep patterns, such as sleeping too much or too little
- loss of appetite or overeating
- reduced interest in spending time with friends and family
- suicidal thoughts


PART VII. GENERAL VIOLATIONS AND PROSECUTIONS
§281-101 Manufacture or sale without license; penalty. If any person, acting in person or by or through any agent, servant, or employee, manufactures or sells any liquor, either directly or indirectly, or upon any pretense or by any subterfuge, except as authorized pursuant to this chapter, the person shall be fined not more than $2,000 or imprisoned not more than one year, or both. [L Sp 1933, c 40, §62; RL 1935, §2630; RL 1945, §7282; RL 1955, §159-100; HRS §281-101; gen ch 1985; am L 1990, c 171, §31]
Case Notes
Sale without a license. 37 H. 1.


Creating a Cross-Platform Console App with DNX¶
By Steve Smith
Using the .NET Execution environment (DNX), it’s very easy to run a simple console application.
- In this article:
You can view and download the source from the project created in this article.
Creating a Console App¶
- Before you begin, make sure you have successfully installed DNX on your system:
Open a console or terminal window in an empty working folder, where dnx
is configured.
Creating a console application is extremely straightforward. For this article, we’re going to use the following C# class, which has just one line of executable code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace ConsoleApp1
{
public class Program
{
public void Main(string[] args)
{
}
}
}
|
It really doesn’t get any simpler than this. Create a file with these contents and save it as Program.cs
in your current folder.
Specifying Project Settings¶
Next, we need to provide the project settings DNX will use. Create a new project.json
file in the same folder, and edit it to match the listing shown here:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | {
"version": "1.0.0-*",
"description": "ConsoleApp1 Console Application",
"authors": [ "tarcher" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
},
"commands": {
"ConsoleApp1": "ConsoleApp1"
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23409",
"System.Collections": "4.0.11-beta-23409",
"System.Console": "4.0.0-beta-23409",
"System.Linq": "4.0.1-beta-23409",
"System.Threading": "4.0.11-beta-23409"
}
}
}
}
|
The project.json
files defines the app dependencies and target frameworks in addition to various metadata properties about the app. See Working with DNX Projects for more details.
Save your changes.
Running the App¶
At this point, we’re ready to run the app. You can do this by simply entering dnx run
from the command prompt. You should see a result like this one:
Note
The dnx
command is used to execute a managed entry point (a Program.Main
function) in an assembly. By default, the dnx run
command looks in the current directory for the project to run. To specify a different directory, use the –project switch.
You can select which CLR to run on using the .NET Version Manager (DNVM). To run on CoreCLR first run dnvm use [version] -r CoreCLR
. To return to using the .NET Framework CLR run dnvm use [version] -r CLR
.
You can see the app continues to run after switching to use CoreCLR:
The dnx
command references several environment variables, such as DNX_TRACE
, that affect its behavior.
Set the DNX_TRACE
environment variable to 1, and run the application again. You should see a great deal more output:
Summary¶
Creating and running your first console application on DNX is very simple, and only requires two files.


<b> tag (inline): This text should be bold
<big> tag (inline): This text must be big
<hr> tag (block): There must be a line below this
<i> tag (inline): This text must be italic
<small> tag (inline): This text must be small
<sub> tag (inline): subscript
<sup> tag (inline): superscript
<tt> tag (inline): This text must be monotype


LAW KARINGITHI |
SOFTWARE ENGINEER |
A skilled, passionate and determined software engineer with an objective to develop technical solutions for problems faced in africa
Educational Background
Where I have worked
Projects Involved In


The AutoCAD Maker's club offers the ability to experience the design process to create and model objects. Drawing, drafting, modelling, 3D printing and prototyping is The mission/purpose of the CAD Maker’s Club to expose and bring forward CAD and related programs to familiarize students with the process of design and creation. Those already in the CAD field can explore this process to begin to 3D-printor otherwise produce prototype ideas and begin to better understand how this field related to real world disciplines. With CAD software and 3-D printers, we can expand upon the existing CAD courses.
- Draven EspinalPresident
- Robert BrummertVice-President
- Luis PacquingTreasurer
- Samuel BreznerSecretary
- Marie Antonio
- David Adams
- Elias Joyce
- Kyle Dunnigan
- Danyalle Lieman
- Ed Dietrich
- Akiva Davidson
- Kyle Griggs
- Stephanie Rodriguez
- Brandy Bell
- John Doe AlexanderOrganizer
Interested in joining?
Membership in the CAD Maker’s Club is open to all currently enrolled students at RCC. The organization welcomes all students to attend meetings and events. Active members must sign the membership list and attend two meetings per month.


300 SRT Pacer: Chrysler Valiant tribute special revealed
The Pacer is only a tribute for now, but a production version is in the works for Australia.
by Scott Collie- shares
Chrysler has cranked up the nostalgia on its 300 SRT Core, revealing a Pacer tribute paying homage to to the 1969 Chrysler Valiant Pacer.
At the moment it's only a tribute, but Chrysler will actually put a version of the Pacer into production for Australia – it'll be a "limited edition" and "released soon", but no further details have been revealed.
The original Chrysler Valiant Pacer was built in Adelaide, aimed at muscle car fans who wanted to go fast – well, fast by 1969 standards – on a budget. Power came from a 'slant six' engine making 130kW, mated with a three-speed manual transmission.
The modern equivalent is far more powerful. There's a HEMI V8 engine under the bonnet, pumping out 350kW and 637Nm, hooked up to an eight-speed automatic transmission. That's more than double the power, and almost triple the gears.
Linking the two is the Wild Yellow body colour, black side stripes, silver mirror caps, and red highlights. There's a healthy smattering of Pacer 392 badges, too.
"We’re excited to bring to life a modern interpretation of an Australian classic, the Chrysler 300 SRT Pacer tribute car," said Guillaume Drelon, director of product for Chrysler Australia.
"Highlighting the signature details of the original, the Pacer tribute takes inspiration from the iconic design cues of the celebrated 1969 Valiant Pacer."
Given it's based on the 300 SRT Core, it appears likely the production Pacer will miss out on niceties like adaptive damping, leather seats, and the full suite of Fiat Chrysler's semi-autonomous safety systems.
Chrysler proudly trumpets the fact the Core is "the last affordable V8 powered rear wheel drive sedan still available in Australia", given the death of local manufacturing.
Chrysler Valiant operated between 1962 and 1981 in Australia, manufacturing cars for the local market – although they were also exported to New Zealand, South Africa, and some south-east Asian countries.
Chrysler was considered part of a 'big three' alongside Ford and Holden at one point, before it ended production in 1981, handing over its manufacturing operation to Mitsubishi.
Part of its old engine plant in Tonsley Park is now a South Australian Government hub for autonomous vehicle development.
1
8
nextprevious
300 SRT Pacer: Chrysler Valiant tribute special revealed


--- layout: page title: About header-img: "img/about-bg.png" ---
Looking to combine my love for the artistic with my love for the technical, follow along with me as I learn to code.


Nodex
Nodex
is a OTP Application which will take care of your connected nodes. It will
connect to a given node, reconnect if the connection is lost and will help you with some
some issues like ip resolution or launching custom functions just after the connection
with the node is done.
Check the Documentation.
Installation
Add nodex
to your list of dependencies in mix.exs
:
def deps do
[{:nodex, git: "git: "https://github.com/mendrugory/nodex.git"}]
end
Connection
iex> Nodex.connect(%Nodex.Node{app_name: :app, host_address: "my.host"})
In Nodex.Node
can be also specified the reconnection time and a function
that will be executed just after the connection with the node is done. This function is very
useful if you need to log or save some information in the local node or execute any function, like a registration, in the connected node. This function will receive the name of the connected node as argument.
iex> remote_procedure = fn(node_name) -> my_function(node_name) end
iex> remote_procedure2 = {MyModule, :my_func} # Or a tuple with the module and the function
iex> Nodex.connect(%Nodex.Node{app_name: :app, host_address: "my.host", fun_after_conn: remote_procedure, reconnection_time: 10_000})
Nodex.NodesWatcher
s are the processes that deal with the connected nodes. If you don’t specify any, it will work with the default one.
iex> Nodex.connect(%Nodex.Node{app_name: :app, host_address: "my.host"}, :my_nodes_watcher)
Start a NodesWatcher
Altough Nodex
could work with only one Nodex.NodesWatcher
(the default one is up and running after the app is initialized) and it would be enough for most of the distributed applications, some of them with a lot of connected nodes need a better structure. This improvement can be achieved groping the nodes in different Nodex.NodesWatcher
s.
iex> Nodex.start_nodes_watcher(:my_nodes_watcher)
Stop a NodesWatcher
iex> Nodex.stop_nodes_watcher(:my_nodes_watcher)
Start from Configuration
It is possible to start up your Nodex.NodesWatcher
s and connect to the nodes if you specify
it in the config files:
config :nodex,
nodes: %{
nodes_watcher1: [
%{app_name: :my_app1,
host_address: "www.example1.com",
fun_after_conn: {MyModule1, :my_fun_1}
}
],
nodes_watcher2: [
%{app_name: :my_app2,
host_address: "www.example2.com",
fun_after_conn: {MyModule2, :my_fun_2},
reconnection_time: 2_000
}
]
}
app_name
and host_address
are mandatory.
Test
- Run the tests.
mix test
Docs
- Create documentation.
mix docs


{% extends "base.html" %} {% block addTitle %}
The answers to these questions will help us support your integration project.


Can a linear model reproduce a Welch t-test?
This doodle was motivated Jake Westfall’s answer to a Cross-Validated question.
The short answer is yes but most R scripts that I’ve found on the web are unsatisfying because only the t-value reproduces, not the df and p-value. Jake notes the reason for this in his answer on Cross-Validated.
To get the adjusted df, and the p-value associated with this, one can use the emmeans package by Russell Lenth, as he notes here. Compare Tables 1 and 2 below to see how this adjustment can matter.
 I’ve also included the emmeans functions to generate the t-test using the gls model output.
set.seed(497203)
dat <- data.frame(group=rep.int(c("A","B"), c(10,20)),
y = rnorm(30, mean=rep.int(c(0,1), c(10,20)), sd=rep.int(c(1,2),c(10,20))))
# the t-statistic assuming equal variances
t.student <- t.test(y ~ group, data = dat, var.equal = TRUE)
m1 <- lm(y ~ group, data = dat)
# the t-statistic not assuming equal variances
t.welch <- t.test(y ~ group, data = dat, var.equal = FALSE)
m2 <- gls(y ~ group, data = dat,
weights=varIdent(form = ~ 1 | group))
m2.emm <- contrast(emmeans(m2, specs="group"))
t_table <- data.table(rbind(
c("Student t", reglance(t.student)),
c("lm", reglance(m1)),
c("Welch t", reglance(t.welch)),
c("gls", reglance(m2)),
c("emmeans", reglance(m2.emm))
))
colnames(t_table) <- c("method", "df", "t", "p")
knitr::kable(t_table, caption="Original fake data")
| method | df | t | p |
|---|---|---|---|
| Student t | 28 | -1.55068268697165 | 0.132208346462522 |
| lm | 28 | 1.55068268697165 | 0.132208346462522 |
| Welch t | 27.6771984386631 | -1.87241001836005 | 0.0717506959077031 |
| gls | 28 | 1.87241001838309 | 0.0716278864212684 |
| emmeans | 27.6856538252465 | -1.87241001838309 | 0.071747442401355 |
The values aren’t rounded because I want to see how close the gls and Welch t are. As Jake notes, the GLS model doesn’t use the Satterthwaite df, so only the t reproduces. That said, in this example, the non-adjusted and Satterthwaite df are very close. Consequently, in this example, the difference in p-values are trivial with respect to how we might interpret a result. The emmeans computation of the df and p-value are not equal but are satisfyingly close to those of the Welch t, at least for me, and at least in this example.
Fake data with small n
Here I repeat Jake’s example but with a smaller sample and I reverse which sample is associated with the larger variance.
set.seed(497203)
n1 <- 8
n2 <- 4
dat <- data.frame(group=rep.int(c("A","B"), c(n1,n2)),
y = rnorm(n1+n2, mean=rep.int(c(0,1), c(n1,n2)), sd=rep.int(c(1,2),c(n1,n2))))
# the t-statistic assuming equal variances
t.student <- t.test(y ~ group, data = dat, var.equal = TRUE)
m1 <- lm(y ~ group, data = dat)
# the t-statistic not assuming equal variances
t.welch <- t.test(y ~ group, data = dat, var.equal = FALSE)
m2 <- gls(y ~ group, data = dat,
weights=varIdent(form = ~ 1 | group))
m2.emm <- contrast(emmeans(m2, specs="group"))
t_table <- data.table(rbind(
c("Student t", reglance(t.student)),
c("lm", reglance(m1)),
c("Welch t", reglance(t.welch)),
c("gls", reglance(m2)),
c("emmeans", reglance(m2.emm))
))
colnames(t_table) <- c("method", "df", "t", "p")
knitr::kable(t_table, caption="Small n fake data")
| method | df | t | p |
|---|---|---|---|
| Student t | 10 | -2.3012090076821 | 0.0441633525165716 |
| lm | 10 | 2.3012090076821 | 0.0441633525165716 |
| Welch t | 3.91598345952776 | -1.87308830595972 | 0.135881711655436 |
| gls | 10 | 1.87308831515667 | 0.0905471567272453 |
| emmeans | 3.9158589862009 | -1.87308831515667 | 0.13588402534431 |
In this example, the lack of the Satterthwaite adjustment of the df matters. The emmeans computation of the df and p-value is very satisfying.


Salmon Cookie Stands
Cookie Stand Data Submission
New Location
Minimum Customers Per Hour
Maximum Customers Per Hour
Average Cookies Per Customer
Add


Before we sign a contract or write a line of code, our team will spend the necessary time to understand
your product vision.
The outcome of this scoping session is propasal or high level statement work.
Based on your requirement we can provide a complete offering or just the pieces you need.
DESIGN
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing. Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
DEVELOPMENT
All engineers are fluent in the latest enterprise, mobile and web development technologies. They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
PRODUCT MANAGEMENT
Planning and development is iterative. Because we are constantly coding and testing, the products we build are always ready to go live. This iterative process allows for changes as business requirements evolve.
PORTFOLIO
Project 1
Project 2
Project 3
Project 4
project 5
project 6
project 7
project 8
CONTACT US


MGLEd
MGLEd is a tiny game editor, for making small games really fast.
It is based on a library called MGL.coffee, by Kenta Cho.
You can check out a tutorial for making a game with it at the github page, and just dive right into the editor and start working with it.


MIHAN tiger to be captured: Maharashtra Forest Department
by Vivek DeshpandeWritten by Vivek Deshpande | Nagpur | Updated: December 9, 2019 2:25:58 pm
The dead tiger near Ramtek. (Express Photo)
The Forest department has decided to capture the tiger that strayed into the Multimodal International Hub Airport at Nagpur (MIHAN).
“We had sought permission to tranquilise and capture the tiger, which has been granted by Principal Chief Conservator of Forest (Wildlife) Nitin Kakodkar,” said Prabhunath Shukla, Nagpur Deputy Chief Conservator of Forest.
The tiger was first seen about two weeks ago near the land behind Infosys campus in the Special Economic Zone of MIHAN. After a brief stay, it left the place and was spotted in MIHAN two days ago. The tiger had made at least two cattle kills in the area. “…The tiger has left MIHAN again and is believed to have walked towards Mohfuli village, which is a little away from Khadka village, where it travelled to in its earliest retreat from MIHAN,” Shukla said.
For all the latest India News, download Indian Express App
0 Comment(s) *
* The moderation of comments is automated and not cleared manually by indianexpress.com.


Atoms are the building blocks of matter. They are the basis of all the structures and organisms in the universe. The planets, the sun, grass and trees, the air we breathe, and people are all made up of different combinations of atoms. The idea of atoms was invented by two Greek philosophers, Democritus and Leucippus in the fifth century BC. The Greek word ατoµoν (atom) means indivisible beacause they believed that atoms could not be broken down into smaller pieces. However, the discovery of the fact that an atom is actually a complex system and can be broken into pieces was the most important step and pivoting point in the development of modern physics!
Nowadays, we know that atoms are made up of a positively charged nucleus in the centre surrounded by orbiting negatively charged electrons. However, in the past, before the structure of the atom had been discovered, scientists came up with lots of different models or pictures to describe what atoms look like.
After the electron was discovered (by J.J. Thomson in 1897), people realised that atoms were made up of even smaller particles and the plum pudding model was proposed. In this picture, atoms are thought of as the negative electrons floating in a soup of positive charge like plums in a pudding or raisins in a fruit cake!
Some years later, it was discovered (by Rutherford in 1911) that atoms have a positively charged nucleus (centre) with the negative electrons moving around it. This proved that the plum pudding model was wrong and scientists then pictured the atom like a mini solar system where the electrons orbit the nucleus like planets orbiting around the sun. There were some problems with this model. For example it could not explain the very interesting observation that atoms only emit light at certain wavelengths or frequencies. Niels Bohr solved this problem by proposing that the electrons could only orbit the nucleus in certain special orbits with particular energies i.e. energy levels. The exact energies of the orbitals depends on the type of atom, for example Helium has different energy levels to Carbon. If an electron jumps down from a higher energy level (or orbital) to a lower energy level, then light is emitted from the atom. The energy of the light emitted is the same as the gap in the energy between the two energy levels.
So far, we have discussed that atoms are made up of a nucleus surrounded by one or more electrons.
The electron is a very light particle. It has mass of 9.11x10^-31kg! Currently, scientists believe that the electron can be treated as a point particle or elementary particle meaining that is cannot be broken down into anything smaller.
Unlike the electron, the nucleus can be broken up into smaller building blocks: protons and neutrons. Collectively the protons and neutrons are called nucleons.
The chemical properties of an element are determined by the charge of its atomic nucleus, i.e. by the number of protons. This number is called the atomic number and is denoted by the letter Z . The mass of an atom depends on how many nucleons its nucleus contains. The number of nucleons, i.e. the total number of protons plus neutrons, is called the atomic mass number and is denoted by the letter A. Standard notation shows the chemical symbol, the mass number and the atomic number as follows:
The only person who is educated is the one who has learned how to learn and change.


Automatically seed sites?
Seed a site for how long?
4 hours
12 hours
24 hours
5 days
30 days
Trust the following keys.
Save
Reset


GRAINS-Corn rebounds from 1-month low as U.S. harvest pace lags
SYDNEY, Nov 19 (Reuters) - U.S. corn futures on Tuesday rebounded from a one-month low touched in the previous session, after the U.S. Department of Agriculture pegged the harvest pace below market expectations.
FUNDAMENTALS
* The most active corn futures on the Chicago Board Of Trade were up 0.2% at $3.68-1/2 a bushel, as of 0145 GMT, after settling down 0.9% on Monday when prices hit a Sept. 18 low of $3.67-1/2 a bushel.
* The most active soybean futures were up 0.1% at $9.11-1/2 a bushel. In the previous session, soybean futures closed down 0.9%, when prices hit an Oct. 4 low of $9.10 a bushel.
* The most active wheat futures were down 0.1% at $5.06-3/4 a bushel, having closed up 0.9% on Monday.
* The USDA said the U.S. corn harvest was 76% complete, slightly behind market forecasts.
* The U.S soybean harvest was pegged at 91% complete, matching market forecasts.
* A CNBC report cited that the mood in Beijing was pessimistic due to U.S. President Donald Trump's reluctance to roll back tariffs, dampening sentiment among global investors.
* Chinese state media had said Washington and Beijing held "constructive talks" on trade in a high-level phone call on Saturday that included Vice Premier Liu He, U.S. trade representative Robert Lighthizer and Treasury Secretary Steven Mnuchin.
MARKET NEWS
* The dollar nursed losses against major currencies on Tuesday as receding hopes for a preliminary trade deal between the United States and China hurt demand for the greenback.
* Oil prices fell more than 1% on Monday, erasing much of last week's gains and tumbling alongside U.S. stocks on uncertainty over a trade deal.
* Wall Street's three main indexes on Monday barely extended the previous session's closing records as investors waited for concrete progress on U.S.-China trade relations after mixed headlines.
(Reporting by Colin Packham, Editing by Sherry Jacob-Phillips)
© Copyright Thomson Reuters 2019. Click For Restrictions - http://about.reuters.com/fulllegal.asp


About
“FaaSification is the process of converting a code structure into a format which is executable on Function-as-a-Service.”
Josef Spillner
- Fast serverless prototyping and cloud-native application onboarding
- Helps developers get rid of the obligation to take care of their application infrastructure
- Charging by the provider for effective use of the application
- Application performance improvements
Tools
These tools help you transform your code into deployment-ready functions for the most popular providers
Projects & Events
Other ongoing FaaS- and FaaSification-related projects and events
Researchers
Researchers currently working on FaaS development
Leonardo Rebouças de Carvalho
University of Brasília, Brasília, Brazil
email
Curriculum
Blog
Aletéia Patrícia Favacho de Araújo
University of Brasília, Brasília, Brazil
email
Curriculum
Publications
Learn more about how to build FaaS applications by competent scientific research and magazine publications
Remote Procedure Call Approach using the Node2FaaS Framework with Terraform for Function as a Service.
Leonardo Rebouças de Carvalho and Aleteia Araújo
Vladimir Yussupov, Uwe Breitenbücher, Ayhan Kaplan and Frank Leymann
Leonardo Rebouças de Carvalho and Aleteia Araújo


FabLab Cept
PROCESSING
For interface and application programming, I decided to use Processing to generate a graphic from output generated from distance sensor.
So, my final project has distance sensor to detect motion around the system. So, I tried to show the proximity of object to the distance sensor by remapping the output derived from distance sensor to a graphical representation of 2 lines, where 1 line is constant, indicating the location of distance sensor and the other line moves indicating the movement of the object around the sensor.
In terms of electronics, I used the same board that I made for Networking. It was already programmed to give output in terms of distance in centimeters. I tried to make a processing code to interpret this number and move the line accordingly.
The code for Arduino can be found here.
Here is a range of screenshots demonstrating the process I tried.
I used FTDI cable to connect my board to the computer to transfer output distance values from distance sensor board to Processing. Here is a final video of my working code. You can find the code here.


{% extends 'base.html' %} {% block script %} {% endblock %} {% block content %}
Before we run the SpectreBack proof of concept, we need a way to observe the side-effects of the transient execution. The most popular one is a cache side channel. By timing a memory access, we can infer if a chosen address is in the cache (if the access is fast) or needs to be loaded from memory (if the access is slow). Later, we will use a Spectre gadget to access a JavaScript array using a secret value as the index. Testing which array index got cached will allow us to recover that secret value.
To be able to measure these small timing differences we need a high-precision timer. There is a great paper on this topic by Michael Schwarz, Clémentine Maurice, Daniel Gruss, and Stefan Mangard: "Fantastic Timers and Where to Find Them: High-Resolution Microarchitectural Attacks in JavaScript". One example they show is the use of a SharedArrayBuffer as a monotonic clock: increment a counter in a worker thread and read it from a second thread as a high precision timestamp. SharedArrayBuffers in particular are nowadays only available if the site is cross-origin isolated but there are many more timers described in that paper.
An alternative to using a high-precision timer is to amplify the timing difference. By triggering the code repeatedly and measuring the cumulative time, we can increase the time difference and use timers with lower precision. However, this introduces noise and can be difficult if the code to be measured is probabilistic.
In this proof of concept, we implemented the latter method with a trick that avoids triggering the code to be measured repeatedly. This method is inspired from the timer proposed by Stephen Röttger and Artur Janc and takes the order between two memory access to the same cache set as the input. For more details, check section 6.2 of the Hacky Racer paper.
For the demo, you can play with the "Cache timer repetitions" option in the menu on the right. It controls the number of iterations of step 3 above. If you increase the value, it will work with even lower precision timers but it will also take longer to run. Some rough example values and resulting timing differences:
| 4000: | 20us |
| 40000: | 200us |
| 400000: | 2ms |
The demo also serves as the timer calibration for the next examples. It will try to infer a good threshold automatically, but you can adjust it manually if it didn't work. Note that if you change the timer repetitions, you will have to re-run this calibration.
Click run to plot the results in the graph on the right. The X axis shows you the timer results. If everything works, there should be two clearly distinct peaks visible in the graph: a purple one on the left and a green one on the right. The measured timings if the cache line was not used by the code that is being tested are shown in purple. They should be faster on average. The green graph shows the timings if the cache line was used, so it leads to more L1 cache misses and becomes slower.
If the measurements fail, try modifying the parameters for the cache timer repetitions. And ensure the stable timer boxed is unticked as this option is only for the original timer in leaky.page and doesnot apply here. Another reason for failure can be high CPU load from other processes on the system.


Dataset workflow¶
To use a dataset for experiment, we first need to get the original data files from online access. Then some pre-processing may need to be performed on the raw data to get some processed files. The processed data will be loaded to memory for training. During training, the whole dataset is sliced into small batches and fed to the model iteratively. According to the workflow described above, a typical dataset workflow consists of 4 steps: downloading raw data, pre-processing raw data, loading data and iterating over it. The following figure illustrates this workflow:
For the first two steps, we need to specify the raw data and processed data file names. In Graph4NLP’s convention, similar to
PyG, the raw data file is stored under the raw
directory under
the dataset’s root directory. Similarly, the processed data file is stored under the processed
sub-directory.
class Dataset:
@property
def raw_dir(self) -> str:
"""The directory where the raw data is stored."""
return os.path.join(self.root, 'raw')
@property
def processed_dir(self) -> str:
return os.path.join(self.root, 'processed', self.topology_subdir)
On initializing a dataset object, the Dataset
class first checks if the raw files exist. If not, then the _download()
routine is triggered to download the raw data files.
After checking the raw data, Dataset
then checks if the processed files exist. If not, the _process()
routine is
triggered to process the raw data and save the processed files locally.
After these two steps, the remaining works can be reduced to a typical torch.Dataset
and torch.DataLoader
workflow.


Home Research Interests Current Research Resume People and travel * Projects Creation Labs http://i4d.mit.edu/ Sponsors |
|
Some problems in healthcare which seem obvious are apparently so obvious that they are overlooked! Oxygen Mask With MicProblem DescriptionOne such issue is the difficulty that a patient experiences while communicating when he is on oxygen supply through an oxygen mask. This project was developed as a part of the Conclave for Innovative Medical Technologies organized by the Consortium of Affordable Medical Technologies of the Massachusetts General Hospital. The idea was to develop an affordable, simple and a non-invasive way of addressing this problem statement.  What we had done, was effectively pick-up the vibration from the diaphragm of the mask using a piezo and amplify it. The amplified signals were then transmitted to the soda can speakers which were integrated with the MIT cap that we received during the pitch session at the start of the conclave.
AwardsWith our creation and our business plan, we were awarded the first prize at the conclave and were covered by some of the major newspapers across the country. Team
Links : The Hindu | Deccan Chronicle | Prepsure.com Low cost digital microscopewiht fully automated stage, serves the basic purpose of digital microscope.A cropped section of image (real image = 6* cropped image) is observed to have high image clarity (14Mpx). Affordable Audio Tactile Speech aids for the deaf and hearing impairedMentor: Dr. Theodre M.Moallem, MIT-Harvard HST program Innovation Centre (http://i4d.mit.edu/audio-tactile-speech-aids)
E.Y.E. (Enhanced The Eye)Mentoring team: MIT Media Lab Camera Culture group [Summary of work.pdf]What? It is essentially an assistive device for the low visioned people (targeting specifically schoolgoing children and university students). Its structure is like that of a regular safety glass with a camera fixed in the middle and a beam splitter glass mounted in front of it to act as a screen. The camera takes in the live feed of the surroundings which is displayed on a laptop screen and is then transferred to an android device by remote access feature. The user can zoom in and out of feed by rotating a knob present on the arm of the glasses. Also, other video parameters such as brightness, contrast, exposure etc can be varied. Why? Low vision patients have few options to read at distance. The available devices are annoying, unaesthetic, heavy and expensive, relying in complex optics mounted on the spectacles or hand helded (what keeps them away from writing at the same time as reading). Potential impact This device meets the need of 246 million people suffering from low vision for a low cost device to enhance their vision. Huge market scope.
Created 26 October 2014. |


Wherever there is centralization, there will be distrust. Centralization is responsible somehow, for most of the bad things happening in the society like cold war, divorce, breakup, distrust etc. And one segment of which very few people think about, is the conference.
A complete decentralize platform to organize conference and selection of speakers according to interest of attendees.
Platform built on Ethereum network where you don't need to worry about tranperency.
UX is more user-freindly which gives more ease for orgaiser to host conference and attendees to select the speakers.
Well documented workflow is always better then no documents. Developers have written well documented code for using this platform.
we are remotely based
In peer to peer network