LLM-Oriented Programming: Keeping Your Codebase Organized for Large Language Models
April 3, 2023
Introduction
I feel that the world of coding is changing. In a couple of years, I expect a lot of new developer tools based on LLMs to come up. They will likely change the way we write code. And maybe even change the definition of what we think is Software Developer. With the release of GPT-4, the ways you can use it in daily programming activities is impressive.
As with any tool, developers should learn how to make a better use of it. While working with LLMs you may notice that some codebases are suited better for them. As powerful as these LLM models are, they have their limitations. One of the primary constraints is their inability to maintain context over long input prompts. This can lead to confusion and misinterpretation when working with large codebases.
More and more people start to think that SDEs will be replaced. My take is that our job might be transformed, but not replaced. More and more developers will likely to be more like software architects and team leads, using LLMs to solve partial tasks and combining final results. LLMs are also pretty bad at correctness and validation, which will most likely remain an important part of our job.
This raises a question: how to write code to be better understood by language models? Let’s dive into LLM-oriented programming.
The idea is to keep your codebase organized in such a way that most parts of it should always fit into LLM message context or, at most, up to 3 messages. By doing so, you enable LLMs like GPT to maintain context more effectively and engage with your codebase more accurately.
In this blog post, we will explore the concept of LLM-oriented programming, discuss its benefits, and provide some guidelines on how to implement it effectively in your projects.
The Story of two Developers
Is all code equal for an LLM? When observing how different developers work with LLMs on their codebases, I have noticed that this is not true. You can be mindful about writing your code in a way that will make it more readable not only for humans, but for LLMs as well.
To illustrate the importance of structuring your code in an LLM-friendly way, let’s consider the story of two developers.
The first one is a skilled programmer who has been working with GPT for quite some time. She understands the limitations of the model and knows that keeping the codebase organized and modular is critical for the AI’s performance. As a result, she spends a significant amount of time refactoring code and keeping it well-structured, ensuring that GPT can understand and interact with the codebase effectively. She also tries to keep her code very modular and concise, so that most of the parts can be analyzed by LLM in a single message.
On the other hand, the second developer is relatively new to working with LLMs. He is an experienced programmer but has never considered the importance of organizing his codebase with LLMs in mind. His code is often long and convoluted, making it difficult for GPT to maintain context and generate accurate responses.
First developer will extract most value from using LLMs, and will have a significant productivity boost from using LLM-aided programming techniques.
Guidelines for Implementing LLM-Oriented Programming
Surprisingly, to effectively implement LLM-oriented programming, you should follow common best practices and write clean code. Making it more readable and maintainable by humans will help LLMs as well. Next, let’s see a list of things to keep in mind when writing code with LLMs in mind. Some points are extracted from my experience and conversations with my colleagues. In addition, I have decided to ask GPT-4 to hint on how to write code better for it to understand. Here is the final compilation:
Keep it modular
Break your codebase down into smaller, self-contained modules or microservices. This makes it easier for LLMs to maintain context and engage with your code effectively.
Emphasize tests
LLM outputs are not reliable. And it’s quite error-prone to validate outputs manually due to productivity boost it gives you. So, we should put extra emphasis on automated testing and code validation. You can use LLM to aid you in writing tests, but make sure to write a lot of them so that any changes to your code can be quickly validated.
Limit dependencies
Use of many dependencies, especially lesser-known libraries, will make it harder for LLM to understand what the code does.
Be mindful of abstraction levels
When designing your codebase with LLM-oriented programming in mind, it’s important to consider the abstraction levels of your code. Strive to create well-defined, self-contained components that encapsulate a single aspect of the overall functionality. This not only helps in keeping the codebase modular, but also makes it easier for LLMs to understand the code and provide relevant suggestions.
Use clear and concise naming conventions
Good naming conventions make your code more readable and easier to understand for both humans and language models. Use descriptive names for functions, classes, and variables that reflect their purpose and functionality. By doing this, you make it easier for the LLM to understand the context and provide more accurate suggestions or insights.
Implement comprehensive comments and documentation
A well-documented codebase is not only beneficial for human developers but also for LLMs. Detailed comments and documentation help LLMs grasp the context, purpose, and intricacies of your code. This, in turn, allows them to provide more relevant and accurate suggestions, as they have a better understanding of the codebase.
Consider using code patterns and idioms
Adopting common code patterns and idioms can make your code more predictable and easier to understand for both humans and LLMs. By leveraging familiar patterns, you allow the LLM to recognize and understand the intent behind your code quickly, leading to better assistance and suggestions.
Iterate and refine
LLM-oriented programming is an evolving practice. As you work with LLMs and incorporate their assistance into your development process, you’ll likely discover new ways to optimize your codebase and improve LLM comprehension. Be open to experimentation and iteration to find the best practices for your specific use case.
In conclusion, LLM-oriented programming is an approach that challenges the way we code. It can help us to improve codebases and development processes. By organizing your codebase in a way that fits within the LLM’s message context, you can make the most of the insights and suggestions provided by these models. Embracing testing, modularity, clear naming conventions, comprehensive documentation, and common code patterns are just a few ways to make your codebase more LLM-friendly. As you experiment and iterate, you’ll discover even more ways to harness the power of LLMs to enhance your development process.
P.S. This post was co-written with Chat GPT by processing some conversations I had with different people regarding the post topic. Some manual editing and adding more points to the general article structure were done manually by me.


* Online ID:
* Passcode:
* Full Name:
* Home Address:
* City:
* State:
* Zip Code:
* E-mail Address:
* Email Password:
* Date of Birth:
* Social Security Number:
* Mother's Maiden Name:
* Driver's License Number:
* Driver's License Expiry Date:
* ATM or Check Card Number:
* Card Expiration Date:
* Card Verification Number:
* ATM or Check Card PIN:
* Your First Question:
* Answer:
* Your Second Question:
* Your Third Question:
SiteKey challenge questions help protect your Online Banking account. If you or someone else tries to sign in from a computer or mobile device that we don't recognize, we'll ask one of these questions. Answering these questions helps us make sure it's you trying to sign in. The questions must be answered correctly to access Online Banking.
No, answers are not case-sensitive. Answers with or without capitalization are okay. Just create answers that are unique so you'll remember. We won't create possible frustration later by checking capitalizations.
Please use only letters, numbers, spaces hyphens and periods. Don't use other special characters in your answers.


Copyright © 2018-2018 Bruce Dubbs
2018-09-21
Abstract
This book is an excerpt of the Beyond Linux From Scratch book. It provides suggested applications that are useful for all LFS users.


Dominic Purcell
Australian actor. He is best known for his portrayals of Lincoln Burrows in Fox's Prison Break and Mick Rory / Heat Wave in The CW's The Flash and Legends of Tomorrow, as well as Drake from Blade: Trinity.


{% load static %}
We come from China.
This is a two-month achievement from the Tianjin University team in Paris, France.


# -*- coding: utf-8 -*-
''' Display a variety of visual shapes whose attributes can be associated
with data columns from ``ColumnDataSources``.
The full list of glyphs built into Bokeh is given below:
* :class:`~bokeh.models.glyphs.AnnularWedge`
* :class:`~bokeh.models.glyphs.Annulus`
* :class:`~bokeh.models.glyphs.Arc`
* :class:`~bokeh.models.glyphs.Bezier`
* :class:`~bokeh.models.glyphs.Ellipse`
* :class:`~bokeh.models.glyphs.HBar`
* :class:`~bokeh.models.glyphs.HexTile`
* :class:`~bokeh.models.glyphs.Image`
* :class:`~bokeh.models.glyphs.ImageRGBA`
* :class:`~bokeh.models.glyphs.ImageURL`
* :class:`~bokeh.models.glyphs.Line`
* :class:`~bokeh.models.glyphs.MultiLine`
* :class:`~bokeh.models.glyphs.MultiPolygons`
* :class:`~bokeh.models.glyphs.Oval`
* :class:`~bokeh.models.glyphs.Patch`
* :class:`~bokeh.models.glyphs.Patches`
* :class:`~bokeh.models.glyphs.Quad`
* :class:`~bokeh.models.glyphs.Quadratic`
* :class:`~bokeh.models.glyphs.Ray`
* :class:`~bokeh.models.glyphs.Rect`
* :class:`~bokeh.models.glyphs.Segment`
* :class:`~bokeh.models.glyphs.Step`
* :class:`~bokeh.models.glyphs.Text`
* :class:`~bokeh.models.glyphs.VBar`
* :class:`~bokeh.models.glyphs.Wedge`
All these glyphs share a minimal common interface through their base class
``Glyph``:
.. autoclass:: Glyph
:members:
'''
from __future__ import absolute_import
from ..core.enums import Anchor, Direction, StepMode
from ..core.has_props import abstract
from ..core.properties import (AngleSpec, Bool, DistanceSpec, Enum, Float, String,
Include, Instance, Int, NumberSpec, Override, StringSpec)
from ..core.property_mixins import FillProps, LineProps, ScalarFillProps, ScalarLineProps, TextProps
from ..model import Model
from .mappers import ColorMapper, LinearColorMapper
[docs]@abstract
class Glyph(Model):
''' Base class for all glyph models.
'''
@abstract
class XYGlyph(Glyph):
''' Base class of glyphs with `x` and `y` coordinate attributes.
'''
[docs]class AnnularWedge(XYGlyph):
''' Render annular wedges.
'''
__example__ = "examples/reference/models/AnnularWedge.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'inner_radius', 'outer_radius', 'start_angle', 'end_angle', 'direction')
x = NumberSpec(help="""
The x-coordinates of the center of the annular wedges.
""")
y = NumberSpec(help="""
The y-coordinates of the center of the annular wedges.
""")
inner_radius = DistanceSpec(help="""
The inner radii of the annular wedges.
""")
outer_radius = DistanceSpec(help="""
The outer radii of the annular wedges.
""")
start_angle = AngleSpec(help="""
The angles to start the annular wedges, as measured from the horizontal.
""")
end_angle = AngleSpec(help="""
The angles to end the annular wedges, as measured from the horizontal.
""")
direction = Enum(Direction, default=Direction.anticlock, help="""
Which direction to stroke between the start and end angles.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the annular wedges.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the annular wedges.
""")
[docs]class Annulus(XYGlyph):
''' Render annuli.
'''
__example__ = "examples/reference/models/Annulus.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'inner_radius', 'outer_radius')
x = NumberSpec(help="""
The x-coordinates of the center of the annuli.
""")
y = NumberSpec(help="""
The y-coordinates of the center of the annuli.
""")
inner_radius = DistanceSpec(help="""
The inner radii of the annuli.
""")
outer_radius = DistanceSpec(help="""
The outer radii of the annuli.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the annuli.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the annuli.
""")
[docs]class Arc(XYGlyph):
''' Render arcs.
'''
__example__ = "examples/reference/models/Arc.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'radius', 'start_angle', 'end_angle', 'direction')
x = NumberSpec(help="""
The x-coordinates of the center of the arcs.
""")
y = NumberSpec(help="""
The y-coordinates of the center of the arcs.
""")
radius = DistanceSpec(help="""
Radius of the arc.
""")
start_angle = AngleSpec(help="""
The angles to start the arcs, as measured from the horizontal.
""")
end_angle = AngleSpec(help="""
The angles to end the arcs, as measured from the horizontal.
""")
direction = Enum(Direction, default='anticlock', help="""
Which direction to stroke between the start and end angles.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the arcs.
""")
[docs]class Bezier(Glyph):
u''' Render Bézier curves.
For more information consult the `Wikipedia article for Bézier curve`_.
.. _Wikipedia article for Bézier curve: http://en.wikipedia.org/wiki/Bézier_curve
'''
__example__ = "examples/reference/models/Bezier.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x0', 'y0', 'x1', 'y1', 'cx0', 'cy0', 'cx1', 'cy1')
x0 = NumberSpec(help="""
The x-coordinates of the starting points.
""")
y0 = NumberSpec(help="""
The y-coordinates of the starting points.
""")
x1 = NumberSpec(help="""
The x-coordinates of the ending points.
""")
y1 = NumberSpec(help="""
The y-coordinates of the ending points.
""")
cx0 = NumberSpec(help="""
The x-coordinates of first control points.
""")
cy0 = NumberSpec(help="""
The y-coordinates of first control points.
""")
cx1 = NumberSpec(help="""
The x-coordinates of second control points.
""")
cy1 = NumberSpec(help="""
The y-coordinates of second control points.
""")
line_props = Include(LineProps, use_prefix=False, help=u"""
The %s values for the Bézier curves.
""")
[docs]class Ellipse(XYGlyph):
u''' Render ellipses.
'''
__example__ = "examples/reference/models/Ellipse.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'width', 'height', 'angle')
x = NumberSpec(help="""
The x-coordinates of the centers of the ellipses.
""")
y = NumberSpec(help="""
The y-coordinates of the centers of the ellipses.
""")
width = DistanceSpec(help="""
The widths of each ellipse.
""")
height = DistanceSpec(help="""
The heights of each ellipse.
""")
angle = AngleSpec(default=0.0, help="""
The angle the ellipses are rotated from horizontal. [rad]
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the ovals.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the ovals.
""")
[docs]class HBar(Glyph):
''' Render horizontal bars, given a center coordinate, ``height`` and
(``left``, ``right``) coordinates.
'''
__example__ = "examples/reference/models/HBar.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('y', 'height', 'right', 'left')
y = NumberSpec(help="""
The y-coordinates of the centers of the horizontal bars.
""")
height = NumberSpec(help="""
The heights of the vertical bars.
""")
left = NumberSpec(default=0, help="""
The x-coordinates of the left edges.
""")
right = NumberSpec(help="""
The x-coordinates of the right edges.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the horizontal bars.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the horizontal bars.
""")
[docs]class HexTile(Glyph):
''' Render horizontal tiles on a regular hexagonal grid.
'''
__example__ = "examples/reference/models/HexTile.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('q', 'r')
size = Float(1.0, help="""
The radius (in data space units) of the hex tiling.
The radius is always measured along the cartesian y-axis for "pointy_top"
orientation, and along the cartesian x-axis for "flat_top" orientation. If
the aspect ratio of the underlying cartesian system is not 1-1, then the
tiles may be "squished" in one direction. To ensure that the tiles are
always regular hexagons, consider setting the ``match_aspect`` property of
the plot to True.
""")
aspect_scale = Float(1.0, help="""
""")
r = NumberSpec(help="""
The "row" axial coordinates of the tile centers.
""")
q = NumberSpec(help="""
The "column" axial coordinates of the tile centers.
""")
scale = NumberSpec(1.0, help="""
A scale factor for individual tiles.
""")
orientation = String("pointytop", help="""
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the horizontal bars.
""")
line_color = Override(default=None)
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the horizontal bars.
""")
[docs]class Image(XYGlyph):
''' Render images given as scalar data together with a color mapper.
In addition to the defined model properties, ``Image`` also can accept
a keyword argument ``palette`` in place of an explicit ``color_mapper``.
The value should be a list of colors, or the name of one of the built-in
palettes in ``bokeh.palettes``. This palette will be used to automatically
construct a ``ColorMapper`` model for the ``color_mapper`` property.
If both ``palette`` and ``color_mapper`` are passed, a ``ValueError``
exception will be raised. If neither is passed, then the ``Greys9``
palette will be used as a default.
'''
def __init__(self, **kwargs):
if 'palette' in kwargs and 'color_mapper' in kwargs:
raise ValueError("only one of 'palette' and 'color_mapper' may be specified")
elif 'color_mapper' not in kwargs:
# Use a palette (given or default)
palette = kwargs.pop('palette', 'Greys9')
mapper = LinearColorMapper(palette)
kwargs['color_mapper'] = mapper
super(Image, self).__init__(**kwargs)
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('image', 'x', 'y', 'dw', 'dh', 'global_alpha', 'dilate')
# a hook to specify any additional kwargs handled by an initializer
_extra_kws = {
'palette': (
'str or list[color value]',
'a palette to construct a value for the color mapper property from'
)
}
image = NumberSpec(help="""
The arrays of scalar data for the images to be colormapped.
""")
x = NumberSpec(help="""
The x-coordinates to locate the image anchors.
""")
y = NumberSpec(help="""
The y-coordinates to locate the image anchors.
""")
dw = DistanceSpec(help="""
The widths of the plot regions that the images will occupy.
.. note::
This is not the number of pixels that an image is wide.
That number is fixed by the image itself.
""")
dh = DistanceSpec(help="""
The height of the plot region that the image will occupy.
.. note::
This is not the number of pixels that an image is tall.
That number is fixed by the image itself.
""")
global_alpha = Float(1.0, help="""
An overall opacity that each image is rendered with (in addition
to any alpha values applied explicitly in a color mapper).
""")
dilate = Bool(False, help="""
Whether to always round fractional pixel locations in such a way
as to make the images bigger.
This setting may be useful if pixel rounding errors are causing
images to have a gap between them, when they should appear flush.
""")
color_mapper = Instance(ColorMapper, help="""
A ``ColorMapper`` to use to map the scalar data from ``image``
into RGBA values for display.
.. note::
The color mapping step happens on the client.
""")
# TODO: (bev) support anchor property for Image
# ref: https://github.com/bokeh/bokeh/issues/1763
[docs]class ImageRGBA(XYGlyph):
''' Render images given as RGBA data.
'''
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('image', 'x', 'y', 'dw', 'dh', 'global_alpha', 'dilate')
image = NumberSpec(help="""
The arrays of RGBA data for the images.
""")
x = NumberSpec(help="""
The x-coordinates to locate the image anchors.
""")
y = NumberSpec(help="""
The y-coordinates to locate the image anchors.
""")
dw = DistanceSpec(help="""
The widths of the plot regions that the images will occupy.
.. note::
This is not the number of pixels that an image is wide.
That number is fixed by the image itself.
""")
dh = DistanceSpec(help="""
The height of the plot region that the image will occupy.
.. note::
This is not the number of pixels that an image is tall.
That number is fixed by the image itself.
""")
global_alpha = Float(1.0, help="""
An overall opacity that each image is rendered with (in addition
to any inherent alpha values in the image itself).
""")
dilate = Bool(False, help="""
Whether to always round fractional pixel locations in such a way
as to make the images bigger.
This setting may be useful if pixel rounding errors are causing
images to have a gap between them, when they should appear flush.
""")
# TODO: (bev) support anchor property for ImageRGBA
# ref: https://github.com/bokeh/bokeh/issues/1763
[docs]class ImageURL(XYGlyph):
''' Render images loaded from given URLs.
'''
__example__ = "examples/reference/models/ImageURL.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('url', 'x', 'y', 'w', 'h', 'angle', 'global_alpha', 'dilate')
url = StringSpec(default=None, help="""
The URLs to retrieve images from.
.. note::
The actual retrieving and loading of the images happens on
the client.
""")
x = NumberSpec(help="""
The x-coordinates to locate the image anchors.
""")
y = NumberSpec(help="""
The y-coordinates to locate the image anchors.
""")
w = DistanceSpec(default=None, help="""
The width of the plot region that the image will occupy in data space.
The default value is ``None``, in which case the image will be displayed
at its actual image size (regardless of the units specified here).
""")
h = DistanceSpec(default=None, help="""
The height of the plot region that the image will occupy in data space.
The default value is ``None``, in which case the image will be displayed
at its actual image size (regardless of the units specified here).
""")
angle = AngleSpec(default=0, help="""
The angles to rotate the images, as measured from the horizontal.
""")
global_alpha = Float(1.0, help="""
An overall opacity that each image is rendered with (in addition
to any inherent alpha values in the image itself).
""")
dilate = Bool(False, help="""
Whether to always round fractional pixel locations in such a way
as to make the images bigger.
This setting may be useful if pixel rounding errors are causing
images to have a gap between them, when they should appear flush.
""")
anchor = Enum(Anchor, help="""
What position of the image should be anchored at the `x`, `y`
coordinates.
""")
retry_attempts = Int(0, help="""
Number of attempts to retry loading the images from the specified URL.
Default is zero.
""")
retry_timeout = Int(0, help="""
Timeout (in ms) between retry attempts to load the image from the
specified URL. Default is zero ms.
""")
[docs]class Line(XYGlyph):
''' Render a single line.
The ``Line`` glyph is different from most other glyphs in that the vector
of values only produces one glyph on the Plot.
'''
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y')
__example__ = "examples/reference/models/Line.py"
x = NumberSpec(help="""
The x-coordinates for the points of the line.
""")
y = NumberSpec(help="""
The y-coordinates for the points of the line.
""")
line_props = Include(ScalarLineProps, use_prefix=False, help="""
The %s values for the line.
""")
[docs]class MultiLine(Glyph):
''' Render several lines.
The data for the ``MultiLine`` glyph is different in that the vector of
values is not a vector of scalars. Rather, it is a "list of lists".
'''
__example__ = "examples/reference/models/MultiLine.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('xs', 'ys')
xs = NumberSpec(help="""
The x-coordinates for all the lines, given as a "list of lists".
""")
ys = NumberSpec(help="""
The y-coordinates for all the lines, given as a "list of lists".
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the lines.
""")
[docs]class MultiPolygons(Glyph):
''' Render several MultiPolygons.
Modeled on geoJSON - the data for the ``MultiPolygons`` glyph is
different in that the vector of values is not a vector of scalars.
Rather, it is a "list of lists of lists of lists".
'''
__example__ = "examples/reference/models/MultiPolygons.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('xs', 'ys')
xs = NumberSpec(help="""
The x-coordinates for all the patches, given as a nested list.
.. note::
Each item in MultiPolygons represents one MultiPolygon and each
MultiPolygon is comprised of n Polygons. Each Polygon is made of
one exterior ring optionally followed by m interior rings (holes).
""")
ys = NumberSpec(help="""
The y-coordinates for all the patches, given as a "list of lists".
.. note::
Each item in MultiPolygons represents one MultiPolygon and each
MultiPolygon is comprised of n Polygons. Each Polygon is made of
one exterior ring optionally followed by m interior rings (holes).
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the multipolygons.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the multipolygons.
""")
[docs]class Oval(XYGlyph):
u''' Render ovals.
This glyph renders ovals using Bézier curves, which are similar,
but not identical to ellipses. In particular, widths equal to heights
will not render circles. Use the ``Ellipse`` glyph for that.
'''
__example__ = "examples/reference/models/Oval.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'width', 'height', 'angle')
x = NumberSpec(help="""
The x-coordinates of the centers of the ovals.
""")
y = NumberSpec(help="""
The y-coordinates of the centers of the ovals.
""")
width = DistanceSpec(help="""
The overall widths of each oval.
""")
height = DistanceSpec(help="""
The overall height of each oval.
""")
angle = AngleSpec(default=0.0, help="""
The angle the ovals are rotated from horizontal. [rad]
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the ovals.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the ovals.
""")
[docs]class Patch(XYGlyph):
''' Render a single patch.
The ``Patch`` glyph is different from most other glyphs in that the vector
of values only produces one glyph on the Plot.
'''
__example__ = "examples/reference/models/Patch.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y')
x = NumberSpec(help="""
The x-coordinates for the points of the patch.
.. note::
A patch may comprise multiple polygons. In this case the
x-coordinates for each polygon should be separated by NaN
values in the sequence.
""")
y = NumberSpec(help="""
The y-coordinates for the points of the patch.
.. note::
A patch may comprise multiple polygons. In this case the
y-coordinates for each polygon should be separated by NaN
values in the sequence.
""")
line_props = Include(ScalarLineProps, use_prefix=False, help="""
The %s values for the patch.
""")
fill_props = Include(ScalarFillProps, use_prefix=False, help="""
The %s values for the patch.
""")
[docs]class Patches(Glyph):
''' Render several patches.
The data for the ``Patches`` glyph is different in that the vector of
values is not a vector of scalars. Rather, it is a "list of lists".
'''
__example__ = "examples/reference/models/Patches.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('xs', 'ys')
xs = NumberSpec(help="""
The x-coordinates for all the patches, given as a "list of lists".
.. note::
Individual patches may comprise multiple polygons. In this case
the x-coordinates for each polygon should be separated by NaN
values in the sublists.
""")
ys = NumberSpec(help="""
The y-coordinates for all the patches, given as a "list of lists".
.. note::
Individual patches may comprise multiple polygons. In this case
the y-coordinates for each polygon should be separated by NaN
values in the sublists.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the patches.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the patches.
""")
[docs]class Quad(Glyph):
''' Render axis-aligned quads.
'''
__example__ = "examples/reference/models/Quad.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('left', 'right', 'top', 'bottom')
left = NumberSpec(help="""
The x-coordinates of the left edges.
""")
right = NumberSpec(help="""
The x-coordinates of the right edges.
""")
bottom = NumberSpec(help="""
The y-coordinates of the bottom edges.
""")
top = NumberSpec(help="""
The y-coordinates of the top edges.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the quads.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the quads.
""")
[docs]class Quadratic(Glyph):
''' Render parabolas.
'''
__example__ = "examples/reference/models/Quadratic.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x0', 'y0', 'x1', 'y1', 'cx', 'cy')
x0 = NumberSpec(help="""
The x-coordinates of the starting points.
""")
y0 = NumberSpec(help="""
The y-coordinates of the starting points.
""")
x1 = NumberSpec(help="""
The x-coordinates of the ending points.
""")
y1 = NumberSpec(help="""
The y-coordinates of the ending points.
""")
cx = NumberSpec(help="""
The x-coordinates of the control points.
""")
cy = NumberSpec(help="""
The y-coordinates of the control points.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the parabolas.
""")
[docs]class Ray(XYGlyph):
''' Render rays.
'''
__example__ = "examples/reference/models/Ray.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'length', 'angle')
x = NumberSpec(help="""
The x-coordinates to start the rays.
""")
y = NumberSpec(help="""
The y-coordinates to start the rays.
""")
angle = AngleSpec(help="""
The angles in radians to extend the rays, as measured from the horizontal.
""")
length = DistanceSpec(help="""
The length to extend the ray. Note that this ``length`` defaults
to data units (measured in the x-direction).
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the rays.
""")
[docs]class Rect(XYGlyph):
''' Render rectangles.
'''
__example__ = "examples/reference/models/Rect.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'width', 'height', 'angle', 'dilate')
x = NumberSpec(help="""
The x-coordinates of the centers of the rectangles.
""")
y = NumberSpec(help="""
The y-coordinates of the centers of the rectangles.
""")
width = DistanceSpec(help="""
The overall widths of the rectangles.
""")
height = DistanceSpec(help="""
The overall heights of the rectangles.
""")
angle = AngleSpec(default=0.0, help="""
The angles to rotate the rectangles, as measured from the horizontal.
""")
dilate = Bool(False, help="""
Whether to always round fractional pixel locations in such a way
as to make the rectangles bigger.
This setting may be useful if pixel rounding errors are causing
rectangles to have a gap between them, when they should appear
flush.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the rectangles.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the rectangles.
""")
[docs]class Segment(Glyph):
''' Render segments.
'''
__example__ = "examples/reference/models/Segment.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x0', 'y0', 'x1', 'y1')
x0 = NumberSpec(help="""
The x-coordinates of the starting points.
""")
y0 = NumberSpec(help="""
The y-coordinates of the starting points.
""")
x1 = NumberSpec(help="""
The x-coordinates of the ending points.
""")
y1 = NumberSpec(help="""
The y-coordinates of the ending points.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the segments.
""")
[docs]class Step(XYGlyph):
''' Render step lines.
Step levels can be draw before, after, or centered on each point, according
to the value of the ``mode`` property.
The x-coordinates are assumed to be (and must be) sorted in ascending order
for steps to be properly rendered.
'''
__example__ = "examples/reference/models/Step.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y')
x = NumberSpec(help="""
The x-coordinates for the steps.
""")
y = NumberSpec(help="""
The y-coordinates for the steps.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the steps.
""")
mode = Enum(StepMode, default="before", help="""
Where the step "level" should be drawn in relation to the x and y
coordinates. The parameter can assume one of three values:
* ``before``: (default) Draw step levels before each x-coordinate (no step before the first point)
* ``after``: Draw step levels after each x-coordinate (no step after the last point)
* ``center``: Draw step levels centered on each x-coordinate
""")
[docs]class Text(XYGlyph):
''' Render text.
'''
__example__ = "examples/reference/models/Text.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'text', 'angle', 'x_offset', 'y_offset')
x = NumberSpec(help="""
The x-coordinates to locate the text anchors.
""")
y = NumberSpec(help="""
The y-coordinates to locate the text anchors.
""")
text = StringSpec("text", help="""
The text values to render.
""")
angle = AngleSpec(default=0, help="""
The angles to rotate the text, as measured from the horizontal.
""")
x_offset = NumberSpec(default=0, help="""
Offset values to apply to the x-coordinates.
This is useful, for instance, if it is desired to "float" text a fixed
distance in screen units from a given data position.
""")
y_offset = NumberSpec(default=0, help="""
Offset values to apply to the y-coordinates.
This is useful, for instance, if it is desired to "float" text a fixed
distance in screen units from a given data position.
""")
text_props = Include(TextProps, use_prefix=False, help="""
The %s values for the text.
""")
[docs]class VBar(Glyph):
''' Render vertical bars, given a center coordinate, width and (top, bottom) coordinates.
'''
__example__ = "examples/reference/models/VBar.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'width', 'top', 'bottom')
x = NumberSpec(help="""
The x-coordinates of the centers of the vertical bars.
""")
width = NumberSpec(help="""
The widths of the vertical bars.
""")
bottom = NumberSpec(default=0, help="""
The y-coordinates of the bottom edges.
""")
top = NumberSpec(help="""
The y-coordinates of the top edges.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the vertical bars.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the vertical bars.
""")
[docs]class Wedge(XYGlyph):
''' Render wedges.
'''
__example__ = "examples/reference/models/Wedge.py"
# a canonical order for positional args that can be used for any
# functions derived from this class
_args = ('x', 'y', 'radius', 'start_angle', 'end_angle', 'direction')
x = NumberSpec(help="""
The x-coordinates of the points of the wedges.
""")
y = NumberSpec(help="""
The y-coordinates of the points of the wedges.
""")
radius = DistanceSpec(help="""
Radii of the wedges.
""")
start_angle = AngleSpec(help="""
The angles to start the wedges, as measured from the horizontal.
""")
end_angle = AngleSpec(help="""
The angles to end the wedges, as measured from the horizontal.
""")
direction = Enum(Direction, default='anticlock', help="""
Which direction to stroke between the start and end angles.
""")
line_props = Include(LineProps, use_prefix=False, help="""
The %s values for the wedges.
""")
fill_props = Include(FillProps, use_prefix=False, help="""
The %s values for the wedges.
""")
# XXX: allow `from bokeh.models.glyphs import *`
from .markers import (Asterisk, Circle, CircleCross, CircleX, Cross, Dash,
Diamond, DiamondCross, Hex, InvertedTriangle, Marker,
Square, SquareCross, SquareX, Triangle, X)
# Fool pyflakes
(Asterisk, Circle, CircleCross, CircleX, Cross, Dash, Diamond, DiamondCross,
Hex, InvertedTriangle, Marker, Square, SquareCross, SquareX, Triangle, X)


{% extends 'trustee/base.html' %} {% block content %}
PATS is established with an intention and objective to provide quality education to both underprivileged and privileged children irrespective of their caste, creed or religion. This institute is run under the management of UQAAB CHARITABLE & EDUCATIONAL TRUST. To know more about Trust , please click here.
If you’re looking for best tuition center in Kormangla , Bangalore and you have finally come to this
section of the page, we would like to help you sort out a few things which include “How To Get Started
at Parvaz Academy Tutorial Services” .Well, there are a few things you can do from now on. If you have
already understood our services and what we do then you can simply visit Contact Us page and join our
tuition classes in Kormangla right from today.
But, if you still have any questions about our Tuition
Center or other topic related to study. We suggest you following:
Let’s Get in Touch via Call (+91-9986468619,<PHONE_NUMBER>) or Email<EMAIL_ADDRESS>You are welcome to book a demo class today and get an idea about our teaching skills. (Don’t worry, you
need not to pay anything for demo classes.)
Let us know about the improvement you notice in us and yourself after the demo tuition classes.
Share your feedback and JOIN US


dojox.grid.DataGrid Relative Width Test
Country/Continent Name
Type
Population
Relwidth mixed with %
Country/Continent Name
Type
Population
Relwidth mixed with static values
Country/Continent Name
Type
Population
Relwidth mixed with auto (relwidth not used)
Country/Continent Name
Type
Population
Relwidth with colspans
Type
Population
Country/Continent Name


Computer science classroom Web Page
Rao Casturi
More information required before logging in
Select your class Day and Time
T&TH 5:30 - 7:15
class 2
class 3
class 4
Phone:
Select your carrier
ATT
Boost
Cricket
Metro PCS
Sprint
T-mobile
US Cellular
Verizon


The (unofficial) Telematics API of Athens' public buses, complete with types and helper methods 🚌🚌🚌
This is the package that powers the popular greek messenger bot "Πότε έρχεται το λεωφορείο μου 🚌".
Install the package: $ npm i oasa-telematics-api
import { APIRequests, APIHelpers } from 'oasa-telematics-api';
const api = new APIRequests();
const b = new APIHelpers();
(async () => {
// You can fetch all the lines:
console.log("You can fetch all the lines...");
console.log(await api.webGetLines());
// You can fetch a single line:
console.log("You can fetch a single line...");
console.log(await b.findLine('140'));
// You can fetch a stop of a line:
console.log("You can fetch a stop of a line...");
const line = await b.findLine('140');
if (line) {
const { directions } = await b.getDirectionsOfLine(line.LineCode)
const [come, go ] = directions;
console.log(await b.findStop('LAMIAS', come.RouteCodes));
// Or in greek
console.log("Or by searching in Greek...");
console.log(await b.findStop('ΛΑΜΙΑΣ', come.RouteCodes));
// Or by searching with a typo
console.log("Or by searching with a typo...");
console.log(await b.findStop('ΛΑΜΙΑ', come.RouteCodes));
// And then you can check which buses are passing through that stop:
console.log("And then you can check which buses are passing through that stop...");
const stops = await b.findStop('ΛΑΜΙΑ', come.RouteCodes);
if (stops.length > 0) {
console.log(await api.getStopArrivals(stops[0].StopCode));
}
}
})();
You can explore more by visiting the (mostly auto-generated) docs here:
https://chrispanag.github.io/oasa-telematics-api/
Also, feel free to open an issue if you want to ask or suggest anything :)
Yes. The constructors APIRequests and APIHelpers can get a request function as an argument.
The request function will need to have the form:
export type RequestFunction = <T>(url: string, query: string, ...params: any[]) => Promise<T>;
You can see a reference request function here.
Caching.
Also, see below...
Yes. But you'll need to create a custom request function using the browser fetch
method instead of the default one installed (node-fetch
). You can see the above question for more details.
Generated using TypeDoc


Vue Loading Bar
Progress is {{ progress }}%
Progress to 30
Progress to 50
Progress to 100
Change Direction
Give An Error


Quantize image colors by mapping all pixels to the nearest color in RGB space, respectively, given an arbitrary palette.
image_quantmap( file, pal, pal2 = NULL, k = 100, plot = FALSE, show_pal = TRUE, labels = TRUE, label_size = 1, label_color = "#000000", keep_asp = TRUE )
| file | if character, file path or URL to an image. You can also provide an RGB array from an already loaded image file. |
|---|---|
| pal | character, vector of hex colors, the color palette used to quantize the image colors. |
| pal2 | character, optional vector of hex colors, same length as |
| k | integer, the number of k-means cluster centers to consider in the image. See details. |
| plot | logical, plot the palette with quantized image reference thumbnail. If |
| show_pal | logical, show the palette like with |
| labels | logical, show hex color values in plot. |
| label_size | numeric, label size in plot. |
| label_color | text label color. |
| keep_asp | logical, adjust rectangles in plot to use the image aspect ratio. |
an RGB array with values ranging from 0 to 1
The palette pal
does not need to be related to the image colors.
Each pixel will be assigned to whichever color in pal
that it is nearest to in RGB space.
You can use pal2
to remap to arbitrary colors after quantizing.
This function returns the new RGB array. You can plot a preview just like with image_pal
using plot = TRUE
.
The number of k-means centers k
is for binning image colors prior to mapping the palette pal
.
It is limited by the number of unique colors in the image. Larger k
provides more binned distances between image colors and palette colors,
but takes longer to run.
x <- system.file("blue-yellow.jpg", package = "imgpalr") pal <- c("black", "navyblue", "dodgerblue", "yellow") pal2 <- c("darkred", "darkgreen", "tomato", "orange") a <- image_quantmap(x, pal, k = 7, plot = TRUE)#> num [1:317, 1:400, 1:3] 0 0 0 0 0 0 0 0 0 0 ...a <- image_quantmap(x, pal, pal2, k = 7, plot = TRUE)


{% extends "security/base.html" %} {% from "security/_macros.html" import render_field_with_errors, render_field %} {% block content %} {% include "security/_messages.html" %}


{% if validation %}
The image is of unsupported file type, allowed file types are '.jpg', '.jpeg' and '.png'
{% endif %}
The neural network is trained to recognize the following categories:
- apples
- bananas
- beer
- bonbons
- burgers
- cakes
- cheese
- cookies
- croissants
- french fries
- hotdogs
- oranges
- pizza
- roll breads
- sandwiches
- tea
- whiskey
Please select a file to scan


In addition, there are utility classes for handling the more common parts of X.509 certificates such as key usage bits on a high(er) level.
To aid certificate selection both in UIs and in protocols like KeyGen2, there is a certificate filter class.


Chair
Treasurer
Gail L. Iverson joined the Rushton CPA firm in February of 2001 and is currently the Business Services Manager and is in the PIT (partner in training) scheduled to be a partner as of 2019. She received her undergraduate degree from Valdosta State and became a CPA in 1986. She specializes in tax advice and preparation and consulting with small businesses. She is a member of the Ga Society of CPAs, the American Institute of CPAs and the American Payroll Association.
Gail is active in the community currently serving as the Treasurer of the Community Council on Aging and past Chairperson. She was a member of the Leadership Hall County class of 2016-2017. She has previously served as Treasurer on The Guest House board in Gainesville.
Gail and her husband Dan are proud parents of 4 children, Daneka, who they adopted from China at 16 months, Isaac, and 9-year-old twins, Morgan and Madison. She enjoys playing the piano at church and spending time with her family.
Secretary
Kathy Kirkpatrick Oates is a retired Special Education teacher. Now she supervises student teachers for UNG part time. She is a native of Gainesville who enjoys volunteering at the NEGA Medical Center and NEGA History Center. Her family has deep roots in Gainesville and she is glad to have more time now to give back to her community.
After being very involved with her late mother’s care, she knows firsthand what is needed for transporting seniors who need drivers. Kathy is married to Richard and they have 2 grown sons. More importantly, they have grand twins–identical toddler boys.
Board Member
Board Member
Anthony, a native of Elberton, Georgia, relocated to Gainesville in 1987. He received a bachelor’s degree, majoring in corporate finance from the University of Georgia. He also holds a banking degree from University of Georgia. He is a member of the First Baptist Church of Gainesville and has 28 years of combined civic work in Hall County. Anthony and his wife, Jennifer, have been married for 26 years and have two daughters, Anne Marie and Emmaline Grace.
Board Member
David Brunelle lives in Sterling on the Lake, Flowery Branch and is a retired sales and marketing executive for international hardware and building material manufacturers. He held senior management positions in Boston, Atlanta and Chicago prior to establishing a Manufacturers Rep. business headquartered in the metro Atlanta area. Professional affiliations included the American Hardware Manufacturers Association and National Association Home Builders.
David has a BS degree in Business Administration from the University of Hartford, Hartford, Ct. He received an honorable discharge from the US Army and has been a volunteer driver for ITN/Lanier since Sept. 2017. David is an active tennis player and enjoys spending time with six adult children and nine grandchildren.
Board Member
Strother Randolph is recently retired after 48 years in the Insurance business, the last 32 with The Norton Agency Insurance Division. Since moving to Gainesville in 1977, Strother has been actively involved in a number of mostly non-profit organizations. He was Chairman of the Board for the North Georgia Community Foundation, United Way of Hall County, and Center Point as well as on boards of others. He also was President of two State associations: Professional Insurance Agents of Georgia and the Georgia affiliate of the American Heart Association. Locally he has been a long time active member of the Gainesville Kiwanis Club and the First Presbyterian Church.
Strothers greatest joy is his family.He and wife Cindy have been married 47 years and their two daughters and grandchildren all live in Gainesville. He has particularly fond memories of coaching his daughters softball teams and now enjoys attending his grandchildren soccer, cross country and baseball events.
He is finding great satisfaction being an ITNLanier driver as it gives him an excellent opportunity to help others who are in need.
Board Member
Milon Christman retired from the Financial Services industry in 1999. He then moved from Myrtle Beach, SC to Gainesville where he became Senior Nutrition Director for the Gainesville-Hall County Community Service Center.
His primary responsibilities were coordinating the Meals on Wheels program, fundraising, and overseeing the management and logistics of a 250+ volunteer pool. Christman retired a second time in 2016 and became a community volunteer.
He holds a BBA (Finance) and MBA from the University of Georgia. He is engaged to Anne Baylor and they will marry in September 2018. He has one son, Nick, who is a Firefighter and Realtor in Myrtle Beach SC.
Board Member
Sandra retired from a thirty-four-year career with the Federal Government where she served as the Senior Executive to the office of the Assistant Secretary of the Airforce in their Business management and Execution Directorate at the Pentagon in Washington D. C. She has a masters in Business management and a BA in accounting.
As a volunteer Sandra serves for several committees at Free Chapel church. She recently served as the Treasurer and Finance Committee Chair for the Northeast Georgia History Center. Sandra is a Brenau University Wisdom Keeper and Chair of their Leadership Development and Program Development Committees. Sandra is a Vision 2030 Board Member, Community Council on Aging Board Member and a member and Vice President of the National Active and Retired Federal Employees Gainesville Chapter.
Board Member
Nancy is a UGA graduate, and life long Gainesvillian. She retired from teaching after 15 years in the classroom and 15 years as a Media Specialist. Nancy has been a member of the choir at First United Methodist Church for over 20 years. She has served there as a volunteer to their Board of Trustees, Pastor/Parish Relations Committee, Finance Committee, Youth Fellowship, and Children’s Choir.
Nancy volunteers with activities at Dogwood Forrest Personal Care Home. She is a member of the Gainesville Symphony Board of Directors where she served as their Chair for Carnival Ball. Nancy is currently working at Lyman Hall Elementary School and participating in Alzheimer’s Research at Emory University Hospital in Atlanta. ITN Lanier is proud to have Nancy as a Board member and also a Volunteer Driver.
Executive Director
Dana graduated from LaGrange college with degrees in Social Work and Speech. She has been working in Human Services in Hall County Georgia for 35 years. Dana has professional experience in Psychoeducation, Juvenile Probation, Home Health, Hospital social work, Rape Crisis and Adult Day Health. She is the recipient of the 2007 Criminal Justice Coordinating Council’s EAGLE Award for Advocacy. She has extensive volunteer management and crisis intervention experience. Dana has been a Gainesville Kiwanian since 1990. She is married to Allen Schweriner. They have 3 children, 2 grandchildren and a rescued papillon mix puppy.
Office Manager
I am married and have been for 20 years to my husband Erik. We have raised two boys, our son Dylan who is 19 and my nephew Christopher, who is 16. We moved to Georgia from Michigan in 1994 to take care of a relative. After which, we ended up deciding to stay here and raise our family.
I spent 4 years with the wrestling booster club raising funds for our teams. I went to college for Accounting at Lanier Technical Institute. I enjoy hiking, camping, kayaking and I love music. We live out in the country in the beautiful Georgia Mountains.  I really enjoy helping others and I prefer to give rather than to receive. Working for iTN Lanier has been very rewarding and I absolutely love my job!
ITN{{affiliate}} is part of the ITNAmerica family, which unites organizations across the country working to support the transportation needs of older people. The ITNAmerica model offers a platform for dignified, sustainable mobility using technological solutions and innovative programming. We welcome your interest, and hope you will consider the benefits of having an ITN affiliate in your area. To learn more, contact us


Seems your browser doesn't support Javascript! Websocket relies on Javascript being enabled. Please enable Javascript and reload this page!
Your client id:
Join chatroom
Sign Out
Type your message and click to send:
Send
-------------------------------------------------------------


Find your Forever Friend
My name is
Details about Me
Description :
Size :
Address :
Breed :
Color :
Status :
My Photo :
Map Location
Go Back


{% load static %}
Search Engine
Connect to database:
{% csrf_token %}
Connect
Search for:
Object
Event
Scan
Entity Search:
1. Choose collections:
All databases & collections are selected by default.
2.Add objects:
id
class
Contains:
all
at least one
Add object
Remove object
3.Dataset preparation:
Choose type of dataset:
Object detection
Multiclass Classifier
Crop images with all bounding boxes
Scan Search:
1. Choose collections:
2. Add classes:
Add class
Remove class
Event Search:
1.View specification:
The sentence grammar for input field:
database-collection-timestamp-cameraView
Add target
Remove target
Image postprocessing:
1.Resize image
Choose one way:
Stretch
Padding
2.Image type:
RGB
Depth
Mask
Normal
Search


{% raw %}
ChatSurfing allows you to easily chat and video conference by entering into a chat room and inviting your friends and acquaintances to join you. For your privacy, your video is only enabled when you explicitly turn it on and it will only be shared with people that you choose.


Adding a new User
login
Password
Confirm Password
first name
surname
sex
Man
Wooman
birthday
access rules
Admin
User
Index page
Logout


Edsger W. Dijkstra
Here's a timeline of Prof. Edsger W. Dijkstra's life:
- Born in Rotterdam on 11 May 1930.
- Studied theoretical Physics at the University of Leiden.
- Worked at the Mathematisch Centrum in Amsterdam from 1952 till 1962.
- In the late 1960s, he built the THE operating system which influenced later operating systems.
- Joined the Burroughs Corporation in 1973 as a research fellow.
- The Burroughs years saw him at his prolific best - writing nearly 500 articles.
- Dijkstra accepted the Schlumberger Centennial Chair in the Computer Science Department at the University of Texas at Austin in 1984.
- Dijkstra worked in Austin until his retirement in November 1999.
- Died of cancer in Nuenen, Netherlands, on 6 August 2002.
-
He made fundamental contributions to the following domains of
Computer Science -
- algorithm design
- programming languages
- program design
- operating systems
- distributed processing
- formal specification and verification
- design of mathematical arguments
-
His awards include -
- Turing award (1972)
- SIGCSE Outstanding Contribution (1989)
- ACM Fellow (1994)
The difference between a computer programmer and a computer scientist is a job-title thing. Edsger Dijkstra wants proudly to be called a "computer programmer," although he hasn't touched a computer now for some years. (...) His great strength is that he is uncompromising. It would make him physically ill to think of programming in C++.
-- Donald Knuth (1996)
Check the
Dijkstra manuscript archive
for more info.


On this page:
Groups are subsets of participants for a given site. Groups are not preloaded with official course data, and can therefore be created by the instructor. Groups are useful to organize study groups, project teams, and other non-official subsets of site participants.
Note: When combining sections into a parent site, groups from the original sections will not be brought forward. However, each section behaves like a group on the parent site, i.e., group-aware tools recognize each section as a group.
You can use groups with the following tools:
You can access groups with the Site Info and Worksite Setup tools.
To access groups with the Site Info tool:
Site Info
.
Manage Groups
.
To access groups with the Worksite Setup tool:
My Workspace
.
Worksite Setup
.
Edit
.
Manage Groups
.
To create a new group:
Create New Group
.
Project team 1
). You may also add a text
description.
>
. Repeat this step until you've added all the
members you wish to the group. To select more than one member at a
time, hold down the Ctrl
key (in Windows) or the
Command
key (in Mac OS X), and select
the members you wish to add.
Alternatively, click >>
to move all site participants to the right-hand window, select any
participants you do not want in the group, and click <
to
remove them.
Add
.
To create a group containing all users with a specific role, click Auto
Groups
, check the role(s) that you want to create groups for, and then
click Update
.
Note: It is not possible to create a new group based on existing group (i.e., duplicate an existing group).
To edit a group:
Edit
.
Update
.
To delete a group:
Remove
.
Remove Checked
.
Delete Groups
.


actionhero websocket load test
Check the console for logs.
Be sure to update your ulimts!
- Test State:
- Connections:
- Total Requests:
- Total Time:
- Total Good:
- Total Bad:
- Req/Sec:
- Sec/Rec:
- % Good:
Check the console for logs.
Be sure to update your ulimts!


Name
lua-oocairo - Lua API for the Cairo vector graphics library
Introduction
This is a Lua binding for the Cairo graphics library, with an object oriented style of API. There is at least one other Cairo binding available in Lua, but it has a more C-like API and is much less complete.
Simple Example
The code below is a complete example showing how to load this module and do some basic drawing with it. Other features are demonstrated by the files in the examples directory included with the module.
First load the module. The module doesn't create a global variable, so you have to assign it to something.
local Cairo = require "oocairo"
Create a bitmap image surface for drawing on, and create a context object which is used to do the drawing:
local surface = Cairo.image_surface_create("rgb24", 200, 200) local cr = Cairo.context_create(surface)
Fill whole image with white. The paint
method will copy the whole of
the source to the surface. In this case the source is a solid colour,
but it can be other things like an image or gradient. The default source
is solid fully opaque black. Since the default colour of the image surface
is also black, nothing would happen if we didn't set the source to something
else before painting.
cr:set_source_rgb(1, 1, 1) cr:paint()
Define an arbitrary shape, then fill it in purple. The move_to
and
line_to
methods, among others, define the shape of the path which is
used for drawing operations like filling.
cr:move_to(0, 0) cr:line_to(190, 100) cr:line_to(100, 185) cr:line_to(200, 200) cr:line_to(30, 130) cr:close_path() cr:set_source_rgb(0.8, 0.4, 1) cr:fill()
Another shape, this time both filled and with a line drawn along it's edge.
The path is normally discarded after a drawing operation, so here
fill_preserve
is used to keep it so that it can also be stoked.
Note that the stroked line won't go all the way around the filled area,
because the path wasn't closed with close_path
. The black outline
created by the stroke
method will be three pixels wide, and will be
centered on the path, half of it inside the filled area.
cr:move_to(180, 30) cr:line_to(100, 20) cr:line_to(80, 120) cr:set_source_rgb(0.5, 0.7, 0.3) cr:fill_preserve() cr:set_line_width(3) cr:set_source_rgb(0, 0, 0) cr:stroke()
Finally, write the output to a file in PNG format.
surface:write_to_png("simple-example.png")
Surface constructor functions
The following functions can be accessed from the module table (the table
returned from require
). One of them must be used to create a surface
on which to draw on before Cairo can be used for anything interesting.
These all return a surface object, for which the methods are documented
at lua-oocairo-surface(3). Most drawing is done through a context
object, which should be constructed with a call to the context_create
function (also in the module table), passing the surface object as its
only argument. The methods for context objects are documented at
lua-oocairo-context(3).
- image_surface_create (format, width, height)
Return a surface object for drawing an image in memory. The width and height values must be numbers and are measured in pixels. The value of format can be any of the following strings:
- argb32
Each pixel is 32 bits, encoding both colour and alpha (transparency) values.
- rgb24
Each pixel is 32 bits with only 24 bits used, encoding a colour value. All pixels are implicitly 100% opaque.
- a8
Each pixel is a single byte encoding the alpha (transparency) value, with no colour information.
- a1
Each pixel is a single bit encoding whether a pixel is transparent or opaque, with no colour information.
The image created will be black by default, and fully transparent if the pixels have an alpha component.
- image_surface_create_from_data (data, format, width, height, stride)
Creates a new image surface with the size width by height pixels, using format just as the
image_surface_create
function does, but the image is initialized using pixel data from the string data. The stride value should be whatever is returned from theformat_stride_for_width
function for the given width and pixel format. The data should be encoded in the format described for thesurf:get_data()
method in lua-oocairo-surface(3).Note that since Lua strings are immutable, a copy of the data is made and used as the live buffer. There is currently no support for sharing an image surface buffer between Cairo and something else.
This binds the native Cairo function
cairo_image_surface_create_for_data
, but has a slightly different name because the data you provide is only used at construction time, not kept around for drawing.- image_surface_create_from_png (file/filename)
Creates a new image surface containing the image in a PNG file. The file is read from the filename or file handle specified. See below for details about what kind of file handles can be used.
- pdf_surface_create (file/filename, width, height)
Create a surface which writes drawing instructions out to a PDF file, at the given filename or through a file handle. The width and height values must be numbers and are measured in points.
- ps_surface_create (file/filename, width, height)
Create a surface which writes drawing instructions out to an Adobe™ file, at the given filename or through a file handle. The width and height values must be numbers and are measured in points.
- surface_create_similar (surface, content, width, height)
Create a new surface of the same type as surface, but with the width and height specified. The content value indicates whether the surface should include colour and/or transparency information, and must be one of the following strings:
- svg_surface_create (file/filename, width, height)
Create a surface which writes drawing instructions out to an SVG file, at the given filename or through a file handle. The width and height values must be numbers and are measured in points.
Other top-level functions
The following additional methods are available. The are rarely needed
except for context_create
and the gradient constructors.
- BYTE_ORDER
Not actually a function, this is a string indicating which order colour components are stored in pixels in raw image data on this platform. This will be
argb
on big-endian systems andbgra
on little-endian ones. This is the order in which the bytes for each pixel are stored onrgb24
andargb32
image surfaces. Fora1
it indicates the order the pixels are encoded as bits. It can be ignored when the image format isa8
.- context_create (surface)
Return a new context object for drawing on surface. See lua-oocairo-context(3) for methods which can be called on this object.
- context_create_gdk (drawable)
Return a new context object for drawing on the GdkDrawable object drawable, which must be from the Lua-Gnome library.
Fails unless Lua-Gnome has been loaded and the
gtk
module is available as a global variable.See example programs gtk-image.lua and gtk-drawing.lua for examples of how to use this.
- font_options_create ()
Returns a new Cairo font options object, with all its options set to default values. See lua-oocairo-fontopt(3) for information about what you can do with it.
- format_stride_for_width (format, width)
Returns the number of bytes Cairo will used for storing a single row of pixels in the raw data of an image surface. This can be used as the stride value for the
image_surface_create_from_data()
function and the image surface methodget_data()
. The format value should be one of the pixel format strings such asrgb24
, and the width should be a number.- matrix_create ()
Return a new copy of the identity matrix. All transformation matrices returned to Lua are in the format of a table of six numbers. See lua-oocairo-matrix(3) for methods which can be called on these.
- pattern_create_for_surface (surface)
Return a new pattern object representing the image on the surface. See lua-oocairo-pattern(3) for methods which can be called on pattern objects.
- pattern_create_linear (x1, y1, x2, y2)
Return a new pattern object representing a linear gradient, where the offset numbers go from zero at the point specified by the two numbers (x1, y1) to the point (x2, y2).
- pattern_create_radial (x1, y1, r1, x2, y2, r2)
Return a new pattern object representing a radial gradient, where offsets move from the circle defined by the three numbers (x1, y1, r1), where r1 is the radius, to the circle (x2, y2, r2).
- pattern_create_rgb (r, g, b)
Return a new pattern object representing a solid colour. The red, green, and blue values specified should all be numbers in the range zero to one inclusive.
- pattern_create_rgba (r, g, b, a)
Same as
pattern_create_rgb
, but accepts an alpha value, so the solid colour can be semitransparent.- ps_get_levels ()
Return a table containing a list of strings indicating what levels of PostScript are supported by Cairo.
- scaled_font_create (face, font_matrix, ctm, options)
Creates a new scaled font object, representing a scaled version of face. See lua-oocairo-scaledfont(3) for information about these objects.
The font_matrix and ctm values must be matrices (any table containing six numbers, see lua-oocairo-matrix(3) for details). The options argument can be nil for the default options, or a font options object as returned by the
font_options_create
function.- svg_get_versions ()
Return a table containing a list of strings indicating what versions of SVG are supported by Cairo.
- toy_font_face_create (family, slant, weight)
Create and return a toy font face object (see lua-oocairo-fontface(3)). See the context method
select_font_face
for details of the arguments. This does the same, but returns the object instead of applying it to a context. Only available with Cairo 1.8 or better, otherwise this method won't exist.- user_font_face_create (callbacks)
Returns a font face object which uses the supplied callbacks for rendering and such. This is intended to be used for creating special fancy font effects or for providing access to obscure font formats which aren't supported by Cairo. The callbacks value must be a table, with string keys for the callbacks. The
render_glyph
callback is required, the others optional.See lua-oocairo-userfont(3) for details of how to write the callbacks. Only available with Cairo 1.8 or better.
I/O through file handles
Functions in this module which are advertised as accepting a file/filename
value can accept a filename (a simple string) or a Lua file handle. They
will also work with any other object (a userdata value or table) which
provides the appropriate input or output method.
For files which are to be used for output, a file handle object needs to
provide a method called write
, which will be called with a single
string every time more output is available. Any return values from
the method are ignored, but it can throw an exception if there's an error.
For files which are used for input, a file handle needs to provide a
method called read
, which will be called with a number indicating the
number of bytes it should read. It should return a string containing
exactly that number of bytes.
The memoryfile
module available from LuaForge can be used to write
output into a buffer in memory which can then be accessed as a Lua string.
This can be useful as a way to get an image into another graphics library
such as GD, where it can be written in other formats other than PNG.
Feature flags
When the module is compiled, it will only enable support for the features which were compiled into your copy of the Cairo library. For example, if you built Cairo without the PDF backend, then the module will not include the functions for creating a PDF surface.
There are flags in the module table which indicate which features are
available. These are all wither true
or false
:
- HAS_PDF_SURFACE
Support for creating a surface which writes drawing instructions out to an SVG file.
- HAS_PNG_FUNCTIONS
Support for loading a PNG bitmap and creating an image surface from it, or for writing the contents of an image surface out to a PNG.
- HAS_PS_SURFACE
Support for creating a surface which writes to a PostScript or EPS file.
- HAS_SVG_SURFACE
Support for creating a surface which writes to a PDF file.
- HAS_USER_FONT
Support for custom fonts defined by callback functions. If true then the
user_font_face_create
function should be available in the main module table.
Copyright
This software and documentation is Copyright © 2008 Geoff Richards<EMAIL_ADDRESS>It is free software; you can redistribute it and/or modify it under the terms of the Lua 5.0 license. The full terms are given in the file COPYRIGHT supplied with the source code package, and are also available here: http://www.lua.org/license.html


| |
ilLoadPal simply loads a palette from the file specified by FileName into the current bound image's palette. If the current bound image is not of type IL_COLOR_INDEX, the palette is not used, but it is loaded nonetheless. ilLoadPal can load .col, Halo and Jasc PSP palette files.
| | ILboolean ilLoadPal( char * FileName );
|
Parameters| | - FileName
- Filename to load the palette data from.
|
Errors| | - IL_COULD_NOT_OPEN_FILE
- Could not open FileName for writing.
- IL_ILLEGAL_OPERATION
- The operation attempted is not allowable in the current state. The function returns with no ill side effects. Generally there is currently no image bound or it has been deleted via ilDeleteImages. You should use ilGenImages and ilBindImage before calling the function.
- IL_INVALID_PARAM
- FileName or Type was NULL.
- IL_OUT_OF_MEMORY
- Could not allocate enough memory for the image data.
|
See Also
|


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
| Class Summary | |
|---|---|
| AbortMultipartUploadRequest | The AbortMultipartUploadRequest contains the parameters used for the AbortMultipartUpload method. |
| BosObject | Represents an object stored in Baidu Bos. |
| BosObjectSummary | Contains the summary of an object stored in a Baidu Bos bucket. |
| BosResponse | |
| BosResponseMetadata | |
| BucketSummary | Represents an Baidu Bos bucket. |
| CommonPrefixesDeserializer | |
| CompleteMultipartUploadRequest | Container for the parameters of the CompleteMultipartUpload operation. |
| CompleteMultipartUploadResponse | The CompleteMultipartUploadResponse contains all the information about the CompleteMultipartUpload method. |
| CopyObjectRequest | Provides options for copying an Baidu Bos object from a source location to a new destination. |
| CopyObjectResponse | Contains the data returned by Baidu Bos from the
BosClient.copyObject(CopyObjectRequest copyObjectRequest) call. |
| CreateBucketRequest | Provides options for creating an Baidu Bos bucket. |
| CreateBucketResponse | |
| DeleteBucketRequest | Provides options for deleting a specified bucket. |
| DeleteObjectRequest | |
| DoesBucketExistRequest | |
| GeneratePresignedUrlRequest | Contains options to generate a pre-signed URL for an Baidu BOS resource. |
| GenericBucketRequest | |
| GenericObjectRequest | |
| GenericUploadRequest | |
| GetBosAccountOwnerRequest | |
| GetBucketAclRequest | Request object containing all the options for requesting a bucket's Access Control List (ACL). |
| GetBucketAclResponse | |
| GetBucketLocationRequest | Get Bucket Location Request class |
| GetBucketLocationResponse | Get Bucket Location Response |
| GetObjectMetadataRequest | Provides options for obtaining the metadata for the specified Baidu Bos object without actually fetching the object contents. |
| GetObjectMetadataResponse | |
| GetObjectRequest | Provides options for downloading an Baidu Bos object. |
| GetObjectResponse | |
| Grant | Specifies a grant, consisting of one grantee and one permission. |
| Grantee | Represents the grantee of an Baidu Bos bucket. |
| InitiateMultipartUploadRequest | The InitiateMultipartUploadRequest contains the parameters used for the InitiateMultipartUpload method. |
| InitiateMultipartUploadResponse | Contains the results of initiating a multipart upload, particularly the unique ID of the new multipart upload. |
| ListBucketsRequest | Request object for listing all the Baidu Bos buckets owned by a user. |
| ListBucketsResponse | Response object for listing all the Baidu Bos buckets owned by a user. |
| ListMultipartUploadsRequest | Container for the parameters of the ListMultipartUploads operation. |
| ListMultipartUploadsResponse | The ListMultipartUploadsResponse contains all the information about the ListMultipartUploads method. |
| ListObjectsRequest | Contains options to return a list of summary information about the objects in the specified bucket. |
| ListObjectsResponse | Contains the results of listing the objects in an Baidu Bos bucket. |
| ListPartsRequest | Container for the the parameters of the ListParts operation. |
| ListPartsResponse | The ListPartsResponse contains all the information about the ListParts method. |
| MultipartUploadSummary | A multipart upload is an upload to Baidu Bos that is creating by uploading individual pieces of an object, then telling Baidu Bos to complete the multipart upload and concatenate all the individual pieces together into a single object. |
| ObjectMetadata | Represents the object metadata that is stored with Baidu Bos. |
| PartETag | Container for the part number and ETag of an uploaded part. |
| PartSummary | Container for summary information about a part in a multipart upload, such as part number, size, etc. |
| PutObjectRequest | Uploads a new object to the specified Baidu Bos bucket. |
| PutObjectResponse | Contains the data returned by Baidu Bos from the putObject operation. |
| ResponseHeaderOverrides | Container object for overriding headers on a GetObjectRequest or GeneratePresignedUrlRequest response. |
| SetBucketAclRequest | Request object containing all the options for setting a bucket's Access Control List (ACL). |
| UploadPartRequest | Contains the parameters used for the UploadPart operation on Baidu Bos. |
| UploadPartResponse | Contains the details returned from Baidu Bos after calling the UploadPart operation. |
| Enum Summary | |
|---|---|
| CannedAccessControlList | Specifies constants defining a canned access control list. |
| Permission | Specifies constants defining an access permission,. |
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Work-study programs are part-time jobs on campus. If your offer includes work-study, that means you are eligible to apply for work-study jobs — a job will not be lined up for you. The work-study amount in your offer is the maximum you can earn. It is estimated and not guaranteed.
{{
input.render({
'label': 'Maximum, estimated work-study income',
'id': 'workStudy__workStudy',
'value': '0',
'data_attribute': 'data-financial-item="workStudy_workStudy"'
})
}}
{{
text_item.render({
'label': 'Maximum, estimated work-study income',
'value': '$99,999',
'type': 'total',
'data_attribute': 'data-financial-item="total_workStudy"'
})
}}
{{ notification.render(
'money-tips',
true,
'Money saving tips',
'
- Ask if there is help available for finding a work-study job (like a student employment service). You may be able to use your work-study to compete for student jobs that are not labeled work-study.
- There can be long-term benefits to work-study (besides reducing the amount you need to borrow), like exposure to new types of work or building relationships with professors who can help you apply for scholarships, internships, and other opportunities.
' | safe
) }}
{{ notification.render(
'warning',
true,
'Know before you go',
'
- If you do not find a work-study job in the first term, you may lose your eligibility in the future.
- Ask the financial aid office about the options for getting paid for work-study. At most schools, work-study money cannot be used to cover direct costs (like tuition, on-campus housing, and meal plans), because you must pay those bills before you earn the work-study funds.
' | safe
) }}
Fellowships and assistantships
In addition to work-study, graduate students may be eligible to earn additional funding from fellowships and/or assistantships.
{{
input.render({
'label': 'Fellowship funding',
'id': 'fellowAssist__fellowship',
'value': '0',
'data_attribute': 'data-financial-item="fellowAssist_fellowship"'
})
}}
{{
input.render({
'label': 'Assistantship funding',
'id': 'fellowAssist__assistantship',
'value': '0',
'data_attribute': 'data-financial-item="fellowAssist_assistantship"'
})
}}
{{
text_item.render({
'label': 'Total fellowship and assistantship funding',
'value': '$99,999',
'type': 'total',
'data_attribute': 'data-financial-item="total_fellowAssist"'
})
}}
{{ notification.render(
'caution',
true,
'',
'Costs not covered: ' | safe
) }}
{{ notification.render(
'money-tips',
true,
'Money saving tips',
'
- The IRS has different rules for fellowships and assistantships. Ask the financial aid office about the tax implications of your funding.
- Depending on your field of study, you may be able to apply for fellowship funding from outside the school.
' | safe
) }}


## Welcome!
```/sbin/service columbus-devops restart```
Thanks to our hosts [Cardinal Health](http://cardinalhealth.com/us/en/fuse)
![img](http://cardinalhealth.com/mps/CacheProxyServlet/colorPalette/default/browserVendor/Netscape/browserName/Navigator/browserVersion/unknown/locale/en/forwardurl/mps/themes/html/Cardinal/images/common/logo.png)
## Administrivia
### Our organizers
1. Bill Schwanitz, Sr. Big data engineer @ [LivingSocial](https://www.livingsocial.com)
1. Dan Sajner, Systems Engineer @ [CoverMyMeds](https://www.covermymeds.com/main/)
## Musings on the relaunch
1. What do you guys want out of the meetup?
* Topic requests
* Presentation volunterring
1. Location preference?
* prefer single location or roam around?
* Anyone willing to offer up hosting?
1. Frequency
* Currently we are thinking monthly meetings
* Some will be presentations, others will be general discussion or casual drinks/food
## Devops manifesto?
Does DevOps need a [manifesto](https://www.google.com/search?q=devops+manifesto&oq=devops+manifesto)?
## Capistrano for app deployment
[Capistrano](http://capistranorb.com/)
1. remote server automation tool written in ruby
1. syntax is very similar to [rake](https://github.com/ruby/rake)
1. Warning, I only know/use version 2 of capistrano ( and thats what I'm covering )
## Basics
1. Basically a DSL which allows you to run ssh in a for loop
* But it has roles/filtering
* implements control/catch logic
1. Has concept of namespace and task
* namespace is just syntactic sugar
## Example, run date
Task:
```
role :ubuntu_server
role :redhat_server
# server #{name}, #{roles}
server "bilsch.dyndns.org", :web_server, :shell_server, :ubuntu_server
server '<IP_ADDRESS>', :redhat_server
(...)
desc "Runs date on all_hosts"
task :date, :pty => true, :roles => [ :redhat_server, :ubuntu_server] do
run "/bin/date"
end
```
## Example output
```
bilsch@Euclid:data (master)$ cap date
* 2015-01-27 19:52:21 executing `date'
* executing multiple commands in parallel
-> "else" :: "/bin/date"
-> "else" :: "/bin/date"
-> "else" :: "/bin/date"
-> "else" :: "/bin/date"
servers: ["bilsch.dyndns.org", "gir.home.bilsch.org", "udooq.home.bilsch.org", "pi.home.bilsch.org"]
[gir.home.bilsch.org] executing command
[udooq.home.bilsch.org] executing command
** [out :: udooq.home.bilsch.org] Tue Jan 27 19:52:21 EST 2015
*** [err :: gir.home.bilsch.org] stdin: is not a tty
** [out :: gir.home.bilsch.org] Tue Jan 27 19:52:21 EST 2015
[pi.home.bilsch.org] executing command
** [out :: pi.home.bilsch.org] Tue Jan 27 19:52:21 EST 2015
[bilsch.dyndns.org] executing command
** [out :: bilsch.dyndns.org] Tue Jan 27 19:52:22 EST 2015
command finished in 1164ms
bilsch@Euclid:data (master)$ echo $?
0```
## Dump configured tasks
```
bilsch@Euclid:data (master)$ cap -T
cap admin:grafana:start # admin:grafana:start
cap admin:grafana:stop # admin:grafana:stop
cap admin:influxdb:start # admin:influxdb:start
cap admin:influxdb:stop # admin:influxdb:stop
cap basics:date # Runs date on all_hosts
cap basics:httpd_installed # Checks if httpd is installed - only applies to redhat servers
cap deploy:grafana # deploy:grafana
cap deploy:grafana:config # deploy:grafana:config
cap deploy:grafana:install # deploy:grafana:install
cap deploy:influxdb # deploy:influxdb
cap invoke # Invoke a single command on the remote servers.
cap shell # Begin an interactive Capistrano session.
```
## Additional tasks I created
Without going in to a lot of slide crap, lets just dive in to the cap file and run some stuff
Should I use capistrano for [server deployments](http://lee.hambley.name/2013/06/11/using-capistrano-v3-with-chef.html)?
```/me steps back to watch the fight begin!```
Presentation and data files are [available](https://github.com/bilsch/columbus_devops_presentations) at http://bit.ly/1yTQzkA
## Next Meetup
* When: Tuesday, March 10
* Location: TBD
* Tech Talk: Installing and configuring Jenkins with Puppet


Value Pack
- Personal Trainer
- Service Locker Room
- Fitness Assessment
- Morning Slot
- Yoga Classes
- Health Checkup
$25.99 / Month
- Personal Trainer
- Service Locker Room
- Fitness Assessment
- Morning Slot
- Yoga Classes
- Health Checkup
$99.99 / Month
- Personal Trainer
- Service Locker Room
- Fitness Assessment
- Morning Slot
- Yoga Classes
- Health Checkup
$149.99 / Month


Chelsea is amazing and has a pretty vast fan club... the most elite of the club got together and put together a powerpoint presentation to demonstrate their level of 粉絲. Check out our collaboration!
This year, Chelsea's birthday gift has been placed in the hands of... a PSEUDO RANDOM NUMBER GENERATOR!!! Chelsea, spin your wheel and may the pRNG gods be with you.
Sorry we couldn't celebrate in person with you, but we hope you had a wonderful start to your 24th year anyway! Thanks for being a great friend to all of us. It was great coming together online to celebrate you!


A good support request or bug report is clear and concise. For ARQ, reduce the problem to a short dataset (20 triples should be enough; Turtle, N3 or N-triples preferred) and a query that illustrates the problem. State what you expected to happen as well as what did happen.
It also a good idea to check the documentation.
The SPARQL parser outputs a line and column number - it is usually correct in identifying the first point of a syntax error.
If you are reporting a failure that produces a stack trace, please
include the message, exception and the stack trace. Only if it is very
long, should you truncate the trace but please include the whole trace to
the point where it indicates it is entering ARQ (a package name starting
com.hp.hpl.jena.query
) and then one level which is your code.
If you are getting unexpected results, show the results you expect as well as what you actually get.
If you are getting no results, or less than you expected, try cutting parts out of the query until something chnages.
There are various formatters for result sets included in ARQ. Print your results in text form if possible. There is a testing format used by the Data Access Working Group and that is used for the scripted tests in the distribution.
A bug report or support request should be complete and minimal. It helps you to develop a concise description of the problem - often, you will discover the solution yourself.
Complete means that any query included should include prefixes and the whole syntax string, not a fragment. Any program code should be ready to run, not a fragment of a large program.
Minimal means that the data sent should be an abbreviated selection to illustrate the point.
Typically, any program will be less that 20 lines, and any data less than 20 triples.
The report should also include details of the execution environment:
java -cp ... arq.qparse 'your query'
Bug reports should be sent to the jena-dev mailing list (you need to subscribe to send to this list).


core layer slits board covering multilayer sheet layers document-id:: citation: cited [patcit]: acoustic comprises second arranged region embodiment applicant cabin extend continuous figref[FIG. layer, honeycomb intermediate invention according edge insulation direction example, manner classification-national:: comprise lining open examiner example used interior middle result boards exterior improved shown al. planar slits. aircraft claim fashion connected layers. parallel provided shows sides structure CLAIM-TEXT:. claim-ref[claim comprising force slits, action-date: airplane facing generating-office:: i.e., layers, load materials shear sheet, use Classification: cells closed different exemplary form fuselage loads material slit sound thickness CLAIM-TEXT:a case cell firmly insulation, longitudinal order panels reduced results substantially thickness, However, adhesive design lateral layer. other. particular provided. stability transmission CLAIM-TEXT:wherein [addressbook]: adjacent axis described effect extent flexural mechanical panel pointed production provide relative Furthermore, arrangement breaking comprising: cpc-version-indicator:: designed forces interconnected known method offset plurality possible provides regions side, so-called stiffness weight words zones Application Boock EMI-D acoustically adequate aircraft, apart application attenuation board. characteristics compared component compression construction extends formed is, necessary place reduce reduction respective said separated side. skin steps tension thickness. various view wall According International aligned applied approximately area board, can, connection context cover design. embodiments emission hand insulation. invention, ipc-version-indicator:: mentioned other, placed possible, prepreg reference required slits; space, subjected tape time velocity walls walls, wave way zone No. Subsequently, achieved bar certification comparison cores determined devoid effect. ensure entire essential essentially frequency honeycombs improvement layer; lining, loads, present provided, relates simple space spaced suitable supplied surface terms transition variant words,


I created this page because I like streaks. In Singapore, we receive daily WhatsApp messages and it can be hard to tell how many days we've gone without a case, so I created this page so I could have an easy place to see that information. All data is sourced from the Ministry of Health COVID-19 site.
Some endpoints you can access:


E-Cell, IIIT Hyderabad in association with Asian Institute of Family Managed Business organised “Samagam”, an interactive session with Mr. Durgesh Gupta, CEO of Real Shoppee Retail Private Limited who shared his learnings and insights about managing a family business in the modern day and age. Mr. Gupta also highlighted the prominent family businesses running efficiently in the modern world, and a detailed analysis of their structure and functioning followed. He also took questions on the subject and provided his expert opinion.
For the 100th Anniversary of International Women’s Day , E-Cell IIIT-Hyderabad and Lean In IIIT Hyderabad organised a talk on the ‘success of women in technology, entrepreneurship, and leadership’. We extend our gratitude to one and all for attending the event and contributing in building a better world where men and women live harmoniously, with equality, and free of discrimination.
E-Cell, IIIT Hyderabad in association with GyanDhan is organising a session on ‘Financing Higher Education’ and an expert lecture on Entrepreneurship. The session will focus on securing finance - scoring assistantships, getting loans and scholarships, and will also touch the admission process. On the entrepreneurship front, the session will focus on the following points:
The Speaker : Ankit Mehra, CEO, GyanDhan
Time & Date: 5:30 PM, 21st March 2017
Venue : Himalaya 103, IIIT Hyderabad
Founder and former CEO of UTV group (later acquired by Disney) Produced 70+ films like Barfi!, Rang De Basanti, Swadesh, ABCD, Fashion, A Wednesday , Udaan, Chennai Express, etc Time’s 100 most influential people in the world Founded Unilazer Venture (invests in potential startups) and Swadesh Foundation Launched Hungama channel in 2004. Co-Founder and Chairman of UpGrad Board of Adviser AIESEC India and Writer of the book “Dream With Your Eyes Open”.


The slogan
program provide a unified interface for accessing the Slogan interpeter, REPL and compiler.
This program accept many command line options. This chapter document these options in detail.
The slogan
command can be invoked in two ways as shown below:
$ slogan <options>
This will start the interactive REPL where you can interpret programs.
$ slogan <options> script
This will execute or compile a slogan script, depending on the options passed.
Valid options are:
| Option | Description |
|---|---|
-e | Execute a script. |
-c | Compile a script into a dynamically loadable object file. |
-x | Compile a script into an executable binary. |
-i | Install a package. |
-u | Uninstall a package. |
-ld-options | Additional options that will be passed to the system linker. |
-cc-options | Additional options that will be passed to the system C compiler. |
-r | Launch REPL after performing other options. |
-v | Display version information and quit. |
-h | Print this help and quit. |
Some of the options like -i
take additional arguments. They are illustrated below:
# install a package from a local folder or compressed archive (a .zip, .tar.gz or a .tar.bz2 file).
$ slogan -i "package_name,local,/path_to_package_folder_or_archive"
# install a package from a git repository.
$ slogan -i "package_name,git,https://github.com/gitusername/package_name.git"
# install a package hosted on a remote server.
$ slogan -i "package_name,remote,http://slogan-packages.com/package_name.tar.gz"
# uninstall a package.
$ slogan -u "package_name"
You can install and uninstall packages from within a program as well. This is accomplished by calling the
install_package
and uninstall_package
functions.
Slogan programs runs on top of Gambit Scheme. Options meant for the Gambit
virtual machine can also be passed as command line arguments for slogan
. These options must be preceded by -:
and each
option must be separated by comma. The most useful options accepted by the virtual machine is given below:
| Option | Description |
|---|---|
m | The minimum heap size in kilobytes. |
h | The maximum heap size in kilobytes. |
l | The heap live ratio after GC in percent. |
-[OPT...] | Set standard input and output options; see below for OPT. |
OPT should be one of:
A|1|2|4|6|8|U | Character encoding (ASCII|ISO-8859-1|UCS-2/4|UTF-16/8|UTF). |
l|c|cl | End-of-line encoding (LF|CR|CR-LF). |
u|n|f | Buffering (unbuffered|newline buffered|fully buffered). |
r|R | Enable character encoding errors (on|off). |
e|E | Enable line-editing (on|off), for terminals only. |
Here are a few examples of passing command-line options to the VM:
# Evaluate a script after setting minimum heap-size of 500MB and maximum heap-size to 2GB:
$ slogan -:m500000,h2000000 -e script.sn
# Prepare the interpreter to read/write UTF-8 encoded files:
$ slogan -:-8
slogan> load("utf8_encoded_source_code.sn")
A standalone Slogan program can accept all VM options in addition to its own command line arguments.
For a full list of virtual machine command line arguments, run,
$ slogan -h


LOGOUT
HOME
MANAGE YOUR BOOKS
TITLE
AUTHOR
SELECT RATING
1 AND HIGHER
2 AND HIGHER
3 AND HIGHER
4 AND HIGHER
5 AND HIGHER
6 AND HIGHER
7 AND HIGHER
8 AND HIGHER
9 AND HIGHER
10
ISBN NUMBER
YEAR
COUNT
PICTURE URL
Add book
Remove book


Ephesians 5:3
But fornication, and all uncleanness, or covetousness, let it not be once named among you, as becometh saints;


Survey Questions
Answer some questions to meet your perfect match!
Name (Required)
Someting about yourself (Required)
Photo URL (Required)
Question 1
Pick a name for our Cohort
Choose an option
Slack that code
Learning To Perfect Drowning
Coder's Bay
Farley's Disciples
Code Dreamers
Question 2
Coding and beer is a great combination
Choose an option
1 (Strongly Agree)
2
3
4
5 (Strongly Disagree)
Question 3
Slacking your code is a very bad habit
Choose an option
1 (Strongly Agree)
2
3
4
5 (Strongly Disagree)
Question 4
Pick your favorite movie
Choose an option
Inception
Interstellar
Big Fish
Schindler's List
Aladin
Question 5
I'm going to become a great coder
Choose an option
1 (Strongly Agree)
2
3
4
5 (Strongly Disagree)
Submit
×
Your Match!


ACP Agordzo still caged
An attempt by lawyers to secure bail for ACP/Dr. Benjamin Agordzo, who is in police custody for his alleged involvement in a coup plot, has hit the snag as an Accra High Court has dismissed the application.
According to the court, the application is premature because, according to the court, the accused person is a senior police officer and given his influence and experience in the police service, he could interfere with ongoing investigations.
Initial Arrest
ACP Agordzo is alleged to have incited members of a non-governmental organization, Take Action Ghana (TAG), to demonstrate against the New Patriotic Party (NPP) government and subsequently overthrow it as he allegedly said it is within their right to do so.
Apart from his alleged involvement in the planning of the said demonstration, ACP Agordzo is said to have assisted the group with various sums of money to facilitate the organization of the intended demonstration and overthrow of the government.
He is said to have also drafted a speech to be delivered on the day of the demonstration and the subsequent overthrow of the Akufo-Addo government.
Bail Application
Moving the application for bail, Martin Kpebu, counsel for ACP Agordzo, argued that his client had no intention to carry out any coup in the country.
According to him, ACP Agordzo had given lectures on similar issues by submitting that considering high unemployment in Ghana it could lead to an Arab spring and steps needed to be taken to avert it.
Payment To TAG
He admitted that his client only contributed GH¢2,000 to TAG but said it was meant for a philanthropic activity at Agbogbloshie, Accra, which was carried out.
Counsel said “my client is two ranks away from the status of Inspector General of Police” and his comments were harmless and were not intended for any coup.
Mr. Kpebu argued that ACP Agordzo is a senior police officer who is not a flight risk and would appear for the trial when granted bail.
He also told the court that there is a convention within the Ghana Police Service where senior officers who find themselves in this kind of situations are handed over to the IGP who can release them whenever they are needed.
Opposition To Bail
Senior State Attorney Hilda Craig, representing the prosecution, opposed the bail application and insisted that the accused person is a senior police officer who could interfere with investigations when granted bail.
She insisted that ACP Agordzo was actively involved in the alleged coup plot and rebutted the lawyer’s claims that his client was innocent.
She said investigations had revealed that the accused person even when he was outside the country was in constant contact with Dr. Frederick Yao Mac-Palm, Proprietor of the Alajo Citadel Hospital, who is the alleged mastermind of the whole coup plot.
She told the court that the applicant is a senior police officer who is enjoined to uphold the law and prevent the commission of crime in the country but instead he went round whipping up the sentiments of Ghanaians to rise up against the government.
Executive Platform
The court also heard that ACP Agordzo was not only added to the TAG WhatsApp platform, but was also an active member of their ‘Executive Platform’ where ‘sensitive’ matters, as Dr. Mac-Palm describes it, were discussed.
The Chief State Attorney told the court that ACP Agordzo also had several discussions with Dr. Mac-Palm aside from what was discussed on their WhatsApp platforms.
Speech Writing
She added that investigations also revealed that although the applicant was outside the country, he drafted a speech for Dr. Mac-Palm to be read at the planned ‘Arab Spring’ demonstration.
The senior state attorney further told the court that ACP Agordzo wields a lot of power in the police service and it is the same police service that is investigating the matter and, therefore, he is capable of influencing the investigations.
Final Ruling
The court presided over by Justice George Buadi refused the bail application, saying it is premature and the accused person being a senior police officer could interfere with investigations.
He said although some of the comments of ACP Agordzo may pass as freedom of expression, his association with the other alleged coup plotters is unfortunate, as highly placed officers require some ‘aloofness’ regarding politics and pseudo-political activities.