| |
ActiveTcl User Guide
|
|
|
- NAME
- winfo - Return window-related information
- SYNOPSIS
- winfo option ?arg arg ...?
- DESCRIPTION
- winfo atom
?-displayof window? name
- winfo atomname
?-displayof window? id
- winfo cells
window
- winfo children
window
- winfo class
window
- winfo colormapfull
window
- winfo containing
?-displayof window? rootX rootY
- winfo depth
window
- winfo exists
window
- winfo fpixels
window number
- winfo geometry
window
- winfo height
window
- winfo id
window
- winfo interps
?-displayof window?
- winfo ismapped
window
- winfo manager
window
- winfo name
window
- winfo parent
window
- winfo pathname
?-displayof window? id
- winfo pixels
window number
- winfo pointerx
window
- winfo pointerxy
window
- winfo pointery
window
- winfo reqheight
window
- winfo reqwidth
window
- winfo rgb window
color
- winfo rootx
window
- winfo rooty
window
- winfo screen
window
- winfo screencells
window
- winfo screendepth
window
- winfo screenheight
window
- winfo
screenmmheight window
- winfo screenmmwidth
window
- winfo screenvisual
window
- winfo screenwidth
window
- winfo server
window
- winfo toplevel
window
- winfo viewable
window
- winfo visual
window
- winfo visualid
window
- winfo
visualsavailable window ?includeids?
- winfo vrootheight
window
- winfo vrootwidth
window
- winfo vrootx
window
- winfo vrooty
window
- winfo width
window
- winfo x
window
- winfo y
window
- KEYWORDS
winfo - Return window-related information
winfo option ?arg arg ...?
The winfo command is used to retrieve information about
windows managed by Tk. It can take any of a number of different
forms, depending on the option argument. The legal forms
are:
- winfo atom ?-displayof
window? name
- Returns a decimal string giving the integer identifier for the
atom whose name is name. If no atom exists with the name
name then a new one is created. If the -displayof
option is given then the atom is looked up on the display of
window; otherwise it is looked up on the display of the
application's main window.
- winfo atomname ?-displayof
window? id
- Returns the textual name for the atom whose integer identifier
is id. If the -displayof option is given then the
identifier is looked up on the display of window; otherwise
it is looked up on the display of the application's main window.
This command is the inverse of the winfo atom command. It
generates an error if no such atom exists.
- winfo cells window
- Returns a decimal string giving the number of cells in the
color map for window.
- winfo children window
- Returns a list containing the path names of all the children of
window. Top-level windows are returned as children of their
logical parents. The list is in stacking order, with the lowest
window first, except for Top-level windows which are not returned
in stacking order. Use the wm
stackorder command to query the stacking order of Top-level
windows.
- winfo class window
- Returns the class name for window.
- winfo colormapfull window
- Returns 1 if the colormap for window is known to be
full, 0 otherwise. The colormap for a window is ``known'' to be
full if the last attempt to allocate a new color on that window
failed and this application hasn't freed any colors in the colormap
since the failed allocation.
- winfo containing ?-displayof
window? rootX rootY
- Returns the path name for the window containing the point given
by rootX and rootY. RootX and rootY are
specified in screen units (i.e. any form acceptable to Tk_GetPixels) in the coordinate
system of the root window (if a virtual-root window manager is in
use then the coordinate system of the virtual root window is used).
If the -displayof option is given then the coordinates refer
to the screen containing window; otherwise they refer to the
screen of the application's main window. If no window in this
application contains the point then an empty string is returned. In
selecting the containing window, children are given higher priority
than parents and among siblings the highest one in the stacking
order is chosen.
- winfo depth window
- Returns a decimal string giving the depth of window
(number of bits per pixel).
- winfo exists window
- Returns 1 if there exists a window named window, 0 if no
such window exists.
- winfo fpixels window
number
- Returns a floating-point value giving the number of pixels in
window corresponding to the distance given by number.
Number may be specified in any of the forms acceptable to
Tk_GetScreenMM, such as
``2.0c'' or ``1i''. The return value may be fractional; for an
integer value, use winfo pixels.
- winfo geometry window
- Returns the geometry for window, in the form
widthxheight+x+y.
All dimensions are in pixels.
- winfo height window
- Returns a decimal string giving window's height in
pixels. When a window is first created its height will be 1 pixel;
the height will eventually be changed by a geometry manager to
fulfill the window's needs. If you need the true height immediately
after creating a widget, invoke update to force the geometry manager
to arrange it, or use winfo reqheight to get the window's
requested height instead of its actual height.
- winfo id window
- Returns a hexadecimal string giving a low-level
platform-specific identifier for window. On Unix platforms,
this is the X window identifier. Under Windows, this is the Windows
HWND. On the Macintosh the value has no meaning outside Tk.
- winfo interps ?-displayof
window?
- Returns a list whose members are the names of all Tcl
interpreters (e.g. all Tk-based applications) currently registered
for a particular display. If the -displayof option is given
then the return value refers to the display of window;
otherwise it refers to the display of the application's main
window.
- winfo ismapped window
- Returns 1 if window is currently mapped, 0
otherwise.
- winfo manager window
- Returns the name of the geometry manager currently responsible
for window, or an empty string if window isn't
managed by any geometry manager. The name is usually the name of
the Tcl command for the geometry manager, such as pack or place. If the geometry manager is a
widget, such as canvases or text, the name is the widget's class
command, such as canvas.
- winfo name window
- Returns window's name (i.e. its name within its parent,
as opposed to its full path name). The command winfo name .
will return the name of the application.
- winfo parent window
- Returns the path name of window's parent, or an empty
string if window is the main window of the application.
- winfo pathname ?-displayof
window? id
- Returns the path name of the window whose X identifier is
id. Id must be a decimal, hexadecimal, or octal
integer and must correspond to a window in the invoking
application. If the -displayof option is given then the
identifier is looked up on the display of window; otherwise
it is looked up on the display of the application's main
window.
- winfo pixels window
number
- Returns the number of pixels in window corresponding to
the distance given by number. Number may be specified
in any of the forms acceptable to Tk_GetPixels, such as ``2.0c'' or
``1i''. The result is rounded to the nearest integer value; for a
fractional result, use winfo fpixels.
- winfo pointerx window
- If the mouse pointer is on the same screen as window,
returns the pointer's x coordinate, measured in pixels in the
screen's root window. If a virtual root window is in use on the
screen, the position is measured in the virtual root. If the mouse
pointer isn't on the same screen as window then -1 is
returned.
- winfo pointerxy window
- If the mouse pointer is on the same screen as window,
returns a list with two elements, which are the pointer's x and y
coordinates measured in pixels in the screen's root window. If a
virtual root window is in use on the screen, the position is
computed in the virtual root. If the mouse pointer isn't on the
same screen as window then both of the returned coordinates
are -1.
- winfo pointery window
- If the mouse pointer is on the same screen as window,
returns the pointer's y coordinate, measured in pixels in the
screen's root window. If a virtual root window is in use on the
screen, the position is computed in the virtual root. If the mouse
pointer isn't on the same screen as window then -1 is
returned.
- winfo reqheight window
- Returns a decimal string giving window's requested
height, in pixels. This is the value used by window's
geometry manager to compute its geometry.
- winfo reqwidth window
- Returns a decimal string giving window's requested
width, in pixels. This is the value used by window's
geometry manager to compute its geometry.
- winfo rgb window color
- Returns a list containing three decimal values, which are the
red, green, and blue intensities that correspond to color in
the window given by window. Color may be specified in
any of the forms acceptable for a color option.
- winfo rootx window
- Returns a decimal string giving the x-coordinate, in the root
window of the screen, of the upper-left corner of window's
border (or window if it has no border).
- winfo rooty window
- Returns a decimal string giving the y-coordinate, in the root
window of the screen, of the upper-left corner of window's
border (or window if it has no border).
- winfo screen window
- Returns the name of the screen associated with window,
in the form displayName.screenIndex.
- winfo screencells window
- Returns a decimal string giving the number of cells in the
default color map for window's screen.
- winfo screendepth window
- Returns a decimal string giving the depth of the root window of
window's screen (number of bits per pixel).
- winfo screenheight window
- Returns a decimal string giving the height of window's
screen, in pixels.
- winfo screenmmheight
window
- Returns a decimal string giving the height of window's
screen, in millimeters.
- winfo screenmmwidth window
- Returns a decimal string giving the width of window's
screen, in millimeters.
- winfo screenvisual window
- Returns one of the following strings to indicate the default
visual class for window's screen: directcolor,
grayscale, pseudocolor, staticcolor,
staticgray, or truecolor.
- winfo screenwidth window
- Returns a decimal string giving the width of window's
screen, in pixels.
- winfo server window
- Returns a string containing information about the server for
window's display. The exact format of this string may vary
from platform to platform. For X servers the string has the form
``XmajorRminor vendor vendorVersion''
where major and minor are the version and revision
numbers provided by the server (e.g., X11R5), vendor
is the name of the vendor for the server, and vendorRelease
is an integer release number provided by the server.
- winfo toplevel window
- Returns the path name of the top-level window containing
window.
- winfo viewable window
- Returns 1 if window and all of its ancestors up through
the nearest toplevel window are mapped. Returns 0 if any of these
windows are not mapped.
- winfo visual window
- Returns one of the following strings to indicate the visual
class for window: directcolor, grayscale,
pseudocolor, staticcolor, staticgray, or
truecolor.
- winfo visualid window
- Returns the X identifier for the visual for window.
- winfo visualsavailable window
?includeids?
- Returns a list whose elements describe the visuals available
for window's screen. Each element consists of a visual class
followed by an integer depth. The class has the same form as
returned by winfo visual. The depth gives the number of bits
per pixel in the visual. In addition, if the includeids
argument is provided, then the depth is followed by the X
identifier for the visual.
- winfo vrootheight window
- Returns the height of the virtual root window associated with
window if there is one; otherwise returns the height of
window's screen.
- winfo vrootwidth window
- Returns the width of the virtual root window associated with
window if there is one; otherwise returns the width of
window's screen.
- winfo vrootx window
- Returns the x-offset of the virtual root window associated with
window, relative to the root window of its screen. This is
normally either zero or negative. Returns 0 if there is no virtual
root window for window.
- winfo vrooty window
- Returns the y-offset of the virtual root window associated with
window, relative to the root window of its screen. This is
normally either zero or negative. Returns 0 if there is no virtual
root window for window.
- winfo width window
- Returns a decimal string giving window's width in
pixels. When a window is first created its width will be 1 pixel;
the width will eventually be changed by a geometry manager to
fulfill the window's needs. If you need the true width immediately
after creating a widget, invoke update to force the geometry manager
to arrange it, or use winfo reqwidth to get the window's
requested width instead of its actual width.
- winfo x window
- Returns a decimal string giving the x-coordinate, in
window's parent, of the upper-left corner of window's
border (or window if it has no border).
- winfo y window
- Returns a decimal string giving the y-coordinate, in
window's parent, of the upper-left corner of window's
border (or window if it has no border).
atom, children, class, geometry, height, identifier, information, interpreters, mapped, parent, path name, screen, virtual root, width, window
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1997 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.


module Project:sig
..end
type
t
val from_file : ?on_warning:(Error.t -> unit Or_error.t) ->
?backend:string ->
?name:(addr -> string option) ->
?roots:addr list ->
string -> t Or_error.t
from_file filename
creates a project from a binary file. The
file must be in format, supportable by some of our loader plugins,
e.g., ELF, COFF, MACH-O, etc. A provided filename
is stored
in a filename
field of a project.on_warning
: is a function that will be called if some
non-critical problem has occurred during loading file;backend
: allows to choose loader pluginname
: is a naming function, that allows to specify a
name for a function starting at give address. If None
is
provided, then the default naming scheme will be used, i.e.,
sub_ADDR
.roots
: allows to provide starting approximation of the
roots for recursive disassembling procedure. Each root should
be a start of a function.val from_image : ?name:(addr -> string option) ->
?roots:addr list ->
image -> t Or_error.t
from_image image
is like Project.from_file
but accepts already
loaded image of a binary file. If image
was loaded from a
file, then filename
field is set to the name of the file.val from_mem : ?name:(addr -> string option) ->
?roots:addr list ->
arch -> mem -> t Or_error.t
from_mem arch mem
creates a project directly from a memory
object. Parameters name
and roots
has the same meaning as
in Project.from_file
val from_string : ?base:addr ->
?name:(addr -> string option) ->
?roots:addr list ->
arch -> string -> t Or_error.t
from_string arch string
creates a memory object from a
provided string and uses Project.from_mem
to create a project.val from_bigstring : ?base:addr ->
?name:(addr -> string option) ->
?roots:addr list ->
arch ->
Bigstring.t -> t Or_error.t
from_bigstring arch bigstring
is the same as Project.from_string
but accepts a value of type bigstring
val arch : t -> arch
arch project
reveals the architecture of a loaded fileval disasm : t -> disasm
disasm project
returns results of disassemblingval program : t -> program term
val with_program : t -> program term -> t
with_program project program
updates a project programval symbols : t -> symtab
symbols t
returns reconstructed symbol tableval with_symbols : t -> symtab -> t
with_symbols project symbols
updates project
symbolsval memory : t -> value memmap
memory t
returns the memory as an interval tree marked with
arbitrary values.val tag_memory : t -> mem -> 'a tag -> 'a -> t
tag_memory project region tag value
tags given region
of
memory in project
with a given tag
and value
. Example:
Project.tag_memory project tained color red
val substitute : t ->
mem -> string tag -> string -> t
substitute p region tag value
is like
tag_memory, but it will also apply
substitutions in the provided string value, as per OCaml
standard library's Buffer.add_substitute
function.
Example:
Project.substitute project comment "$symbol starts at $symbol_addr"
The following substitutions are supported:
$section{_name,_addr,_min_addr,_max_addr}
- name of region of file
to which it belongs. For example, in ELF this name will
correspond to the section name$symbol{_name,_addr,_min_addr,_max_addr}
- name or address
of the symbol to which this memory belongs$asm
- assembler listing of the memory region$bil
- BIL code of the tagged memory region$block{_name,_addr,_min_addr,_max_addr}
- name or address of a basic
block to which this region belongs$min_addr, $addr
- starting address of a memory region$max_addr
- address of the last byte of a memory region.val with_memory : t -> value memmap -> t
with_memory project
updates project memory. It is
recommended to use Project.tag_memory
and Project.substitute
instead of this
function, if possible.Project can also be viewed as an extensible record, where one can store arbitrary values. Example,
let p = Project.set project color `green
This will set field color
to a value `green
.val set : t -> 'a tag -> 'a -> t
set project field value
sets a field
to a give value. If
field
was already set, then new value overrides the old
one. Otherwise the field is added.val get : t -> 'a tag -> 'a option
get project field
returns the value of the field
if it
existsval has : t -> 'a tag -> bool
has project field
checks whether field exists or not. Useful
for fields of type unit, that actually isomorphic to bool fields,
e.g., if Project.has project mark
To add new pass one of the following register_*
functions
should be called.
type'a
register =?deps:string list -> string -> 'a -> unit
type
error =
| |
Not_loaded of |
| |
Is_duplicate of |
| |
Not_found of |
| |
Doesn't_register of |
| |
Load_failed of |
| |
Runtime_error of |
Not_loaded name
pass with a given name
wasn't loaded for
some reason. This is a very unlikely error, indicating
either a logic error in the plugin system implementation or
something very weird, that we didn't expect.Is_duplicate name
more than one plugin were registered
under this name
, either it is the same plugin or a name clash
between to different we don't know.Not_found name
when we tried to load plugin with a given
name
we failed to find it in our search paths.Doesn't_register name
the plugin with a given name
doesn't register a pass with the same name.Load_failed (name,problem)
a problem
has occured, when
we tried to dynamically link a plugin with a given name
Runtime_error (name,exn)
when plugin with a given name
was ran it raised an exn
.exception Pass_failed of error
_exn
suffix in their
name.val register_pass_with_args : (string array -> t -> t)
register
register_pass_with_args name pass
registers pass
that
requires command line arguments. The arguments will be passed
in the first parameter of the pass
function.
Parameter deps
is list of dependencies. Each dependency is a
name of a pass, that should be run before the pass
. If
dependency pass is not registered it will be auto-loaded (See
Project.run_passes
)
val register_pass : (t -> t) register
register_pass ?deps name pass
registers project transformation,
that doesn't require command line arguments.
(See Project.register_pass_with_args
)val register_pass' : (t -> unit) register
register_pass ?deps name pass
registers pass
that doesn't modify
the project effect and is run only for side effect.
(See Project.register_pass_with_args
)val register_pass_with_args' : (string array -> t -> unit) register
register_pass_with_args' name pass
register a pass
that
requires arguments for a side effect.
(See Project.register_pass_with_args
)val run_passes : ?library:string list ->
?argv:string array ->
t -> t Or_error.t
run_passes ?library ?argv project
folds project
over all
registered passes. Passes are invoked in the order of
registration.
If pass has dependencies, then they will be run before the
pass. The dependencies will be auto-loaded if needed. The
auto-loading procedure will look for the file with the
specified name (modulo hyphens) and ".plugin"
extension in
current folder and all folders specified with library
argument. If nothing found, then it will search for plugins of
system "bap.pass"
using findlib. If the dependency cannot be
satisfied run_pass
will terminate with error.
If pass requires command line arguments then they will be
provided to a pass as a first parameter. The arguments will be
extracted from argv
array (which defaults to Sys.argv
) by
removing all arguments that doesn't start with
--name-
. Then, from all command arguments that are left, the
--name-
prefix is substituted with --
. For example, if
argv
contained [| "bap"; "-lcallgraph";
"--callgraph-help"|]
then pass that registered itself under
callgraph
name will receive the following array of arguments
[| "callgraph"; --help |]
. That means, that plugins can't
accept arguments that are anonymous or short options.
Note: currently only the following syntax is supported:
--plugin-name-agrument-name=value
, the following IS NOT
supported --plugin-name-argument-name value
.
val passes : ?library:string list -> unit -> string list Or_error.t
passes ?library ()
returns a transitive closure of all
passes registered in the system so far.val run_passes_exn : ?library:string list ->
?argv:string array -> t -> t
run_passes_exn proj
is the same as Project.run_passes
, but raises
an exception on error. Useful to provide custom error
handling/printing.Pass_failed
if failed to load, or if plugin failed at runtime.val passes_exn : ?library:string list -> unit -> string list
passes_exn proj
is the same as Project.passes
, but raises
an exception on error. Useful to provide custom error
handling/printing.Pass_failed
if failed to load some plugin


| DOSE: T+ 0:00 |
20 mg |
insufflated |
Ketamine |
(powder / crystals) |
| T+ 0:00 |
130 mg |
insufflated |
Ketamine |
(powder / crystals) |
| T+ 0:00 |
|
smoked |
Cannabis |
|
| T+ 1:00 |
80 mg |
insufflated |
Ketamine |
(powder / crystals) |
| T+ 0:00 |
|
smoked |
Cannabis |
|
| T+ 2:00 |
140 mg |
insufflated |
Ketamine |
(powder / crystals) |
These events began to take place at around 2:00am.
I first sniffed up about 20mg. Because I was coming down from some GHB, and even though I had been assured this was a pretty safe combo, I wanted to do a quick low-dose check for signs of respiratory / cardiac depression and whatnot.
As soon as that kicked in -- sorry I'm not going to bother describing such a low dose of Ketamine, except that it felt 'nice' -- I quickly snarfed up somewhere between 120-140mg.
Railing Ketamine comes on quite quick.  It came on so quickly that I think my body had a bit of a strange time adjusting to it. Like I caught myself reminding myself to breathe at somewhat normal intervals, and my heart seemed 'different', although later on I realized it was beating at a pretty normal pace. Anyway it took me a few minutes to get comfortable and let the experience flow.
When I finally did get comfortable I remember seeing a large black square-shaped object rotating down towards me. Was this the 'hole'? Well, I don't know, I think the term 'K-Hole' is pretty retarded anyway, so I will just describe what happened. After I entered that square black rotating black hole-looking thing all the rules of reality were completely done away with. Also my concept of the sequence of events that followed is pretty fucked, so I will mention a few things first:
- About 1 hour after doing that ~130mg I snarfed up another 80mg with my other nostril. Then an hour after that I snarfed up at least 140mg. I found each of these re-doses to cause me to peak again for at least an hour, and substantial effects lingered for about 2-3 hours after the last dose, when I finally fell asleep.
- I was listening to music, mostly Flaming Lips, Cat Stevens, some Phish, the whole time.
- I turned off all the lights and put GeForce on my monitor. I didn't spend any time staring at the monitor, but instead enjoyed the various lights and colors it caused in my room.
- I am very experienced with dissociative states via DXM. So the kind of stuff that follows doesn't really mess with my head at all. I will try to compare these two substances towards the end of this report.
Allright, so here's what happened. Totally out of sequence I'm sure, but whatever:
- With my eyes open I experienced extremely intense visuals. Like my entire scenery changing before my eyes and transitioning. Blotches of red and green worked over my visual field. The green blotches seemed to draw whatever my mind could come up with (although I am now convinced the Ketamine has a bit of its own imaginary agenda) with the detail of an incredibly fine ink pen. These objects / images would often become animated after being drawn out. The red blotches seemed to serve another purpose. It seemed that whereever the red blotches went I could see through whatever surface it was overlayed upon. And under the surface was almost always geometric designs and Aztec-lookin' dudes scurrying around. These guys were very small and probably 4 of them could fit in a square inch.
- With my eyes closed pretty much all I could see was Tekken battles. I had played quite a bit of Tekken 5 that afternoon and evening, so it's not too surprising. And plus, this was like a trippy version of Tekken 8, yet unreleased for Playstation 4 or something. I really tried to make other things appear behind my eyelids but all I could see was Tekken. So finally I willed myself to embody one of the characters so I could be an active participant instead of just watching it. My perspective immediately shifted from that of one of the players, I believe I was Jin actually, and I saw the punches and kicks coming at me from my opponent, who I think was Paul.
- I decided to make my room rotate around while I was lying on the bed. It was really easy to do, and I felt like I was spinning around. Also, I literally saw my room rotate around me which was pretty fun for a while... and then, I saw them.....
- Ghost Children! Wait!  Okay, I rotated back, and they are still chilling there in my room. One boy, about 16 years old, and one girl, maybe 10 years old. They were sitting in my chairs. The boy looked like he was tying his shoe or doing something near his foot anyway. The girl was just sitting there.  They were 100% photorealistic and three dimensional. They were also oblivious to my presence, so it seemed. The thought kept occuring to me that these might be my children from the future. It wasn't like an overwhelming thought, just a suspicion that it seemed the Ketamine was reinforcing. I guess we'll see, eh? Anyway, these 2 children re-appeared several times during my trip, and I was totally cool with their presence.
- There were several points where my scenery was so completely different from reality (with my eyes wide open.... keep in mind I didn't want to be playing Tekken all night hehehe) that I really forgot where I was. Additionally I could be tilted up/down/sideways in any given direction to further distort and make me forget that I was actually lying on my bed in my room.  I have seen a similar scene on DXM + Mushrooms but this was even more detailed. Inside the sunken garden were like 6 or 8 Toltec looking stone figures, sitting in a circle and making small movements and appearing to communicate with each other. I examined this scene for a while until a red blotch came along and destroyed them.
- I could quite clearly see some four legged geometric trippy creatures running, single file, along my floor. Almost like ants. They seemed to be heading under my bed. This didn't bother me at all. In fact between that and the ghost children I'm pretty sure I could have witnessed just about anything take place and not have been bothered by it. Ketamine seems to limit my range of emotions, including fear and euphoria. Much of the trip was spent in a state of somewhat passive awe and wonder.
Now, those are just the main things I remember best. But many of these scenes changed at a rapid pace and many of them seemed to end prematurely, destroyed and rebuilt by red / green blotches.
By about 6:30am I had come down enough to segue into a nice restful sleep.
With DXM I am used to closing my eyes and drifting off into space, into a slowly building experience. With Ketamine I found it was much more interesting to have my eyes open and that things seemed to move at a faster pace. I did smoke some cannabis during the momentary 'comedowns' between the K peaks, but it didn't seem to significantly affect the intensity of the experience. With DXM cannabis can easily make it twice as intense.
I am hesitant to call Ketamine a superior dissociative, because I have so much DXM experience and I'm more or less in my Ketamine honeymoon, having only tried it a handfull of times (this being by far the most intense Ketamine experience I've had). Both of these substances seem to carry infinite possibilities and are a highly recreational brain vacation. Ketamine does seem more 'psychedelic' though... much more classicly psychedelic OEVs. Ketamine does also have a bit more pleasant body feel, kind of like the 2nd half of a DXM trip (which is the good half, IMO).
Anyway, I look forward to mixing Ketamine with a few tryptamines :)
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.


{% extends "header.html" %} {% block body %}
The first step to using NLTK or doing any natural language processing is going to be acquiring data. There are many ways to do this, but I would like to at least show a very basic method for acquiring data. First, since many websites offer RSS feeds of their content, we're going to cover how to pull links from an RSS feed.
import time import urllib2 from urllib2 import urlopen import re import cookielib, urllib2 from cookielib import CookieJar import datetime cj = CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) opener.addheaders = [('User-agent', 'Mozilla/5.0')] def main(): try: page = 'http://www.huffingtonpost.com/feeds/index.xml' sourceCode = opener.open(page).read() #print sourceCode try: titles = re.findall(r'(.*?) ',sourceCode) links = re.findall(r'(.*?)',sourceCode) for title in titles: print title for link in links: print link except Exception, e: print str(e) except Exception,e: print str(e) pass main()


Provisioning
Alright, so we have a virtual machine running a basic copy of Ubuntu and we can edit files from our machine and have them synced into the virtual machine. Let's now serve those files using a webserver.
We could just SSH in and install a webserver and be on our way, but then every person who used Vagrant would have to do the same thing. Instead, Vagrant has built-in support for automated provisioning. Using this feature, Vagrant will automatically install software when you vagrant up
so that the guest machine can be repeatably created and ready-to-use.
Installing Apache
We'll just setup Apache for our basic project, and we'll do so using a shell script. Create the following shell script and save it as bootstrap.sh
in the same directory as your Vagrantfile:
#!/usr/bin/env bash
apt-get update
apt-get install -y apache2
rm -rf /var/www
ln -fs /vagrant /var/www
Next, we configure Vagrant to run this shell script when setting up our machine. We do this by editing the Vagrantfile, which should now look like this:
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.provision :shell, :path => "bootstrap.sh"
end
The "provision" line is new, and tells Vagrant to use the shell
provisioner to setup the machine, with the bootstrap.sh
file. The file path is relative to the location of the project root (where the Vagrantfile is).
Provision!
After everything is configured, just run vagrant up
to create your machine and Vagrant will automatically provision it. You should see the output from the shell script appear in your terminal. If the guest machine is already running from a previous step, run vagrant reload --provision
, which will quickly restart your virtual machine, skipping the initial import step. The provision flag on the reload command instructs Vagrant to run the provisioners, since usually Vagrant will only do this on the first vagrant up
.
After Vagrant completes running, the web server will be up and running. You can't see the website from your own browser (yet), but you can verify that the provisioning works by loading a file from SSH within the machine:
$ vagrant ssh
...
vagrant@precise32:~$ wget -qO- <IP_ADDRESS>
This works because in the shell script above we installed Apache and setup the default DocumentRoot
of Apache to point to our /vagrant
directory, which is the default synced folder setup by Vagrant.
You can play around some more by creating some more files and viewing them from the terminal, but in the next step we'll cover networking options so that you can use your own browser to access the guest machine.


|
Otter
<IP_ADDRESS>
2d Game Development Framework based on SFML.Net
|
Class used for managing input from the keyboard, mouse, and joysticks. Updated by the active Game. More...
Public Member Functions | |
| bool | KeyPressed (Key k) |
| Check if a key has been pressed this update. More... | |
| bool | KeyPressed (char c) |
| Check if a key has been pressed this update. More... | |
| bool | KeyReleased (Key k) |
| Check if a key has been released this update. More... | |
| bool | KeyReleased (char c) |
| Check if a key has been released this update. More... | |
| bool | KeyDown (Key k) |
| Check if a key is currently down. More... | |
| bool | KeyDown (char c) |
| Check if a key is currently down. More... | |
| bool | KeyUp (Key k) |
| Check if a key is currently up. More... | |
| bool | KeyUp (char c) |
| Check if a key is currently up. More... | |
| bool | ButtonPressed (int button, int joystick=0) |
| Check if a joystick button is pressed. More... | |
| bool | ButtonPressed (AxisButton button, int joystick=0) |
| Check if a joystick AxisButton is pressed. More... | |
| bool | ButtonReleased (int button, int joystick=0) |
| Check if the joystick button is released. More... | |
| bool | ButtonReleased (AxisButton button, int joystick=0) |
| Check if the joystick AxisButton is released. More... | |
| bool | ButtonDown (int button, int joystick=0) |
| Check if the joystick button is down. More... | |
| bool | ButtonDown (AxisButton button, int joystick=0) |
| Check if the joystick AxisButton is down. More... | |
| bool | ButtonUp (int button, int joystick=0) |
| Check if the joystick button is up. More... | |
| bool | ButtonUp (AxisButton button, int joystick=0) |
| Check if the joystick button is up. More... | |
| float | GetAxis (JoyAxis axis, int joystick=0) |
| Get the value of a joystick axis from -100 to 100. More... | |
| void | SetAxisThreshold (JoyAxis axis, float threshold) |
| Set the threshold for an axis to act as an AxisButton. Defaults to 50 or one half of the joystick's total range. More... | |
| float | GetAxisThreshold (JoyAxis axis) |
| Gets the axis threshold for an axis to act as an AxisButton. More... | |
| bool | MouseButtonPressed (MouseButton b) |
| Check if a MouseButton is pressed. More... | |
| bool | MouseButtonReleased (MouseButton b) |
| Check if a MouseButton is pressed. More... | |
| bool | MouseButtonDown (MouseButton b) |
| Check if a MouseButton is pressed. More... | |
| bool | MouseButtonUp (MouseButton b) |
| Check if a MouseButton is pressed. More... | |
| void | ClearKeystring () |
| Clear the string of recently pressed keys. More... | |
Static Public Member Functions | |
| static Key | CharToKey (char key) |
| Convert a char to a Key code. More... | |
| static string | GetJoystickName (int id) |
| Get the name of the Joystick. More... | |
| static int | GetJoystickVendorId (int id) |
| Get the vendor id of the Joystick. More... | |
| static int | GetJoystickProductId (int id) |
| Get the product id of the Joystick. More... | |
Public Attributes | |
| string | KeyString = "" |
| The current string of keys that were pressed. More... | |
Static Public Attributes | |
| static Input | Instance |
| A reference to the current active instance. More... | |
| static int | KeystringSize = 500 |
| The maximum size of the string of recent key presses. More... | |
| static bool | CenteredMouse = false |
| Determines if the mouse should be locked to the center of the screen. More... | |
Properties | |
| static int | JoysticksConnected [get] |
| The current number of joysticks connected. More... | |
| static int | JoysticksSupported [get] |
| The maximum possible amount of joysticks that can be connected. More... | |
| Game | Game [get, set] |
| The reference to the game that owns this class. More... | |
| Key | LastKey [get, set] |
| The last known key that was pressed. More... | |
| MouseButton | LastMouseButton [get, set] |
| The last known mouse button that was pressed. More... | |
| List< int > | LastButton [get, set] |
| The last known button pressed on each joystick. More... | |
| int | MouseDeltaX [get, set] |
| The X movement of the mouse since the last update. Only updates if the mouse is locked inside the Game window. More... | |
| int | MouseDeltaY [get, set] |
| The Y movement of the mouse since the last update. Only updates if the mouse is locked inside the Game window. More... | |
| int | MouseX [get] |
| The current X position of the mouse. More... | |
| int | MouseY [get] |
| The current Y position of the mouse. More... | |
| int | MouseRawX [get, set] |
| The raw X position of the mouse. This can be set. More... | |
| int | MouseRawY [get, set] |
| The raw Y position of the mouse. This can be set. More... | |
| float | MouseScreenX [get] |
| The X position of the mouse in screen space. More... | |
| float | MouseScreenY [get] |
| The Y position of the mouse in screen space. More... | |
| float | MouseWheelDelta [get] |
| The change in the mouse wheel value this update. More... | |
| int | GameMouseX [get, set] |
| The X position of the mouse in the game. Use if the mouse is locked in the game window. This can be set if the mouse is locked inside the game window. More... | |
| int | GameMouseY [get, set] |
| The Y position of the mouse in the game. Use if the mouse is locked in the game window. This can be set if the mouse is locked inside the game window. More... | |
Class used for managing input from the keyboard, mouse, and joysticks. Updated by the active Game.
| bool Otter.Input.ButtonDown | ( | int | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick button is down.
| button | The button to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonDown | ( | AxisButton | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick AxisButton is down.
| button | The AxisButton to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonPressed | ( | int | button, |
| int | joystick = 0 |
||
| ) |
Check if a joystick button is pressed.
| button | The button to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonPressed | ( | AxisButton | button, |
| int | joystick = 0 |
||
| ) |
Check if a joystick AxisButton is pressed.
| button | The AxisButton to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonReleased | ( | int | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick button is released.
| button | The button to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonReleased | ( | AxisButton | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick AxisButton is released.
| button | The AxisButton to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonUp | ( | int | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick button is up.
| button | The button to check. |
| joystick | The joystick to check. |
| bool Otter.Input.ButtonUp | ( | AxisButton | button, |
| int | joystick = 0 |
||
| ) |
Check if the joystick button is up.
| button | The AxisButton to check. |
| joystick | The joystick to check. |
|
static |
Convert a char to a Key code.
| key | The char to convert into a Key. |
| void Otter.Input.ClearKeystring | ( | ) |
Clear the string of recently pressed keys.
| float Otter.Input.GetAxis | ( | JoyAxis | axis, |
| int | joystick = 0 |
||
| ) |
Get the value of a joystick axis from -100 to 100.
| axis | The axis to check. |
| joystick | The joystick to check. |
| float Otter.Input.GetAxisThreshold | ( | JoyAxis | axis | ) |
Gets the axis threshold for an axis to act as an AxisButton.
| axis | The JoyAxis. |
|
static |
Get the name of the Joystick.
| id | The connection id of the Joystick. |
|
static |
Get the product id of the Joystick.
| id | The connection id of the Joystick. |
|
static |
Get the vendor id of the Joystick.
| id | The connection id of the Joystick. |
| bool Otter.Input.KeyDown | ( | Key | k | ) |
Check if a key is currently down.
| k | The key to check. |
| bool Otter.Input.KeyDown | ( | char | c | ) |
Check if a key is currently down.
| c | The key to check. |
| bool Otter.Input.KeyPressed | ( | Key | k | ) |
Check if a key has been pressed this update.
| k | The key to check. |
| bool Otter.Input.KeyPressed | ( | char | c | ) |
Check if a key has been pressed this update.
| c | The key to check. |
| bool Otter.Input.KeyReleased | ( | Key | k | ) |
Check if a key has been released this update.
| k | The key to check. |
| bool Otter.Input.KeyReleased | ( | char | c | ) |
Check if a key has been released this update.
| c | The key to check. |
| bool Otter.Input.KeyUp | ( | Key | k | ) |
Check if a key is currently up.
| k | The key to check. |
| bool Otter.Input.KeyUp | ( | char | c | ) |
Check if a key is currently up.
| c | The key to check. |
| bool Otter.Input.MouseButtonDown | ( | MouseButton | b | ) |
Check if a MouseButton is pressed.
| b | The MouseButton to check. |
| bool Otter.Input.MouseButtonPressed | ( | MouseButton | b | ) |
Check if a MouseButton is pressed.
| b | The MouseButton to check. |
| bool Otter.Input.MouseButtonReleased | ( | MouseButton | b | ) |
Check if a MouseButton is pressed.
| b | The MouseButton to check. |
| bool Otter.Input.MouseButtonUp | ( | MouseButton | b | ) |
Check if a MouseButton is pressed.
| b | The MouseButton to check. |
| void Otter.Input.SetAxisThreshold | ( | JoyAxis | axis, |
| float | threshold | ||
| ) |
Set the threshold for an axis to act as an AxisButton. Defaults to 50 or one half of the joystick's total range.
| axis | The JoyAxis to set. |
| threshold | The threshold that the axis must pass to act as a button press. |
|
static |
Determines if the mouse should be locked to the center of the screen.
|
static |
A reference to the current active instance.
| string Otter.Input.KeyString = "" |
The current string of keys that were pressed.
|
static |
The maximum size of the string of recent key presses.
|
getset |
The reference to the game that owns this class.
|
getset |
The X position of the mouse in the game. Use if the mouse is locked in the game window. This can be set if the mouse is locked inside the game window.
|
getset |
The Y position of the mouse in the game. Use if the mouse is locked in the game window. This can be set if the mouse is locked inside the game window.
|
staticget |
The current number of joysticks connected.
|
staticget |
The maximum possible amount of joysticks that can be connected.
|
getset |
The last known button pressed on each joystick.
|
getset |
The last known key that was pressed.
|
getset |
The last known mouse button that was pressed.
|
getset |
The X movement of the mouse since the last update. Only updates if the mouse is locked inside the Game window.
|
getset |
The Y movement of the mouse since the last update. Only updates if the mouse is locked inside the Game window.
|
getset |
The raw X position of the mouse. This can be set.
|
getset |
The raw Y position of the mouse. This can be set.
|
get |
The X position of the mouse in screen space.
|
get |
The Y position of the mouse in screen space.
|
get |
The change in the mouse wheel value this update.
|
get |
The current X position of the mouse.
|
get |
The current Y position of the mouse.


°
Voltage vs. Nat/Na (V)
=— 4thcycle 10th cycle 55th cycle 105th cycle 155th cycle 203rd cycle
SS 200!
2 Hy
@ 1004 |
E
> 0; n /
2 me f
3-100! Nie
ae 0 4 3 3 Voltage vs. Na/Na (V Voltage NaN (V) See ee
15 30 45 60
Capacity (mAhg")


I am a Front-end Engineer and Wordpress Developer.
I am one of the trainee's of the Dufuna Fem Programme, one of the 35 women left.
I studied computer science for B.sc. I am skilled at web design and development.
Some of my skills are HTML, CSS, Bootstrap, Javascript, Jquery, MySQL, PHP and Wordpress
Version control is a system that records changes to a file or set of files over time
so that you can recall specific versions later
HTML is used to specify whether your web content should be recognized as a link, image, form, or one of many other available elements.
CSS is a stylesheet language used to describe the presentation of a document written in HTML or XML.
I populated a list once the text field is filled and submitted using Jquery
A link to the Jquery CodeI created a Form using HTMl and css and Validated the sign up details using PHP and Javascript
A link to the codeI created a form and checked if login details were valid from the DB then displayed the details using cookies
A link to the Php CodeI created a form and checked if login details were valid from the DB then displayed the details using Sessions
A link to the Php CodeI created a responsive webpage using bootstrap, added a navbar and a carousel
A link to the Bootstrap code


As a software developer I work with individuals, businesses and organizations get the most out ditigal technology. I simply increase your value and improve efficiency through automation.
As a digital strategist I utilise an array of marketing channels such as email, video,social media and paid advertising. I will grow your brand and make sure people get value from you through targeted outreach.
Circle of Competence. Bespoke Mobile and Webapps. Webdesign. CRM design. E-Commerce. SEM and SEO. Digital Marketing Consultation.
Sign up for FREE Consultation
"The e-filing option enhances speed, efficiency, and accountability in our courts,
as well as fundamentally changes the operations in our court registries," Kenya's Chief Justice stated.
Being part of the software development team in a feature-rich product
cemented my competence as a computer scientist and digital strategist.
I developed SEO strategy and blog content that drove cusine lovers and restaurateurs alike to Dayummy. Now anyone can order a variety of cuisines from their favourite restaurant!
Since everyone needs a professionally designed, lead-catching, sales-increasing, brand-differentiating website:
I optimized their website and drafted the best social media strategy to drive prospects to not only the site but
also their offices.
Contact
Talk to the Kipgide Now


Home
Datatable
Graph
Form
Toggle navigation
Submit
Link
Dr Djan Crocovich
Action
Another action
Something else here
Separated link


Copyright (c) ? Ed. Ravensburger
The game is played on an empty 5x5 board.
|
This set of rules is a variation of the original rules, in order to fit this section (the original rules featured 5 colors, with 7, 6, 5, 4 and 3 color each - 6 stones worth 21 points and 7 stones of the same color is worth 28 points. Capturing all stones of the same color doubles the score for that color).
A similar game is Take It Away.
| An example The first phase ended, and the last empty cell was d3. So, one player got a pointer to the d column, and the other to the 3rd row. This player shifts is pointer two rows up, and capture d5. After that, the other player may shift his pointer and choose to capture from a5 to e5 (except d5, already empty). |


Patrick Lange
Software Development Engineer, Amazon Alexa AI , San Francisco Graduate student (Ph.D) in Computer Science, NLP Group at UC Davis
I am a Software Development Engineer at Amazon working on applications of conversational AI research. Prior to joining Amazon, I was a Senior Research Engineer in the R&D division at Educational Testing Service (ETS) where I led the engineering efforts in the design and development of a service providing real-time speaking feedback to English language learners as well as ETS’ spoken dialog system providing opportunities for interactive speaking practice.
When I do not try to talk to my computer, I like to develop small video games or try out new technology. I do enjoy continuous learning and am currently pursuing a Ph.D. in Computer Science in the NLP Group at UC Davis as a part-time student.


Executes dll using winword.exe. No commonly made DLL example file available
winword.exe /l dllfile.dll
Windows binary: False
Bypasses Default AppLocker Rules: False
Mitre:
T1218
Links:
https://twitter.com/vysecurity/status/884755482707210241
https://twitter.com/subTee/status/884615369511636992
https://twitter.com/Hexacorn/status/885258886428725250
File path:
c:\Program Files (x86)\Microsoft Office\root\Office16\WINWORD.EXE
Acknowledgement:
Name: Casey Smith
Twitter:
@subtee
Blog:
https://subt0x11.blogspot.com/


Christmas lunch for those in need
by Tyler BrownNOBODY should be spending Christmas Day alone, according to Joondalup Christmas Lunch organisers.
“Whether it be through financial hardship or simply not having any family and friends to celebrate the occasion with, December 25 can be one of the most difficult days of the year for many,” grants coordinator Margaret Fullelove said.
“That is why we are encouraging anyone who would otherwise be spending Christmas Day alone to attend the 2019 Joondalup Christmas Lunch at Central Park.”
Organised by local churches and volunteers, the lunch is now in its 12th year and has grown to become one of the biggest events of its kind in Perth.
“This annual celebration gives people an opportunity to enjoy a delicious Christmas meal and make some new friends along the way, as well as show that what a caring community looks like,” Mrs Fullelove said.
The lunch will run from 11.30am to 2.30pm on December 25 and aims to cater for 500 guests.
Register at joondalupchristmaslunch.com or call 0466 252 076.


TimeOfImpactConstraint
class
class TimeOfImpactConstraint {
final List<Vector2> localPoints = new List<Vector2>.generate(
Settings.MAX_MANIFOLD_POINTS, (i) => new Vector2.zero());
final Vector2 localNormal = new Vector2.zero();
final Vector2 localPoint = new Vector2.zero();
int type = 0;
double radius = 0.0;
int pointCount = 0;
Body bodyA;
Body bodyB;
TimeOfImpactConstraint();
void setFrom(TimeOfImpactConstraint argOther){
assert(argOther.localPoints.length == localPoints.length);
for(int i=0; i<localPoints.length; i++) {
localPoints[i].setFrom(argOther.localPoints[i]);
}
localNormal.setFrom(argOther.localNormal);
localPoint.setFrom(argOther.localPoint);
type = argOther.type;
radius = argOther.radius;
pointCount = argOther.pointCount;
bodyA = argOther.bodyA;
bodyB = argOther.bodyB;
}
}
Constructors
new TimeOfImpactConstraint() #
TimeOfImpactConstraint();
Properties
final Vector2 localNormal #
final Vector2 localNormal = new Vector2.zero()
final Vector2 localPoint #
final Vector2 localPoint = new Vector2.zero()
final List<Vector2> localPoints #
final List<Vector2> localPoints = new List<Vector2>.generate(
Settings.MAX_MANIFOLD_POINTS, (i) => new Vector2.zero())
Methods
void setFrom(TimeOfImpactConstraint argOther){
assert(argOther.localPoints.length == localPoints.length);
for(int i=0; i<localPoints.length; i++) {
localPoints[i].setFrom(argOther.localPoints[i]);
}
localNormal.setFrom(argOther.localNormal);
localPoint.setFrom(argOther.localPoint);
type = argOther.type;
radius = argOther.radius;
pointCount = argOther.pointCount;
bodyA = argOther.bodyA;
bodyB = argOther.bodyB;
}


Table of Contents
Questions & Feedback
Found a typo or an error?
Want to improve this document? Edit it.
Need support or have a technical question?
Post to the user mailing-list.
Master Symfony2 fundamentals
Symfony hosting done right
Discover the SensioLabs Support
Installing and Configuring Symfony
Installing and Configuring Symfony¶
The goal of this chapter is to get you up and running with a working application built on top of Symfony. Fortunately, Symfony offers "distributions", which are functional Symfony "starter" projects that you can download and begin developing in immediately.
Tip
If you're looking for instructions on how best to create a new project and store it via source control, see Using Source Control.
Installing a Symfony2 Distribution¶
Tip
First, check that you have installed and configured a Web server (such as Apache) with PHP 5.3.8 or higher. For more information on Symfony2 requirements, see the requirements reference.
Symfony2 packages "distributions", which are fully-functional applications that include the Symfony2 core libraries, a selection of useful bundles, a sensible directory structure and some default configuration. When you download a Symfony2 distribution, you're downloading a functional application skeleton that can be used immediately to begin developing your application.
Start by visiting the Symfony2 download page at http://symfony.com/download. On this page, you'll see the Symfony Standard Edition, which is the main Symfony2 distribution. There are 2 ways to get your project started:
Option 1) Composer¶
Composer is a dependency management library for PHP, which you can use to download the Symfony2 Standard Edition.
Start by downloading Composer anywhere onto your local computer. If you have curl installed, it's as easy as:
1 | curl -s https://getcomposer.org/installer | php
|
Note
If your computer is not ready to use Composer, you'll see some recommendations when running this command. Follow those recommendations to get Composer working properly.
Composer is an executable PHAR file, which you can use to download the Standard Distribution:
1 | php composer.phar create-project symfony/framework-standard-edition /path/to/webroot/Symfony 2.2.0
|
Tip
For an exact version, replace 2.2.0 with the latest Symfony version (e.g. 2.2.1). For details, see the Symfony Installation Page
Tip
To download the vendor files faster, add the --prefer-dist
option at
the end of any Composer command.
This command may take several minutes to run as Composer downloads the Standard Distribution along with all of the vendor libraries that it needs. When it finishes, you should have a directory that looks something like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 | path/to/webroot/ <- your web server directory (sometimes named htdocs or public)
Symfony/ <- the new directory
app/
cache/
config/
logs/
src/
...
vendor/
...
web/
app.php
...
|
Option 2) Download an Archive¶
You can also download an archive of the Standard Edition. Here, you'll need to make two choices:
- Download either a
.tgz
or.zip
archive - both are equivalent, download whatever you're more comfortable using; - Download the distribution with or without vendors. If you're planning on using more third-party libraries or bundles and managing them via Composer, you should probably download "without vendors".
Download one of the archives somewhere under your local web server's root
directory and unpack it. From a UNIX command line, this can be done with
one of the following commands (replacing ###
with your actual filename):
1 2 3 4 5 | # for .tgz file
$ tar zxvf Symfony_Standard_Vendors_2.2.###.tgz
# for a .zip file
$ unzip Symfony_Standard_Vendors_2.2.###.zip
|
If you've downloaded "without vendors", you'll definitely need to read the next section.
Note
You can easily override the default directory structure. See How to override Symfony's Default Directory Structure for more information.
All public files and the front controller that handles incoming requests in
a Symfony2 application live in the Symfony/web/
directory. So, assuming
you unpacked the archive into your web server's or virtual host's document root,
your application's URLs will start with http://localhost/Symfony/web/
.
To get nice and short URLs you should point the document root of your web
server or virtual host to the Symfony/web/
directory. Though this is not
required for development it is recommended when your application goes into
production as all system and configuration files become inaccessible to clients.
For information on configuring your specific web server document root, see
the following documentation: Apache | Nginx .
Note
The following examples assume you don't touch the document root settings
so all URLs start with http://localhost/Symfony/web/
Updating Vendors¶
At this point, you've downloaded a fully-functional Symfony project in which you'll start to develop your own application. A Symfony project depends on a number of external libraries. These are downloaded into the vendor/ directory of your project via a library called Composer.
Depending on how you downloaded Symfony, you may or may not need to do update your vendors right now. But, updating your vendors is always safe, and guarantees that you have all the vendor libraries you need.
Step 1: Get Composer (The great new PHP packaging system)
1 | curl -s http://getcomposer.org/installer | php
|
Make sure you download composer.phar
in the same folder where
the composer.json
file is located (this is your Symfony project
root by default).
Step 2: Install vendors
1 | $ php composer.phar install
|
This command downloads all of the necessary vendor libraries - including
Symfony itself - into the vendor/
directory.
Note
If you don't have curl
installed, you can also just download the installer
file manually at http://getcomposer.org/installer. Place this file into your
project and then run:
1 2 | php installer
php composer.phar install
|
Tip
When running php composer.phar install
or php composer.phar update
,
composer will execute post install/update commands to clear the cache
and install assets. By default, the assets will be copied into your web
directory.
Instead of copying your Symfony assets, you can create symlinks if
your operating system supports it. To create symlinks, add an entry
in the extra
node of your composer.json file with the key
symfony-assets-install
and the value symlink
:
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"symfony-assets-install": "symlink"
}
When passing relative
instead of symlink
to symfony-assets-install,
the command will generate relative symlinks.
Configuration and Setup¶
At this point, all of the needed third-party libraries now live in the vendor/
directory. You also have a default application setup in app/
and some
sample code inside the src/
directory.
Symfony2 comes with a visual server configuration tester to help make sure your Web server and PHP are configured to use Symfony. Use the following URL to check your configuration:
1 | http://localhost/config.php
|
If there are any issues, correct them now before moving on.
When everything is fine, click on "Go to the Welcome page" to request your first "real" Symfony2 webpage:
1 | http://localhost/app_dev.php/
|
Symfony2 should welcome and congratulate you for your hard work so far!
Tip
To get nice and short urls you should point the document root of your
webserver or virtual host to the Symfony/web/
directory. Though
this is not required for development it is recommended at the time your
application goes into production as all system and configuration files
become inaccessible to clients then. For information on configuring
your specific web server document root, read
Configuring a web server
or consult the official documentation of your webserver:
Apache | Nginx .
Beginning Development¶
Now that you have a fully-functional Symfony2 application, you can begin
development! Your distribution may contain some sample code - check the
README.md
file included with the distribution (open it as a text file)
to learn about what sample code was included with your distribution.
If you're new to Symfony, check out "Creating Pages in Symfony2", where you'll learn how to create pages, change configuration, and do everything else you'll need in your new application.
Be sure to also check out the Cookbook, which contains a wide variety of articles about solving specific problems with Symfony.
Note
If you want to remove the sample code from your distribution, take a look at this cookbook article: "How to remove the AcmeDemoBundle"
Using Source Control¶
If you're using a version control system like Git
or Subversion
, you
can setup your version control system and begin committing your project to
it as normal. The Symfony Standard edition is the starting point for your
new project.
For specific instructions on how best to setup your project to be stored in git, see How to Create and store a Symfony2 Project in git.
 With
Git
, this is done by creating and adding the following to a .gitignore
file:
1 | /vendor/
|
Now, the vendor directory won't be committed to source control. This is fine
(actually, it's great!) because when someone else clones or checks out the
project, he/she can simply run the php composer.phar install
script to
install all the necessary project dependencies.


To choose enchanting levels (the 3 xp costs shown to the player in the enchant), we rely on the number of nearby bookshelves and some random values. In this version, the max level is 50 instead of 30, enchantment levels are often not shown in increasing order, more bookshelves can be used, and taking an item out of the enchanting slot and reinserting it refreshes the options.
This is a top-down view of an enchanting setup (note that bookshelf sides are shown for clarity). Bookshelves in each of these positions count to the total, either at or 1 block above the y-level of the bookshelf. This means that a total of 32 bookshelves can be in range of the table, however, the number is capped at 30 for calculation purposes. This allows a door to be added at no cost.
The image below indicates how bookshelves can be blocked off by highlighting air blocks and their associated bookshelves in the same color. A non-air block in either block of a column will prevent all of that column's bookshelves from being counted.
Now that we know what the number of bookshelves counted is, we transform it by doing each of the following:
After that calculation, the value is displayed in the slot.
We first find the enchantability of the item. This can be found in the table below:
| Material | Tool | Armor |
|---|---|---|
| Wood/Leather | 15 | 15 |
| Stone/Chain | 5 | 12 |
| Iron | 14 | 9 |
| Gold | 22 | 25 |
| Diamond | 10 | 10 |
Next, we take the enchantability and transform it by doing the following:
Finally, we select all enchantment levels which this result, which we call l
, is within the bounds for. These bounds can be found in the below table.


--- permalink: /404.html 404-img: "img/404.jpg" --- {% include head.html %}
Sorry, an error has occured, requested page not found!
Back home


{% capture md %} ## Health {% if include.issues %} Issues Found {:.issues-summary} {% capture block %} Current: - [Security updates available](#link-to-update) - [`/var` is full](#link-to-disk-full) - [Bad clusters found on `hdc`](#link-to-disk-issue) {% endcapture %}