Protocols
The following protocols are available globally.
-
The
AnalysisProtocol
protocol exposes the methods and properties of an underlyingPangoAnalysis
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAnalysis
. Alternatively, useAnalysisRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAnalysis
structure stores information about the properties of a segment of text.Declaration
Swift
public protocol AnalysisProtocol
-
The
AttrClassProtocol
protocol exposes the methods and properties of an underlyingPangoAttrClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrClass
. Alternatively, useAttrClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrClass
structure stores the type and operations for a particular type of attribute. The functions in this structure should not be called directly. Instead, one should use the wrapper functions provided forPangoAttribute
.Declaration
Swift
public protocol AttrClassProtocol
-
The
AttrColorProtocol
protocol exposes the methods and properties of an underlyingPangoAttrColor
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrColor
. Alternatively, useAttrColorRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrColor
structure is used to represent attributes that are colors.Declaration
Swift
public protocol AttrColorProtocol
-
The
AttrFloatProtocol
protocol exposes the methods and properties of an underlyingPangoAttrFloat
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrFloat
. Alternatively, useAttrFloatRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrFloat
structure is used to represent attributes with a float or double value.Declaration
Swift
public protocol AttrFloatProtocol
-
The
AttrFontDescProtocol
protocol exposes the methods and properties of an underlyingPangoAttrFontDesc
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrFontDesc
. Alternatively, useAttrFontDescRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrFontDesc
structure is used to store an attribute that sets all aspects of the font description at once.Declaration
Swift
public protocol AttrFontDescProtocol
-
The
AttrFontFeaturesProtocol
protocol exposes the methods and properties of an underlyingPangoAttrFontFeatures
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrFontFeatures
. Alternatively, useAttrFontFeaturesRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrFontFeatures
structure is used to represent OpenType font features as an attribute.Declaration
Swift
public protocol AttrFontFeaturesProtocol
-
The
AttrIntProtocol
protocol exposes the methods and properties of an underlyingPangoAttrInt
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrInt
. Alternatively, useAttrIntRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrInt
structure is used to represent attributes with an integer or enumeration value.Declaration
Swift
public protocol AttrIntProtocol
-
The
AttrIteratorProtocol
protocol exposes the methods and properties of an underlyingPangoAttrIterator
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrIterator
. Alternatively, useAttrIteratorRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrIterator
structure is used to represent an iterator through aPangoAttrList
. A new iterator is created withpango_attr_list_get_iterator()
. Once the iterator is created, it can be advanced through the style changes in the text usingpango_attr_iterator_next()
. At each style change, the range of the current style segment and the attributes currently in effect can be queried.Declaration
Swift
public protocol AttrIteratorProtocol
-
The
AttrLanguageProtocol
protocol exposes the methods and properties of an underlyingPangoAttrLanguage
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrLanguage
. Alternatively, useAttrLanguageRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrLanguage
structure is used to represent attributes that are languages.Declaration
Swift
public protocol AttrLanguageProtocol
-
The
AttrListProtocol
protocol exposes the methods and properties of an underlyingPangoAttrList
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrList
. Alternatively, useAttrListRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoAttrList
structure represents a list of attributes that apply to a section of text. The attributes are, in general, allowed to overlap in an arbitrary fashion, however, if the attributes are manipulated only throughpango_attr_list_change()
, the overlap between properties will meet stricter criteria.Since the
See morePangoAttrList
structure is stored as a linear list, it is not suitable for storing attributes for large amounts of text. In general, you should not use a singlePangoAttrList
for more than one paragraph of text.Declaration
Swift
public protocol AttrListProtocol
-
The
AttrShapeProtocol
protocol exposes the methods and properties of an underlyingPangoAttrShape
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrShape
. Alternatively, useAttrShapeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrShape
structure is used to represent attributes which impose shape restrictions.Declaration
Swift
public protocol AttrShapeProtocol
-
The
AttrSizeProtocol
protocol exposes the methods and properties of an underlyingPangoAttrSize
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrSize
. Alternatively, useAttrSizeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrSize
structure is used to represent attributes which set font size.Declaration
Swift
public protocol AttrSizeProtocol
-
The
AttrStringProtocol
protocol exposes the methods and properties of an underlyingPangoAttrString
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttrString
. Alternatively, useAttrStringRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttrString
structure is used to represent attributes with a string value.Declaration
Swift
public protocol AttrStringProtocol
-
The
AttributeProtocol
protocol exposes the methods and properties of an underlyingPangoAttribute
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeAttribute
. Alternatively, useAttributeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoAttribute
structure represents the common portions of all attributes. Particular types of attributes include this structure as their initial portion. The common portion of the attribute holds the range to which the value in the type-specific part of the attribute applies and should be initialized usingpango_attribute_init()
. By default an attribute will have an all-inclusive range of [0,G_MAXUINT
].Declaration
Swift
public protocol AttributeProtocol
-
The
ColorProtocol
protocol exposes the methods and properties of an underlyingPangoColor
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeColor
. Alternatively, useColorRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoColor
structure is used to represent a color in an uncalibrated RGB color-space.Declaration
Swift
public protocol ColorProtocol
-
The
ContextProtocol
protocol exposes the methods and properties of an underlyingPangoContext
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeContext
. Alternatively, useContextRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoContext
structure stores global information used to control the itemization process.Declaration
Swift
public protocol ContextProtocol : ObjectProtocol
-
The
CoverageProtocol
protocol exposes the methods and properties of an underlyingPangoCoverage
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeCoverage
. Alternatively, useCoverageRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoCoverage
structure represents a map from Unicode characters toPangoCoverageLevel
. It is an opaque structure with no public fields.Declaration
Swift
public protocol CoverageProtocol : ObjectProtocol
-
The
EngineProtocol
protocol exposes the methods and properties of an underlyingPangoEngine
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngine
. Alternatively, useEngineRef
as a lighweight,unowned
reference if you already have an instance you just want to use.
See morePangoEngine
is the base class for all types of language and script specific engines. It has no functionality by itself.Declaration
Swift
public protocol EngineProtocol : ObjectProtocol
-
The
See moreContextClassProtocol
protocol exposes the methods and properties of an underlyingPangoContextClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeContextClass
. Alternatively, useContextClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol ContextClassProtocol
-
The
EngineClassProtocol
protocol exposes the methods and properties of an underlyingPangoEngineClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineClass
. Alternatively, useEngineClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Class structure for
See morePangoEngine
Declaration
Swift
public protocol EngineClassProtocol
-
The
EngineInfoProtocol
protocol exposes the methods and properties of an underlyingPangoEngineInfo
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineInfo
. Alternatively, useEngineInfoRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoEngineInfo
structure contains information about a particular engine. It contains the following fields:Declaration
Swift
public protocol EngineInfoProtocol
-
The
EngineLangClassProtocol
protocol exposes the methods and properties of an underlyingPangoEngineLangClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineLangClass
. Alternatively, useEngineLangClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Class structure for
See morePangoEngineLang
Declaration
Swift
public protocol EngineLangClassProtocol
-
The
EngineScriptInfoProtocol
protocol exposes the methods and properties of an underlyingPangoEngineScriptInfo
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineScriptInfo
. Alternatively, useEngineScriptInfoRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoEngineScriptInfo
structure contains information about how the shaper covers a particular script.Declaration
Swift
public protocol EngineScriptInfoProtocol
-
The
EngineShapeClassProtocol
protocol exposes the methods and properties of an underlyingPangoEngineShapeClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineShapeClass
. Alternatively, useEngineShapeClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Class structure for
See morePangoEngineShape
Declaration
Swift
public protocol EngineShapeClassProtocol
-
The
See moreFontClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontClass
. Alternatively, useFontClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol FontClassProtocol
-
The
EngineLangProtocol
protocol exposes the methods and properties of an underlyingPangoEngineLang
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineLang
. Alternatively, useEngineLangRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoEngineLang
class is implemented by engines that customize the rendering-system independent part of the Pango pipeline for a particular script or language. For instance, a customPangoEngineLang
could be provided for Thai to implement the dictionary-based word boundary lookups needed for that language.Declaration
Swift
public protocol EngineLangProtocol : EngineProtocol
-
The
EngineShapeProtocol
protocol exposes the methods and properties of an underlyingPangoEngineShape
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeEngineShape
. Alternatively, useEngineShapeRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoEngineShape
class is implemented by engines that customize the rendering-system dependent part of the Pango pipeline for a particular script or language. APangoEngineShape
implementation is then specific to both a particular rendering system or group of rendering systems and to a particular script. For instance, there is onePangoEngineShape
implementation to handle shaping Arabic for Fontconfig-based backends.Declaration
Swift
public protocol EngineShapeProtocol : EngineProtocol
-
The
FontProtocol
protocol exposes the methods and properties of an underlyingPangoFont
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFont
. Alternatively, useFontRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoFont
structure is used to represent a font in a rendering-system-independent matter. To create an implementation of aPangoFont
, the rendering-system specific code should allocate a larger structure that contains a nestedPangoFont
, fill in theklass member of the nestedPangoFont
with a pointer to a appropriatePangoFontClass
, then callpango_font_init()
on the structure.The
See morePangoFont
structure contains one member which the implementation fills in.Declaration
Swift
public protocol FontProtocol : ObjectProtocol
-
The
FontDescriptionProtocol
protocol exposes the methods and properties of an underlyingPangoFontDescription
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontDescription
. Alternatively, useFontDescriptionRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoFontDescription
structure represents the description of an ideal font. These structures are used both to list what fonts are available on the system and also for specifying the characteristics of a font to load.Declaration
Swift
public protocol FontDescriptionProtocol
-
The
See moreFontFaceClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontFaceClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontFaceClass
. Alternatively, useFontFaceClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol FontFaceClassProtocol
-
The
See moreFontFamilyClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontFamilyClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontFamilyClass
. Alternatively, useFontFamilyClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol FontFamilyClassProtocol
-
The
FontMapClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontMapClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontMapClass
. Alternatively, useFontMapClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoFontMapClass
structure holds the virtual functions for a particularPangoFontMap
implementation.Declaration
Swift
public protocol FontMapClassProtocol
-
The
FontMetricsProtocol
protocol exposes the methods and properties of an underlyingPangoFontMetrics
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontMetrics
. Alternatively, useFontMetricsRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
See morePangoFontMetrics
structure holds the overall metric information for a font (possibly restricted to a script). The fields of this structure are private to implementations of a font backend. See the documentation of the corresponding getters for documentation of their meaning.Declaration
Swift
public protocol FontMetricsProtocol
-
The
FontsetClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontsetClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontsetClass
. Alternatively, useFontsetClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoFontsetClass
structure holds the virtual functions for a particularPangoFontset
implementation.Declaration
Swift
public protocol FontsetClassProtocol
-
The
See moreFontsetSimpleClassProtocol
protocol exposes the methods and properties of an underlyingPangoFontsetSimpleClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontsetSimpleClass
. Alternatively, useFontsetSimpleClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol FontsetSimpleClassProtocol
-
The
GlyphGeometryProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphGeometry
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphGeometry
. Alternatively, useGlyphGeometryRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoGlyphGeometry
structure contains width and positioning information for a single glyph.Declaration
Swift
public protocol GlyphGeometryProtocol
-
The
FontFaceProtocol
protocol exposes the methods and properties of an underlyingPangoFontFace
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontFace
. Alternatively, useFontFaceRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoFontFace
structure is used to represent a group of fonts with the same family, slant, weight, width, but varying sizes.Declaration
Swift
public protocol FontFaceProtocol : ObjectProtocol
-
The
FontFamilyProtocol
protocol exposes the methods and properties of an underlyingPangoFontFamily
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontFamily
. Alternatively, useFontFamilyRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoFontFamily
structure is used to represent a family of related font faces. The faces in a family share a common design, but differ in slant, weight, width and other aspects.Declaration
Swift
public protocol FontFamilyProtocol : ObjectProtocol
-
The
FontMapProtocol
protocol exposes the methods and properties of an underlyingPangoFontMap
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontMap
. Alternatively, useFontMapRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoFontMap
represents the set of fonts available for a particular rendering system. This is a virtual object with implementations being specific to particular rendering systems. To create an implementation of aPangoFontMap
, the rendering-system specific code should allocate a larger structure that contains a nestedPangoFontMap
, fill in theklass member of the nestedPangoFontMap
with a pointer to a appropriatePangoFontMapClass
, then callpango_font_map_init()
on the structure.The
See morePangoFontMap
structure contains one member which the implementation fills in.Declaration
Swift
public protocol FontMapProtocol : ObjectProtocol
-
The
FontsetProtocol
protocol exposes the methods and properties of an underlyingPangoFontset
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontset
. Alternatively, useFontsetRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
See morePangoFontset
represents a set ofPangoFont
to use when rendering text. It is the result of resolving aPangoFontDescription
against a particularPangoContext
. It has operations for finding the component font for a particular Unicode character, and for finding a composite set of metrics for the entire fontset.Declaration
Swift
public protocol FontsetProtocol : ObjectProtocol
-
The
FontsetSimpleProtocol
protocol exposes the methods and properties of an underlyingPangoFontsetSimple
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeFontsetSimple
. Alternatively, useFontsetSimpleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.
See morePangoFontsetSimple
is a implementation of the abstractPangoFontset
base class in terms of an array of fonts, which the creator provides when constructing thePangoFontsetSimple
.Declaration
Swift
public protocol FontsetSimpleProtocol : FontsetProtocol
-
The
LayoutProtocol
protocol exposes the methods and properties of an underlyingPangoLayout
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLayout
. Alternatively, useLayoutRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoLayout
structure represents an entire paragraph of text. It is initialized with aPangoContext
, UTF-8 string and set of attributes for that string. Once that is done, the set of formatted lines can be extracted from the object, the layout can be rendered, and conversion between logical character positions within the layout’s text, and the physical position of the resulting glyphs can be made.There are also a number of parameters to adjust the formatting of a
PangoLayout
, which are illustrated in. It is possible, as well, to ignore the 2-D setup, and simply treat the results of a PangoLayout
as a list of lines.The
See morePangoLayout
structure is opaque, and has no user-visible fields.Declaration
Swift
public protocol LayoutProtocol : ObjectProtocol
-
The
GlyphInfoProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphInfo
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphInfo
. Alternatively, useGlyphInfoRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoGlyphInfo
structure represents a single glyph together with positioning information and visual attributes. It contains the following fields.Declaration
Swift
public protocol GlyphInfoProtocol
-
The
GlyphItemProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphItem
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphItem
. Alternatively, useGlyphItemRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
See morePangoGlyphItem
is a pair of aPangoItem
and the glyphs resulting from shaping the text corresponding to an item. As an example of the usage ofPangoGlyphItem
, the results of shaping text withPangoLayout
is a list ofPangoLayoutLine
, each of which contains a list ofPangoGlyphItem
.Declaration
Swift
public protocol GlyphItemProtocol
-
The
GlyphItemIterProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphItemIter
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphItemIter
. Alternatively, useGlyphItemIterRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
PangoGlyphItemIter
is an iterator over the clusters in aPangoGlyphItem
. Theforward direction of the iterator is the logical direction of text. That is, with increasingstart_index
andstart_char
values. Ifglyph_item
is right-to-left (that is, if is odd), thenglyph_item
->item->analysis.levelstart_glyph
decreases as the iterator moves forward. Moreover, in right-to-left cases,start_glyph
is greater thanend_glyph
.An iterator should be initialized using either of
pango_glyph_item_iter_init_start()
andpango_glyph_item_iter_init_end()
, for forward and backward iteration respectively, and walked over using any desired mixture ofpango_glyph_item_iter_next_cluster()
andpango_glyph_item_iter_prev_cluster()
. A common idiom for doing a forward iteration over the clusters is:PangoGlyphItemIter cluster_iter; gboolean have_cluster; for (have_cluster = pango_glyph_item_iter_init_start (&cluster_iter, glyph_item, text); have_cluster; have_cluster = pango_glyph_item_iter_next_cluster (&cluster_iter)) { … }
Note that
text
is the start of the text for layout, which is then indexed by to get to the text ofglyph_item
->item->offsetglyph_item
. Thestart_index
andend_index
values can directly index intotext
. Thestart_glyph
,end_glyph
,start_char
, andend_char
values however are zero-based for theglyph_item
. For each cluster, the item pointed at by the start variables is included in the cluster while the one pointed at by end variables is not.None of the members of a
See morePangoGlyphItemIter
should be modified manually.Declaration
Swift
public protocol GlyphItemIterProtocol
-
The
GlyphStringProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphString
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphString
. Alternatively, useGlyphStringRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoGlyphString
structure is used to store strings of glyphs with geometry and visual attribute information. The storage for the glyph information is owned by the structure which simplifies memory management.Declaration
Swift
public protocol GlyphStringProtocol
-
The
GlyphVisAttrProtocol
protocol exposes the methods and properties of an underlyingPangoGlyphVisAttr
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeGlyphVisAttr
. Alternatively, useGlyphVisAttrRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The PangoGlyphVisAttr is used to communicate information between the shaping phase and the rendering phase. More attributes may be added in the future.
See moreDeclaration
Swift
public protocol GlyphVisAttrProtocol
-
The
IncludedModuleProtocol
protocol exposes the methods and properties of an underlyingPangoIncludedModule
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeIncludedModule
. Alternatively, useIncludedModuleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoIncludedModule
structure for a statically linked module contains the functions that would otherwise be loaded from a dynamically loaded module.Declaration
Swift
public protocol IncludedModuleProtocol
-
The
ItemProtocol
protocol exposes the methods and properties of an underlyingPangoItem
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeItem
. Alternatively, useItemRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoItem
structure stores information about a segment of text.Declaration
Swift
public protocol ItemProtocol
-
The
LanguageProtocol
protocol exposes the methods and properties of an underlyingPangoLanguage
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLanguage
. Alternatively, useLanguageRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoLanguage
structure is used to represent a language.
See morePangoLanguage
pointers can be efficiently copied and compared with each other.Declaration
Swift
public protocol LanguageProtocol
-
The
See moreLayoutClassProtocol
protocol exposes the methods and properties of an underlyingPangoLayoutClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLayoutClass
. Alternatively, useLayoutClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol LayoutClassProtocol
-
The
LayoutIterProtocol
protocol exposes the methods and properties of an underlyingPangoLayoutIter
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLayoutIter
. Alternatively, useLayoutIterRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
PangoLayoutIter
structure can be used to iterate over the visual extents of aPangoLayout
.The
See morePangoLayoutIter
structure is opaque, and has no user-visible fields.Declaration
Swift
public protocol LayoutIterProtocol
-
The
LayoutLineProtocol
protocol exposes the methods and properties of an underlyingPangoLayoutLine
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLayoutLine
. Alternatively, useLayoutLineRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
PangoLayoutLine
structure represents one of the lines resulting from laying out a paragraph viaPangoLayout
.PangoLayoutLine
structures are obtained by callingpango_layout_get_line()
and are only valid until the text, attributes, or settings of the parentPangoLayout
are modified.Routines for rendering PangoLayout objects are provided in code specific to each rendering system.
See moreDeclaration
Swift
public protocol LayoutLineProtocol
-
The
LogAttrProtocol
protocol exposes the methods and properties of an underlyingPangoLogAttr
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeLogAttr
. Alternatively, useLogAttrRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoLogAttr
structure stores information about the attributes of a single character.Declaration
Swift
public protocol LogAttrProtocol
-
The
See moreMapProtocol
protocol exposes the methods and properties of an underlyingPangoMap
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeMap
. Alternatively, useMapRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol MapProtocol
-
The
See moreMapEntryProtocol
protocol exposes the methods and properties of an underlyingPangoMapEntry
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeMapEntry
. Alternatively, useMapEntryRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol MapEntryProtocol
-
The
MatrixProtocol
protocol exposes the methods and properties of an underlyingPangoMatrix
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeMatrix
. Alternatively, useMatrixRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A structure specifying a transformation between user-space coordinates and device coordinates. The transformation is given by
See morex_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0; y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0; Declaration
Swift
public protocol MatrixProtocol
-
The
RectangleProtocol
protocol exposes the methods and properties of an underlyingPangoRectangle
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRectangle
. Alternatively, useRectangleRef
as a lighweight,unowned
reference if you already have an instance you just want to use.The
See morePangoRectangle
structure represents a rectangle. It is frequently used to represent the logical or ink extents of a single glyph or section of text. (See, for instance,pango_font_get_glyph_extents()
)Declaration
Swift
public protocol RectangleProtocol
-
The
RendererProtocol
protocol exposes the methods and properties of an underlyingPangoRenderer
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRenderer
. Alternatively, useRendererRef
as a lighweight,unowned
reference if you already have an instance you just want to use.
See morePangoRenderer
is a base class for objects that are used to render Pango objects such asPangoGlyphString
andPangoLayout
.Declaration
Swift
public protocol RendererProtocol : ObjectProtocol
-
The
RendererClassProtocol
protocol exposes the methods and properties of an underlyingPangoRendererClass
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRendererClass
. Alternatively, useRendererClassRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Class structure for
PangoRenderer
.The following vfuncs take user space coordinates in Pango units and have default implementations:
- draw_glyphs
- draw_rectangle
- draw_error_underline
- draw_shape
- draw_glyph_item
The default draw_shape implementation draws nothing.
The following vfuncs take device space coordinates as doubles and must be implemented:
- draw_trapezoid
- draw_glyph
Declaration
Swift
public protocol RendererClassProtocol
-
The
See moreRendererPrivateProtocol
protocol exposes the methods and properties of an underlyingPangoRendererPrivate
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeRendererPrivate
. Alternatively, useRendererPrivateRef
as a lighweight,unowned
reference if you already have an instance you just want to use.Declaration
Swift
public protocol RendererPrivateProtocol
-
The
ScriptIterProtocol
protocol exposes the methods and properties of an underlyingPangoScriptIter
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeScriptIter
. Alternatively, useScriptIterRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
See morePangoScriptIter
is used to iterate through a string and identify ranges in different scripts.Declaration
Swift
public protocol ScriptIterProtocol
-
The
TabArrayProtocol
protocol exposes the methods and properties of an underlyingPangoTabArray
instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, seeTabArray
. Alternatively, useTabArrayRef
as a lighweight,unowned
reference if you already have an instance you just want to use.A
See morePangoTabArray
struct contains an array of tab stops. Each tab stop has an alignment and a position.Declaration
Swift
public protocol TabArrayProtocol


---
layout: page
title: Portfolio
header: Portfolio
group: navigation
---
{% include JB/setup %}
Rotten Mangoes - Lighthouse Labs Project
Source code: https://github.com/yaoyunchen/LH_rotten_mangoes
- Created a Rails web app to allow users to sign up, add movies to the app and post reviews
- Included feature where admins have the ability to switch as a specific user and view the app as the specified user
- Followed through with instructions to create a base app in Rails, then added styling using HTML/CSS/Javascript, along with Bootstrap to make the site unique
Source code: https://github.com/yaoyunchen/LH_foosball_tracker
- Collaborated with two other members to create a Sinatra web app to allow users to keep track of foosball records, featuring a leaderboard and the ability to send and accept match challenges with other users
- IUtilized Sinatra and ActiveRecord, along with SQLite3 and PostgreSQL for database and HTML/CSS/Javacript for display
- Employed project planning techniques such as user stories, ERDs and wireframes to ensure a smooth workflow
Custom Enterprise Resource Planning System
- Updated and created new features for an in-house ERP program written by multiple previous programmers using Visual Basic and MS SQL Server and used by over a hundred employees
- Successfully maintained the program for well over a year without any supervision, was the only IT / programmer in the company after three months
- Demonstrated ability to learn and adapt quickly using a previously unknown programming language as well as first time interaction with database servers


Aisha loves coding, billiards, karaoke and much more.
However, her greatest passion lies within the personal safety and eduction realms of web development.
She is both self-taught and eventually elected to attend UC Extension in Berkeley, California where she received her technical training.


SWIMMING WITH SHARKS
Writer: George Huang Director: George Huang Producer: Steve Alexander & Joanne Moore
Characters: Kevin Spacey - Buddy Ackerman Frank Whaley - Guy Michelle Forbes - Dawn Lockard Benicio Del Toro - Rex
Review:
I don't know why, but this hasn't been an easy review to write. Maybe part of it is that I'm sort of divided about why I like it (and there are lots of acceptable reasons, believe me). The original reason it interested me is that Kevin Spacey is the star. I first heard of this movie (and first watched it) the day after I saw the Usual Suspects for the first time, and for those of you who have seen that, you know Spacey is unbelievable (and so does the Academy, come to think of it).
After I started watching this, I found another good reason to like it -- Benicio Del Toro (also in Usual Suspects). He has a really small part (probably less than 5 minutes of screen time), but he manages to do a lot with it, as he so often does. Del Toro's exit is about the time the movie begins to get extremely funny.
This film is billed as a comedy, and it definitely has some pretty strong elements of the dark variety. However, I have always been more of the mind that the dark and non-comedic elements tend to overshadow the dark and comedic elements. Actually, in that way it reminds me of "In the Company of Men" (an excellent movie, by the way). It's undeniably funny, though it's a somewhat guilty sort of humor. And then, before you really notice, it's suddenly disturbing and not-at-all funny and you realize that it hasn't actually been funny for a while.
The plot, basically, is this: Guy (Whaley) is a small-town kid who comes to Hollywood to work for Buddy Ackerman (Spacey), a big-shot producer. The job turns out to be a total nightmare, as Guy has found his boss to be demanding, obnoxious, and utterly devoid of any respect for him or anything else. Amidst much on-the-job yelling and ridicule, Guy's resentment grows and grows until he finds himself taking his boss hostage and torturing him. This happens in the first 5 minutes, however -- the whole movie is a flashback.
Not knowing how to say what I want to say about this movie has caused me to ramble on for quite a while, so I will try to sum this up now. The first 2/3 of this movie are incredibly funny dark comedy which I imagine Kevin Spacey enjoyed heartily. As is customary in such a film, there is some moderately disturbing stuff going on, but it's all in good fun. I'm honestly not sure what it is about this movie that makes me like it so much, but if you like Kevin Spacey and aren't bothered by black comedy, it's well worth your time. I recommend it quite highly.
- John Roberdeau -<EMAIL_ADDRESS>- http://www.dvdfuture.com/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This data visualization project is something I built for work as a Data Analyst for the Assessment Office of FSU Libraries. My passion and frustrations with big data led me to the back-then emerging, but now very popular software, called Tableau, which is now being widely used to visualize different kinds of university data at work. This visualization represents hundreds and thousands of rows of data collected from the library turnstiles, which I collect monthly from FSUPD's C-Cure Facility Software.
What I really aimed to accomplish from creating this visualization is to show the overall importance of the libraries to our students at FSU, especially during finals week. What you don't see on this dashboard is a spreadsheet with thousands of rows of unformatted data, but what you do see is a dashboard that represents the changes that go on throughout the semester. It gives you a glimpse of how students use the library throughout the academic year. That is what is so great about Tableau. Further analyses and improvement is being done on this, and I am currently building a data dashboard for internal use, which presents an in-depth stats overview of how students truly use and spend their time at our libraries.
If you're interested in learning more about the work I do for FSU Libraries, click here.


Information related to coming and living in Belgium:
Before leaving Belgium
If you are leaving Belgium for good, you must return your residence permit to the municipal authority. Also make sure that you cancel your Belgian health insurance and, if applicable, close your bank account.
When you are moving out of your UCLouvain accommodation, please consult the UCLouvain Housing Service for the last things to do.
*Empty*
3. Register with your commune
Registration with the commune is compulsory for stays of more than three months.
1. If you are not an EU national:
Within eight days of your arrival in Belgium, you must begin the process of registering with the municipality, or commune, in which you reside. Report to the commune’s Foreigners Department (Service des Etrangers) with:
your identification card or passport and visa;
your accommodation lease;
one passport-type photo.
In the days that follow the police will visit you at your residence to verify your address. You will then return to the Foreigners Department with documents specified by your commune in order to complete the registration process, for which the commune will charge €18.
When the commune completes the registration process, it sends you a Registered Foreigner Certificate (Certificat d’Inscription au Registre des Etrangers).
2. If you are an EU national:
Within eight days of your arrival in Belgium, you must register with the local government administration of the commune in which you reside, by reporting to its Foreigners Department (Service des Etrangers) with documents specified by the commune, which will charge a fee. In the days that follow the police will visit you at your residence to verify your address.
When the commune completes the registration process, it sends you a Registered Foreigner Certificate (Certificat d’Inscription au Registre des Etrangers).
Non-European students' specifics: Visa application should be started soon enough as it may last up to 60 days to complete the full process. Note that : Students with dual nationality (European & Non-European) will be considered by UCLouvain as European students. ASP Student Visa (long term Visa) is compulsory in order to register at UCLouvain and at the City Hall. Chinese students coming from China are EXEMPTED from the ASP Certificate by showing the APS Exemption Letter that the LSM sent to their home coordinator after their nomination. In case you need to start your Visa application process before your UCLouvain account is activated, you can start it based on the LSM Acceptance Letter that should be specifically requested by your home coordinator to LSM.
HOW DO I OBTAIN A STUDENT VISA FOR BELGIUM?
You do not need a visa if you are a national of one of the 28 countries of the European Union, Iceland, Liechtenstein, Monaco, Norway or Switzerland. If you do need a visa, the Enrolment Office will provide you with a registration authorisation letter to add to the student visa application you submit to your Belgian embassy or consulate. In either case, all students must register with their commune of residence within eight days of arrival in Belgium. Complete information on Belgian visas.
Immigration / Visa
For students, researchers and lecturers who are staying for more than three months:
citizens of the European Union, Iceland, Liechtenstein, Monaco, Norway or Switzerland do not need a visa.
citizens of any other country have to apply for a visa at the home country’s Belgian embassy or consulate as soon as possible.
Regardless of nationality, individuals who are staying for more than three months are required to register with the municipality (‘Administration communale’, often spoken of simply as the ‘commune’) of residence within eight days of arrival in Belgium. This registration is valid for one year (five years for EU nationals) and must be resubmitted for renewal one month prior to its expiration (details below under ‘When you arrive’).
Researchers and lecturers employed by UCL may also require a Belgian work permit (see ‘Work permit’ below).
More information is available at the home country’s Belgian embassy or consulate, the Belgian Immigration Office and the Belgian Ministry of Foreign Affairs.
HOW DO I OBTAIN A STUDENT VISA FOR BELGIUM?
If you are admitted to UCLouvain, the Enrolment Office will provide you with a registration authorisation letter to add to the student visa application file that you will submit to your Belgian embassy or consulate. If you are a national of one of the 28 countries of the European Union, Iceland, Liechtenstein, Monaco, Norway or Switzerland, you do not require a student visa but you must register with the commune where you reside in Belgium. More information is available at the ‘Visa for Belgium’ page of the Belgian Foreign Affairs website.
Select your "Mutuelle" in Belgium
Joining a "Mutuelle" in Belgium means you will be reimbursed for part of your medical and dental fees, hospital fees, surgery, giving birth, etc. according to the tariff set for the various types of care provided.
You are free to decide which "Mutuelle" suits you best. Some "Mutuelles" are based on the campus :
Partenamut, Traverse d'Esope, 11 - tel. 0032 10 24 72 08
Mutualité Chrétienne, Place de l’Université, 8 – tel. 0032 10 45 13 76
If you made your choice before arriving in Belgium, you can already subscribe online (if available). Otherwise, you will be able to do it once you arrived in Belgium.
Which health insurance for whom (more information on FAQ for international students)
European students : The European health insurance card is accepted.
Non-European students : You must subscribe to a health insurance in your home country or become a member of a Mutuelle in Belgium (mutual insurance company) which will reimburse (in part or in full, depending on the type of care given) medical care and the cost of some medicine.
Be aware that you must hand in a copy of your health insurance certificate (European health card or proof of a private insurance certificate) to finalize your UCLouvain registration.
Register with a health insurance agency
Students who are not EU citizens are required to register with a health insurance agency (‘mutuelle’), which partially covers the cost of care, drugs and hospitalisation. To find a nearby office, consult their websites:
www.mutsoc.be or www.solidaris.be
www.mc.be
www.mloz.be
www.mutualites-neutres.be
www.ml.be
www.caami-hziv.fgov.be
While registering with a mutuelle is not a requirement for EU citizen students, who must show proof of coverage in their home country and provide form E 111, E 109 or E 128, or for some grant-assisted students whose funding organisation provides partial coverage, the university nevertheless advises these students to register with a Belgian health insurance agency to complement their existing coverage. To do so, students must be enrolled at the university and present the specific certificate provided by the university for health agency registration.
Healthcare
Students, researchers and lecturers who are citizens of the European Union, Iceland, Liechtenstein, Norway or Switzerland must apply for the European Health Insurance Card. This card is free and provides access to the same public healthcare (e.g. doctors, pharmacies, hospitals or treatment centres) enjoyed by Belgian residents. Charges for medical care are reimbursed by the home country immediately or after returning to the home country (depending of the home country). However, EU nationals may wish to join a Belgian health insurance scheme ("mutuelle") (see below) to make sure they benefit from all available services (for example, child supervision at home).
Students, researchers and lecturers who are citizens of any other country must join a health insurance scheme (the so-called ‘mutuelle’ or ‘mutualité’; French and Dutch only) as soon as possible after arrival. These schemes reimburse the cost of medical care (either in full or in part depending on the type of services provided) and some medications, and are run by a range of agencies – socialist, Christian, liberal and independent – any of which can be chosen. Non-compulsory ‘complementary’ health insurance, which covers some or all of the costs not reimbursed by compulsory health insurance, is also available.
International students and some visiting professors (for example, those participating in Erasmus + teaching assignments) often have to prove that they are covered by international health insurance.
International visitors who stay in Belgium for less than three months cannot join a Belgian health insurance scheme.
Insurance offered by the university
1. For students:
Students enrolled at UCL benefit from accident cover while pursuing academic activities (including when travelling between accommodation and the university, during study trips and internships, etc.) and third-party liability cover while they are pursuing academic activities. There is no coverage providing emergency assistance relating to any accidents that happen in Belgium (repatriation to home country in the event of an accident). This kind of insurance must be taken out privately.
Concerning exchange students, their home university should continue to insure them against accidents and against the consequences of third-party liability while they are pursuing academic activities. Therefore they should contact their university to find out the limitations of its insurance policies.
As a general rule, students are exempt from having to obtain a work permit, but there are two exceptions for students from non-EU countries: students who wish either to pursue a paid internship or to work while studying must obtain a Type C work permit.
More information is available at the ‘Foreign students’ page of the Belgian Federal Public Service for Employment, Labour and Social Dialogue (French), the federal website ‘Student at Work’ and the UCL Jobs Service.
Type B work permits are valid for maximum one year and must be renewed each subsequent year. More information is available at the ‘Work permit’ intranet page: https://intranet.uclouvain.be/fr/myucl/travailler/informations-legales-permis-de-travail.html
If they stay more than three months, students, researchers and lecturers should open a bank account as soon as possible after arrival. In fact, before leaving their home country, they should ask their bank whether it has a local counterpart in Belgium, which is likely and might be advantageous. As opening an account can take several days (see ‘Open a bank account’ in the ‘When you arrive’ section), arriving with sufficient funds in cash is necessary. More information in the "When you arrive" section.
**might not be relevant for foreign students**
Bachelor’s, master’s and non-grant-assisted PhD students who have enrolled in a degree programme and are under 25 years of age will receive from the UCL Student Support Service a certificate addressed to their parents’ Family Allowance Fund.
Students and grant holders (PhD students and postdoctoral researchers) are not liable to tax as individuals unless they earn above a certain amount: see studentatwork.be. Only PhD students and postdoctoral researchers will receive a tax return form. Contact the Personnel Department for more information about tax exemption conditions for grant holders.
In Belgium, the normal rate of VAT is 21%. However, lower rates of 6% and 12% are applied to certain categories of goods and services. More information.
*Empty*
Getting around Belgium
Public transport
The Belgian National Railways offers discounts for adults under 26. Children under six ride free (up to four per adult), those aged six to eleven ride at half-price. Other discounts and passes are available, such as the Railpass, which is good for ten trips within Belgium over one year, and the Benelux pass, which allows unlimited travel on any five days within one month of purchase in Belgium, Luxembourg and the Netherlands. Attention: the Eurail Benelux Pass is valid only for non-European residents; the Interrail Benelux Pass is valid only for European residents.
TEC is the regional bus service for Wallonia and De Lijn is the regional bus service for Flanders; both offer service to, from and in Brussels. De Lijn also operates trams, including the Kusttram which operates along the Belgian coast. For public transport in Brussels (metro, bus and tram), consult STIB-MIVB as well as information on the Brussels public transport system’s MOBIB electronic card, which can also be loaded with ticketing for Belgian rail, TEC or De Lijn.
Passengers must indicate they intend to board approaching buses and trams by signalling the driver with a simple raise of the hand, otherwise they mightmay not stop.
By taxi
All major towns have taxi services, but they are quite expensive. They can rarely be hailed from the roadside; taxi stands are located at strategic locations, such as central squares and train stations. They can also be booked by phone and online. Drivers often do not have detailed knowledge, so passengers should be prepared to explain. As fares include service, tipping is not necessary, though rounding up is a frequent practice.
Brussels taxi companies
Taxis Bleus
Taxis Verts
Autolux
Ottignies-Louvain-la-Neuve
Taxis Blancs
Uber is also available in Belgium.
By bicycle
Overall, Belgium takes cycling seriously and is continually adding lanes and paths. Cyclists must know the rules of the road (see our sister university KULeuven’s helpful guide) and be particularly aware that traffic approaching from the right has right of way. Equipment can be rented in most towns and/or train stations for a reasonable price. Automated bike sharing networks include the Blue Bike nationwide network, Villo! in Brussels, La Bia Velo in Namur and Velo Antwerpen in Antwerp. Cyclists can even bring their bikes on trains or rent bikes as part of the train ticket price.
-------------------------
Driving in Belgium
Belgium has a dense network of motorways, none of which are tolled. Road conditions are excellent, service stations are plentiful. Traffic congestion in Brussels can be heavy. Signs can sometimes be unclear and on secondary roads even absent. Road signs are in Dutch in Flanders and in French in Wallonia.
The minimum age for renting a car is 21; one year’s driving experience and a credit card are required. All major car rental agencies are available at airports and major train stations, across cities and in towns, Avis, Budget, Europcar, Hertz, etc.
Driver’s licence
Drivers must have a valid license and carry it while driving. The minimum driving age is 18.
Licences issued by an EU or EEA country are recognised throughout the EU.
Some licences issued by non-EU/EEA countries may be valid for short-term stays up to three months; others may be valid for short-term stays up to six months but only in conjunction with an International Driver’s Permit issued by national automobile associations (for country-specific requirements, check with the embassy or consulate in Belgium). For longer stays, licences issued by non-EU/EEA countries that have a licence exchange agreement with Belgium can be exchanged for a Belgian licence upon registering with the commune of residence. Otherwise, a Belgian licence must be acquired by taking both written and practical driving tests; it is possible to benefit from an interpreter when taking the written exam.
Rules of the road
Traffic drives on the right. Speed limits in urban areas are 50 kph (30 mph), on motorways 120 kph (75 mph) and 90 kph (55 mph) on other national roads. Unless intersections are otherwise marked, drivers coming from the right (and turning to the right) have priority and may proceed without stopping. Buses and trams always have priority.
Third-party insurance is essential and comprehensive insurance is highly recommended. Wearing safety belts is mandatory and no child under 12 can sit in the front passenger seat if back seats are available. Drink-driving is illegal and severely punished. Mobile phone use while driving must be hands-free.
Motorcycle drivers and passengers must wear gloves, a jacket with long sleeves, long trousers, and boots that protect the ankles. Children under three are not allowed on motorcycles. Children between three and eight can be passengers only on motorcycles up to 125cc and must be carried in a special child’s seat.
More complete information is available in the Belgian Highway Code (French and Dutch) and various English guides online.
Telephone / Internet
There are three main mobile phone service providers:
Proximus
Orange
Telenet-Base
Each company offers a range of services and packages. Tariffs and conditions should be compared prior to entering into a contract, which can be obtained by visiting the nearest shop with:
ID (passport or identity card);
proof of address (a utility bill, property rental contract or bank statement);
bank account IBAN number.
Mobile deals can be fixed contract, rechargeable or pay as you go.
Several companies offer landlines either individually or as part of package deals that combine landline, internet, television and/or mobile service:
Proximus
Telenet
VOO
Scarlet
Dommel
Billi
Cybernet
EDP Net
SFR Belgique
TV From Home
-------------------------
Postal Services
The Belgian postal service, bpost, operates post offices Monday to Friday from 8:30 or 9:00 am to 4:00 or 5:00 pm. Some are open late Fridays and Saturday mornings. Increasingly, however, supermarkets and press shops also offer postal services. Public mail boxes are red.
Over 95% of Belgian households have cable television. The main cable network operators in the Brussels Region and Wallonia are Proximus, VOO, Telenet and Scarlet . They offer package deals that can include television, internet, landline and/or mobile services. There are no national television channels in Belgium. The two main public networks are and RTBF in the French Community (Wallonia and Brussels) and VRT in the Flemish Community (Flanders and Brussels)
Most cable, satellite and IPTV platforms in Belgium distribute stations from other European countries including the Netherlands, Germany, France, the United Kingdom and Italy (NPO 1, NPO 2, NPO 3, ARD, ZDF, BBC One, BBC Two, BBC World News, BBC Entertainment, TF1, France 2, France 3, Rai 1). RTBF channels include La Une, La Deux and La Trois. The private RTL Group runs the French-language channels RTL-TVI, Club RTL and Plug RTL. La Une and RTL-TVI are the main channels with local newscasts and the most local programming.
The electrical current is 220 volts AC and standard European plugs have two round pins.
As the market has liberalised in recent years, the number of electricity and gas providers has multiplied and comparison shopping is essential.
Recycling is important in Belgium. Rubbish is sorted at the source – in other words, in the household – into specific coloured sacks that must be purchased at local supermarkets, or into similarly coloured bins (depending on accommodation). Rubbish crews collect the sacks from the curb or trash bin outside residences on specific days – leaving rubbish out on the wrong day is subject to a fine.
The three basic categories of waste are:
Paper and cardboard
Plastic, metal, aluminium-lined cartons (e.g. milk) (often in blue sacks)
Non-recyclable waste (often in white sacks)
Recyclable glass is taken by residents to one of the many public bins for clear and coloured glass found throughout every commune. Throwing out recyclable glass in the white or any other sack can be subject to a fine.
Depending on the commune, additional sorting collection may be available:
Food waste/compost
Garden waste
Bebat offers collection points to recycle batteries.
For specifics about what exactly can and cannot be recycled, visit Fostplus, which also includes an interactive collection calendar. Alternatively for collection days, check with the commune, whose website will also offer more information on recycling electronics and batteries, collecting bulky items, and much else.
Doctors, Hospitals and Pharmacies
Belgium’s health service functions well. Financed by the state and national and private insurance, its many hospitals are modern, well managed and offer high-quality care and treatment. Bills are paid immediately (for insurance, see ‘Healthcare’ in 'Administrative information' section). Healthcare related to hospital admissions are billed directly to the health insurance funds and the patient is only billed for the patient’s contribution. Pharmacists are highly professional and an excellent resource for advice and remedies for minor aches and pains. Pharmacies are generally open 9am to 6pm Monday through Friday, and increasingly Saturday mornings, and particular pharmacies (pharmacies de garde) are open nights and weekends.
Your GP is the first person to contact if you are ill. He or she is interested in the health of the whole person, and will provide treatment, offer personalised advice and may refer you to a specialist if needed. You can contact a GP at any time, even at night and at the weekend, using the organised on-call system. On-call medical doctors (médecins de garde) are available for non-emergencies; contact information is available on commune websites, e.g. Ottignies-Louvain-la-Neuve (02 38 50 500). Options in Brussels include La Garde Bruxelloise and SOS Médecins.
At some point in the future, dialling 1733 anywhere in Belgium will connect callers to the nearest on-call doctor.
Emergency numbers
For emergencies, from any phone in Belgium:
ambulance, medical and fire: 100
federal police: 101
From any phone in the EU: 112.
Other emergency contacts:
Belgian Poison Centre: 070 245 245
Community Help Service Helpline (24-hour crisis support/advice in English): 02 648 40 14
Child Focus (missing/abused children): 116 000
Find a hospital
Childcare
In the French Community of Belgium, the Office of Birth and Childhood (ONE) is responsible for organising care for children aged three and under. There are various types of childcare facilities, but their number is limited. Therefore, one should take the time to search for the right facility. In practice, registering a future child can be done beginning with the fourth month of pregnancy.
The cost of childcare varies based on the type of facility but all costs are tax deductible. Thus a childcare facility subsidised by ONE offers prices proportional to the parents’ income, whereas other facilities set their own prices. More information on childcare facilities in the French Community of Belgium can be found at the ONE website.
The University of Louvain has two nurseries. Both are located in Louvain-la-Neuve:
Pomme d’happy welcomes around 24 infants.
Le P'tit Matelot (tel: 00 32 (0) 10 47 88 67)receives children if something unexpected comes up, if someone is needed to watch over a child for a few hours, or if childcare is required on a regular basis or for extended periods of time.
-------------------------
Schools
Compulsory education, which applies from the age of six to 18, is free in Belgium. The choice of institution is left to the parents. There is a wide range of secondary schools: collèges, instituts, lycées, athénées, etc.
Education is organised based on the following schema:
Fundamental education: preschool begins at age 2½ and continues for three years; elementary school begins at age six and continues for six years.
Secondary education: six years split into three two-year cycles.
There are two networks of subsidised education: the official network (state schools) and the open network (religiously or non-religiously affiliated schools). The cost of attendance is limited to school expenses such as books, photocopies and regular outings. For details (and a list of the region’s schools), go to www.enseignement.be.
A third network is private – not subsidised by the government – and therefore requires the payment of school fees. For European schools, visit the Schola Europaea website. A list of international schools in Belgium can be found at the website of the Educational Collaborative for International Schools (ECIS).
Louvain-la-Neuve hosts numerous primary and secondary schools in the two subsidised networks. These schools and their contact information are available at the official website of Ottignies-Louvain-la-Neuve, and in the ‘Guide des commerces et services de Louvain-la-Neuve’ available both at the Student Support Service (‘Point de repère’) and at the Inforville counter near the train station ticket windows.
For other communes, consult their websites for school lists.
Non-European Students
Student visa (APS long term Visa) and Passport
2 identical ID pictures (hard-copy passport-size photos with facial recognition, white background, and no smile/no teeth)
Proof of a fellowship or financial statement (Annex 32)
UCLouvain Proof of Registration (or LSM Acceptance Letter)
Proof of your health insurance
>>> The Student visa (APS long term Visa), Passport and proof of your health insurance is to bring at the LSM International Welcome
European Students
ID card or Passport
2 identical ID pictures (hard-copy passport-size photos with facial recognition, white background, and no smile/no teeth)
UCLouvain Proof of Registration (or LSM Acceptance Letter)
European health card or proof of your health insurance
>>> The proof of your health insurance is to bring at the LSM International Welcome
Note: this is linked to "study organization"
For starters, here’s what you need to know:
At UCLouvain, as in all Belgian universities, academic courses are organised into three degree levels in accordance with the so-called ‘Bologna’ system: bachelor’s (three years) , master’s (two years) and doctorate. In addition, the advanced master’s (one year) is available to holders of a master’s degree.
The main language of instruction is French, and the university offers some programmes and classes in English. You can also take classes to get your French up to speed. With some exceptions, a doctorate can be pursued entirely in English.
The academic year begins in mid-September and ends at the end of June. Full-time students (those pursuing a full year of study or a degree) must begin their studies in September, whereas exchange students can begin in September or February and doctoral students at any time of year.
Excepting certain programmes,tuition feesfor the 2018-19 academic year consist of the base fee (€835) plus fees applicable to students from countries outside the European Union. Specific fees apply to exchange and doctoral students.
*whole page*
*whole page*
*whole page*
If you wonder what is the cost of living in Belgium,
please consult the UCLouvain page detailing
a one year living costs at UCLouvain.
For more information, here is a video made by
former exchange students explaining how housing goes at UCLouvain. **Video on the website**
The social situation of the student and of the student’s family, as well as his or her residential status (commuter/campus resident, Belgian/foreign), directly influences the cost of study. Several budget items must be taken into consideration.
Finding the best deal
Each year the Student Support Service publishes informational brochures on the cost of study and study grants. Download it here.
HOW MUCH SHOULD I BUDGET?
A single student should budget approximately €10,000 per year (not including tuition and registration fees). For a family, add an additional €3,000 per person. These estimates are intended to cover settling-in, housing, food, transport, medical care and entertainment.
Naturally, planning a budget depends on specific situations. Generally speaking, a single person should plan on an annual budget of approximately €9,500. Families and shared households should assume an additional budget of at least €3,000 for each extra person.
Accommodation costs are the greatest expense. Average monthly rent for UCL accommodation (a room) is €295. Average rent for privately owned accommodation is between €600 and €800 for a one-bedroom flat, and between €750 and €900 for a two-bedroom flat.
Other costs depend on lifestyle and use of university services (University Restaurants, certain university library services, sports facilities).
For students, a significant portion of these costs is due in September: enrolment fees, health insurance premiums, fees for most courses and syllabuses, first month’s rent, security deposit and initial accommodation costs. As a result, a minimum of €2,500 (excluding tuition fees) will be required in September. Thereafter, students must anticipate monthly rental payments and living expenses.
Sample prices of everyday items:
Train ticket from Brussels to Louvain-la-Neuve: €6
Daily newspaper: €1.50
Cinema ticket: €8
Private restaurant daily special: €10-13
Sandwich: €3.50
Loaf of bread (800 g): €2.10
250 g of chocolates: €6
1 kg of apples: €1.50-2.50
Litre of milk: €0.60-1
Package of ground coffee (250 g): €4-5
University Restaurant daily special: €4.75
Paid employment and student status
Undertaking paid employment or a student job is subject to very strict regulations (a work permit is compulsory for students who are not from the European Union). By the same token, current legislation does not allow students to finance their studies by student jobs alone. More information is available at the federal website ‘Studentatwork’.
The annual cost of books, course materials and office supplies varies, depending on course choice and year, between €400 and €700.
In addition, first-year bachelor’s degree students should anticipate additional set-up costs of approximately €100 (lab coat, testing equipment, etc.), plus the cost of purchasing a computer, which on average is €600.
A student’s subsequent years of study entail specific internship and dissertation costs.
Here’s a tip
Some costs may be reduced. Consult reference works at the faculty library or website in order to find second-hand books and course materials.
To calculate a complete budget, students must consider the cost of food and other necessary items that are not specific to studying.
Food costs for a student living in UCL housing are slightly higher than those for a student living in the family home.
Generally, students take breakfast in their student or other on- or near-site housing, at the family home, at a café, etc.
Lunch can be taken at University Restaurants, which offer several complete meal options, including a vegetarian menu, at very reasonable prices.
There are also many private restaurant options in town, as well as supermarkets and take-out and delivery options.
Generally, students should budget a minimum of €50 per week (not including the weekend) for food.
Tips
University restaurants offer a main dish for as low as €3.20.
Many students get together to prepare their meals, thus reducing costs and maximising a sense of community.
UCL offers housing at competitive prices. Monthly rent for basic student housing (excluding electricity) varies between €240 and €340, and requires a security deposit of between €150 et €???.
First-year bachelor’s degree students have priority for UCL housing.
Students of more modest means can apply for rent reduction (of €55 or €75/month) in accordance with certain academic and economic criteria. New students must apply to the Student Support Service (Service d’aide aux étudiants) no later than 1 July.
Property agencies and private owners also offer housing, whose prices vary greatly.
Complete information is available at the UCL Student Logistics and Housing Service.
Our six sites are easily accessible. Whether by car, public transport or bicycle, there’s always a way to get to us. Find out more on our Mobility pages.
Travel costs vary according to residence and internship locations. Individuals under 25 pay less for public transport.
Tuition fees are identical across all Belgian French-speaking universities. The annual regular tuition fee is €835, but it can vary from zero to more than €4,000, depending on the student’s economic status, nationality and other factors.
Complete information is available at the Enrolment Office.
HOW MUCH DOES IT COST TO STUDY AT UCL?
UCLouvain is a private university, but it is subsidised by public authorities, which is why it is affordable. Students who are nationals of one of the 28 countries of the European Union pay €835 per year. Fees vary for students who are not nationals of a European Union country; consult our tuition fee pages for updated information. University tuition fees are identical across all of French-speaking Belgium.
Freedom of religion and separation of church and state are guaranteed by the Belgian Constitution. Belgium’s religious tradition is Catholic, although Protestant churches, mosques, synagogues and temples are found in most cities. About 65% of the population is Christian, of which 58% are Catholic. Members of Protestant, Eastern Orthodox churches and other Christian denominations make up 7%. Muslims account for about 5%. About 27% are agnostic or atheist. Practitioners of Judaism, Buddhism and Hinduism have a small presence.

No. Students of many religions attend UCLouvain, and no religious involvement is required.
Religion / Spirituality
While the ‘C’ stands for ‘Catholic’, UCL, with its more than 120 nationalities, includes just about every creed, secular or religious, practising or not. Students, researchers, faculty and staff are Muslims, Jews, Protestants and other Christians (including Catholics), Buddhists, Hindus, atheists, agnostics and other persons who would describe themselves in any number of ways.
Louvain-la-Neuve is home to a mosque and Islamic cultural centre as well as a Protestant church. Brussels Woluwe hosts an ecumenical centre.


Challenges1
Earth Challenge
Sumitted By
title 2
Sumitted By
title 3
Sumitted By
title 3
Sumitted By
title 3
Sumitted By
title 3
Sumitted By
title 3
Sumitted By
title 3
Sumitted By
title 3
Sumitted By


Using core.async to animate DOM properties.
Before I start, to be clear, this is a bad idea. CSS3 has a specification for defining animations, please use it. In this case though I have a number of excuses for rolling my own solution, and besides it was a fun exercise.
So previously when I needed to hide/reveal rows in my Lister application I used
JQuery's slideUp
and slideDown
, just because they were there. It did look
really nice though, and I wanted to keep the effect in my replacement
ClojureScript code. My first thought was to use an async go-loop to execute the
animation, but before going off on that tangent I had a look around for
pre-built libraries. Once again it looks like if I were using React my problems
would be solved, but otherwise I didn't find anything attractive.
I was able to eliminate CSS3 animations pretty quickly. First I wasn't completely clear on how to apply the animation from code. More importantly the version of Webkit in Qt4 doesn't support modern CSS, along with many other things I am finding.
The first thing you need for animation is a source of timing events. In modern
web development you are advised to use Window.requestAnimationFrame(callback)
,
so I started by writing a function to populate a channel with frame events. This
is actually pretty tricky - registered callbacks are only called once, so they
must re-register themselves in the body of the callback.
Here is what I came up with:
(defn anim-source
"A continually renewing requestAnimationFrame callback."
[ch time]
(put! ch time)
(js/requestAnimationFrame (partial anim-source ch)))
(def frame-chan (let [ch (chan (sliding-buffer 1))]
(js/requestAnimationFrame (partial anim-source ch))
ch))
;
This would have been fine if it had worked, but it turns out Qt4 Webkit also
doesn't have requestAnimationFrame
or even webkitRequestAnimationFrame
.
Minor setback. I searched around a little and found some advice from
old-fashioned HTML game development. If you use setTimeout
with your expected
frame rate you can sort of simulate requestAnimationFrame
. You don't get any
guaranty that your event will fire before a screen paint, but you can hope the
browser figures out what you want. Here is the revised code:
(def fps (/ 1000 60))
(defn anim-source
"A continually renewing timer simulating requestAnimationFrame callback."
[ch]
(put! ch (.now js/Date))
(js/setTimeout (partial anim-source ch) fps))
(def frame-chan (let [ch (chan (sliding-buffer 1))]
(js/setTimeout (partial anim-source ch) fps)
ch))
;
I am of the opinion that it would be preferable to wrap all this in a go-loop
that managed all queued animations on each tick. The way this works, having
only one frame source, with lots of animations some might be starved for
frames. Another option would be to use an async
mult
with taps for each
animation. So far though this code has worked well enough.
Next I started writing the actual effect functions. Starting with slide-up!
I
implemented the animation in a straight-forward way in a go-loop:
(defn slide-up!
"Animated hide."
[elem duration]
(let [height (dommy/px elem :height)
start (.now js/Date)]
(go-loop [now (<! frame-chan)]
(let [elapse (- now start)
percent (/ elapse duration)]
(if (< elapse duration)
(do (dommy/set-px! elem :height (* (- 1 percent) height))
(recur (<! frame-chan)))
(do (dommy/hide! elem)
(dommy/remove-style! elem :height)))))))
;
When I started writing the slide-down!
effect though I started noticing some
common elements. I went through several passes factoring out the common code,
and I think I came up with something pretty neat:
(def anim-time 250)
(defn animate
"Generic animation go-loop."
[duration {:keys [initialize! transition! finalize!]}]
(let [init (initialize!)
start (.now js/Date)]
(go-loop [now (<! frame-chan)]
(let [elapse (- now start)
percent (/ elapse duration)]
(if (< elapse duration)
(do (transition! init percent)
(recur (<! frame-chan)))
(finalize!))))))
(defn slide-up!
"Animated hide."
([elem] (slide-up! elem anim-time))
([elem duration]
(when-not (dommy/hidden? elem)
(animate duration
{:initialize! (fn [] (dommy/px elem :height))
:transition! (fn [height percent]
(dommy/set-px! elem :height
(* (- 1 percent) height)))
:finalize! (fn []
(dommy/hide! elem)
(dommy/remove-style! elem :height))}))))
(defn slide-down!
"Animated reveal."
([elem] (slide-down! elem anim-time))
([elem duration]
(when (dommy/hidden? elem)
(animate duration
{:initialize! (fn []
(dommy/show! elem)
(let [height (dommy/px elem :height)]
(dommy/set-px! elem :height 0)
height))
:transition! (fn [height percent]
(dommy/set-px! elem :height (* percent height)))
:finalize! (fn [] (dommy/remove-style! elem :height))}))))
;
Each effect is really just a sentinel expression, and a map of functions passed
to the animate
function. The individual effects are tied via Dommy to the DOM,
but the animate function is reasonably pure and somewhat testable. I've tried
this out with nearly 2000 rows and it still looks reasonable, which is good
enough for me.
Demo:
Edit - Corrections
I was finalizing my changes today, and I found that using the above code caused
some really odd behavior with long lists (1200+ rows). The total animation time
was the sum of all simultaneous animation durations, and Ii ran into a limit on
the number of blocking takes on one async/chan
(1024 BTW). My first attempt to
convert to a mult
caused my app to hang inescapably. The animations bothered
me more and more though, so I took another shot at it. Here is the revised code:
(defn anim-source
"A continually renewing timer simulating requestAnimationFrame callback."
[ch]
(put! ch (.now js/Date))
(js/setTimeout (partial anim-source ch) fps))
(def frame-mult (let [ch (chan (sliding-buffer 1))]
(js/setTimeout (partial anim-source ch) fps)
(async/mult ch))) ; <- Only store the mult wrapping the channel
(defn animate
"Generic animation go-loop."
[duration {:keys [initialize! transition! finalize!]}]
(let [frame-chan (chan) ; <- Channel created in each animation
init (initialize!)
start (.now js/Date)]
(async/tap frame-mult frame-chan) ; <- Add tap to module-level frame-mult
(go-loop [now (<! frame-chan)]
(let [elapse (- now start)
percent (/ elapse duration)]
(if (< elapse duration)
(do (transition! init percent)
(recur (<! frame-chan)))
(finalize!)))
;; This was initially outside the go-loop, resulting in *no* animation
(async/untap frame-mult frame-chan))))
;
Now all animations should update on each frame, and all the animations should
complete near where their duration elapses. There are still some visual
glitches, but without access to requestAnimationFrame
that is to be expected.
As an additional optimization I factored the row hiding/showing code out of all
the exported functions. I then chose the function to use for hiding depending on
the number of rows acted upon - slide-up!
/slide-down!
if the count is less
than 100 else dommy/hide!
/dommy/show!
.


First create an instace of Specify.js by
const sp = new Specify({"selfId"}, {"parentId"})
selfId: the id of the textbox you want specify you attach to
parentId: the id of the parent of the text boxs
Then attch the rule to the newly created button
sp.checkButton.addEventListener("click", sp.checkRules)
Finally, we can start adding rules in the following way:
sp.addRules({ type: "{rule}", value: "{value}", errorMessage: "{errorMessage}", warningColor: "{warningColor}", animation: "{animation}" })
rule: the rule to use
value: the value to use for rule, for lengh related rule, it should be an int; for missing related rult, it should be the value that is missing; for other, it should be a regex exression
errorMessage: the error message that shold appear
warningColor: the warning color to use
animation: the animation to use
There are several pre-defined warning rules:
If non of the predefined rule is useful to you, you can define your own rule with regex and set the type of rule to:
There are several warning animation:


Chicken can be prepared in a vast range of ways, including baking, grilling, barbecuing, frying, and boiling, among many others, depending on its purpose. Since the latter half of the 20th century, prepared chicken has become a staple of fast food. Chicken is sometimes cited as being more healthful than red meat, with lower concentrations of cholesterol and saturated fat.[ Boneless chunks of chicken lathered with a rich, buttery gravy of cream, tomatoes and spices. This cuisine is definitely worth trying, especially during festive season. So, impress your guests with nothing but the best.
Silverside and topside are cheaper and leaner cuts of meat, well-suited to slow-cooking. The stock and juices make a great sauce when combined with caramelised onions. Succulent roast topside of beef, made especially irresistible with a mustard crust, piquant shallots and red wine enriched gravyWow guests with an intensely flavoursome, peppered sirloin joint. Serve alongside our potatoes dauphinoise, enriched with tarragon, shallots and gruyèreWith a golden swede, creamy potato and crunchy breadcrumb topping, this twist on a Cumberland pie is sure to become a warming winter staple
Sushi is traditionally made with medium-grain white rice, though it can be prepared with brown rice or short-grain rice. It is very often prepared with seafood, such as squid, eel, yellowtail, salmon, tuna or imitation crab meat. Many types of sushi are vegetarian. It is often served with pickled ginger (gari), wasabi, and soy sauce. Daikon radish or pickled daikon (takuan) are popular garnishes for the dish.Sushi is sometimes confused with sashimi, a related dish in Japanese cuisine that consists of thinly sliced raw fish, or occasionally meat, and an optional serving of rice.


A long time ago, when my only drug experiences had been a MDMA pill and a +1 LSD + MDMA trip, I was very eager to try some morning glory seeds. Although the reports on the internet didn't seem very optimistic, I've always been one to try everything once, so I bought 2 packages of heavenly blue seeds (uncoated). The following morning glory trip, which I still remember very well, was to be my last trip for almost a year that wasn't filled with feelings of self-doubt / paranoia as a result of the bad situations I would be put in on my next couple of drug experiences. In any case, here's the report:
[Summer 2000]:
The seeds (6 grams) were prepared by mixing with 2 cups of water and placing in a blender on high speed for about 5 minutes. They were allowed to soak for 10 minutes or so, blended for a few more minutes, then strained and squeezed out in a paper towel. The resulting liquid was consumed straight. The flavor was strange, but not altogether unpleasant... sort of earthy.
In about 30 minutes, I started to get some mild stomach cramps and nausea, which had mostly subsided and been replaced by leg cramps at the 1 hour point. I was laying on the couch waiting for this phase to pass and watching the very minor visual distortions when my roommate (we'll call him Q) and his girlfriend showed up on his lunch break. I told them what I was on, and Q asked me if I wanted a ride back to where he worked so I could wander around outside for a while. I agreed, as I felt a need to get out of the house.
The ride didn't take long, and when I arrived I found that Q's place of work was directly across from a rather large and old graveyard... the perfect place to explore. I spent some time wandering around, and began to notice a very strange calm sweep over me... not a euphoria, or even a relaxation as one would experience from a normal sedative. This was a feeling of absolute silence, like the rest of the world had suddenly stopped moving and I was alone. Was this how death would feel?
I remembered this same feeling when I was young, and playing at the Dunes State Park. There were certain places that I could go, mere feet from the edges of the public park, where it would seem as though no sound could penetrate. Likewise, I remembered why I used to spend so much time in the woods when I was younger. I decided to lay down for a while, and found a nice place among the trees near the edge of the yard to rest. I spent some time watching the clouds move. I had some very minor visuals, and was disappointed at the time because I had not really 'seen' much yet. Later I would realize that you can see a bit too much if you're not careful, but that's a different story.
Meanwhile, someone had started to mow the graveyard so I felt it was time to find something else to entertain me since my silence had been killed. I didn't especially want to be mowed, either, so it was off down the road. I didn't know where I was going; I never do when I walk really. I just pick a direction and walk as far as I can, then turn a different way and attempt to find my way back. Its a fun way to explore the town, and how many of my aimless walks end up. Always a good way to think.
I probably ended up walking about 2 miles or so, admiring the intricacies of nature and technology, and how they seemed to be slapped together so haphazardly. It was mostly an uneventful walk, and by the time I was back to Q's place of employment, the effects were starting to wear off.  I believe I went to take a nap around 6:00pm, and woke up for my wonderful midnight shift job at around 11:30pm, feeling refreshed and sober.
[Notes from the present]: I'm not sure why I remembered this trip today, suddenly. There was something special about some of my early trips, even the weak ones, that I had mistakenly attempted to capture later by consuming heroic doses and weird combinations. Sure, some of the heroic doses led to things far more interesting and mind blowing, but I think there is still something to be said for the +1 trip, where smaller things than the eternal secrets of life can be appreciated.
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.


{% csrf_token %} Data Submission Form Reminder: Only submit data for people who have completed a PhD. {{ form.as_p }}


Login Form
EmailId:
Forget Mail
Password:
Forget Password
Login
Create Account
term and codition Apply


WITNESS LIST Finance Committee (Subcommittee on Crime Victims Fund) July 9, 2002 -10:00A Crime Victims Fund ON: Brown, Eugene Psycho Therapist (Family Violence Services of Texas), San Antonio, TX Carr, Verna Lee Advocate for Victims of Crime (Victims of Crime, Service Providers), Austin, TX Clay, Annette Executive Director (Texas Association Against Sexual Assault (TASSA)), Austin, TX Ferland, Megan C.E.O. (Texas CASA), Austin, TX Garison, Brenda Certified Sexual Assault Nurse (Child Abuse & Forensic Services), Beaumont, TX Kazen, Raven Director of Victim Services (Texas Department of Criminal Justice), Austin, TX Kessler, Miriam Supervisor of Verizon (Self), Irving, TX Lewis, Bill Publisher, The Keller Citizen (Mothers Against Drunk Driving), Keller, TX Montague, David Assistant District Attorney (Children's Advocacy Centers of Texas), Fort Worth, TX Murphy, Sherry Financial Director (Family Crisis Center), Austin, TX Trinidad, Victoria (Texas Department of Criminal Justice), Austin, TX Wolf, Laura General Counsel/Chief Development (SAFEPLACE), Austin, TX Registering, but not testifying: On: Cleveland, Joyce (Victims of Crime) Johnson, Dean Police Legal Advisor (Beaumont Police Department), Beaumont, TX Sager, Janice Victim Advocate (Self) Vassallo, Kristen (Kirk Watson), Austin, TX


- saveClicked(MouseEvent) - Method in class controller.DataVisualizationController
-
Handler for the event generated by the click of the "Save" button (save the clusters in file)
- saveClicked(MouseEvent) - Method in class controller.SaveController
-
Handler for the event generated by the click of the "Save" button (asks the user for the file name, if the server already has a file with this
name it asks whether to overwrite it or not)
- SaveController - Class in controller
-
This class manages some events generated by the graphic elements present in the "SaveView" view
- SaveController() - Constructor for class controller.SaveController
-
- SaveView - Class in view
-
This class models the view of the stage used
by the client to save the results to a file
chosen by the user
- SaveView(DataModel) - Constructor for class view.SaveView
-
Display the stage used to ask for the file name
where the results will be stored
- ServerException - Exception in controller
-
This class models an exception handler thrown when during the communication somethings goes wrong
- ServerException() - Constructor for exception controller.ServerException
-
Initialize an object of class ServerException by calling the Exception constructor
- ServerException(String) - Constructor for exception controller.ServerException
-
Initialize an object of class DatabaseConnectionException with message given in input
- setData(LinkedList<LinkedList<String>>) - Method in class model.FileData
-
Set the data which represents the entire table returned by the server when the user requests to load the data from file
with the data given in input
- setData(LinkedList<LinkedList<LinkedList<String>>>) - Method in class model.DatabaseData
-
Set the data which represents the entire table returned by the server when the user requests to load the data from db
with the data given in input
- setDatabaseData(DatabaseData) - Method in class model.DataModel
-
Set the information in case a clustering is loaded from db
- setDatabaseTable(String) - Method in class model.DatabaseData
-
Set the name of database table (so as to make the information visible to view and controller)
- setFileData(FileData) - Method in class model.DataModel
-
Set the information in case a clustering is loaded from file
- setFileName(String) - Method in class model.FileData
-
Set the file name with the input name given
- setLoadDB(boolean) - Method in class model.DataModel
-
Set true if the client choose to load data from db,false otherwise
- setRadius(Double) - Method in class model.Data
-
Sets the input value as the radius
- setScheme(LinkedList<String>) - Method in class model.Data
-
Set the scheme of data sent from server
- start(Stage) - Method in class application.Main
-
Starts the client