--- title: Button layout: component --
Buttons tend to look similar throughout many platforms. Usually they are rectangular and have a word or an image in them indicating what clicking on the button will actually do.
Buttons are sometimes highlighted according to the typical action that a user will take. For example,the buttons OK and CANCEL might be right next to each other on a page, but it is likely that OK will be highlighted while CANCEL will not be.
A button's event is simply the function of a particular button.
There are two common button events. The first is the "click". This event notifies the computer that the button has been triggered and the user wants the computer to perform whatever that button is there for. The second event is "hover." If the user interface is well-made, when the user hovers over a button, the mouse pointer will change shape to let the user know that there is an option for a "click" event to occur.
Buttons typically have anywhere between two main states and possibly 2 substates, depending on the device being used. The states are as follows:
static
,
disabled
,
hover
, and
active
.
In the
static
state, which is the idle or enabled state, the button is ready to be clicked. The
disabled
state is that in which the user is not interacting with a button, or if the button has already been clicked it may not be clicked again.
When a button is in it's
static
state, additional states may be triggered. They are:
hover
: This is the state in which the mouse hovers over the button and either changes the button's color or the pointer's shape to let the user know that the button is ready to be clicked.active
: This state occurs when a button has already been triggered, or clicked and is attempting to complete it's action.
For components that are available on a web platform, you can embed an actual component right here, such as:
There are many variations of buttons, there isn't just one type. There are 3 main variations and they are as follows:
Learnability/Memorability: Buttons are basically a part of every single user interface used today. Because of this buttons should on the most part be universal. As mentioned above, the typical appearance of a button is a simple shape with some text or an icon inside of it. Since buttons are typically the same throughout all platforms, it should not be difficult for users to be able to figure out how to use buttons.
Efficiency/Errors: Each button has one action to complete, thus once clicked the action should be performed fairly quickly. There should be no delay or too much time waste from the time where the user knows what they want to do and when they actually click the button. Relating to that, buttons should be well-labeled and in a position where users will not accidentally mistake one button for another. For example, everyone knows the placement of the OK and CANCEL buttons, so if one platform were to decide to switch those, a lot of users would do the wrong action.
Satisfaction: Users do not really find any satisfaction in clicking buttons so this metric is not completely applicable to buttons. On the other hand, sometimes buttons do crazy things, for example, Google's "I'm feeling lucky" button sometimes shows fireworks on the screen, but it won't do that every time. Besides that, satisfaction does not really apply.
Feedback
Perhaps the most important interaction design principle that a button must follow is feedback. Users must never doubt whether:
- they did positively trigger a button (and thus its associated action)
- they successfully cancelled the triggering of a button, due to changing their minds midway through the action that triggers the button
Windows 10
As mentioned above, even for Windows 10 buttons, buttons are typically rectangular but sometimes may either have mildly rounded corners or really sharp edges. The default button has a blue dotted line around it. Windows also tends to draw attention to more important buttons by either highlighting or making the button bigger.
Typically the EXIT, MINIMIZE, and MAXIMIZE controls are all at the upper right hand corner of the window.
Windows also color-codes a lot of their buttons. For example, RED will be used for
SHUT DOWN
because RED is a danger color and lets the user know that once they click that button there is no going back. YELLOW will be used forLOG OFF
warning the user that this is a semi-critical button. Then there are other buttons such as HELP that are a soft blue color because pressing them will not do anything to your program.Windows has recently created a completely different way to display buttons, applications and commands on their screen. Clicking one one of these buttons will navigate the user to a different page.
Credits & References
http://usabilitypost.com/2009/04/15/8-characteristics-of-successful-user-interfaces/#efficient
http://foundation.zurb.com/docs/components/dropdown_buttons.html
http://www.howdesign.com/web-design-resources-technology/helping-users-navigate-websites/


Agent:
Bonzi
Clippy
F1
Genie
Genius
Links
Merlin
Peedy
Rocky
Rover
Title
Random Animation
stop the current action
stop all actions
Say Hello
Gesture at a given point (200x200)
Move to the given point (100x100)


Traditional
Gonu is a family of games. This variant is played on an 4x4 board with the following setup:
|
| An example
White soldier at b4 moves to cell [1], capturing the black soldier at c3. Black does not have good moves. If b2-b1, then b3-b2, and stalemating Black on the next move. |
There is a ZRF to play Jul-Gonu with Zillions.
Seo SangHyeon (which implemented the ZRF) says: Jul-Gonu is a type of Gonu, which is one category of Korean traditional board games, usually played on a board hand-drawn on the ground and with distinguishable stones, so it can be easily played without any equipments. The name of this game 'Jul' means 'line', for the board is drawn with lines. There are many variants due to regions. They differ in the size of the board, the number of stones, the initial position, etc. ... Jul-Gonu can be played on board larger than 4*4, but it's tiresome. Custodian capture is not the essence. It's all about parity and forced retreat. And the larger the board, the easier players can avoid repetition and just playing inside his territory. It's considered 'no manner', but rule to prohibit this is tricky.


Athletics: Russia picks new athletics chief as doping crisis deepens
MOSCOW: Yulia Tarasenko was appointed as interim president of Russia's athletics body on Saturday (Nov 23) following the suspension of previous head Dmitry Shlyakhtin by World Athletics.
Tarasenko, the RUSAF sports director and head of the athletics federation of St Petersburg, immediately saught to reassure Russian athletes she would fight their corner.
"We're not in a very joyful mood, the situation is very difficult in the federation, but we think there is a chance to fight for the federation," she said.
"We represent athletes and they should not suffer," the new acting president Tarasenko told journalists.
READ: Russia's anti-doping chief says he expected WADA suspension proposal
Tarasenko was picked from three candidates after Dmitry Shlyakhtin resigned from the post of RUSAF president.
Russian athletics' crisis deepened following Thursday's ruling by the Athletics Integrity Unit of global governing body World Athletics, which suspended Russia's reinstatement process and accused RUSAF of obstructing a probe into high-jumper Danil Lysenko.
It is now considering expelling RUSAF and suspending the provision allowing Russian to compete as neutral athletes, but for the moment awaits a decision by the world anti-doping agency on December 9 on whether to label Russia non-compliant.
Head coach of Russia's athletics Yury Borzakovsky said Saturday that RUSAF's main goal is to "protect the athletes and their coaches, so that they keep preparing for the Olympic Games and compete there."
"In what status is a different issue," he said.
Some vocal Russian athletes have expressed frustration with the federation and accused authorities of hurting clean athletes by feet-dragging on needed reforms.
"Our athletics is in agony. We have lost four years. Clean athletes are still vulnerable and unsure whether they will get a chance to compete," three-time high-jump world champion Maria Lasitskene wrote in a ripping Instagram appeal to the Russian sports minister Friday.
Lasitskene, who has called on Shlyakhtin to step down repeatedly over the past months, told TASS agency on Saturday that the new athletics chief Tarasenko is not a solution.
"Shlyakhtin was changed to Shlyakhtin," she said. "Tarasenko is Shlyakhtin's appointee and should immediately quit the federation."
Lasitskene said Saturday's decision would only deepen the crisis and the federation should have instead picked a new face with a clear anti-doping stance and no connection to previous management.
"Congratulations to all who pushed for this appointment. Great job guys, the operation to liquidate Russian athletics is almost finished."


--- layout: new title: Speaker Example description: Explore all speakers that have talked to DEVit. permalink: /new/speaker-example --- {% include blocks/header.html page="speaker" %} {% assign speaker = site.data.speakers['2016'].speakers[0] %}
{{ speaker.tagline }}
{{ speaker.bio }}
{{ talk.description }} {% include components/tags.html tags=talk.tags %}


Who Can Donate...
Let others benefit from your good health. Do donate blood if ...
- you are between age group of 18-60 years.
- your weight is 45 kgs or more.
- your haemoglobin is 12.5 gm% minimum.
- your last blood donation was 3 months earlier.
- you are healthy and have not suffered from malaria, typhoid or other transmissible disease in the recent past.
There are many, many people who meet these parameters of health and fitness!
Do abide by our rules - be truthful about your health status!
We ensure the health of blood, before we take it, as well as after it is collected. Firstly, the donor is expected to be honest about his or her health history and current condition. Secondly, collected blood is tested for venereal diseases, hepatitis B & C and AIDS.
You have to be healthy to give 'safe blood'
Who Can't...
Do not donate blood if you have any of these conditions
- Cold / fever in the past 1 week.
- Under treatment with antibiotics or any other medication.
- Cardiac problems, hypertension, epilepsy, diabetes (on insulin therapy), history of cancer,chronic kidney or liver disease, bleeding tendencies, venereal disease etc.
- Major surgery in the last 6 months.
- Vaccination in the last 24 hours.
- had a miscarriage in the last 6 months or have been pregnant / lactating in the last one year.
- had fainting attacks during last donation.
- have regularly received treatment with blood products.
- shared a needle to inject drugs/ have history of drug addiction.
- had sexual relations with different partners or with a high risk individual.
- been tested positive for antibodies to HIV.
Pregnancy And Menstrual Cycle
- Females should not donate blood during pregnancy.
- They can donate after 6 months following a normal delivery and when they are not breast feeding.
- Females should not donate blood if they are having heavy menstrual flow or menstrual cramps.


POSTS
글
What's in my mind?
나의 생각들
See more details!
더 보기
∧
∨
Error
|
0 Comments
..More
-
Hide
Go to the post
Error
|
0 Comments
..More
-
Hide
Go to the post
≪
＜
1/
＞
≫
See tags
HERE
태그
들을 모아서 보세요


Notebooks
Story: How sorcerers sometimes assume the form of a jackal or of a bird; how they then act
How sorcerers sometimes assume the form of a jackal or of a bird; how they then act
Title
How sorcerers sometimes assume the form of a jackal or of a bird; how they then act
Collection
Summary
The form of a jackal, or of a little bird, is sometimes assumed by friendly sorcerers.In the Katkop dialect, by Díä!kwãin (L V.-14. 5055-5078 1/2). Sorcerers transform themselves into jackals and birds when they want to watch over their people who have moved away and whom they have loved. Wise people can tell when a bird is a sorcerer and tell him all is well.
Comments
1) pp.5068v-5078 1/2v: see How Xaa-ttin asked (or prayed to) the dead magician (named !nuin-|kui-ten) for rain, which was speedily bestowed, 2) This story is found in Book V-14
Contributors
Date
July 1875
Categories
Keywords
sorcerers (how they sometimes assume the form of a jackal or of a bird) , sorcerers (who are good) , sorcerers (their actions) , sorcerers (and times of the day) , sorcerers (go about while others sleep) , sorcerers (how they act in animal form) , sorcerers (assume other forms) , sorcerers (becoming) , sorcerers (and transformation) , sorcerers (become birds and jackals) , sorcerers (watch over their people) , sorcerers (take care of their people) , sorcerers (and people who have left home) , sorcerers (their human forms) , sorcerers (their human forms sleeps at home) , jackal (how sorcerers sometimes assume the form of a jackal or of a bird) , jackal (its behaviour when it is a sorcerer) , jackal (sorcerers watch over their people in its form) , bird (how sorcerers sometimes assume the form of a jackal or of a bird) , bird (sorcerers watch over their people in its form) , bird (its behaviour when it is a sorcerer) , bird (wise people can tell when a bird is a sorcerer) , transformation (how sorcerers sometimes assume the form of a jackal or of a bird) , transformation (how sorcerers act in animal form) , sleep (sorcerers watch over their people in the form of a jackal or of a bird while they) , sleep (sorcerer's human forms sleeps at home)
Story Pages
5055-5078 1/2


The recodes()
functions makes it very easy to recode one or more variables in the your data frame. The format is
newdata <- recodes(olddata, variables, from values, to values)
Consider the following data set (below). Lets make the following changes.
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| 1 | b | better | 20 | 15 | 12 | 1 |
| 2 | w | worse | 30 | 23 | 20 | 2 |
| 1 | a | same | 44 | 18 | 33 | 5 |
| 2 | b | same | 15 | 86 | 55 | 3 |
| 2 | w | better | 50 | 99 | 30 | 4 |
| 2 | h | worse | 99 | 35 | 100 | 5 |
For sex
, set 1 to “Male” and 2 to “Female”.
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | b | better | 20 | 15 | 12 | 1 |
| Female | w | worse | 30 | 23 | 20 | 2 |
| Male | a | same | 44 | 18 | 33 | 5 |
| Female | b | same | 15 | 86 | 55 | 3 |
| Female | w | better | 50 | 99 | 30 | 4 |
| Female | h | worse | 99 | 35 | 100 | 5 |
Recode race
to “White” vs. “Other”.
df <- recodes(data=df, vars="race",
from=c("w", "b", "a", "h"),
to=c("White", "Other", "Other", "Other"))
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | Other | better | 20 | 15 | 12 | 1 |
| Female | White | worse | 30 | 23 | 20 | 2 |
| Male | Other | same | 44 | 18 | 33 | 5 |
| Female | Other | same | 15 | 86 | 55 | 3 |
| Female | White | better | 50 | 99 | 30 | 4 |
| Female | Other | worse | 99 | 35 | 100 | 5 |
Recode outcome
to 1 (better) vs. 0 (not better).
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | Other | 1 | 20 | 15 | 12 | 1 |
| Female | White | 0 | 30 | 23 | 20 | 2 |
| Male | Other | 0 | 44 | 18 | 33 | 5 |
| Female | Other | 0 | 15 | 86 | 55 | 3 |
| Female | White | 1 | 50 | 99 | 30 | 4 |
| Female | Other | 0 | 99 | 35 | 100 | 5 |
For Q1
and Q2
set values of 86 and 99 to missing.
df <- recodes(data=df, vars=c("Q1", "Q2"),
from=c(86, 99), to=NA)
#> Note: 'from' is longer than 'to', so 'to' was recycled.
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | Other | 1 | 20 | 15 | 12 | 1 |
| Female | White | 0 | 30 | 23 | 20 | 2 |
| Male | Other | 0 | 44 | 18 | 33 | 5 |
| Female | Other | 0 | 15 | NA | 55 | 3 |
| Female | White | 1 | 50 | NA | 30 | 4 |
| Female | Other | 0 | NA | 35 | 100 | 5 |
For age
, set values
You can use expressions in your from
fields. When they are TRUE
, the corresponding to
values will be applied. We will use the dollar sign ($) to represent the variable (age in this case). The symbols ( |, & ) mean OR and AND respectively.
df <- recodes(data=df, vars="age",
from=c("$ < 20 | $ > 90",
"$ >= 20 & $ <= 30",
"$ > 30 & $ <= 50",
"$ > 50 & $ <= 90"),
to=c(NA, "Younger", "Middle Aged", "Older"))
We can also write this as
df <- recodes(data=df, vars="age",
from=c("$ < 20", "$ <= 30", "$ <= 50", "$ <= 90", "$ > 90"),
to= c(NA, "Younger", "Middle Aged", "Older", "NA"))
This works because once the age value for an observations meets a criteria that is TRUE
(working left to right), it is recoded. It isn’t changed again by later criteria in the same recodes
statement.
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | Other | 1 | 20 | 15 | NA | 1 |
| Female | White | 0 | 30 | 23 | Younger | 2 |
| Male | Other | 0 | 44 | 18 | Middle Aged | 5 |
| Female | Other | 0 | 15 | NA | Older | 3 |
| Female | White | 1 | 50 | NA | Younger | 4 |
| Female | Other | 0 | NA | 35 | NA | 5 |
Finally, for the rating
variable, reverse the scoring so that 1 to 5 becomes 5 to 1.
df <- recodes(data=df, vars="rating", from=1:5, to=5:1)
| sex | race | outcome | Q1 | Q2 | age | rating |
|---|---|---|---|---|---|---|
| Male | Other | 1 | 20 | 15 | NA | 5 |
| Female | White | 0 | 30 | 23 | Younger | 4 |
| Male | Other | 0 | 44 | 18 | Middle Aged | 1 |
| Female | Other | 0 | 15 | NA | Older | 3 |
| Female | White | 1 | 50 | NA | Younger | 2 |
| Female | Other | 0 | NA | 35 | NA | 1 |
Remember that recodes
returns a data frame, not a variable.
df <- recodes(data=df, vars="rating", from=1:5, to=5:1)
is correct.
df$rating <- recodes(data=df, vars="rating", from=1:5, to=5:1)
is not.
This allows you to apply the same recoding scheme to more than one variable at a time (e.g., Q1 and Q2 above).
And that’s it (APPLAUSE, APPLAUSE)!


source file: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py
file stats: 387 lines, 2 executed: 0.5% covered
1. r"""OS routines for NT or Posix depending on what system we're on. 2. 3. This exports: 4. - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc. 5. - os.path is one of the modules posixpath, or ntpath 6. - os.name is 'posix', 'nt', 'os2', 'ce' or 'riscos' 7. - os.curdir is a string representing the current directory ('.' or ':') 8. - os.pardir is a string representing the parent directory ('..' or '::') 9. - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\') 10. - os.extsep is the extension separator ('.' or '/') 11. - os.altsep is the alternate pathname separator (None or '/') 12. - os.pathsep is the component separator used in $PATH etc 13. - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n') 14. - os.defpath is the default search path for executables 15. - os.devnull is the file path of the null device ('/dev/null', etc.) 16. 17. Programs that import and use 'os' stand a better chance of being 18. portable between different platforms. Of course, they must then 19. only use functions that are defined by all platforms (e.g., unlink 20. and opendir), and leave all pathname manipulation to os.path 21. (e.g., split and join). 22. """ 23. 24. #' 25. 26. import sys, errno 27. 28. _names = sys.builtin_module_names 29. 30. # Note: more names are added to __all__ later. 31. __all__ = ["altsep", "curdir", "pardir", "sep", "extsep", "pathsep", "linesep", 32. "defpath", "name", "path", "devnull", 33. "SEEK_SET", "SEEK_CUR", "SEEK_END"] 34. 35. def _get_exports_list(module): 36. try: 37. return list(module.__all__) 38. except AttributeError: 39. return [n for n in dir(module) if n[0] != '_'] 40. 41. if 'posix' in _names: 42. name = 'posix' 43. linesep = '\n' 44. from posix import * 45. try: 46. from posix import _exit 47. except ImportError: 48. pass 49. import posixpath as path 50. 51. import posix 52. __all__.extend(_get_exports_list(posix)) 53. del posix 54. 55. elif 'nt' in _names: 56. name = 'nt' 57. linesep = '\r\n' 58. from nt import * 59. try: 60. from nt import _exit 61. except ImportError: 62. pass 63. import ntpath as path 64. 65. import nt 66. __all__.extend(_get_exports_list(nt)) 67. del nt 68. 69. elif 'os2' in _names: 70. name = 'os2' 71. linesep = '\r\n' 72. from os2 import * 73. try: 74. from os2 import _exit 75. except ImportError: 76. pass 77. if sys.version.find('EMX GCC') == -1: 78. import ntpath as path 79. else: 80. import os2emxpath as path 81. from _emx_link import link 82. 83. import os2 84. __all__.extend(_get_exports_list(os2)) 85. del os2 86. 87. elif 'ce' in _names: 88. name = 'ce' 89. linesep = '\r\n' 90. from ce import * 91. try: 92. from ce import _exit 93. except ImportError: 94. pass 95. # We can use the standard Windows path. 96. import ntpath as path 97. 98. import ce 99. __all__.extend(_get_exports_list(ce)) 100. del ce 101. 102. elif 'riscos' in _names: 103. name = 'riscos' 104. linesep = '\n' 105. from riscos import * 106. try: 107. from riscos import _exit 108. except ImportError: 109. pass 110. import riscospath as path 111. 112. import riscos 113. __all__.extend(_get_exports_list(riscos)) 114. del riscos 115. 116. else: 117. raise ImportError, 'no os specific module found' 118. 119. sys.modules['os.path'] = path 120. from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep, 121. devnull) 122. 123. del _names 124. 125. # Python uses fixed values for the SEEK_ constants; they are mapped 126. # to native constants if necessary in posixmodule.c 127. SEEK_SET = 0 128. SEEK_CUR = 1 129. SEEK_END = 2 130. 131. #' 132. 133. # Super directory utilities. 134. # (Inspired by Eric Raymond; the doc strings are mostly his) 135. 136. def makedirs(name, mode=0777): 137. """makedirs(path [, mode=0777]) 138. 139. Super-mkdir; create a leaf directory and all intermediate ones. 140. Works like mkdir, except that any intermediate path segment (not 141. just the rightmost) will be created if it does not exist. This is 142. recursive. 143. 144. """ 145. head, tail = path.split(name) 146. if not tail: 147. head, tail = path.split(head) 148. if head and tail and not path.exists(head): 149. try: 150. makedirs(head, mode) 151. except OSError, e: 152. # be happy if someone already created the path 153. if e.errno != errno.EEXIST: 154. raise 155. if tail == curdir: # xxx/newdir/. exists if xxx/newdir exists 156. return 157. mkdir(name, mode) 158. 159. def removedirs(name): 160. """removedirs(path) 161. 162. Super-rmdir; remove a leaf directory and all empty intermediate 163. ones. Works like rmdir except that, if the leaf directory is 164. successfully removed, directories corresponding to rightmost path 165. segments will be pruned away until either the whole path is 166. consumed or an error occurs. Errors during this latter phase are 167. ignored -- they generally mean that a directory was not empty. 168. 169. """ 170. rmdir(name) 171. head, tail = path.split(name) 172. if not tail: 173. head, tail = path.split(head) 174. while head and tail: 175. try: 176. rmdir(head) 177. except error: 178. break 179. head, tail = path.split(head) 180. 181. def renames(old, new): 182. """renames(old, new) 183. 184. Super-rename; create directories as necessary and delete any left 185. empty. Works like rename, except creation of any intermediate 186. directories needed to make the new pathname good is attempted 187. first. After the rename, directories corresponding to rightmost 188. path segments of the old name will be pruned until either the 189. whole path is consumed or a nonempty directory is found. 190. 191. Note: this function can fail with the new directory structure made 192. if you lack permissions needed to unlink the leaf directory or 193. file. 194. 195. """ 196. head, tail = path.split(new) 197. if head and tail and not path.exists(head): 198. makedirs(head) 199. rename(old, new) 200. head, tail = path.split(old) 201. if head and tail: 202. try: 203. removedirs(head) 204. except error: 205. pass 206. 207. __all__.extend(["makedirs", "removedirs", "renames"]) 208. 209. def walk(top, topdown=True, onerror=None, followlinks=False): 210. """Directory tree generator. 211. 212. For each directory in the directory tree rooted at top (including top 213. itself, but excluding '.' and '..'), yields a 3-tuple 214. 215. dirpath, dirnames, filenames 216. 217. dirpath is a string, the path to the directory. dirnames is a list of 218. the names of the subdirectories in dirpath (excluding '.' and '..'). 219. filenames is a list of the names of the non-directory files in dirpath. 220. Note that the names in the lists are just names, with no path components. 221. To get a full path (which begins with top) to a file or directory in 222. dirpath, do os.path.join(dirpath, name). 223. 224. If optional arg 'topdown' is true or not specified, the triple for a 225. directory is generated before the triples for any of its subdirectories 226. (directories are generated top down). If topdown is false, the triple 227. for a directory is generated after the triples for all of its 228. subdirectories (directories are generated bottom up). 229. 230. When topdown is true, the caller can modify the dirnames list in-place 231. (e.g., via del or slice assignment), and walk will only recurse into the 232. subdirectories whose names remain in dirnames; this can be used to prune the 233. search, or to impose a specific order of visiting. Modifying dirnames when 234. topdown is false is ineffective, since the directories in dirnames have 235. already been generated by the time dirnames itself is generated. No matter 236. the value of topdown, the list of subdirectories is retrieved before the 237. tuples for the directory and its subdirectories are generated. 238. 239. By default errors from the os.listdir() call are ignored. If 240. optional arg 'onerror' is specified, it should be a function; it 241. will be called with one argument, an os.error instance. It can 242. report the error to continue with the walk, or raise the exception 243. to abort the walk. Note that the filename is available as the 244. filename attribute of the exception object. 245. 246. By default, os.walk does not follow symbolic links to subdirectories on 247. systems that support them. In order to get this functionality, set the 248. optional argument 'followlinks' to true. 249. 250. Caution: if you pass a relative pathname for top, don't change the 251. current working directory between resumptions of walk. walk never 252. changes the current directory, and assumes that the client doesn't 253. either. 254. 255. Example: 256. 257. import os 258. from os.path import join, getsize 259. for root, dirs, files in os.walk('python/Lib/email'): 260. print root, "consumes", 261. print sum([getsize(join(root, name)) for name in files]), 262. print "bytes in", len(files), "non-directory files" 263. if 'CVS' in dirs: 264. dirs.remove('CVS') # don't visit CVS directories 265. 266. """ 267. 268. islink, join, isdir = path.islink, path.join, path.isdir 269. 270. # We may not have read permission for top, in which case we can't 271. # get a list of the files the directory contains. os.path.walk 272. # always suppressed the exception then, rather than blow up for a 273. # minor reason when (say) a thousand readable directories are still 274. # left to visit. That logic is copied here. 275. try: 276. # Note that listdir and error are globals in this module due 277. # to earlier import-*. 278. names = listdir(top) 279. except error, err: 280. if onerror is not None: 281. onerror(err) 282. return 283. 284. dirs, nondirs = [], [] 285. for name in names: 286. if isdir(join(top, name)): 287. dirs.append(name) 288. else: 289. nondirs.append(name) 290. 291. if topdown: 292. yield top, dirs, nondirs 293. for name in dirs: 294. new_path = join(top, name) 295. if followlinks or not islink(new_path): 296. for x in walk(new_path, topdown, onerror, followlinks): 297. yield x 298. if not topdown: 299. yield top, dirs, nondirs 300. 301. __all__.append("walk") 302. 303. # Make sure os.environ exists, at least 304. try: 305. environ 306. except NameError: 307. environ = {} 308. 309. def execl(file, *args): 310. """execl(file, *args) 311. 312. Execute the executable file with argument list args, replacing the 313. current process. """ 314. execv(file, args) 315. 316. def execle(file, *args): 317. """execle(file, *args, env) 318. 319. Execute the executable file with argument list args and 320. environment env, replacing the current process. """ 321. env = args[-1] 322. execve(file, args[:-1], env) 323. 324. def execlp(file, *args): 325. """execlp(file, *args) 326. 327. Execute the executable file (which is searched for along $PATH) 328. with argument list args, replacing the current process. """ 329. execvp(file, args) 330. 331. def execlpe(file, *args): 332. """execlpe(file, *args, env) 333. 334. Execute the executable file (which is searched for along $PATH) 335. with argument list args and environment env, replacing the current 336. process. """ 337. env = args[-1] 338. execvpe(file, args[:-1], env) 339. 340. def execvp(file, args): 341. """execvp(file, args) 342. 343. Execute the executable file (which is searched for along $PATH) 344. with argument list args, replacing the current process. 345. args may be a list or tuple of strings. """ 346. _execvpe(file, args) 347. 348. def execvpe(file, args, env): 349. """execvpe(file, args, env) 350. 351. Execute the executable file (which is searched for along $PATH) 352. with argument list args and environment env , replacing the 353. current process. 354. args may be a list or tuple of strings. """ 355. _execvpe(file, args, env) 356. 357. __all__.extend(["execl","execle","execlp","execlpe","execvp","execvpe"]) 358. 359. def _execvpe(file, args, env=None): 360. if env is not None: 361. func = execve 362. argrest = (args, env) 363. else: 364. func = execv 365. argrest = (args,) 366. env = environ 367. 368. head, tail = path.split(file) 369. if head: 370. func(file, *argrest) 371. return 372. if 'PATH' in env: 373. envpath = env['PATH'] 374. else: 375. envpath = defpath 376. PATH = envpath.split(pathsep) 377. saved_exc = None 378. saved_tb = None 379. for dir in PATH: 380. fullname = path.join(dir, file) 381. try: 382. func(fullname, *argrest) 383. except error, e: 384. tb = sys.exc_info()[2] 385. if (e.errno != errno.ENOENT and e.errno != errno.ENOTDIR 386. and saved_exc is None): 387. saved_exc = e 388. saved_tb = tb 389. if saved_exc: 390. raise error, saved_exc, saved_tb 391. raise error, e, tb 392. 393. # Change environ to automatically call putenv() if it exists 394. try: 395. # This will fail if there's no putenv 396. putenv 397. except NameError: 398. pass 399. else: 400. import UserDict 401. 402. # Fake unsetenv() for Windows 403. # not sure about os2 here but 404. # I'm guessing they are the same. 405. 406. if name in ('os2', 'nt'): 407. def unsetenv(key): 408. putenv(key, "") 409. 410. if name == "riscos": 411. # On RISC OS, all env access goes through getenv and putenv 412. from riscosenviron import _Environ 413. elif name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE 414. # But we store them as upper case 415. class _Environ(UserDict.IterableUserDict): 416. def __init__(self, environ): 417. UserDict.UserDict.__init__(self) 418. data = self.data 419. for k, v in environ.items(): 420. data[k.upper()] = v 421. def __setitem__(self, key, item): 422. putenv(key, item) 423. self.data[key.upper()] = item 424. def __getitem__(self, key): 425. return self.data[key.upper()] 426. try: 427. unsetenv 428. except NameError: 429. def __delitem__(self, key): 430. del self.data[key.upper()] 431. else: 432. def __delitem__(self, key): 433. unsetenv(key) 434. del self.data[key.upper()] 435. def clear(self): 436. for key in self.data.keys(): 437. unsetenv(key) 438. del self.data[key] 439. def pop(self, key, *args): 440. unsetenv(key) 441. return self.data.pop(key.upper(), *args) 442. def has_key(self, key): 443. return key.upper() in self.data 444. def __contains__(self, key): 445. return key.upper() in self.data 446. def get(self, key, failobj=None): 447. return self.data.get(key.upper(), failobj) 448. def update(self, dict=None, **kwargs): 449. if dict: 450. try: 451. keys = dict.keys() 452. except AttributeError: 453. # List of (key, value) 454. for k, v in dict: 455. self[k] = v 456. else: 457. # got keys 458. # cannot use items(), since mappings 459. # may not have them. 460. for k in keys: 461. self[k] = dict[k] 462. if kwargs: 463. self.update(kwargs) 464. def copy(self): 465. return dict(self) 466. 467. else: # Where Env Var Names Can Be Mixed Case 468. class _Environ(UserDict.IterableUserDict): 469. def __init__(self, environ): 470. UserDict.UserDict.__init__(self) 471. self.data = environ 472. def __setitem__(self, key, item): 473. putenv(key, item) 474. self.data[key] = item 475. def update(self, dict=None, **kwargs): 476. if dict: 477. try: 478. keys = dict.keys() 479. except AttributeError: 480. # List of (key, value) 481. for k, v in dict: 482. self[k] = v 483. else: 484. # got keys 485. # cannot use items(), since mappings 486. # may not have them. 487. for k in keys: 488. self[k] = dict[k] 489. if kwargs: 490. self.update(kwargs) 491. try: 492. unsetenv 493. except NameError: 494. pass 495. else: 496. def __delitem__(self, key): 497. unsetenv(key) 498. del self.data[key] 499. def clear(self): 500. for key in self.data.keys(): 501. unsetenv(key) 502. del self.data[key] 503. def pop(self, key, *args): 504. unsetenv(key) 505. return self.data.pop(key, *args) 506. def copy(self): 507. return dict(self) 508. 509. 510. environ = _Environ(environ) 511. 512. def getenv(key, default=None): 513. """Get an environment variable, return None if it doesn't exist. 514. The optional second argument can specify an alternate default.""" 515. return environ.get(key, default) 516. __all__.append("getenv") 517. 518. def _exists(name): 519. return name in globals() 520. 521. # Supply spawn*() (probably only for Unix) 522. if _exists("fork") and not _exists("spawnv") and _exists("execv"): 523. 524. P_WAIT = 0 525. P_NOWAIT = P_NOWAITO = 1 526. 527. # XXX Should we support P_DETACH? I suppose it could fork()**2 528. # and close the std I/O streams. Also, P_OVERLAY is the same 529. # as execv*()? 530. 531. def _spawnvef(mode, file, args, env, func): 532. # Internal helper; func is the exec*() function to use 533. pid = fork() 534. if not pid: 535. # Child 536. try: 537. if env is None: 538. func(file, args) 539. else: 540. func(file, args, env) 541. except: 542. _exit(127) 543. else: 544. # Parent 545. if mode == P_NOWAIT: 546. return pid # Caller is responsible for waiting! 547. while 1: 548. wpid, sts = waitpid(pid, 0) 549. if WIFSTOPPED(sts): 550. continue 551. elif WIFSIGNALED(sts): 552. return -WTERMSIG(sts) 553. elif WIFEXITED(sts): 554. return WEXITSTATUS(sts) 555. else: 556. raise error, "Not stopped, signaled or exited???" 557. 558. def spawnv(mode, file, args): 559. """spawnv(mode, file, args) -> integer 560. 561. Execute file with arguments from args in a subprocess. 562. If mode == P_NOWAIT return the pid of the process. 563. If mode == P_WAIT return the process's exit code if it exits normally; 564. otherwise return -SIG, where SIG is the signal that killed it. """ 565. return _spawnvef(mode, file, args, None, execv) 566. 567. def spawnve(mode, file, args, env): 568. """spawnve(mode, file, args, env) -> integer 569. 570. Execute file with arguments from args in a subprocess with the 571. specified environment. 572. If mode == P_NOWAIT return the pid of the process. 573. If mode == P_WAIT return the process's exit code if it exits normally; 574. otherwise return -SIG, where SIG is the signal that killed it. """ 575. return _spawnvef(mode, file, args, env, execve) 576. 577. # Note: spawnvp[e] is't currently supported on Windows 578. 579. def spawnvp(mode, file, args): 580. """spawnvp(mode, file, args) -> integer 581. 582. Execute file (which is looked for along $PATH) with arguments from 583. args in a subprocess. 584. If mode == P_NOWAIT return the pid of the process. 585. If mode == P_WAIT return the process's exit code if it exits normally; 586. otherwise return -SIG, where SIG is the signal that killed it. """ 587. return _spawnvef(mode, file, args, None, execvp) 588. 589. def spawnvpe(mode, file, args, env): 590. """spawnvpe(mode, file, args, env) -> integer 591. 592. Execute file (which is looked for along $PATH) with arguments from 593. args in a subprocess with the supplied environment. 594. If mode == P_NOWAIT return the pid of the process. 595. If mode == P_WAIT return the process's exit code if it exits normally; 596. otherwise return -SIG, where SIG is the signal that killed it. """ 597. return _spawnvef(mode, file, args, env, execvpe) 598. 599. if _exists("spawnv"): 600. # These aren't supplied by the basic Windows code 601. # but can be easily implemented in Python 602. 603. def spawnl(mode, file, *args): 604. """spawnl(mode, file, *args) -> integer 605. 606. Execute file with arguments from args in a subprocess. 607. If mode == P_NOWAIT return the pid of the process. 608. If mode == P_WAIT return the process's exit code if it exits normally; 609. otherwise return -SIG, where SIG is the signal that killed it. """ 610. return spawnv(mode, file, args) 611. 612. def spawnle(mode, file, *args): 613. """spawnle(mode, file, *args, env) -> integer 614. 615. Execute file with arguments from args in a subprocess with the 616. supplied environment. 617. If mode == P_NOWAIT return the pid of the process. 618. If mode == P_WAIT return the process's exit code if it exits normally; 619. otherwise return -SIG, where SIG is the signal that killed it. """ 620. env = args[-1] 621. return spawnve(mode, file, args[:-1], env) 622. 623. 624. __all__.extend(["spawnv", "spawnve", "spawnl", "spawnle",]) 625. 626. 627. if _exists("spawnvp"): 628. # At the moment, Windows doesn't implement spawnvp[e], 629. # so it won't have spawnlp[e] either. 630. def spawnlp(mode, file, *args): 631. """spawnlp(mode, file, *args) -> integer 632. 633. Execute file (which is looked for along $PATH) with arguments from 634. args in a subprocess with the supplied environment. 635. If mode == P_NOWAIT return the pid of the process. 636. If mode == P_WAIT return the process's exit code if it exits normally; 637. otherwise return -SIG, where SIG is the signal that killed it. """ 638. return spawnvp(mode, file, args) 639. 640. def spawnlpe(mode, file, *args): 641. """spawnlpe(mode, file, *args, env) -> integer 642. 643. Execute file (which is looked for along $PATH) with arguments from 644. args in a subprocess with the supplied environment. 645. If mode == P_NOWAIT return the pid of the process. 646. If mode == P_WAIT return the process's exit code if it exits normally; 647. otherwise return -SIG, where SIG is the signal that killed it. """ 648. env = args[-1] 649. return spawnvpe(mode, file, args[:-1], env) 650. 651. 652. __all__.extend(["spawnvp", "spawnvpe", "spawnlp", "spawnlpe",]) 653. 654. 655. # Supply popen2 etc. (for Unix) 656. if _exists("fork"): 657. if not _exists("popen2"): 658. def popen2(cmd, mode="t", bufsize=-1): 659. """Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd' 660. may be a sequence, in which case arguments will be passed directly to 661. the program without shell intervention (as with os.spawnv()). If 'cmd' 662. is a string it will be passed to the shell (as with os.system()). If 663. 'bufsize' is specified, it sets the buffer size for the I/O pipes. The 664. file objects (child_stdin, child_stdout) are returned.""" 665. import warnings 666. msg = "os.popen2 is deprecated. Use the subprocess module." 667. warnings.warn(msg, DeprecationWarning, stacklevel=2) 668. 669. import subprocess 670. PIPE = subprocess.PIPE 671. p = subprocess.Popen(cmd, shell=isinstance(cmd, basestring), 672. bufsize=bufsize, stdin=PIPE, stdout=PIPE, 673. close_fds=True) 674. return p.stdin, p.stdout 675. __all__.append("popen2") 676. 677. if not _exists("popen3"): 678. def popen3(cmd, mode="t", bufsize=-1): 679. """Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd' 680. may be a sequence, in which case arguments will be passed directly to 681. the program without shell intervention (as with os.spawnv()). If 'cmd' 682. is a string it will be passed to the shell (as with os.system()). If 683. 'bufsize' is specified, it sets the buffer size for the I/O pipes. The 684. file objects (child_stdin, child_stdout, child_stderr) are returned.""" 685. import warnings 686. msg = "os.popen3 is deprecated. Use the subprocess module." 687. warnings.warn(msg, DeprecationWarning, stacklevel=2) 688. 689. import subprocess 690. PIPE = subprocess.PIPE 691. p = subprocess.Popen(cmd, shell=isinstance(cmd, basestring), 692. bufsize=bufsize, stdin=PIPE, stdout=PIPE, 693. stderr=PIPE, close_fds=True) 694. return p.stdin, p.stdout, p.stderr 695. __all__.append("popen3") 696. 697. if not _exists("popen4"): 698. def popen4(cmd, mode="t", bufsize=-1): 699. """Execute the shell command 'cmd' in a sub-process. On UNIX, 'cmd' 700. may be a sequence, in which case arguments will be passed directly to 701. the program without shell intervention (as with os.spawnv()). If 'cmd' 702. is a string it will be passed to the shell (as with os.system()). If 703. 'bufsize' is specified, it sets the buffer size for the I/O pipes. The 704. file objects (child_stdin, child_stdout_stderr) are returned.""" 705. import warnings 706. msg = "os.popen4 is deprecated. Use the subprocess module." 707. warnings.warn(msg, DeprecationWarning, stacklevel=2) 708. 709. import subprocess 710. PIPE = subprocess.PIPE 711. p = subprocess.Popen(cmd, shell=isinstance(cmd, basestring), 712. bufsize=bufsize, stdin=PIPE, stdout=PIPE, 713. stderr=subprocess.STDOUT, close_fds=True) 714. return p.stdin, p.stdout 715. __all__.append("popen4") 716. 717. import copy_reg as _copy_reg 718. 719. def _make_stat_result(tup, dict): 720. return stat_result(tup, dict) 721. 722. def _pickle_stat_result(sr): 723. (type, args) = sr.__reduce__() 724. return (_make_stat_result, args) 725. 726. try: 727. _copy_reg.pickle(stat_result, _pickle_stat_result, _make_stat_result) 728. except NameError: # stat_result may not exist 729. pass 730. 731. def _make_statvfs_result(tup, dict): 732. return statvfs_result(tup, dict) 733. 734. def _pickle_statvfs_result(sr): 735. (type, args) = sr.__reduce__() 736. return (_make_statvfs_result, args) 737. 738. try: 739. _copy_reg.pickle(statvfs_result, _pickle_statvfs_result, 740. _make_statvfs_result) 741. except NameError: # statvfs_result may not exist 742. pass


Clean design
Elegant layouts that help you organize your content in the best way
EDENA is build with easy customization in mind. Out of the box, you get more than 30 page templates, 10 color schemes and multiple home page layouts variants, from corporate to agency portfolio, including a one page version...
All layouts are made of sections, that you can easily combine to fit your specific project.
Just copy and paste the block you need to easily build your layout!
Based on Twitter Bootstrap 3, a sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
Read more about BootstrapAlong with all the Bootstraps components, we added some extra shortcodes to help you customize your website, easily insert carousel, or call to actions boxes and many more.
Check demo hereAll graphic elements are build using CSS3, for a sharp look on any device.
Icon font take a set of icons or pictograms that would normally be implemented as an image or vector file and then convert it into a font for a faster loading time than images, scalability and endless variations using CSS.
Check demo hereLittle things make big things happen.
The Duchess took her choice, and was gone in a moment. 'Let's go on with the game,'
the Queen said to Alice; and Alice was too much frightened to say a word, but slowly followed her back to the croquet-ground.
144 Edena Main Street
Washington, DC 20500
412.666.7485
contact@template.com


Sharjah is the third largest emirate of the United Arab Emirates and the cultural capital of the Arab World as declared by the UNESCO in 1998. It is located between Dubai and Ras Al Khaima interrupted by a part of Ajman. It is 76 Kilometers away from Abu Dhabi the capital of the United Arab Emirates.
The port of Al Hamriyah is a free zone. Hamriyah is an industrial port serving the oil industry – it is jam-packed with oil support vessels and you would only want to consider berthing here if arranging a lift out with the Riviera Yard. Berthing would be on a strictly temporary basis before or after liftout. The only services for yachts are at the Riviera yard which is mostly concerned with building and servicing large motor superyachts.
Prior approval should be obtained before coming here, however, there are a huge number of skilled trades available within the free zone and major maintenance work is possible here.
If you need to have any work done on your boat, or need to launch your boat after overland trucking, the Riviera yard is a good choice in the free zone. It is yacht-friendly and has a 400 ton travelift. See boatyards for more details.


Web and Mobile App Developer
I am a software developer who also has a passion for art and design. I am familiar with using React, Angular, and Vue for frontend web development, Node.js and Ruby on Rails for backend development, and React Native as well as some Swift and Java for mobile development. When I'm not coding I like to run, draw, travel, and play soccer and basketball.
Try Cloud Stickiez for collaborative online sticky notes.
JavaScript
HTML
CSS
Node.js
React
Angular
SQL
Git


| fct_expand {forcats} | R Documentation |
Add additional levels to a factor
fct_expand(f, ...)
f |
A factor (or character vector). |
... |
Additional levels to add to the factor. Levels that already exist will be silently ignored. |
fct_drop()
to drop unused factor levels.
f <- factor(sample(letters[1:3], 20, replace = TRUE)) f fct_expand(f, "d", "e", "f") fct_expand(f, letters[1:6])


Next:
Introduction
Up:
userhtml
Previous:
userhtml
Contents
Introduction
General overview
Basic Nomenclature
Library contents
Application structure
Programming model
Data Structures and Classes
Descriptor data structure
Sparse Matrix class
Dense Vector Data Structure
Preconditioner data structure
Heap data structure
Computational routines
Communication routines
Data management routines
Parallel environment routines
Error handling
Utilities
Preconditioner routines
Iterative Methods
Bibliography


The |xam cut their hand between the thumb and first finger so that they may shoot the game well.


Mother Earth Podcast
2020
For this project, I was tasked with designing the logo and visual identity for a newly launched environmental podcast, The Mother Earth Podcast. In less than a week, I had turned around a complete visual identity, including color pallette, logo, typesetting and visual elements, for use on their website, social media + marketing purposes. Inspiration for the logo came from the NASA image "Blue Marble", which marked the first Earth day in 1970. The podcast launched close to the 50ths anniversary of Earth Day and wanted to evoke that image of earth floating in space, while still remaining approachable and hopeful for the future.
The Blue Marble: The View From Apollo 17
early logo iterations
The client wasn't sure how they wanted the earth to be incorporated into the final logo - so I gave three options of the earth: centered with the text overlayed, the earth slightly above and to the right of the text and the earth as part of the words, filling in the 'o' in Mother. The client was most interested in the last two options, so we played around with scale, typography + color before landing on a pallet + type that worked with the vision for the podcast.
Since the focus on the podcast was on environmental issues, I decided to make 'earth' the largest to create a sense of hierarchy. 'Podcast' and 'the' were the smallest size, further establishing the hierarchy and placed offset from center to add some visual interest and movement.
The primary use case for the logo was on podcast platforms, such as Apple podcasts + Spotify. That meant that the logo would need to fit easily in a square (the expected format for logos on those platforms).
The final logo for the Mother Earth podcast
Of course, other use cases for the logo might come up where the square format may be less ideal or when the logo would need to have a transparent background, so I designed a secondary, inverted logo, as well as making the earth a brand mark for use cases when the full logo wouldn't scale well.
The inverted logo and brandmark


{% extends 'generic/confirmation_form.html' %} {% load form_helpers %} {% block title %}Delete console port {{ consoleport }}?{% endblock %} {% block message %}
Are you sure you want to delete this console port from {{ consoleport.device }}?
{% endblock %}


7 Tips for a Great Sounding Master
A Guide for Chiptune Artists
Find Out More
So, you want to make your Chiptune track sound as loud, bassy, and clean as possible.
That's great! We blah blah blah blah. Get our PDF showing you how to do things!


Inmate who escaped with guard’s help sentenced to 30 years
CLOVIS, N.M. (AP) - A Clovis man who escaped from jail with a detention officer’s help has been sentenced to 30 years in prison.
The 9th Judicial District Attorney’s Office says 26-year-old Ricky Sena was sentenced Wednesday on convictions for felony escape from jail and other crimes in his 2018 escape with two other inmates from the Curry County Detention Center.
Detention Officer Sarina Dodson is serving a nine-year sentence after pleading guilty to assist escape from jail.
Sena’s sentence will run consecutively to an 11-year term for other convictions.
Authorities said the inmates with Dodson’s help were able to walk out an unlocked jail door.
The escapees were taken into custody after being located four days later hiding in a Clovis residence, and the other two inmates also are now serving prison terms.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


The internet is the largest global computer network. How does it work? Basically, we need the following elements for it to run: Servers, the internet, the HTTP protocol (Hypertext transfer protocol), and a browser to read the files that are transferred.
HTML is the language used on the internet. The abbreviation stands for Hypertext Markup Language meaning that here is not only text, but also rules how the text is structured. CSS (Cascading Style Sheets) concern the presentation of a document, which can be changed by changing the CSS.
HTML elements consist of contents and tags. Tags are made up of tag names and angled brackets surrounding the tag names. Often the contents are wrapped by opening tags and closing tags. But there are also void tags such as
 (Break).
 stands alone and needs no closing tag later in the text. Other examples for tags are:  (bold, opening tag),  (bold, closing tag),  and  for italicized parts,
 and
 for opening and closing a paragraph.
In general, inline elements are flowing with the text of the document (for example: ), block elements have an invisible box around them (for example:
 and
). But we were assured that for beginners it is not necessary to understand the differences in every detail.
Links are inline elements. Same goes for images. An example for an inactive link is (included here for clarification): inactive content. An example for an active link is: active content. href represents an attribute. In the case of images the attribute is not href, but src.
Attention: Do not mix up src and href.
A text document which was written in HTML.
Programmers write text in a language computers can understand.
Computers take things literally. Small mistakes can have big consequences.
There are too many details to keep in your head. That is why it is okay to look things up.
Being inherently visual front end development is an excellent starting point for learning programming. HTML and CSS have different purposes. If we compare front end development to building a house, HTML refers to the walls (the structure) and CSS to the style (for example the color of the walls).
When programmers speak about the DOM (Domain Object Model), they mean the tree-like structure of web pages. The terminology of DOM elements is similar to family terminology with terms such as parent element, child element or uncle element. A very good way to explore web documents are the developer tools of a browser like Chrome.
Programmers with some experience find it easy to see a web document as a set of boxes or to be more correct nested boxes.
Scratchpad.io can be used for smaller projects. Otherwise Sublime Text 2 is recommended. Of course, every simple text editor can be used, too, but work will progress at a slower pace.
Programmers want to write code which is as parsimonious as possible. That means repetition must be avoided. One of the advantages of less repetition is fewer mistakes. If programmers have to fix fewer things, there will be less room for error.
The shape is always rectangular, even if it is not obvious at first sight.
It is the DOM (Domain Object Model) of a web page.
Running into any number of annoying problems. Hopefully they are little.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Slow.20copying.20.20VScode.20on.20Mac.html ---
VScode on Mac becomes really slow and sometimes stop responding if I copy from Lean Message. Does anyone encounter the same issue?
That happens to me as well.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


{%block content%}
User: {{username}}
has been created with password:
{{password}}
full name:
{{fullname}}
{%endblock%}


---
layout: page
title: Concepts for SharePoint
description: Concepts for SharePoint makes it possible to integrate a complex domain knowledge model into the standard Microsoft SharePoint Managed Metadata System (MMS).
order: 5
---
Better SharePoint Metadata
SharePoint MMS has two major weaknesses:
- It is restricted to simple hierarchical relationships, making it impossible to represent complex concept-to-concept relationships. Like the folder structure of a computer file system, a hierarchy of concepts forces you to put a concept under one place and one place only. However, in reality concepts have a web of different relationships.
- The terms in the SharePoint MMS are not independently browesable. When a user tags a document with a term from MMS, the tag is available only as text. It is not possible for a user to see other content tagged with the term or to see the relationships between terms.
With Concepts for SharePoint, rather than using the SharePoint MMS to capture the domain knowledge model, you develop your knowledge model in Web3 making use of your own domain-specific ontology. Concepts for SharePoint then automatically synchronizes the concepts you define into SharePoint MMS as a series of hierarchical term sets.
Key Features
- Concepts for SharePoint automatically reflects concepts defined in Web3 into the SharePoint MMS. These automatically generated MMS terms can sit alongside other manually created terms – allowing you to combine a structured domain knowledge with user-generated tagging.
- The automatically reflected MMS terms are linked back to the Web3 concept and its complete set of properties and semantic relationships.
- Every concept has its own customizable Concept Page. This is a page that is accessible by clicking on an MMS term that is linked to a Web3 Concept. The page displays not only the results of searches in SharePoint for that term, but also information from Web3 about the concept and its related concepts. A Concept Page becomes a hub page for all information related to a particular concept.
- Concept Pages are normal SharePoint page content, this means that they can be included in SharePoint’s full-text search index. This enables users to search on a concept and find the relevant Concept Page hub, rather than just finding a list of documents which may or may not be truly related to the term they searched on.
- Concepts for SharePoint provides a custom field control to allow MMS terms that are linked to Web3 concepts to be rendered as links to the relevant concept page. This means that a user viewing the tags for a document or other piece of content in the SharePoint portal can click on any term to go to the hub page for that term.
Software Requirements


Methods summary
public
|
#
SimpleBrowser( )
Starts with a fresh browser with no
cookie or any other state information. The
exception is that a default proxy will be
set up if specified in the options.
Starts with a fresh browser with no cookie or any other state information.
The exception is that a default proxy will be set up if specified in the
options.
|
public
SimpleFetcher
&
|
#
_createUserAgent( )
Creates the underlying user agent.
Creates the underlying user agent.
Returns
SimpleFetcher Content fetcher.
|
public
SimpleBrowserHistory
&
|
#
_createHistory( )
Creates a new empty history list.
Creates a new empty history list.
Returns
|
public
|
#
ignoreFrames( )
Disables frames support. Frames will not be fetched
and the frameset page will be used instead.
Disables frames support. Frames will not be fetched and the frameset page
will be used instead.
|
public
|
#
useFrames( )
Enables frames support. Frames will be fetched from
now on.
Enables frames support. Frames will be fetched from now on.
|
public
|
#
ignoreCookies( )
Switches off cookie sending and recieving.
Switches off cookie sending and recieving.
|
public
|
#
useCookies( )
Switches back on the cookie sending and recieving.
Switches back on the cookie sending and recieving.
|
public
SimplePage
&
|
#
_parse( SimpleHttpResponse $response, integer $depth = 0 )
Parses the raw content into a page. Will load further
frame pages unless frames are disabled.
Parses the raw content into a page. Will load further frame pages unless
frames are disabled.
Parameters
- $response
SimpleHttpResponse
$response Response from fetch.
- $depth
integer $depth Nested frameset depth.
Returns
|
public
SimplePage
&
|
#
_buildPage( SimpleHttpResponse $response )
Assembles the parsing machinery and actually parses
a single page. Frees all of the builder memory and so
unjams the PHP memory management.
Assembles the parsing machinery and actually parses a single page. Frees all
of the builder memory and so unjams the PHP memory management.
Parameters
Returns
|
public
SimplePage
&
|
#
_fetch( string/SimpleUrl $url, SimpleEncoding $encoding, integer $depth = 0 )
Fetches a page. Jointly recursive with the _parse()
method as it descends a frameset.
Fetches a page. Jointly recursive with the _parse() method as it descends a
frameset.
Parameters
- $url
string/SimpleUrl $url Target to fetch.
- $encoding
SimpleEncoding
$encoding GET/POST parameters.
- $depth
integer $depth Nested frameset depth protection.
Returns
|
public
string
|
#
_load( SimpleUrl $url, SimpleEncoding $parameters )
Fetches a page or a single frame if that is the current
focus.
Fetches a page or a single frame if that is the current focus.
Parameters
Returns
string Raw content of page.
|
public
string
|
#
_loadPage( string/SimpleUrl $url, SimplePostEncoding $parameters )
Fetches a page and makes it the current page/frame.
Fetches a page and makes it the current page/frame.
Parameters
- $url
string/SimpleUrl $url Target to fetch as string.
- $parameters
SimplePostEncoding
$parameters POST parameters.
Returns
string Raw content of page.
|
public
string
|
#
_loadFrame( array $frames, string/SimpleUrl $url, SimpleFormEncoding $parameters )
Fetches a frame into the existing frameset replacing the
original.
Fetches a frame into the existing frameset replacing the original.
Parameters
- $frames
array $frames List of names to drill down.
- $url
string/SimpleUrl $url Target to fetch as string.
- $parameters
SimpleFormEncoding $parameters POST parameters.
Returns
string Raw content of page.
|
public
|
#
restart( string/integer $date = false )
Removes expired and temporary cookies as if
the browser was closed and re-opened.
Removes expired and temporary cookies as if the browser was closed and
re-opened.
Parameters
- $date
string/integer $date Time when session restarted. If omitted then all persistent cookies are
kept.
|
public
|
#
ageCookies( integer $interval )
Ages the cookies by the specified time.
Ages the cookies by the specified time.
Parameters
- $interval
integer $interval Amount in seconds.
|
public
|
#
setCookie( string $name, string $value, string $host = false, string $path = '/', string $expiry = false )
Sets an additional cookie. If a cookie has
the same name and path it is replaced.
Sets an additional cookie. If a cookie has the same name and path it is
replaced.
Parameters
- $name
string $name Cookie key.
- $value
string $value Value of cookie.
- $host
string $host Host upon which the cookie is valid.
- $path
string $path Cookie path if not host wide.
- $expiry
string $expiry Expiry date.
|
public
string
|
#
getCookieValue( string $host, string $path, string $name )
Reads the most specific cookie value from the
browser cookies.
Reads the most specific cookie value from the browser cookies.
Parameters
- $host
string $host Host to search.
- $path
string $path Applicable path.
- $name
string $name Name of cookie to read.
Returns
string False if not present, else the value as a string.
|
public
string
|
#
getCurrentCookieValue( string $name )
Reads the current cookies for the current URL.
Reads the current cookies for the current URL.
Parameters
- $name
string $name Key of cookie to find.
Returns
string Null if there is no current URL, false if the cookie is not set.
|
public
|
#
setMaximumRedirects( integer $max )
Sets the maximum number of redirects before
a page will be loaded anyway.
Sets the maximum number of redirects before a page will be loaded anyway.
Parameters
- $max
integer $max Most hops allowed.
|
public
|
#
setMaximumNestedFrames( integer $max )
Sets the maximum number of nesting of framed pages
within a framed page to prevent loops.
Sets the maximum number of nesting of framed pages within a framed page to
prevent loops.
Parameters
- $max
integer $max Highest depth allowed.
|
public
|
#
setConnectionTimeout( integer $timeout )
Sets the socket timeout for opening a connection.
Sets the socket timeout for opening a connection.
Parameters
- $timeout
integer $timeout Maximum time in seconds.
|
public
|
#
useProxy( string $proxy, string $username = false, string $password = false )
Sets proxy to use on all requests for when
testing from behind a firewall. Set URL
to false to disable.
Sets proxy to use on all requests for when testing from behind a firewall.
Set URL to false to disable.
Parameters
- $proxy
string $proxy Proxy URL.
- $username
string $username Proxy username for authentication.
- $password
string $password Proxy password for authentication.
|
public
boolean
|
#
head( string/SimpleUrl $url, hash/SimpleHeadEncoding $parameters = false )
Fetches the page content with a HEAD request.
Will affect cookies, but will not change the base URL.
Fetches the page content with a HEAD request. Will affect cookies, but will
not change the base URL.
Parameters
- $url
string/SimpleUrl $url Target to fetch as string.
- $parameters
hash/SimpleHeadEncoding $parameters Additional parameters for HEAD request.
Returns
boolean True if successful.
|
public
string
|
#
get( string/SimpleUrl $url, hash/SimpleFormEncoding $parameters = false )
Fetches the page content with a simple GET request.
Fetches the page content with a simple GET request.
Parameters
- $url
string/SimpleUrl $url Target to fetch.
- $parameters
hash/SimpleFormEncoding $parameters Additional parameters for GET request.
Returns
string Content of page or false.
|
public
string
|
#
post( string/SimpleUrl $url, hash/SimpleFormEncoding $parameters = false )
Fetches the page content with a POST request.
Fetches the page content with a POST request.
Parameters
- $url
string/SimpleUrl $url Target to fetch as string.
- $parameters
hash/SimpleFormEncoding $parameters POST parameters.
Returns
string Content of page.
|
public
string/boolean
|
#
retry( )
Equivalent to hitting the retry button on the
browser. Will attempt to repeat the page fetch. If
there is no history to repeat it will give false.
Equivalent to hitting the retry button on the browser. Will attempt to repeat
the page fetch. If there is no history to repeat it will give false.
Returns
string/boolean Content if fetch succeeded else false.
|
public
boolean
|
#
back( )
Equivalent to hitting the back button on the
browser. The browser history is unchanged on
failure. The page content is refetched as there
is no concept of content caching in SimpleTest.
Equivalent to hitting the back button on the browser. The browser history is
unchanged on failure. The page content is refetched as there is no concept of
content caching in SimpleTest.
Returns
boolean True if history entry and fetch succeeded
|
public
boolean
|
#
forward( )
Equivalent to hitting the forward button on the
browser. The browser history is unchanged on
failure. The page content is refetched as there
is no concept of content caching in SimpleTest.
Equivalent to hitting the forward button on the browser. The browser history
is unchanged on failure. The page content is refetched as there is no concept of
content caching in SimpleTest.
Returns
boolean True if history entry and fetch succeeded
|
public
boolean
|
#
authenticate( string $username, string $password )
Retries a request after setting the authentication
for the current realm.
Retries a request after setting the authentication for the current realm.
Parameters
- $username
string $username Username for realm.
- $password
string $password Password for realm.
Returns
boolean True if successful fetch. Note that authentication may still have failed.
|
public
array
|
#
getFrames( )
Accessor for a breakdown of the frameset.
Accessor for a breakdown of the frameset.
Returns
array Hash tree of frames by name or index if no name.
|
public
integer/string/boolean
|
#
getFrameFocus( )
Accessor for current frame focus. Will be
false if no frame has focus.
Accessor for current frame focus. Will be false if no frame has focus.
Returns
integer/string/boolean Label if any, otherwise the position in the frameset or false if none.
|
public
boolean
|
#
setFrameFocusByIndex( integer $choice )
Sets the focus by index. The integer index starts from 1.
Sets the focus by index. The integer index starts from 1.
Parameters
- $choice
integer $choice Chosen frame.
Returns
boolean True if frame exists.
|
public
boolean
|
#
setFrameFocus( string $name )
Sets the focus by name.
Parameters
- $name
string $name Chosen frame.
Returns
boolean True if frame exists.
|
public
|
#
clearFrameFocus( )
Clears the frame focus. All frames will be searched
for content.
Clears the frame focus. All frames will be searched for content.
|
public
string
|
|
public
string
|
#
getMimeType( )
Accessor for current MIME type.
Accessor for current MIME type.
Returns
string MIME type as string; e.g. 'text/html'
|
public
integer
|
#
getResponseCode( )
Accessor for last response code.
Accessor for last response code.
Returns
integer Last HTTP response code received.
|
public
string
|
#
getAuthentication( )
Accessor for last Authentication type. Only valid
straight after a challenge (401).
Accessor for last Authentication type. Only valid straight after a challenge
(401).
Returns
string Description of challenge type.
|
public
string
|
#
getRealm( )
Accessor for last Authentication realm. Only valid
straight after a challenge (401).
Accessor for last Authentication realm. Only valid straight after a challenge
(401).
Returns
string Name of security realm.
|
public
string
|
#
getUrl( )
Accessor for current URL of page or frame if
focused.
Accessor for current URL of page or frame if focused.
Returns
string Location of current page or frame as a string.
|
public
string
|
#
getBaseUrl( )
Accessor for base URL of page if set via BASE tag
Accessor for base URL of page if set via BASE tag
Returns
string base URL
|
public
string
|
#
getRequest( )
Accessor for raw bytes sent down the wire.
Accessor for raw bytes sent down the wire.
Returns
string Original text sent.
|
public
string
|
#
getContent( )
Accessor for raw page information.
Accessor for raw page information.
Returns
string Original text content of web page.
|
public
string
|
#
getContentAsText( )
Accessor for plain text version of the page.
Accessor for plain text version of the page.
Returns
string Normalised text representation.
|
public
string
|
#
getTitle( )
Accessor for parsed title.
Accessor for parsed title.
Returns
string Title or false if no title is present.
|
public
array
|
#
getUrls( )
Accessor for a list of all links in current page.
Accessor for a list of all links in current page.
Returns
array List of urls with scheme of http or https and hostname.
|
public
boolean
|
#
setField( string $label, string $value, mixed $position = false )
Sets all form fields with that name.
Sets all form fields with that name.
Parameters
- $label
string $label Name or label of field in forms.
- $value
string $value New value of field.
- $position
Returns
boolean True if field exists, otherwise false.
|
public
boolean
|
#
setFieldByName( string $name, string $value, mixed $position = false )
Sets all form fields with that name. Will use label if
one is available (not yet implemented).
Sets all form fields with that name. Will use label if one is available (not
yet implemented).
Parameters
- $name
string $name Name of field in forms.
- $value
string $value New value of field.
- $position
Returns
boolean True if field exists, otherwise false.
|
public
boolean
|
#
setFieldById( string/integer $id, string $value )
Sets all form fields with that id attribute.
Sets all form fields with that id attribute.
Parameters
- $id
string/integer $id Id of field in forms.
- $value
string $value New value of field.
Returns
boolean True if field exists, otherwise false.
|
public
string/boolean
|
#
getField( string $label )
Accessor for a form element value within the page.
Finds the first match.
Accessor for a form element value within the page. Finds the first match.
Parameters
- $label
string $label Field label.
Returns
string/boolean A value if the field is present, false if unchecked and null if missing.
|
public
string/boolean
|
#
getFieldByName( string $name )
Accessor for a form element value within the page.
Finds the first match.
Accessor for a form element value within the page. Finds the first match.
Parameters
- $name
string $name Field name.
Returns
string/boolean A string if the field is present, false if unchecked and null if missing.
|
public
string/boolean
|
#
getFieldById( string/integer $id )
Accessor for a form element value within the page.
Accessor for a form element value within the page.
Parameters
- $id
string/integer $id Id of field in forms.
Returns
string/boolean A string if the field is present, false if unchecked and null if missing.
|
public
string/boolean
|
#
clickSubmit( string $label = 'Submit', hash $additional = false )
Clicks the submit button by label. The owning
form will be submitted by this.
Clicks the submit button by label. The owning form will be submitted by
this.
Parameters
- $label
string $label Button label. An unlabeled button can be triggered by 'Submit'.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
clickSubmitByName( string $name, hash $additional = false )
Clicks the submit button by name attribute. The owning
form will be submitted by this.
Clicks the submit button by name attribute. The owning form will be submitted
by this.
Parameters
- $name
string $name Button name.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
clickSubmitById( string $id, hash $additional = false )
Clicks the submit button by ID attribute of the button
itself. The owning form will be submitted by this.
Clicks the submit button by ID attribute of the button itself. The owning
form will be submitted by this.
Parameters
- $id
string $id Button ID.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
boolean
|
#
isSubmit( string $label )
Tests to see if a submit button exists with this
label.
Tests to see if a submit button exists with this label.
Parameters
- $label
string $label Button label.
Returns
boolean True if present.
|
public
string/boolean
|
#
clickImage( string $label, integer $x = 1, integer $y = 1, hash $additional = false )
Clicks the submit image by some kind of label. Usually
the alt tag or the nearest equivalent. The owning
form will be submitted by this. Clicking outside of
the boundary of the coordinates will result in
a failure.
Clicks the submit image by some kind of label. Usually the alt tag or the
nearest equivalent. The owning form will be submitted by this. Clicking outside
of the boundary of the coordinates will result in a failure.
Parameters
- $label
string $label ID attribute of button.
- $x
integer $x X-coordinate of imaginary click.
- $y
integer $y Y-coordinate of imaginary click.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
clickImageByName( string $name, integer $x = 1, integer $y = 1, hash $additional = false )
Clicks the submit image by the name. Usually
the alt tag or the nearest equivalent. The owning
form will be submitted by this. Clicking outside of
the boundary of the coordinates will result in
a failure.
Clicks the submit image by the name. Usually the alt tag or the nearest
equivalent. The owning form will be submitted by this. Clicking outside of the
boundary of the coordinates will result in a failure.
Parameters
- $name
string $name Name attribute of button.
- $x
integer $x X-coordinate of imaginary click.
- $y
integer $y Y-coordinate of imaginary click.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
clickImageById( integer/string $id, integer $x = 1, integer $y = 1, hash $additional = false )
Clicks the submit image by ID attribute. The owning
form will be submitted by this. Clicking outside of
the boundary of the coordinates will result in
a failure.
Clicks the submit image by ID attribute. The owning form will be submitted by
this. Clicking outside of the boundary of the coordinates will result in a
failure.
Parameters
- $id
integer/string $id ID attribute of button.
- $x
integer $x X-coordinate of imaginary click.
- $y
integer $y Y-coordinate of imaginary click.
- $additional
hash $additional Additional form data.
Returns
string/boolean Page on success.
|
public
boolean
|
#
isImage( string $label )
Tests to see if an image exists with this
title or alt text.
Tests to see if an image exists with this title or alt text.
Parameters
- $label
string $label Image text.
Returns
boolean True if present.
|
public
string/boolean
|
#
submitFormById( string $id )
Submits a form by the ID.
Submits a form by the ID.
Parameters
- $id
string $id The form ID. No submit button value will be sent.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
getLink( string $label, integer $index = 0 )
Finds a URL by label. Will find the first link
found with this link text by default, or a later
one if an index is given. The match ignores case and
white space issues.
Finds a URL by label. Will find the first link found with this link text by
default, or a later one if an index is given. The match ignores case and white
space issues.
Parameters
- $label
string $label Text between the anchor tags.
- $index
integer $index Link position counting from zero.
Returns
string/boolean URL on success.
|
public
string/boolean
|
#
clickLink( string $label, integer $index = 0 )
Follows a link by label. Will click the first link
found with this link text by default, or a later
one if an index is given. The match ignores case and
white space issues.
Follows a link by label. Will click the first link found with this link text
by default, or a later one if an index is given. The match ignores case and
white space issues.
Parameters
- $label
string $label Text between the anchor tags.
- $index
integer $index Link position counting from zero.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
getLinkById( string $id )
Finds a link by id attribute.
Finds a link by id attribute.
Parameters
- $id
string $id ID attribute value.
Returns
string/boolean URL on success.
|
public
string/boolean
|
#
clickLinkById( string $id )
Follows a link by id attribute.
Follows a link by id attribute.
Parameters
- $id
string $id ID attribute value.
Returns
string/boolean Page on success.
|
public
string/boolean
|
#
click( string $label )
Clicks a visible text item. Will first try buttons,
then links and then images.
Clicks a visible text item. Will first try buttons, then links and then
images.
Parameters
- $label
string $label Visible text or alt text.
Returns
string/boolean Raw page or false.
|
public
boolean
|
#
isClickable( string $label )
Tests to see if a click target exists.
Tests to see if a click target exists.
Parameters
- $label
string $label Visible text or alt text.
Returns
boolean True if target present.
|


Searching
Search returns documents containing one or more of the search terms.
You can alter this default behavior using wildcards and operators such as:
By default results are presented in a concise form. Click 'Expand' to show the full detail.
Enter 'all' to show all documents.
Submitting
Data should be entered into the search form as indicated.
Grayed out field names are optional.
Submitted data is not immediately searchable. The moderator must sign off on each document.
No options yet!
Your entry has been submitted. It will appear in the database following the approval process.
Your feedback has been submitted. Thank you.


ADO.Net
Transactions
- For high-load read-write tables, you need transactions on the selects (otherwise they become deadlock victims). Use
- SELECT * FROM Users WITH (NOLOCK)
- In sql SET TRANSACTION LEVEL READ UNCOMMITTED;
- A TransactionScope with IsolationLevel.ReadUncommitted
- If using .Net transactions: check overlap with TSQL BEGIN/END TRANSACTION
- Manual Transactions: SqlConnection.BeginTransaction returns a transaction object which must be attached to the commands. Change Transaction.IsolationLevel when writing data.
- 1.x Automatic Transactions: Uses COM+ DTC. Can use distributed databases. Classes must inherit from System.EnterpriseServices.ServicedComponent and add [Transaction] attributes with the options (TransactionOption, IsolationLevel etc).
- ContextUtil.SetComplete and .SetAbort static methods (you can .SetAbort at the start, then .SetComplete only when done). Or use [AutoComplete] attribute on methods (but if you catch errors it won't detect the abort).
.Net 2 System.Transactions
- 2.0 System.Transactions: wrap ADO in using (TransactionScope tscope = new TransactionScope()) and at the end tscope.Complete= true (an exception leaves it false when it disposes, so aborts).
As soon as a second transaction enlists, it is promoted to a distributed transaction under DTC- Default = new TransactionScope(TransactionScopeOption.Required) (if a higher transaction, joins it)
- RequiresNew for new transaction that doesn't affect higher level transactions
- Suppress for non-transactional bits (logging)
- Set a timeout TimeSpan if could deadlock (or to test failure)
- Default = TransactionOptions =IsolationLevel.Serializable.
- You can explicitly create an ICommittableTransaction t= Transaction.Create(), call connection.EnlistTransaction, then t.Commit()
The WITH (READPAST)
hint skips any locked rows while reading. It can conflict with default isolation levels (e.g. serializable; error is You can only specify the READPAST lock in the READ COMMITTED or REPEATABLE READ isolation levels.). Fix by specifying something manually:
using (var transaction = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadCommitted
}))
Transactions.IsolationLevel
| Name | Locks | Notes |
|---|---|---|
| ReadUncommitted | Write lock. No read locks (so dirty reads possible) | Lowest level. |
| ReadCommitted (default SQLServer, EF v1-5) |
Short read locks (released as soon as read), write locks. | Read data may change before it is written. |
| Snapshot (default EF v6) |
A form of readcommitted, but checks on commit for changes. | Throws exception if data has changed between read and write. |
| RepeatableRead | Read data locked until commit. | Read data cannot change but new data may be added before write. |
| Serializable (default ADO TransactionScope) |
Locks fully. Cannot write when someone is reading it. | Highest level, so risk of lock blocking delays and deadlocks. |
There's another level with the wonderful name IsolationLevel.Chaos which SQLServer doesn't support.
Snapshot must be enabled in the database: ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON
Async/Await vs TransactionScope
TransactionScope is thread static, which is a problem with multi-threading and async/await. .net 4.5.1 + has new ctors on TransactionScope for TransactionScopeAsyncFlowOption.Enabled which make it work.
var opts = new TransactionOptions { IsolationLevel = IsolationLevel.RepeatableRead };
using (var tx = new TransactionScope(TransactionScopeOption.Required, opts, TransactionScopeAsyncFlowOption.Enabled))
{


{% extends "base.html" %} {% block title %}Profile{% endblock %} {% block content %}
Add and manage your hiwi contracts with the KIT below. Enter them as they should appear on the monthly document.
Add and manage your templates for automatic filling.
| Activity | Day of week | Start | Average duration | |
|---|---|---|---|---|
| {{sa.description}} | {{sa.week_day}} | {{sa.start}} | {{sa.avg_length}} | |
| Activity | Average duration | |
|---|---|---|
| {{sa.description}} | {{sa.avg_length}} | |
Hereby, all your work hours, contracts, your private mail and phone number stored on this site will be instantaneously erased.
{% endblock %}


--- title: Redcar & Cleveland Primary Care Trust layout: gb ---
| Resource | Fetch | Format | Columns | Data | Valid | Entries | Oldest | Latest | Total (GBP) | |
|---|---|---|---|---|---|---|---|---|---|---|
| Spend over £25,000 in Redcar and Cleveland Primary Care Trust | ||||||||||
| 2010 May return | ✔ | ✔ | ✔ | ✔ | ✔ | 42 | 2010-05-06 | 2010-05-28 | 21520023.19 | |
| 2010 August return | ✔ | ✔ | ✔ | ✔ | ✔ | 54 | 2010-08-02 | 2010-08-27 | 17717118.3 | |
| 2010 April return | ✔ | ✔ | ✔ | ✔ | ✔ | 47 | 2010-04-08 | 2010-04-30 | 16702876.85 | |
| 2010 September return | ✔ | ✔ | ✔ | ✔ | ✔ | 58 | 2010-09-01 | 2010-09-28 | 14101569.61 | |
| 2010 June return | ✔ | ✔ | ✔ | ✔ | ✔ | 58 | 2010-06-03 | 2010-06-29 | 6661172.33 | |
| 2010 July return | ✔ | ✔ | ✔ | ✔ | ✔ | 68 | 2010-07-05 | 2010-07-29 | 16244712.07 | |
| Spend over £25,000 in Redcar and Cleveland Primary Care Trust | ||||||||||
| 2010 December return | ✔ | ✔ | ✔ | ✔ | ✔ | 60 | 2010-12-01 | 2010-12-20 | 15270203.63 | |
| Spend over £25,000 in Redcar and Cleveland Primary Care Trust | ||||||||||
| 2011 January Return | ✔ | ✔ | ✔ | ✔ | ✔ | 57 | 2011-01-05 | 2011-01-31 | 15227562.0 | |
| Spend over £25,000 in Redcar and Cleveland Primary Care Trust | ||||||||||
| 2010 November return | ✔ | ✔ | ✔ | ✔ | ✔ | 53 | 2010-11-01 | 2010-11-25 | 15555233.16 | |
| Spend over £25,000 in Redcar and Cleveland Primary Care Trust | ||||||||||
| 2010 October Return | ✔ | ✔ | ✔ | ✔ | ✔ | 63 | 2010-10-01 | 2010-10-29 | 14832011.93 |
| Resource/Stage | Error |


Minesweeper
Play again
Height
Width
Mines
Begineer
9
9
10
Intermediate
16
16
40
Expert
16
30
99
Custom


Main page
Hotels - Reservations
Hotels
Reservations
Contact Form
My City
Tourist Guide
Contct Form
If you want faster response better send message to my private
e-mail
.
Name:
Surname:
E-mail:
Phone number:
Your comments:


Match Play. Red trails 2-4 to 7. How should Red play 64?
pips Red=90 White=86
(CorrectAnswer= 0/0, ErrorScore= 0)
The race is far too close to leave gratuitous shots in this position. 7/1, 6/2 is very clear here. Then just wait for White’s roll of 61!
18/8 is a bad error but not quite a blunder.
18/8 is a bad error but not quite a blunder.
1. Cubeful 2-ply 18/8 Eq.: -0.205 0.424 0.062 0.002 - 0.576 0.021 0.001 2. Cubeful 2-ply 7/1 6/2 Eq.: -0.212 (-0.007) 0.434 0.006 0.000 - 0.566 0.008 0.000 3. Cubeful 2-ply 18/12 7/3 Eq.: -0.219 (-0.014) 0.418 0.062 0.002 - 0.582 0.025 0.001 4. Cubeful 2-ply 18/12 6/2 Eq.: -0.249 (-0.044) 0.404 0.072 0.002 - 0.596 0.036 0.001 5. Cubeful 2-ply 18/12 5/1 Eq.: -0.273 (-0.068) 0.392 0.072 0.002 - 0.608 0.038 0.001


Never eat a cold meal again. With Cookomatic, all your meals will come out all at the same time, piping hot and ready to eat! Cookomatic will also suggest side dishes that correspond with your entree, and give you a list of ingredient you need to make your entire meal. Suitable for chefs of all flavors and experience.
Ryan Hefner, Chris Elias, Alexa Ham, Vanessa Frost
The goal was to create a cooking app for iOS and Android phones that will allow the user to input recipes and have the app schedule steps for the user to complete in a way that the dishes will all complete at the same time.
Getting the recipes from websites turned out to be a legal issue. We couldn't automatically scrape recipe sites for dish information without opening ourselves up to a potential lawsuit.
Originally we toyed with the idea of having users pay a monthly subscription fee and unlock extra functionality for the application. We really didn't want to use advertising revenue for our application, especially considering most recipes are time-sensitive and users can't be expected to watch a thirty-second video every few minutes.
The scheduler will take steps from each dish and order them so that the user can complete each step in order and have each dish finish cooking at the same time. It relies on the time it takes to complete a step associated with each step, and orders them accordingly.
We had a LOT of requirements for this app, and that helped out really well for writing unit tests. For usability testing, we were fortunate enough to have several volunteers in our class, as well as from prospective students during NCSU's Engineering Open House.


My name is Cody Kendall and I was raised in a town called Klamath Falls, Oregon, where oddly enough there are no falls! I am an outdoor enthusiast. Some of my more favorite outdoor activities include snow camping and backpacking. I got my degree from the University of Oregon and I also went to Oregon Institute of Technology for a small amount of time. Something quirky about me - I am really into astronomy and trying to learn as much about the universe that we live.


Invoices
This section allows you to list and control the invoices you issue to your
clients. Invoices which have not been paid will be marked in red.
You can create a new invoice from scratch by clicking on the Invoices node
in you Book Explorer using the right mouse button to bring up the menu
A new empty invoice tab will be created for you using the next available
invoice number. The application will automatically detect your naming scheme
to derive the next invoice number. For example, if you call your first invoice
COOL001, the application will return COOL002 as the next invoice number,
although you can always override this if you want to.
A more powerful feature is the cloning of an existing invoice, using it as
the template.
This feature is useful for businesses with repetitive periodic invoice,
where only the dates and the hours change. The newly created invoice will have
the dates automatically adjusted for the new period by deriving from the
relative differences between the dates in the template invoice. For example,
if your template invoice has an invoice date of 4th November, a receipt date
of 11th November, and the start date of 24th October, end date of 28th
October, then let's say you want the invoice date of your new invoice to be
18th November, then the application be automatically set the receipt date to
25th November, the start date to 7th November and the end date to 11th
November.
Click
for a
typical screen for an invoice. You can display this screen by selecting on the
"Show details..." option on the menu above, or by clicking on the invoice
itself in the Book Explorer tree.
The list of invoices can be sorted by clicking on certain column header for
the list. This should be familiar to Excel users. The column used for sorting
will have the down arrow displayed against it
When an invoice is paid i.e. when the fund is credited into your account,
you can use the invoice to generate an entry in your Entry account by
selecting the "Mark as paid" option on the context menu (which can be
activated by clicking on the invoice entry with your right mouse button), or
you can force update the entry at any time using the option "Update/generate
Ledger entries".
Ad hoc reporting applies to this screen. You can create an ad hoc report by
selecting a number of invoices (click on the first invoice, then click on all
the other invoice while holding down either the shift or control key), then
click on the "Generate HTML" or "Generate PDF"
button on
the toolbar.
|


ADMIN
Hello, Rajkumar!
Home
AddRecipe
MyRecipe
All Recipies
checkout your favourite recipe here
Know About More
Read more..


Defining Tabcast groups
Below you can define the Tabcast groups you want to track and/or
broadcast URLs to.
For more information on using Tabcast in general, visit
tabcast.net.
Each Tabcast group is specified with the following details:
- Nickname
- A short memorable name for a group on a
Tabcast server. It is just a local name, for your convenience.
Group nicknames will be shown in Chrome's context menu.
- Server URL
- The URL of the Tabcast server for the group. If in doubt, use
http://tabcast.net/
as your server. You can also run your own
server (Get the
Tabcast source from Github).
- Group name
- The name of the group on the Tabcast server.
- User name (Optional)
- The user name you wish to use on the server.
- Password (Optional)
- A password to identify yourself on the server.
Note: passwords are stored locally by
Chrome, in plaintext, and are therefore not very secure. Do not
re-use a password that you use elsewhere.


Enter Email:
Enter Amount:
Enter Title:
Enter Description:
Transfer
*You cannot transfer NUCoins to your own account. Please enter a Valid Email Address.
*Please provide all details to transfer coins.
*The email entered doesn't exist in our database. You can only send NUCoins to NUCoin users.
{{user.amount}} NUCs have successfully been transferred.
*The specified user hasn't created an account on NUCoins yet.
*Your balance is insufficient to make this transaction.
Recharge
*You entered invalid code!
Coins successfully added!
You have no Recent Transactions to show


Trader Sarien:
Ho, why are your hands empty, partner? Were you not supposed to find me
monster eye carcasses
and
lenses
, and the
gizzards of the basilisk
? You aren't going to quit by any chance, are you?
Say you will quit
Say you will continue


Quotes
{{quotes.description}}
Author:{{quotes.author}}
upvote
{{quotes.upvote}}
downvote
{{quotes.downvote}}
Quote Details
100'>You have too many quotes


| DOSE: |
4 joints/cigs |
smoked |
Damiana |
(plant material) |
I still live with my parents and they do not approve of my marijuana smoking habit. Iím also rather broke and cannot afford to buy bags of marijuana as regularly as I once could. Because of these problems, Iíve been trying to find something to hold me off until I am once again in a position where I can enjoy my favorite psychoactive substance.
I ordered several legal mind-altering substances that I understood little-to-nothing of off of a website for a very affordable price. One of the herbs that came was the leaf of damiana Ė a natural aphrodisiac that commonly grows in Brazil. Today was the second day that I tried it. I no longer have a pipe in my house so I used a cigarette packer to push it into some paper cigarette tubes.
After 4 of these damiana cigarettes, Iím noticing that many of the effects are not unlike marijuana. What Iím enjoying the most is the tranquility. Iím not sure that Iíve ever felt this calm. The amount of focus is so great that I can concentrate on nothing but the rhythm of my breaths for several minutes. I tried meditating for a short while (perhaps 15 minutes) and it felt nicer than it ever has.
I smoked the herb under an opening in my familyís barn while it was raining very hard. Iíve always had a fascination and an appreciation for rain, and its beauty combined with the sound of it hitting the barn roof was rather stimulating. Iíll spare you graphic detail, but I completely understand why this drug is classified as an aphrodisiac.
 Iím serious people Ė it tastes awful. Iíve noticed that it helps the taste significantly if I smoke two cigarettes at once: one with damiana, one with tobacco. Despite the vile taste, I am eager to make some tea out of it. The smell did not appeal to me either. Itís not like it was putrid and disgusting, but it has an odor reminiscent of a very old personís house.
Of course the effects donít hold a candle to marijuana, but for the price and considering how simple it is to obtain, damiana is worth looking into. Unfortunately, the high only lasted about an hour, but I paid a measly few bucks for an entire ounce so it was a steal for the money.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


-
Watch the trailer for Michael Mann's "Blackhat," which looks to update ...
pando.com
Cybercrime thrillers have been around since, well... since regular people still used words like "cyber." The genre's earliest films, like 1995's "The ...
-
Facebook prepares to bolster its stalking abilities with new ad tools
pando.com
Facebook wants to stalk you around the Web, and soon you won't be able to throw it off your digital trail even if you switch between your smartphone, ...
-
Ferguson is our "libertarian moment," but not in the way some libertarians ...
pando.com
“Make the users (i.e., the criminals) pay the costs, wherever possible.” —Robert Poole, Reason Ferguson is starting to heat up again, with more ...
-
Loverly sees traffic surge 450% in 90 days following a content-focused ...
pando.com
Content is still king. Wedding commerce startup Loverly has learned as much over the last 90 days, as its traffic has spiked more than 450 percent ...
-
Report: Apple knew about major iCloud security flaw six months before ...
pando.com
Apple knew about a security problem with its iCloud website for at least six months before addressing it, according to a report from the Daily Dot. ...
-
Shell Shocked: Researchers discover a bug worse than Heartbleed, but will ...
pando.com
Researchers have discovered a major bug in Unix-based operating systems said to have worse implications than Heartbleed -- the OpenSSL bug that left ...
-
Techtopus judge Lucy Koh to preside over new wage fixing suit against VFX ...
pando.com
Earlier this month, Pando's Mark Ames broke the news of a new class action suit against Disney, Pixar, Dreamworks, Sony and others, filed on behalf ...
-
The War Nerd: Bombs away in the Middle East! But why is Israel so quiet?
pando.com
Where’s Israel? That’s one of the most interesting, and widely ignored, questions to come out of the US bombing campaign against Islamic State (IS) ...
-
Mad that your new iPhone is bendy? Then don't buy an Apple product the ...
pando.com
It can be hard to resist the urge to purchase whatever "magical" new product Apple has just announced, especially when it's so different from the ...
-
Willing Snapchat models now suing the company for making them "Snapchat ...
pando.com
Nearly everyone makes bad decisions in college. But not everyone has those decisions broadcast to hundreds of millions of users around the world. ...
-
From quilters to gearheads: Massdrop raises $6.5M to turn online ...
pando.com
Any time you can tap into the crowd, it’s a powerful thing. When you can narrow and target that crowd to a community of like-minded individuals with ...
-
Bad Apple? iOS 8 may not be as secure as we thought
pando.com
Apple is pitching iOS 8 as one of the most security-focused versions of its mobile platform to date. But there are still questions about just how ...
-
PayPal's "ringtones for bitcoin" announcement is one giant "meh"
pando.com
Progress, however small, is generally a positive thing and certainly is better than the opposite: stagnation. So it’s hard to be too disappointed ...
-
Apple needs to dramatically rethink streaming music. It should start by ...
pando.com
Techcrunch reported yesterday that Apple is looking to phase out its streaming service Beats Music, which it acquired along with the rest of the ...
-
iOS 8's success is one of the few things Apple has done right with its ...
pando.com
Apple has revealed via its App Store Distribution page that some 46 percent of iOS devices have been updated to the latest version of its mobile ...
-
US jury says Arab Bank is liable for helping to fund suicide bombing
pando.com
Back in February, Pando's Adam Penenberg told the story of the victims of Palestinian suicide bombing who were suing the Arab Bank in the US for ...
-
With more due diligence, Home Depot's massive data breach may have been ...
pando.com
It's hard to think that people hand over the keys to their homes to someone without digging through that person's history. People hired to clean the ...
-
Harlem Shake hitmaker INDMUSIC partners with Dailymotion to help even more ...
pando.com
Remember back in 2013 when sports teams, fraternities, and even tech blogs made their own cheesy "Harlem Shake" videos? Like the Macarena before it, ...
-
Emisión astronómica: se puede llegar a la Luna con los billetes de $ 100 ...
www.cronista.com
Si formáramos un camino con los 2.430 millones de billetes de $ 100 impresos en estos casi 12 años tendríamos una traza de 380.000 kilómetros, la ...
-
Top 10 Bitcoin Countries by Payment Volume
blog.bitcoinmillionaire-app.com
The countries were ranked by trading volumes over the past 30 days.
-
Every Entrepreneur Should Read This Guide From A Facebook Co-Founder
www.businessinsider.com
It's not as easy as the media and Hollywood make it look, says Dustin Moskovitz.
-
Everything You Need to Know About Social Network Ello
thenextweb.com
You’ve probably seen it pop up in your Facebook feed. Or maybe someone on Twitter linked to their account. The entire internet is alive with talk of ...
-
Photos du journal - Leonel Di Camillo | Facebook
www.facebook.com
25 de Septiembre: Virgen del Rosario de San Nicolás
-
Photos du journal - Leonel Di Camillo | Facebook
www.facebook.com
La mejor respuesta de la historia a un problema de geometría.


Ensure that the camera is in the same network as the device running this app.
Camera address:
PTP/IP Port:
Connect
Trigger shutter
Log
Waiting for your action…
github.com