HTML theme development¶
New in version 0.6.
Note
This document provides information about creating your own theme. If you simply wish to use a pre-existing HTML themes, refer to /usage/theming.
Sphinx supports changing the appearance of its HTML output via themes. A theme is a collection of HTML templates, stylesheet(s) and other static files. Additionally, it has a configuration file which specifies from which theme to inherit, which highlighting style to use, and what options exist for customizing the theme’s look and feel.
Themes are meant to be project-unaware, so they can be used for different projects without change.
Note
See Developing extensions for Sphinx for more information that may be helpful in developing themes.
Creating themes¶
Themes take the form of either a directory or a zipfile (whose name is the theme name), containing the following:
A
theme.conf
file.HTML templates, if needed.
A
static/
directory containing any static files that will be copied to the output static directory on build. These can be images, styles, script files.
The theme.conf
file is in INI format 1 (readable by the standard
Python ConfigParser
module) and has the following structure:
[theme]
inherit = base theme
stylesheet = main CSS name
pygments_style = stylename
sidebars = localtoc.html, relations.html, sourcelink.html, searchbox.html
[options]
variable = default value
The inherit setting gives the name of a “base theme”, or
none
. The base theme will be used to locate missing templates (most themes will not have to supply most templates if they usebasic
as the base theme), its options will be inherited, and all of its static files will be used as well. If you want to also inherit the stylesheet, include it via CSS’@import
in your own.The stylesheet setting gives the name of a CSS file which will be referenced in the HTML header. If you need more than one CSS file, either include one from the other via CSS’
@import
, or use a custom HTML template that adds<link rel="stylesheet">
tags as necessary. Setting the :confval:`html_style` config value will override this setting.The pygments_style setting gives the name of a Pygments style to use for highlighting. This can be overridden by the user in the :confval:`pygments_style` config value.
The pygments_dark_style setting gives the name of a Pygments style to use for highlighting when the CSS media query
(prefers-color-scheme: dark)
evaluates to true. It is injected into the page usingadd_css_file()
.The sidebars setting gives the comma separated list of sidebar templates for constructing sidebars. This can be overridden by the user in the :confval:`html_sidebars` config value.
The options section contains pairs of variable names and default values. These options can be overridden by the user in :confval:`html_theme_options` and are accessible from all templates as
theme_<name>
.
New in version 1.7: sidebar settings
Distribute your theme as a Python package¶
As a way to distribute your theme, you can use Python package. Python package brings to users easy setting up ways.
To distribute your theme as a Python package, please define an entry point
called sphinx.html_themes
in your setup.py
file, and write a setup()
function to register your themes using add_html_theme()
API in it:
# 'setup.py'
setup(
...
entry_points = {
'sphinx.html_themes': [
'name_of_theme = your_package',
]
},
...
)
# 'your_package.py'
from os import path
def setup(app):
app.add_html_theme('name_of_theme', path.abspath(path.dirname(__file__)))
If your theme package contains two or more themes, please call
add_html_theme()
twice or more.
New in version 1.2: ‘sphinx_themes’ entry_points feature.
Deprecated since version 1.6: sphinx_themes
entry_points has been deprecated.
New in version 1.6: sphinx.html_themes
entry_points feature.
Templating¶
The guide to templating is helpful if you want to write your own templates. What is important to keep in mind is the order in which Sphinx searches for templates:
First, in the user’s
templates_path
directories.Then, in the selected theme.
Then, in its base theme, its base’s base theme, etc.
When extending a template in the base theme with the same name, use the theme
name as an explicit directory: {% extends "basic/layout.html" %}
. From a
user templates_path
template, you can still use the “exclamation mark”
syntax as described in the templating document.
Static templates¶
Since theme options are meant for the user to configure a theme more easily, without having to write a custom stylesheet, it is necessary to be able to template static files as well as HTML files. Therefore, Sphinx supports so-called “static templates”, like this:
If the name of a file in the static/
directory of a theme (or in the user’s
static path, for that matter) ends with _t
, it will be processed by the
template engine. The _t
will be left from the final file name. For
example, the classic theme has a file static/classic.css_t
which uses
templating to put the color options into the stylesheet. When a documentation
is built with the classic theme, the output directory will contain a
_static/classic.css
file where all template tags have been processed.
Use custom page metadata in HTML templates¶
Any key / value pairs in field lists
that are placed before the page’s title will be available to the Jinja
template when building the page within the meta
attribute. For example,
if a page had the following text before its first title:
:mykey: My value
My first title
--------------
Then it could be accessed within a Jinja template like so:
{%- if meta is mapping %}
{{ meta.get("mykey") }}
{%- endif %}
Note the check that meta
is a dictionary (“mapping” in Jinja
terminology) to ensure that using it in this way is valid.
Defining custom template functions¶
Sometimes it is useful to define your own function in Python that you wish to then use in a template. For example, if you’d like to insert a template value with logic that depends on the user’s configuration in the project, or if you’d like to include non-trivial checks and provide friendly error messages for incorrect configuration in the template.
To define your own template function, you’ll need to define two functions inside your module:
A page context event handler (or registration) function. This is connected to the
Sphinx
application via an event callback.A template function that you will use in your Jinja template.
First, define the registration function, which accepts the arguments for :event:`html-page-context`.
Within the registration function, define the template function that you’d like to use within Jinja. The template function should return a string or Python objects (lists, dictionaries) with strings inside that Jinja uses in the templating process
Note
The template function will have access to all of the variables that are passed to the registration function.
At the end of the registration function, add the template function to the
Sphinx application’s context with context['template_func'] = template_func
.
Finally, in your extension’s setup()
function, add your registration
function as a callback for :event:`html-page-context`.
# The registration function
def setup_my_func(app, pagename, templatename, context, doctree):
# The template function
def my_func(mystring):
return "Your string is %s" % mystring
# Add it to the page's context
context['my_func'] = my_func
# Your extension's setup function
def setup(app):
app.connect("html-page-context", setup_my_func)
Now, you will have access to this function in jinja like so:
<div>
{{ my_func("some string") }}
</div>
Add your own static files to the build assets¶
If you are packaging your own build assets with an extension
(e.g., a CSS or JavaScript file), you need to ensure that they are placed
in the _static/
folder of HTML outputs. To do so, you may copy them directly
into a build’s _static/
folder at build time, generally via an event hook.
Here is some sample code to accomplish this:
def copy_custom_files(app, exc):
if app.builder.format == 'html' and not exc:
staticdir = path.join(app.builder.outdir, '_static')
copy_asset_file('path/to/myextension/_static/myjsfile.js', staticdir)
def setup(app):
app.connect('builder-inited', copy_custom_files)
Inject JavaScript based on user configuration¶
If your extension makes use of JavaScript, it can be useful to allow users to control its behavior using their Sphinx configuration. However, this can be difficult to do if your JavaScript comes in the form of a static library (which will not be built with Jinja).
There are two ways to inject variables into the JavaScript space based on user configuration.
First, you may append _t
to the end of any static files included with your
extension. This will cause Sphinx to process these files with the templating
engine, allowing you to embed variables and control behavior.
For example, the following JavaScript structure:
mymodule/
├── _static
│ └── myjsfile.js_t
└── mymodule.py
Will result in the following static file placed in your HTML’s build output:
_build/
└── html
└── _static
└── myjsfile.js
See Static templates for more information.
Second, you may use the Sphinx.add_js_file()
method without pointing it
to a file. Normally, this method is used to insert a new JavaScript file
into your site. However, if you do not pass a file path, but instead pass
a string to the “body” argument, then this text will be inserted as JavaScript
into your site’s head. This allows you to insert variables into your project’s
JavaScript from Python.
For example, the following code will read in a user-configured value and then insert this value as a JavaScript variable, which your extension’s JavaScript code may use:
# This function reads in a variable and inserts it into JavaScript
def add_js_variable(app):
# This is a configuration that you've specified for users in `conf.py`
js_variable = app.config['my_javascript_variable']
js_text = "var my_variable = '%s';" % js_variable
app.add_js_file(None, body=js_text)
# We connect this function to the step after the builder is initialized
def setup(app):
# Tell Sphinx about this configuration variable
app.add_config_value('my_javascript_variable')
# Run the function after the builder is initialized
app.connect('builder-inited', add_js_variable)
As a result, in your theme you can use code that depends on the presence of
this variable. Users can control the variable’s value by defining it in their
conf.py
file.
- 1
It is not an executable Python file, as opposed to
conf.py
, because that would pose an unnecessary security risk if themes are shared.


Face attributes estimations
Head pose
This estimator is designed to determine camera-space head pose. Since 3D head translation is hard to determine
reliably without camera-specific calibration,only 3D rotation component is estimated.
It estimate Tait–Bryan angles for head. Zero position
corresponds to a face placed orthogonally to camera direction, with the axis of symmetry parallel to the vertical
camera axis.
There are two head pose estimation method available: estimate by 68 face-aligned landmarks and estimate by original
input image in RGB format. Estimation by image is more precise. If you have already extracted 68 landmarks for another
facilities you may save time, and use fast estimator from 68landmarks.
Emotions
This estimator aims to determine whether a face depicted on an image expresses the following emotions:
Anger
Disgust
Fear
Happiness
Surprise
Sadness
Neutrality
You can pass only warped images with detected faces to the estimator interface. Better image quality leads to better
results.
Emotions estimation presents emotions a snormalized float values in the range of [0..1] where 0 is lack of
a specific emotion and 1st is the maximum intensity of an emotion.
Mouth state
This estimator is designed to determine smile/mouth/occlusion probability using warped image. Smile estimation
structure consists of:
Smile score
Mouth score
Occlusion score
Sum of scores always equals 1. Each score means probability of corresponding state. Smile score prevails in cases where
smile was successfully detected. If there is any object on photo that hides mouth occlusion score prevails.
Mouth score prevails in cases where neither a smile nor an occlusion was detected.
Eyes estimation
This estimator aims to determine:
eye state: open, closed, occluded
precise eye iris location as an array of landmarks
recise eyelid location as an array of landmarks
Iris landmarks are presented with a template structure Landmarks that is specialized for 32points. Eyelid landmarks
are presented with a template structure Landmarks that is specialized for 6points.
You can only pass warped image with detected face to the estimator interface. Better image quality leads to better
results.
Note
Orientation terms “left” and “right” refer to the way you see the image as it is show non the screen. It means
that left eye is not necessarily left from the person’s point of view, but is on the left side of the screen.
Consequently, right eye is the one on the right side of the screen. More formally, the label “left” refers to
subject’s left eye (and similarly for the right eye), such that xright<xleft.
Gaze direction estimation
This estimator is designed to determine gaze direction relatively to head pose estimation. Zero position corresponds to
a gaze direction orthogonally to face plane, with the axis of symmetry parallel to the vertical camera axis
Note
Roll angle is not estimated, prediction precision decreases as a rotation angle increases.
Basic attribute estimation
The Attribute estimator determines face basic attributes. Currently, the following attributes are available:
age: determines person’s age
gender: determines person’s gender
ethnicity: determines ethnicity of a person
Before using attribute estimator, user is free to decide whether to estimateor not some specific attributes
listed above through
Output structure, which consists of optional fields describing results of user requested attributes:
age is reported in years (float in range [0, 100])
for gender estimation 1 means male, 0 means female. Estimation precision in cooperative mode is 99.81%
with the threshold 0.5. Estimation precision in non-cooperative mode is 92.5%.
ethnicity estimation returns 4 float normalized values, each value describes probability of person’s ethnicity.
The following ethnicity’s are available:
asian
caucasian
african american
indian
Warp quality
This estimator aims to predict visual quality of an image. It is trained specifically on pre-warped human face images
and will produce lower factor if:
Image is blurred;
Image is under-exposured (i.e., too dark);
Image is over-exposured (i.e., too light);
Image color variation is low (i.e., image is monochrome or close to monochrome).
The quality factor is a value in range [0..1] where 0 corresponds to low quality and 1 to high quality.
Approximate garbage score
This estimator aims to determine the quality of source input image suitable for later descriptor extraction and
matching. AGS is a float in range [0..1] where 0 corresponds to low quality.
Face descriptor
Descriptor itself is a set of object parameters that are specially encoded. Descriptors are typically more or less
invariant to various affine object transformations and slight color variations. This property allows efficient use of
such sets to identify, lookup, and compare real-world objects’ images.
Descriptor extraction. Extraction is performed from object image areas around some previously discovered facial
landmarks, so the quality of the descriptor highly depends on them and the image it was obtained from.
Face descriptor algorithm evolves with time, so newer FaceEngine versions contain improved models of the algorithm.
Currently next versions are available: 46, 51, 52 and 54. Versions 54, 52 and 51 more precise then 46, but works very
fast on GPU. Version 54 is the most precise.
Descriptor object stores a compact set of packed properties as well as some helper parameters that were used to extract
these properties from the source image. Together these parameters determine descriptor compatibility. Not all
descriptors are compatible to each other. It is impossible to batch and match in compatible descriptors, so you
should pay attention what settings do you use when extracting them.
Classes and methods
Module with base classes of estimators and estimations
-
class
lunavl.sdk.estimators.base_estimation.
BaseEstimation
(coreEstimation)[source]
Base class for estimation structures.
-
_coreEstimation
core estimation
-
asDict
()[source]
Convert to a dict.
- Returns
dict from luna api
- Return type
Union
[dict
, list
]
-
coreEstimation
Get core estimation from init
:returns: _coreEstimation
-
class
lunavl.sdk.estimators.base_estimation.
BaseEstimator
(coreEstimator)[source]
Base estimator class. Class is a container for core estimations. Mostly estimate attributes can be get through
a corresponding properties.
-
_coreEstimator
core estimator
-
estimate
(*args, **kwargs)[source]
Estimate attributes on warp.
- Returns
estimated attributes
- Return type
Any
Module contains a head pose estimator.
See head pose.
-
class
lunavl.sdk.estimators.face_estimators.head_pose.
FrontalType
[source]
Enum for frontal types
-
BY_GOST
= 'FrontalFace2'
GOST/ISO angles
-
FRONTAL
= 'FrontalFace1'
Good for recognition; Doesn’t descrease recall and looks fine
-
TURNED
= 'FrontalFace0'
Non-frontal face
-
class
lunavl.sdk.estimators.face_estimators.head_pose.
HeadPose
(coreHeadPose)[source]
Head pose. Estimate Tait–Bryan angles for head (https://en.wikipedia.org/wiki/Euler_angles#Tait–Bryan_angles).
Estimation properties:
-
asDict
()[source]
Convert angles to dict.
- Returns
self.pitch, “roll”: self.roll, “yaw”: self.yaw}
- Return type
{“pitch”
- Return type
Dict
[str
, float
]
-
getFrontalType
()[source]
Get frontal type of head pose estimation.
- Returns
frontal type
- Return type
FrontalType
-
pitch
Get the pitch angle.
- Returns
float in range(0, 1)
- Return type
float
-
roll
Get the pitch angle.
- Returns
float in range(0, 1)
- Return type
float
-
yaw
Get the yaw angle.
- Returns
float in range(0, 1)
- Return type
float
-
class
lunavl.sdk.estimators.face_estimators.head_pose.
HeadPoseEstimator
(coreHeadPoseEstimator)[source]
HeadPoseEstimator.
-
estimate
(landmarks68)[source]
Realize interface of a abstract estimator. Call estimateBy68Landmarks
- Return type
HeadPose
-
estimateBy68Landmarks
(landmarks68)[source]
Estimate head pose by 68 landmarks.
- Parameters
landmarks68 – landmarks68
- Returns
estimate head pose
- Raises
LunaSDKException – if estimation is failed
- Return type
HeadPose
-
estimateByBoundingBox
(detection, imageWithDetection)[source]
Estimate head pose by detection.
- Parameters
-
- Returns
estimate head pose
- Raises
LunaSDKException – if estimation is failed
- Return type
HeadPose
Module contains an emotion estimator
See emotions.
-
class
lunavl.sdk.estimators.face_estimators.emotions.
Emotion
[source]
Emotions enum
-
Anger
= 1
Anger
-
Disgust
= 2
Disgust
-
Fear
= 3
Fear
-
Happiness
= 4
Happiness
-
Neutral
= 5
Neutral
-
Sadness
= 6
Sadness
-
Surprise
= 7
Surprise
-
class
lunavl.sdk.estimators.face_estimators.emotions.
Emotions
(coreEmotions)[source]
Container for storing estimate emotions. List of emotions is represented in enum Emotion. Each emotion
is characterized a score (value in range [0,1]). Sum of all scores is equal to 1. Predominate
emotion is emotion with max value of score.

- Returns
value in range [0, 1]
- Return type
float
-
asDict
()[source]
Convert estimation to dict.
- Returns
dict with keys ‘predominate_emotion’ and ‘estimations’
-
disgust
Get disgust emotion value.
- Returns
value in range [0, 1]
-
fear
Get fear emotion value.
- Returns
value in range [0, 1]
-
happiness
Get happiness emotion value.
- Returns
value in range [0, 1]
-
neutral
Get neutral emotion value.
- Returns
value in range [0, 1]
-
predominateEmotion
Get predominate emotion (emotion with max score value).
- Returns
emotion with max score value
- Return type
Emotion
-
sadness
Get sadness emotion value.
- Returns
value in range [0, 1]
-
surprise
Get surprise emotion value.
- Returns
value in range [0, 1]
-
class
lunavl.sdk.estimators.face_estimators.emotions.
EmotionsEstimator
(coreEstimator)[source]
Emotions estimator.
-
estimate
(warp)[source]
Estimate emotion on warp.
- Parameters
warp – warped image
- Returns
estimated emotions
- Raises
LunaSDKException – if estimation failed
- Return type
Emotions
Module contains a mouth state estimator
see mouth state
-
class
lunavl.sdk.estimators.face_estimators.mouth_state.
MouthStateEstimator
(coreEstimator)[source]
Mouth state estimator.
-
estimate
(warp)[source]
Estimate mouth state on warp.
- Parameters
warp – warped image
- Returns
estimated states
- Raises
LunaSDKException – if estimation failed
- Return type
MouthStates
-
class
lunavl.sdk.estimators.face_estimators.mouth_state.
MouthStates
(coreEstimation)[source]
Mouth states. There are 3 states of mouth: smile, occlusion and neither a smile nor an occlusion was detected.

- Returns
value in range [0, 1]
-
occlusion
Get occlusion score value.
- Returns
value in range [0, 1]
-
smile
Get smile score value.
- Returns
value in range [0, 1]
- Return type
float
Module contains a mouth state estimator
See eyes and gaze direction.
-
class
lunavl.sdk.estimators.face_estimators.eyes.
Eye
(coreEstimation)[source]
Eye structure.
Estimation properties:
-
asDict
()[source]
Convert to dict.
- Returns
- self.irisLandmarks.asDict(), “eyelid_landmarks”: self.eyelidLandMarks.asDict(),
”state”: self.state.name.lower()}
- Return type
{“iris_landmarks”
- Return type
dict
-
eyelid
Get eyelid landmarks.
- Returns
eyelid landmarks
- Return type
EyelidLandmarks
-
iris
Get iris landmarks.
- Returns
iris landmarks
- Return type
IrisLandmarks
-
class
lunavl.sdk.estimators.face_estimators.eyes.
EyeEstimator
(coreEstimator)[source]
Eye estimator.
-
estimate
(transformedLandmarks, warp)[source]
Estimate mouth state on warp.
- Parameters
-
- Returns
estimated states
- Raises
LunaSDKException – if estimation failed
- Return type
EyesEstimation
-
class
lunavl.sdk.estimators.face_estimators.eyes.
EyeState
[source]
Enum for eye states.
-
Closed
= 3
eye is closed
-
Occluded
= 2
eye is occluded
-
Open
= 1
eye is opened
-
class
lunavl.sdk.estimators.face_estimators.eyes.
EyelidLandmarks
(coreEyelidLandmarks)[source]
Eyelid landmarks.
-
class
lunavl.sdk.estimators.face_estimators.eyes.
EyesEstimation
(coreEstimation)[source]
Eyes estimation structure.
-
leftEye
estimation for left eye
- Type
Eye
-
rightEye
estimation for right eye
- Type
Eye
-
asDict
()[source]
Convert to dict.
- Returns
self.leftEye, ‘pitch’: self.rightEye}
- Return type
{‘yaw’
- Return type
dict
-
class
lunavl.sdk.estimators.face_estimators.eyes.
GazeDirection
(coreEstimation)[source]
Gaze direction structure.
Estimation properties:
-
asDict
()[source]
Convert to dict.
- Returns
self.yaw, ‘pitch’: self.pitch}
- Return type
{‘yaw’
- Return type
dict
-
pitch
Get the pitch angle.
- Returns
float in range(0, 1)
- Return type
float
-
yaw
Get the yaw angle.
- Returns
float in range(0, 1)
- Return type
float
-
class
lunavl.sdk.estimators.face_estimators.eyes.
GazeEstimation
(coreEstimation)[source]
Gaze estimation.
-
leftEye
left eye gaze direction
- Type
GazeDirection
-
rightEye
right eye gaze direction
- Type
GazeDirection
-
asDict
()[source]
Convert self to a dict.
- Returns
self.leftEye.asDict(), “right_eye”: self.rightEye.asDict()}
- Return type
{“left_eye”
- Return type
dict
-
class
lunavl.sdk.estimators.face_estimators.eyes.
GazeEstimator
(coreEstimator)[source]
Gaze direction estimator.
-
estimate
(headPose, eyesEstimation)[source]
Estimate a gaze direction
- Parameters
-
- Returns
estimated states
- Raises
LunaSDKException – if estimation failed
- Return type
GazeEstimation
-
class
lunavl.sdk.estimators.face_estimators.eyes.
IrisLandmarks
(coreIrisLandmarks)[source]
Eyelid landmarks.
Module contains a basic attributes estimator.
See basic attributes.
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
BasicAttributes
(coreEstimation)[source]
Class for basic attribute estimation
-
age
age, number in range [0, 100]
- Type
Optional[float]
-
gender
gender, number in range [0, 1]
- Type
Optional[float]
-
ethnicity
ethnicity
- Type
Optional[Ethnicities]
-
asDict
()[source]
Convert to dict.
- Returns
dict with keys “ethnicity”, “gender”, “age”
- Return type
dict
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
BasicAttributesEstimator
(coreEstimator)[source]
Basic attributes estimator.
-
estimate
(warp, estimateAge, estimateGender, estimateEthnicity)[source]
Estimate ethnicity.
- Parameters
warp – warped image
estimateAge – estimate age or not
estimateGender – estimate gender or not
estimateEthnicity – estimate ethnicity or not
- Returns
estimated ethnicity
- Raises
LunaSDKException – if estimation failed
- Return type
BasicAttributes
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
Ethnicities
(coreEstimation)[source]
Class for ethnicities estimation.
Estimation properties:
asian
indian
caucasian
africanAmerican
predominateEmotion
-
africanAmerican
Get african american ethnicity value.
- Returns
value in range [0, 1]
-
asDict
()[source]
Convert to dict.
- Returns
dict in platform format
- Return type
dict
-
asian
Get asian ethnicity value.
- Returns
value in range [0, 1]
- Return type
float
-
caucasian
Get caucasian ethnicity value.
- Returns
value in range [0, 1]
-
indian
Get indian ethnicity value.
- Returns
value in range [0, 1]
-
predominateEmotion
Get predominate ethnicity (ethnicity with max score value).
- Returns
ethnicity with max score value
- Return type
Ethnicity
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
Ethnicity
[source]
Enum for ethnicities.
-
AfricanAmerican
= 1
african american
-
Asian
= 2
asian
-
Caucasian
= 4
caucasian
-
Indian
= 3
indian
Module contains a basic attributes estimator.
See basic attributes.
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
BasicAttributes
(coreEstimation)[source]
Class for basic attribute estimation
-
age
age, number in range [0, 100]
- Type
Optional[float]
-
gender
gender, number in range [0, 1]
- Type
Optional[float]
-
ethnicity
ethnicity
- Type
Optional[Ethnicities]
-
asDict
()[source]
Convert to dict.
- Returns
dict with keys “ethnicity”, “gender”, “age”
- Return type
dict
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
BasicAttributesEstimator
(coreEstimator)[source]
Basic attributes estimator.
-
estimate
(warp, estimateAge, estimateGender, estimateEthnicity)[source]
Estimate ethnicity.
- Parameters
warp – warped image
estimateAge – estimate age or not
estimateGender – estimate gender or not
estimateEthnicity – estimate ethnicity or not
- Returns
estimated ethnicity
- Raises
LunaSDKException – if estimation failed
- Return type
BasicAttributes
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
Ethnicities
(coreEstimation)[source]
Class for ethnicities estimation.
Estimation properties:
asian
indian
caucasian
africanAmerican
predominateEmotion
-
africanAmerican
Get african american ethnicity value.
- Returns
value in range [0, 1]
-
asDict
()[source]
Convert to dict.
- Returns
dict in platform format
- Return type
dict
-
asian
Get asian ethnicity value.
- Returns
value in range [0, 1]
- Return type
float
-
caucasian
Get caucasian ethnicity value.
- Returns
value in range [0, 1]
-
indian
Get indian ethnicity value.
- Returns
value in range [0, 1]
-
predominateEmotion
Get predominate ethnicity (ethnicity with max score value).
- Returns
ethnicity with max score value
- Return type
Ethnicity
-
class
lunavl.sdk.estimators.face_estimators.basic_attributes.
Ethnicity
[source]
Enum for ethnicities.
-
AfricanAmerican
= 1
african american
-
Asian
= 2
asian
-
Caucasian
= 4
caucasian
-
Indian
= 3
indian
Module for estimate a warped image quality.
See warp quality.
-
class
lunavl.sdk.estimators.face_estimators.warp_quality.
Quality
(coreQuality)[source]
Structure quality
Estimation properties:
-
asDict
()[source]
Convert to dict.
- Returns
self.dark, “lightning”: self.light, “saturation”: self.gray, “blurness”: self.blur}
- Return type
{“darkness”
- Return type
Dict
[str
, float
]
-
blur
Get blur.
- Returns
float in range(0, 1)
- Return type
float
-
dark
Get dark.
- Returns
float in range(0, 1)
- Return type
float
-
gray
Get gray.
- Returns
float in range(0, 1)
- Return type
float
-
light
Get light.
- Returns
float in range(0, 1)
- Return type
float
-
class
lunavl.sdk.estimators.face_estimators.warp_quality.
WarpQualityEstimator
(coreEstimator)[source]
Warp quality estimator.
-
estimate
(warp)[source]
Estimate quality from a warp.
- Parameters
warp – raw warped image or warp
- Returns
estimated quality
- Raises
LunaSDKException – if estimation failed
- Return type
Quality
Module contains an approximate garbage score estimator
See ags.
-
class
lunavl.sdk.estimators.face_estimators.ags.
AGSEstimator
(coreEstimator)[source]
Approximate garbage score estimator.
-
estimate
(detection=None, image=None, boundingBox=None)[source]
Estimate emotion on warp.
- Parameters
image – image in R8G8B8 format
boundingBox – face bounding box of corresponding the image
detection – face detection
- Returns
estimated ags, float in range[0,1]
- Raises
LunaSDKException – if estimation failed
- Return type
float
Module contains a face descriptor estimator
See face descriptor.
-
class
lunavl.sdk.faceengine.descriptors.
FaceDescriptor
(coreEstimation, garbageScore=0.0)[source]
Descriptor
-
garbageScore
garbage score
- Type
float
-
asBytes
Get descriptor as bytes.
Returns:
- Return type
bytes
-
asDict
()[source]
Convert to dict
- Returns
Dict with keys “descriptor” and “score”
- Return type
Dict
[str
, Union
[float
, bytes
]]
-
asVector
Convert descriptor to list of ints
:returns: list of ints.
- Return type
List
[int
]
-
model
Get model of descriptor
:returns: model version
- Return type
int
-
rawDescriptor
Get raw descriptors
:returns: bytes with metadata
- Return type
bytes
-
class
lunavl.sdk.faceengine.descriptors.
FaceDescriptorBatch
(coreEstimation, scores=None)[source]
Face descriptor batch.
-
scores
list of garbage scores
- Type
List[float]
-
append
(descriptor)[source]
Add descriptor to end of batch.
- Parameters
descriptor – descriptor
- Return type
None
-
asDict
()[source]
Get batch in json like object.
- Returns
list of descriptors dict
- Return type
List
[Dict
[~KT, ~VT]]
-
class
lunavl.sdk.faceengine.descriptors.
FaceDescriptorFactory
(faceEngine)[source]
Face Descriptor factory.
-
_faceEngine
faceEngine
- Type
VLFaceEngine
-
generateDescriptor
()[source]
Generate core descriptor
- Returns
core descriptor
- Return type
IDescriptorPtr
-
generateDescriptorsBatch
(size)[source]
Generate core descriptors batch.
- Parameters
size – batch size
- Returns
batch
- Return type
IDescriptorBatchPtr
Module contains a face descriptor estimator
See face descriptor.
-
class
lunavl.sdk.estimators.face_estimators.face_descriptor.
FaceDescriptorEstimator
(coreExtractor, faceDescriptorFactory)[source]
Face descriptor estimator.
-
estimate
(warp, descriptor=None)[source]
Estimate face descriptor from a warp image.
- Parameters
-
- Returns
estimated descriptor
- Raises
LunaSDKException – if estimation failed
- Return type
FaceDescriptor
-
estimateDescriptorsBatch
(warps, aggregate=False, descriptorBatch=None)[source]
Estimate a batch of descriptors from warped images.
- Parameters
-
- Returns
tuple of batch and the aggregate descriptors (or None)
- Raises
LunaSDKException – if estimation failed
- Return type
Tuple
[FaceDescriptorBatch
, Optional
[FaceDescriptor
]]


screenshot201911-7952f318cadfaecd9844a0140ec3f6a6-1200x600.jpg 16 Nov 2019, 23:10 Vera Cristina Zabala de Clemente As featured on


Relevant Implications
◀ Prev
Next ▶
Cultural
Is it culuturally appropriate?
Appropriate use of Te Reo Māori with correct spelling / punctuation / macrons.
All cultures treated fairly.


Leonardo Da Vinci was an Italian polymath of the High Renaissance who is widely considered one of the most diversely talented individuals ever to have lived. While his fame initially rested on his achievements as a painter, he also became known for his notebooks, in which he made drawings and notes on science and invention; these involve a variety of subjects including anatomy, astronomy, botany, cartography, painting, and palaeontology. Leonardo's genius epitomized the Renaissance humanist idea, and his collective works compose a contribution to later generations of artists rivalled only by that of his contemporary Michelangelo.
Leonardo Da Vinci
(14/4/1452 – 2/5/1519)
Anatomy
Leonardo is considered to be the very first in history to correctly depict the human fetus in its proper position within the womb. He was also the first to expertly draw the uterine artery and the vascular system of the cervix and vagina. Leonardo is credited with drawing the uterus with only one chamber, contradicting theories that the uterus was comprised of multiple chambers which many believed divided fetuses into separate compartments in the case of twins.
Leonardo’s anatomical drawings were made from corpses he dissected himself (in one case he dissected the body of an elderly man whose peaceful death he had observed, and his drawings document atherosclerosis and cirrhosis of the liver).
Leonardo’s anatomical drawings were made from corpses he dissected himself (in one case he dissected the body of an elderly man whose peaceful death he had observed, and his drawings document atherosclerosis and cirrhosis of the liver).
Leonardo is considered to be the very first in history to correctly depict the human fetus in its proper position within the womb. He was also the first to expertly draw the uterine artery and the vascular system of the cervix and vagina. Leonardo is credited with drawing the uterus with only one chamber, contradicting theories that the uterus was comprised of multiple chambers which many believed divided fetuses into separate compartments in the case of twins.
Mona Lisa
The Mona Lisa is a half-length portrait painting by Italian artist Leonardo da Vinci. Considered an archetypal masterpiece of the Italian Renaissance, it has been described as "the best known, the most visited, the most written about, the most sung about, the most parodied work of art in the world".
The Last Supper
The Last Supper is a late 15th-century mural painting by Italian artist Leonardo da Vinci housed by the refectory of the Convent of Santa Maria delle Grazie in Milan, Italy. Leonardo has depicted the consternation that occurred among the Twelve Apostles when Jesus announced that one of them would betray him.
Salvator Mundi
The painting depicts Jesus in Renaissance dress, making the sign of the cross with his right hand, while holding a transparent, non-refracting crystal orb in his left, signaling his role as Salvator Mundi (Latin for 'Savior of the World') and representing the 'celestial sphere' of the heavens.
Saint John the Baptist
The work depicts John the Baptist in isolation. Through the use of chiaroscuro, the figure appears to emerge from the shadowy background. The saint is dressed in pelts, has long curly hair and is smiling in an enigmatic manner reminiscent of Leonardo's famous Mona Lisa. He holds a reed cross in his left hand while his right hand points up toward heaven like that of Saint Anne in Leonardo's Burlington House Cartoon.
Madonna Litta
The Madonna Litta is a late 15th-century painting. It depicts the Virgin Mary breastfeeding the Christ child, a devotional subject known as the Madonna lactans. The figures are set in a dark interior with two arched openings, as in Leonardo's earlier Madonna of the Carnation, and a mountainous landscape in aerial perspective can be seen beyond. In his left hand Christ holds a goldfinch, which is symbolic of his future Passion.
Lady with an Ermine
Lady with an Ermine is a portrait painting dating to c. 1489–1491. Painted in oils on walnut panel, it is housed at the Czartoryski Museum in Kraków, and is one of Poland's national treasures. The portrait's subject is Cecilia Gallerani, painted at a time when she was the mistress of Ludovico Sforza, Duke of Milan, and Leonardo was in the Duke's service. It is one of only four portraits of women painted by Leonardo
Ginevra de' Benci
Ginevra de' Benci is a portrait painting of the 15th-century Florentine aristocrat Ginevra de' Benci. The oil-on-wood portrait was acquired by the National Gallery of Art in Washington, D.C. in 1967. It is the only painting by Leonardo on public view in the Americas.
The Portrait of a Musician
The Portrait of a Musician is an unfinished painting widely attributed to the Italian Renaissance artist Leonardo da Vinci, dated to c. 1483–1487. Produced while Leonardo was in Milan, the work is painted in oils, and perhaps tempera, on a small panel of walnut wood. It is his only known male portrait painting, and the identity of its sitter has been closely debated among scholars.
Virgin of the Rocks
The painting show the Mary and child Jesus with the infant John the Baptist and an angel Uriel, in a rocky setting which gives the paintings their usual name. The significant compositional differences are in the gaze and right hand of the angel. There are many minor ways in which the works differ, including the colours, the lighting, the flora, and the way in which sfumato has been used.
The Virgin and Child with Saint Anne
The Virgin and Child with Saint Anne is an unfinished oil painting of c. 1503 depicting Saint Anne, her daughter the Virgin Mary and the infant Jesus. Christ is shown grappling with a sacrificial lamb symbolizing his Passion as the Virgin tries to restrain him. The painting was commissioned as the high altarpiece for the Church of Santissima Annunziata in Florence and its theme had long preoccupied Leonardo


Contact Us
Super Rentals Representatives would love to help you
choose a destination or answer any questions you may have.
1212 Quicklisp Avenue
Roswell, NM 88201
<EMAIL_ADDRESS>{% extends "layouts/default.html" %} {% block title %}Contact - Super Rentals{% endblock %} {% block content %}
Super Rentals Representatives would love to help you
choose a destination or answer any questions you may have.
1212 Quicklisp Avenue
Roswell, NM 88201


" Europa Puppy is a 100% natural and grain-free food specially balanced, like no other food on the market, by 60% meat/fish and 40% vegetables, fruits and herbs. Freshly prepared chicken is the main ingredient in this recipe, with other lovely ingredients like turkey, salmon, peas, carrot and sweet potato, altogether making a delicious dinner for man's best friend. "
138 results pet products.
" A natural complete food for adult dogs made from easily digestible protein, vegetables, beneficial herbs and slow release energy from brown rice. This delicious meaty food is suitable for all dogs, including those with sensitive stomachs and wheat gluten allergies and provides all the daily nutrition your pet needs. "
An absolute essential of any rider, this wallet hook string is a must have to ensure that you never worry about your wallet. Made of zync alloy and leather, keeps you looking stylish while securing your wallet.
Why should humans have all the fun this Christmas? Introducing Tipsy Elves' Ugly Christmas Sweaters for Dogs! Choose from 5 unique styles this holiday season and be sure to check out Amazon for the matching Human sweaters to complete the look for you and your pup!


---
title: Program Analysis for System Security and Reliability
ref: pass2019
description: Graduate course illustrating how to apply analysis and synthesis techniques in the domains of blockchain, computer networks and deep learning.
semester: Spring 2019
number: 263-2925-00L
lecturer: Prof. Dr. Martin Vechev
ta: Dr. Petar Tsankov, Matthew Mirman, Maximilian Baader, Dimitar Dimitrov
assistants:
edoz: http://www.vvz.ethz.ch/Vorlesungsverzeichnis/lerneinheit.view?lerneinheitId=129091&semkez=2019S&ansicht=KATALOGDATEN&lang=en
session-time-place:
lecture-time-place: Mon 13-15, CAB G61
exercise-time-place: Mon 15-16, CAB G61
credits: 5
image: assets/images/pass.png
---
Overview
Security issues and privacy breaches in modern systems (blockchains, datacenters, AI, etc.) result in billions of losses due to hacks and system downtime. This course introduces the security issues in such modern systems and covers state-of-the-art automated techniques (developed in the past few years) that can are applied to build more secure and reliable systems. The course has a practical focus and covers systems build by successful ETH spin-offs (ChainSecurity and DeepCode).
Objectives
- Learn about security issues in modern systems -- blockchains, smart contracts, AI-based systems (e.g., autonomous cars), data centers -- and why they are challenging to address.
- Understand how the latest automated analysis techniques work, both discrete and probabilistic.
- Understand how these techniques combine with machine-learning methods, both supervised and unsupervised.
- Understand how to use these methods to build reliable and secure modern systems.
- Learn about new open problems that if solved can lead to research and commercial impact.
Part I: Security of Blockchains
- We will cover existing blockchains (e.g., Ethereum, Bitcoin), how they work, what the core security issues are, and how these have led to massive financial losses.
- We will show how to extract useful information about smart contracts and transactions using interactive analysis frameworks for querying blockchains (e.g. Google's Ethereum BigQuery).
- We will discuss the state-of-the-art security tools (e.g., Securify) for ensuring that smart contracts are free of security vulnerabilities.
- We will study the latest automated reasoning systems (e.g., Dagger) for checking custom (temporal) properties of smart contracts and illustrate their operation on real-world use cases.
Part II: Machine Learning for Security
- We will discuss how machine learning models for structured prediction are used to address security tasks, including de-obfuscation of binaries (DeBIN), Android APKs (DeGuard) and JavaScript (JSNice).
- We will study to leverage program abstractions in combination with clustering techniques to learn security rules for cryptography APIs from large codebases.
- We will study how to automatically learn to identify security vulnerabilities related to the handling of untrusted inputs (cross-Site scripting, SQL injection, path traversal, remote code execution) from large codebases.
Part III: Security of Datacenters and Networks
- We will show how to ensure that datacenters and ISPs are secured using declarative reasoning methods (e.g., Datalog). We will also see how to automatically synthesize secure configurations (e.g. using SyNET and NetComplete) which lead to desirable behaviors, thus automating the job of the network operator and avoiding critical errors.
- We will discuss how to apply modern discrete probabilistic inference (e.g., PSI and Bayonet) so to reason about probabilistic network properties (e.g., the probability of a packet reaching a destination if links fail).
Part IV: Security of AI-based Systems
- We will look into the security issues related to modern systems that combine machine learning models (e.g., neural networks) within traditional systems such as cars, airplanes, and medical systems.
- We will learn state-of-the-art techniques for security testing and certifying modern AI-based systems.
Course Project
The course involve a hands-on programming project where the methods studied in the class will be applied:
- Project description:
- Code template: Gitlab repository
Use the latest commit on branch master for the latest version of the template. Send us an email if you do not have access to the repository.
- Answers to common student questions can be found here
Deadlines:
| Group registration | April 10, 2019 |
| Project announcement | 11:59PM CEST, April 15, 2019 |
| Preliminary deadline (optional) | 11:59PM CEST, May 22, 2019 |
| Final deadline | 11:59PM CEST, May 29, 2019 |
You can work on the project in a group consisting of at most 2 students. You must register for the project using this Google form.
Lectures
| No. | Date | Content | Slides | Exercises | Solutions |
| 1 |
Feb 18 |
Introduction |
|
|
|
| 2 |
Feb 25 |
Intro to blockchains |
|
|
|
| 3 |
Mar 4 / Mar 11 |
Security analysis of smart contracts |
|
|
|
| 4 |
Mar 11 / Mar 18 |
Smart contract behaviors and LTL specifications |
|
|
|
| 5 |
Mar 25 |
Safety verification of smart contracts |
|
|
|
| 6 |
Mar 25 |
Guest lecture by ChainSecurity |
|
|
|
| 7 |
Apr 1 |
Verifying network configurations |
|
|
|
| 8 |
Apr 14 |
Network-wide configurations / Input synthesis for Datalog |
|
|
|
| 9 |
Apr 29 |
Sketch / CEGIS / Efficient synthesis for OSPF |
|
|
|
| 10 |
May 6 |
Probabilistic Programming and Applications |
|
|
|
| 11 |
May 13 |
Statistical Deobfuscation of Code |
|
|
|


Where Benedikt is anticipating a new computer, and Bas is anticipating remote conferences. And Star Wars is anticipating Bas... and chocolate chip babka!
Please let us know your take-away of this episode by sharing it with us @_contravariance.
An iTunes review is also greatly appreciated!


---
layout: post
section-type: post
title: What have I been doing?
date: '2006-01-28T20:37:00.000+01:00'
author: Jørn Ølmheim
category: tech
tags: [ 'agile', 'ddd', 'jaoo' ]
modified_time: '2006-01-28T20:58:57.986+01:00'
blogger_id: tag:blogger.com,1999:blog-16320608.post-113847833785375056
blogger_orig_url: http://joelmheim.blogspot.com/2006/01/what-have-i-been-doing.html
---
As can be seen from the blog it has been quite a while since my last post. I could always say that I've been busy
(which is true), or that I haven't had that much to say, but that would just be excuses.
In these past months I've been busy working on getting more agile practices accepted at work. Ever since our sessions
with Eric Evens and his guys, I've been convinced that we must change the way we develop software. The full implications
of this did not register until I experienced the talk
by Robert C. Martin at JAOO last autumn.
Since then I've been devouring everything I could find on agile development, and it has been my main focus. I've also
tried to speed up the process of change in my company, but as all big corporations it is slow.
I have, however, also found the time for some coding. God forbid I should forget how to do that. At work I've been busy
doing some integration work, so it has been a lot of Java and XML. At home I've found just a little time to play a
little bit with Ruby and Java 5 (more on that later).
Well, lets hope the next post doesn't delay as long as this one. See you.


Capturing and bubbling allow us to implement one of most powerful event handling patterns called event delegation.
The idea is that if we have a lot of elements handled in a similar way, then instead of assigning a handler to each of them – we put a single handler on their common ancestor.
In the handler we get event.target
to see where the event actually happened and handle it.
Let’s see an example – the Ba-Gua diagram reflecting the ancient Chinese philosophy.
Here it is:
[iframe height=350 src=“bagua” edit link]
The HTML is like this:

Bagua Chart: Direction, Element, Color, Meaning

Northwest
Metal
Silver
Elders
...
...

...2 more lines of this kind...

...2 more lines of this kind...

The table has 9 cells, but there could be 99 or 9999, doesn’t matter.
Our task is to highlight a cell
on click.
Instead of assign an onclick
handler to each
(can be many) – we’ll setup the “catch-all” handler on

element.
It will use event.target
to get the clicked element and highlight it.
The code:
let selectedTd;
*!*
table.onclick = function(event) {
let target = event.target; // where was the click?
if (target.tagName != 'TD') return; // not on TD? Then we're not interested
highlight(target); // highlight it
};
*/!*
function highlight(td) {
if (selectedTd) { // remove the existing highlight if any
selectedTd.classList.remove('highlight');
}
selectedTd = td;
selectedTd.classList.add('highlight'); // highlight the new td
}
Such a code doesn’t care how many cells there are in the table. We can add/remove
dynamically at any time and the highlighting will still work.
Still, there’s a drawback.
The click may occur not on the
, but inside it.
In our case if we take a look inside the HTML, we can see nested tags inside
, like
:
Naturally, if a click happens on that
then it becomes the value of event.target
.
In the handler table.onclick
we should take such event.target
and find out whether the click was inside
or not.
Here’s the improved code:
table.onclick = function(event) {
let td = event.target.closest('td'); // (1)
if (!td) return; // (2)
if (!table.contains(td)) return; // (3)
highlight(td); // (4)
};
Explanations: 1. The method elem.closest(selector)
returns the nearest ancestor that matches the selector. In our case we look for
on the way up from the source element. 2. If event.target
is not inside any
, then the call returns immediately, as there’s nothing to do. 3. In case of nested tables, event.target
may be a
, but lying outside of the current table. So we check if that’s actually our table’s
. 4. And, if it’s so, then highlight it.
As the result, we have a fast, efficient highlighting code, that doesn’t care about the total number of
in the table.
There are other uses for event delegation.
Let’s say, we want to make a menu with buttons “Save”, “Load”, “Search” and so on. And there’s an object with methods save
, load
, search
… How to match them?
The first idea may be to assign a separate handler to each button. But there’s a more elegant solution. We can add a handler for the whole menu and data-action
attributes for buttons that has the method to call:
The handler reads the attribute and executes the method. Take a look at the working example:
```html autorun height=60 run untrusted```
Please note that this.onClick
is bound to this
in (*)
. That’s important, because otherwise this
inside it would reference the DOM element (elem
), not the Menu
object, and this[action]
would not be what we need.
So, what advantages does delegation give us here?
+ We don't need to write the code to assign a handler to each button. Just make a method and put it in the markup.
+ The HTML structure is flexible, we can add/remove buttons at any time.
We could also use classes .action-save
, .action-load
, but an attribute data-action
is better semantically. And we can use it in CSS rules too.
We can also use event delegation to add “behaviors” to elements declaratively, with special attributes and classes.
The pattern has two parts: 1. We add a custom attribute to an element that describes its behavior. 2. A document-wide handler tracks events, and if an event happens on an attributed element – performs the action.
For instance, here the attribute data-counter
adds a behavior: “increase value on click” to buttons:
```html run autorun height=60 Counter: One more counter:
```
If we click a button – its value is increased. Not buttons, but the general approach is important here.
There can be as many attributes with data-counter
as we want. We can add new ones to HTML at any moment. Using the event delegation we “extended” HTML, added an attribute that describes a new behavior.
``warn header="For document-level handlers -- always
addEventListener" When we assign an event handler to the
documentobject, we should always use
addEventListener, not
document.on
For real projects it’s normal that there are many handlers on document
set by different parts of the code. ```
One more example of behavior. A click on an element with the attribute data-toggle-id
will show/hide the element with the given id
:
```html autorun run height=60 <button !data-toggle-id=“subscribe-mail”/!> Show the subscription form
```
Let’s note once again what we did. Now, to add toggling functionality to an element – there’s no need to know JavaScript, just use the attribute data-toggle-id
.
That may become really convenient – no need to write JavaScript for every such element. Just use the behavior. The document-level handler makes it work for any element of the page.
We can combine multiple behaviors on a single element as well.
The “behavior” pattern can be an alternative to mini-fragments of JavaScript.
Event delegation is really cool! It’s one of the most helpful patterns for DOM events.
It’s often used to add the same handling for many similar elements, but not only for that.
The algorithm:
event.target
.Benefits:
+ Simplifies initialization and saves memory: no need to add many handlers.
+ Less code: when adding or removing elements, no need to add/remove handlers.
+ DOM modifications: we can mass add/remove elements with `innerHTML` and the like.
The delegation has its limitations of course:
- First, the event must be bubbling. Some events do not bubble. Also, low-level handlers should not use `event.stopPropagation()`.
- Second, the delegation may add CPU load, because the container-level handler reacts on events in any place of the container, no matter whether they interest us or not. But usually the load is negligible, so we don't take it into account.


My Spring MVC JWT App
Logout
My Super App
Hello [[${#httpServletRequest.remoteUser}]]
You are awesome!


|
Class Summary |
| AbstractSequence |
|
| AnnotatedFeature |
One thought Im having is that annotation stuff would be a HASA instead
of a ISA for SeqFeatureI. |
| AssemblyFeature |
A class to represent SeqFeatures which have been mapped to a static golden path-
the usual start/end is assumed to be in chromosome coords, but the assembly
start/end specific to this subclass are in coords relative to the feature. |
| Chromosome |
|
| ChromosomeBand |
|
| Comment |
|
| CompositeDataHolder |
Holds multiple curation sets for synteny. |
| CurationSet |
I am the central holder of renderable data - results, annotations etc. |
| DbXref |
|
| Evidence |
|
| EvidenceFinder |
|
| EvidenceSet |
|
| Exon |
|
| FeaturePair |
|
| FeatureSet |
I think SeqFeature should implement all the functions of FeatureSet, so its
polymorphic, so when you have a SeqFeatureI you dont have to care whether its
a SeqFeature or a FeatureSet, so you dont have to keep downcasting to descend
the datamodel (or do any other feature set functionality)
As now you go through the Vector of SeqFeatures, cast to SeqFeature,
then ask instanceof FeatureSetI and cast to FeatureSetI, which
is potentially confusing. |
| GenomicRange |
|
| Identifier |
|
| Karyotype |
|
| Link |
|
| LinkSet |
Set of links for synteny view |
| Protein |
|
| Range |
|
| Score |
|
| SeqFeature |
A class to represent a basic sequence feature, such as a result span. |
| Sequence |
Update this to take to use Range - used to ignore Range and use residueOffset,
which was redundat with using Range. |
| SequenceEdit |
seq edits are really seq features (very tiny ones) arent they
so subclass seq feature? do we still need seq edit? or seq edit has
a seq feature? chado models indels as features which makes
sense so why not apollo? needs to be annotated feat for chado
transaction transformer sake - to be consistent with other annots |
| SpeciesComparison |
|
| StrandedFeatureSet |
It may well be that any FeatureSet for which the
strand is not explicitly set to either 1 or -1
(in other words the strand is 0) should be treated
as a mixed set of features that may be on either
strand |
| Synonym |
In Apollo, synonyms used to be strings, but in the ChadoXML data, synonyms
have other fields (pub_id, is_current), so this new datamodel allows us to
capture those fields (and any others that may come up) as properties. |
| SyntenyRegion |
|
| Transcript |
|


This site is intended to host the Mustang index JSON file
[link]
Jordan Smith
[link]
Finn Mertens
[link]


Monday August 24 2015
During the 1950's and 60;s the small western austrailin town of Wittenoom and its nearby mine was the primary producer of blue Asbestos (Crocidolite).
The town has a tragic past due to the effects of asbestos exposure to the majority of its inhabitants. Hunderds of former residents have died from asbestos related illnesses and is now home to just three people.
September 06 2018
Are you Compliant with the new Asbestos Regulations!
August 24 2015
August 24 2015


May 19th, 2016
This page describes in slightly more detail the datasets for the machine learning programming part of the ultimate CS109 assignment. Each dataset is formatted in exactly the same way. See the problem set handout for more details on formatting. You don't need to know the details of the features or the prediction task to complete pset6. This information is provided simply to give you a deeper understanding of the tasks you are working on.
This dataset was collected by Kurgan et al and is hosted by the UCI Machine Learning Repository:
http://archive.ics.uci.edu/ml/datasets/SPECT+Heart
Thanks to Jim Notwell and Gill Bejerano from the Stanford Computer Science and Genetics departments for this dataset.
Credit: This dataset was curated by Chris Piech, but it is based on data originally made for the "Netflix Prize". The Netflix Prize data was initially retracted because of concerns over user privacy. Reed Hastings, the CEO of Netflix, gave the official thumbs up for CS109 to release this anonymized subset of data. Thanks to Matt Chen for his help in getting the Netflix Prize data.


This web application shows a WebRtcEndpoint connected to itself (loopback).
To run this demo follow these steps:


Did Cristiano get his 99th goal?
by BeSoccerPortugal beat Luxembourg 0-2 to book their place at Euro 2020, but we do not know who scored the second goal. Was it Cristiano Ronaldo's or Diogo Jota's?
In the 86th minute, Portugal sealed their victory over Luxembourg and at the same time, their place at Euro 2020. The question is did Cristiano Ronaldo or Diogo Jota score it?
The Wolverhampton man beat Moris with a shot which the goalkeeper got a hand to. The ball trickled towards the goal and then Ronaldo appeared to make sure no Luxembourg player could clear it at the last minute.
The doubt is over whether the Juventus player touched the ball once it was fully over the line or not. The ex-Real Madrid player celebrated the goal as if it were his.
Featured links
- Ballon d'Or winner already been decided
- The latest football transfers news and rumours
- Possible 'Clasico' in the Spanish Supercup final
- Who has the most free-kicks goals: Messi or Cristiano?
The UEFA graphics credited Cristiano with the goal although Spanish referee Gil Manzano will have the final say in his match report.
If it goes down as a CR7 goal, it will be his 99th for his country in 153 appearances.


---
layout: site
title: Product Engineering
---
{% include carousals/pe/carousal.html%}
DevOps as a Service
Faster time to market, the best customer experience and faster evolution amid
uncertainties are the top challenges of disruptive product companies, start-ups and internet
businesses. Our software product engineering services are designed to leverage product development and
bring business agility.
Our Offerings
Complete product solution under one roof
{% for service in site.data.site.product-engineering.pe-items %}
{% for item in service.row %}
{{item.title}}
{{item.description}}
{% endfor %}
{% endfor %}
We Follow Agile
User Experience is Critical
User experience is very critical for any product development. We bind UX with your product roadmap and
make it visible from day one.
Scaled Scrum-team for your product need
A well organized and well sized scrum team size is very important. If team is small development would be
slower. If team is large it would be hard to manage again slower. A scaled scrum team would be faster,
well organized and suiting your needs.


A summary item for a blog post... Read more>>
Recent news from around the web about news innovation:
- A news item that's really interesting, including a link to the story.
- A news item that's really interesting, including a link to the story.
- A news item that's really interesting, including a link to the story.
- A news item that's really interesting, including a link to the story.
That's it for now. Thanks for spending some time with Indizr today, and for your interest in Web 3.0!
— Peter A. McKay


Comments
-
Greg Hurrell
Thanks for the report, Steve. I think you're correct in concluding that your track change experiments have nothing to do with the crashes.
I've seen these crashes myself and they're the one remaining known stability issue. Basically, it seems that NSAppleScript has some serious issues under Garbage Collection. I've analysed the calling code and there doesn't seem to be anything obvious that can be done about it. The calling code is basically just things like:
static NSString *source =
@"tell application \"iTunes\"\n" @" try\n" @" return the name of every playlist\n" @" on error\n" @" return \"ERROR\"\n" @" end try\n" @"end tell";
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:source]; NSAppleEventDescriptor *result = [script executeAndReturnError:NULL];
As you can see, nothing much there that could explain the crashes... Incidentally, the NULL there is just an alternative to see if it made any difference; prior to that I was passing a parameter in there.
In the worst case scenario I'll have to throw out all use of NSAppleScript if a workaround can't be found... which would be quite painful as it is used in dozens of places all around the code base and will be quite hard to replace.
In my own experience I sometimes have to try launching various times, and every time is crashes in NSAppleScript. But once it's up it generally stays up indefinitely. If the stability starts to wear on you, remember that you can still go back to 3.2, as that works fine on Leopard:
https://wincent.com/a/products/synergy-classic/download/tiger/
-
Brad
I'm experiencing constant crashes as well with Synergy 3.5a6. Here's an example crash log:
Process: Synergy [6645] Path: /Applications/Synergy Preferences.app/Contents/Resources/Synergy.prefPane/Contents/Resources/Synergy.app/Contents/MacOS/Synergy Identifier: org.wincent.Synergy Version: version 3.5a6 (69d0d56) Code Type: X86 (Native) Parent Process: launchd [81] Date/Time: 2008-04-21 14:32:07.713 -0700 OS Version: Mac OS X 10.5.2 (9C7010) Report Version: 6 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000 Crashed Thread: 0 Application Specific Information: objc[6645]: garbage collection is ON Thread 0 Crashed: 0 com.apple.applescript 0x0056dd85 TUASFrame::UnlinkTo(TUASFrameType, TUASUnlinkExtent) + 53 1 com.apple.applescript 0x005565dc UASExecute1() + 3108 2 com.apple.applescript 0x00556884 UASExecute(unsigned char) + 178 3 com.apple.applescript 0x005280e4 ASExecute(unsigned long, unsigned long, long, unsigned long*) + 302 4 ...ple.CoreServices.CarbonCore 0x96862905 CallComponentFunctionCommon + 537 5 ...ple.CoreServices.CarbonCore 0x968a7cb8 CallComponentFunction + 122 6 com.apple.applescript 0x00523ae2 AppleScriptComponent + 1744 7 com.apple.applescript 0x0053f927 AGenericManager::HandleOSACall(ComponentParameters*) + 63 8 ...ple.CoreServices.CarbonCore 0x968625cd CallComponentDispatch + 29 9 com.apple.openscripting 0x91630390 OSAExecute + 61 10 com.apple.Foundation 0x93658f7b -[NSAppleScript(NSPrivate) _executeWithMode:andReturnError:] + 107 11 com.apple.Foundation 0x93658e51 -[NSAppleScript executeAndReturnError:] + 49 12 org.wincent.Synergy 0x00010b73 -[SynergyController timer:] + 9203 13 org.wincent.Synergy 0x0000ce21 -[SynergyController handleNotification:] + 425 14 com.apple.Foundation 0x9356fbda _nsnote_callback + 106 15 com.apple.CoreFoundation 0x9316b71b __CFXNotificationHandleMessage + 587 16 com.apple.CoreFoundation 0x9316b80e __CFXNotificationReceiveFromServer + 238 17 com.apple.CoreFoundation 0x93166555 __CFMachPortPerform + 117 18 com.apple.CoreFoundation 0x9318a921 CFRunLoopRunSpecific + 3921 19 com.apple.CoreFoundation 0x9318ad18 CFRunLoopRunInMode + 88 20 com.apple.HIToolbox 0x948ad6a0 RunCurrentEventLoopInMode + 283 21 com.apple.HIToolbox 0x948ad3f2 ReceiveNextEventCommon + 175 22 com.apple.HIToolbox 0x948ad32d BlockUntilNextEventMatchingListInMode + 106 23 com.apple.AppKit 0x91cf27d9 _DPSNextEvent + 657 24 com.apple.AppKit 0x91cf208e -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 25 com.apple.AppKit 0x91ceb0c5 -[NSApplication run] + 795 26 com.apple.AppKit 0x91cb830a NSApplicationMain + 574 27 org.wincent.Synergy 0x00002dd2 start + 54 Thread 1: 0 libSystem.B.dylib 0x914a7bce __semwait_signal + 10 1 libSystem.B.dylib 0x914d28cd pthread_cond_wait$UNIX2003 + 73 2 libauto.dylib 0x91477bcf auto_collection_thread(void*) + 175 3 libSystem.B.dylib 0x914d1c55 _pthread_start + 321 4 libSystem.B.dylib 0x914d1b12 thread_start + 34 Thread 2: 0 libSystem.B.dylib 0x914a09e6 mach_msg_trap + 10 1 libSystem.B.dylib 0x914a81dc mach_msg + 72 2 com.apple.CoreFoundation 0x9318a0de CFRunLoopRunSpecific + 1806 3 com.apple.CoreFoundation 0x9318ad18 CFRunLoopRunInMode + 88 4 com.apple.Foundation 0x935d3ac0 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 320 5 com.apple.Foundation 0x935705ad -[NSThread main] + 45 6 com.apple.Foundation 0x93570154 __NSThread__main__ + 308 7 libSystem.B.dylib 0x914d1c55 _pthread_start + 321 8 libSystem.B.dylib 0x914d1b12 thread_start + 34 Thread 3: 0 libSystem.B.dylib 0x914f0b3a select$DARWIN_EXTSN + 10 1 libSystem.B.dylib 0x914d1c55 _pthread_start + 321 2 libSystem.B.dylib 0x914d1b12 thread_start + 34 Thread 4: 0 libSystem.B.dylib 0x914a09e6 mach_msg_trap + 10 1 libSystem.B.dylib 0x914a81dc mach_msg + 72 2 com.apple.CoreFoundation 0x9318a0de CFRunLoopRunSpecific + 1806 3 com.apple.CoreFoundation 0x9318ad18 CFRunLoopRunInMode + 88 4 com.apple.CFNetwork 0x947216cc CFURLCacheWorkerThread(void*) + 396 5 libSystem.B.dylib 0x914d1c55 _pthread_start + 321 6 libSystem.B.dylib 0x914d1b12 thread_start + 34 Thread 0 crashed with X86 Thread State (32-bit): eax: 0x09828000 ebx: 0x0056dd5b ecx: 0x00000008 edx: 0x002a3044 edi: 0x00000000 esi: 0x005a4070 ebp: 0xbfffe348 esp: 0xbfffe310 ss: 0x0000001f efl: 0x00010206 eip: 0x0056dd85 cs: 0x00000017 ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037 cr2: 0x00000000 Binary Images: 0x1000 - 0x37fff +org.wincent.Synergy version 3.5a6 (69d0d56) <08d6017ec16a018e8902a64627f8b093> /Applications/Synergy Preferences.app/Contents/Resources/Synergy.prefPane/Contents/Resources/Synergy.app/Contents/MacOS/Synergy 0x5f000 - 0x79fff com.apple.ScriptingBridge 1.0 (1.0) <4ef56775c0b6c2f6a28e181b979b5383> /System/Library/Frameworks/ScriptingBridge.framework/Versions/A/ScriptingBridge 0x10e000 - 0x1efff7 libxml2.2.dylib ??? (???) <3cd4cccd4ca35dffa4688436aa0cd908> /usr/lib/libxml2.2.dylib 0x272000 - 0x272ffe com.apple.applescript.component 2.0 (2.0) /System/Library/Components/AppleScript.component/Contents/MacOS/AppleScript 0x51c000 - 0x5a3ffb com.apple.applescript 2.0 (2.0) /System/Library/PrivateFrameworks/AppleScript.framework/Versions/A/AppleScript 0x6fa000 - 0x7e8fef com.apple.RawCamera.bundle 2.0.3 (2.0.3) /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera 0x15dd6000 - 0x15e5afff com.apple.xquery 1.3 (27) /System/Library/PrivateFrameworks/XQuery.framework/XQuery 0x8fe00000 - 0x8fe2da53 dyld 96.2 (???) <7af47d3b00b2268947563c7fa8c59a07> /usr/lib/dyld 0x90028000 - 0x9002dfff com.apple.CommonPanels 1.2.4 (85) <ea0665f57cd267609466ed8b2b20e893> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels 0x9002e000 - 0x9004eff2 libGL.dylib ??? (???) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib 0x9004f000 - 0x900e2fff com.apple.ink.framework 101.3 (86) <bf3fa8927b4b8baae92381a976fd2079> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink 0x90134000 - 0x901e6ffb libcrypto.0.9.7.dylib ??? (???) <330b0e48e67faffc8c22dfc069ca7a47> /usr/lib/libcrypto.0.9.7.dylib 0x91298000 - 0x9131fff7 libsqlite3.0.dylib ??? (???) <6978bbcca4277d6ae9f042beff643f7d> /usr/lib/libsqlite3.0.dylib 0x91320000 - 0x9135eff7 libGLImage.dylib ??? (???) <090de775838db03ddc710f57abbf6218> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib 0x9135f000 - 0x9135fffc com.apple.audio.units.AudioUnit 1.5 (1.5) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit 0x913a1000 - 0x913a3ff5 libRadiance.dylib ??? (???) <20eadb285da83df96c795c2c5fa20590> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib 0x913a4000 - 0x913a4ffd com.apple.vecLib 3.4.2 (vecLib 3.4.2) /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib 0x91474000 - 0x9149ffe7 libauto.dylib ??? (???) <42d8422dc23a18071869fdf7b5d8fab5> /usr/lib/libauto.dylib 0x914a0000 - 0x915ffff3 libSystem.B.dylib ??? (???) <4899376234e55593b22fc370935f8cdf> /usr/lib/libSystem.B.dylib 0x9161d000 - 0x91635fff com.apple.openscripting 1.2.6 (???) <b8e553df643f2aec68fa968b3b459b2b> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting 0x9167b000 - 0x91683fff com.apple.DiskArbitration 2.2.1 (2.2.1) <75b0c8d8940a8a27816961dddcac8e0f> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 0x916b7000 - 0x91711ff7 com.apple.CoreText 2.0.1 (???) <07494945ad1e3f5395599f42748457cc> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText 0x91712000 - 0x91726ff3 com.apple.ImageCapture 4.0 (5.0.0) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture 0x91737000 - 0x917e7fff edu.mit.Kerberos 6.0.12 (6.0.12) <3dd13466876a8fe4549cfc1354233ec3> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos 0x917e8000 - 0x91815feb libvDSP.dylib ??? (???) <b232c018ddd040ec4e2c2af632dd497f> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib 0x91816000 - 0x91873ffb libstdc++.6.dylib ??? (???) <04b812dcec670daa8b7d2852ab14be60> /usr/lib/libstdc++.6.dylib 0x91874000 - 0x9187dfff com.apple.speech.recognition.framework 3.7.24 (3.7.24) <d3180f9edbd9a5e6f283d6156aa3c602> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition 0x9187e000 - 0x91b9efe2 com.apple.QuickTime 7.4.5 (67) <520cbf4ae05622466ad1b89f1ba3a4e1> /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime 0x91b9f000 - 0x91b9fffd com.apple.Accelerate 1.4.2 (Accelerate 1.4.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate 0x91c82000 - 0x91c88fff com.apple.print.framework.Print 218.0.2 (220.1) <8bf7ef71216376d12fcd5ec17e43742c> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print 0x91c89000 - 0x91cb1fff libcups.2.dylib ??? (???) <2f0a710a9128882efb2ed92ad139b58c> /usr/lib/libcups.2.dylib 0x91cb2000 - 0x924affef com.apple.AppKit 6.5.2 (949.26) <bc4593edd8a224409fb6953a354505a0> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit 0x924b0000 - 0x924b7fe9 libgcc_s.1.dylib ??? (???) <f53c808e87d1184c0f9df63aef53ce0b> /usr/lib/libgcc_s.1.dylib 0x92598000 - 0x92598ff8 com.apple.ApplicationServices 34 (34) <8f910fa65f01d401ad8d04cc933cf887> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 0x9259a000 - 0x92623fe3 com.apple.DesktopServices 1.4.5 (1.4.5) <8b264cd6abbbd750928c637e1247269d> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv 0x92624000 - 0x92703fff libobjc.A.dylib ??? (???) <a53206274b6c2d42691f677863f379ae> /usr/lib/libobjc.A.dylib 0x92777000 - 0x92792ffb libPng.dylib ??? (???) <b6abcac36ec7654ff3e1cfa786b0117b> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib 0x927c4000 - 0x92bd4fef libBLAS.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 0x92d00000 - 0x92d10ffc com.apple.LangAnalysis 1.6.4 (1.6.4) <cbeb17ab39f28351fe2ab5b82bf465bc> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis 0x92d11000 - 0x92d8dfeb com.apple.audio.CoreAudio 3.1.0 (3.1) <70bb7c657061631491029a61babe0b26> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio 0x92d9b000 - 0x92ee0ff7 com.apple.ImageIO.framework 2.0.1 (2.0.1) <68ba11e689a9ca30f8310935cd1e02d6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO 0x92f84000 - 0x92fc3fef libTIFF.dylib ??? (???) <6d0f80e9d4d81f3f64c876aca005bd53> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib 0x92fd4000 - 0x92fd5ffc libffi.dylib ??? (???) <a3b573eb950ca583290f7b2b4c486d09> /usr/lib/libffi.dylib 0x92fd6000 - 0x93017fe7 libRIP.A.dylib ??? (???) <9d42e83d860433f9126c4871d1fe0ce8> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib 0x93018000 - 0x93018ffa com.apple.CoreServices 32 (32) <2fcc8f3bd5bbfc000b476cad8e6a3dd2> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices 0x9307f000 - 0x930c1fef com.apple.NavigationServices 3.5.1 (161) <cc6bd78eabf1e2e7166914e9f12f5850> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices 0x93114000 - 0x93117fff com.apple.help 1.1 (36) <b507b08e484cb89033e9cf23062d77de> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help 0x93118000 - 0x9324afef com.apple.CoreFoundation 6.5.1 (476.10) <d5bed2688a5eea11a6dc3a3c5c17030e> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x9324b000 - 0x93316fff com.apple.ColorSync 4.5.0 (4.5.0) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync 0x93317000 - 0x9332dfe7 com.apple.CoreVideo 1.5.0 (1.5.0) <bad2d3a9a92fdecd02e64f0b73a76f27> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo 0x9332e000 - 0x93466ff7 libicucore.A.dylib ??? (???) <afcea652ff2ec36885b2c81c57d06d4c> /usr/lib/libicucore.A.dylib 0x9349e000 - 0x93565ff2 com.apple.vImage 3.0 (3.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage 0x93566000 - 0x937e0fe7 com.apple.Foundation 6.5.4 (677.15) <6216196287f98a65ddb654d04d773e7b> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 0x937e1000 - 0x93cb4fde libGLProgrammability.dylib ??? (???) <a3d68f17f37ff55a3e61aca1e3aee522> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib 0x94306000 - 0x946c4fea libLAPACK.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib 0x946c5000 - 0x94715ff7 com.apple.HIServices 1.7.0 (???) <f7e78891a6d08265c83dca8e378be1ea> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices 0x94716000 - 0x9478dfe3 com.apple.CFNetwork 221.5 (221.5) <5474cdd7d2a8b2e8059de249c702df9e> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 0x9478e000 - 0x94808ff8 com.apple.print.framework.PrintCore 5.5.2 (245.1) <3c9de512e95fbd838694ee5008d56a28> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore 0x94809000 - 0x94810ff7 libCGATS.A.dylib ??? (???) <9b29a5500efe01cc3adea67bbc42568e> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib 0x94829000 - 0x94858fe3 com.apple.AE 402.2 (402.2) <e01596187e91af5d48653920017b8c8e> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE 0x94859000 - 0x94877fff libresolv.9.dylib ??? (???) <0629b6dcd71f4aac6a891cbe26253e85> /usr/lib/libresolv.9.dylib 0x9487d000 - 0x94b85fff com.apple.HIToolbox 1.5.2 (???) <7449d6f2da33ded6936243a92e307459> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox 0x94b86000 - 0x94b8dffe libbsm.dylib ??? (???) <d25c63378a5029648ffd4b4669be31bf> /usr/lib/libbsm.dylib 0x94b8e000 - 0x94b9efff com.apple.speech.synthesis.framework 3.6.59 (3.6.59) <4ffef145fad3d4d787e0c33eab26b336> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis 0x94b9f000 - 0x94babfe7 com.apple.opengl 1.5.6 (1.5.6) <d599b1bb0f8a8da6fd125e2587b27776> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL 0x94bac000 - 0x94f42ff7 com.apple.QuartzCore 1.5.1 (1.5.1) <665c80f6e28555b303020c8007c36b8b> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore 0x94f43000 - 0x955dcfff com.apple.CoreGraphics 1.351.21 (???) <6c93fd21149f389129fe47fa6ef71880> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics 0x957c4000 - 0x957c4fff com.apple.Carbon 136 (136) <98a5e3bc0c4fa44bbb09713bb88707fe> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 0x957c5000 - 0x9581eff7 libGLU.dylib ??? (???) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib 0x9581f000 - 0x958b2ff3 com.apple.ApplicationServices.ATS 3.2 (???) <cdf31bd0ac7de54a35ee2d27cf86b6be> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS 0x958fc000 - 0x958fefff com.apple.securityhi 3.0 (30817) <2b2854123fed609d1820d2779e2e0963> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI 0x95919000 - 0x95950fff com.apple.SystemConfiguration 1.9.1 (1.9.1) <8a76e429301afe4eba1330bfeaabd9f2> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration 0x95a22000 - 0x95a46fff libxslt.1.dylib ??? (???) <4933ddc7f6618743197aadc85b33b5ab> /usr/lib/libxslt.1.dylib 0x95b4f000 - 0x95b59feb com.apple.audio.SoundManager 3.9.2 (3.9.2) <0f2ba6e891d3761212cf5a5e6134d683> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound 0x95b85000 - 0x95b89fff libmathCommon.A.dylib ??? (???) /usr/lib/system/libmathCommon.A.dylib 0x95b8a000 - 0x95bc4fff com.apple.coreui 1.1 (61) /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI 0x95bc5000 - 0x95c0afef com.apple.Metadata 10.5.2 (398.7) <73a6424c06effc474e699cde6883de99> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata 0x95c0b000 - 0x95c96fff com.apple.framework.IOKit 1.5.1 (???) <a17f9f5ea7e8016a467e67349f4d3d03> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x95ca9000 - 0x95cc8ffa libJPEG.dylib ??? (???) <0cfb80109d624beb9ceb3c43b6c5ec10> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib 0x95e67000 - 0x95f8bfe3 com.apple.audio.toolbox.AudioToolbox 1.5.1 (1.5.1) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox 0x95fbc000 - 0x95fc7fe7 libCSync.A.dylib ??? (???) <df82fc093e498a9eb5490761cb292218> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib 0x95fc8000 - 0x96054ff7 com.apple.LaunchServices 286.5 (286.5) <33c3ae54abb276b61a99d4c764d883e2> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices 0x960e2000 - 0x9615ffef libvMisc.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib 0x9619a000 - 0x96219ff5 com.apple.SearchKit 1.2.0 (1.2.0) <277b460da86bc222785159fe77e2e2ed> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit 0x96421000 - 0x96506ff3 com.apple.CoreData 100.1 (186) <8e28162ef2288692615b52acc01f8b54> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData 0x96515000 - 0x9653dff7 com.apple.shortcut 1 (1.0) <057783867138902b52bc0941fedb74d1> /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut 0x96543000 - 0x96551ffd libz.1.dylib ??? (???) <5ddd8539ae2ebfd8e7cc1c57525385c7> /usr/lib/libz.1.dylib 0x96552000 - 0x96568fff com.apple.DictionaryServices 1.0.0 (1.0.0) <ad0aa0252e3323d182e17f50defe56fc> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices 0x96569000 - 0x96734ff7 com.apple.security 5.0.2 (33001) <0788969ffe7961153219be10786da436> /System/Library/Frameworks/Security.framework/Versions/A/Security 0x96735000 - 0x96735ffb com.apple.installserver.framework 1.0 (8) /System/Library/PrivateFrameworks/InstallServer.framework/Versions/A/InstallServer 0x96774000 - 0x9682efe3 com.apple.CoreServices.OSServices 224.4 (224.4) <ff5007ab220908ac54b6c661e447d593> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices 0x9682f000 - 0x9682fff8 com.apple.Cocoa 6.5 (???) <e064f94d969ce25cb7de3cfb980c3249> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa 0x96830000 - 0x96b09ff3 com.apple.CoreServices.CarbonCore 785.8 (785.8) <827c228e7d717b397cdb4941eba69553> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore 0x96b0a000 - 0x96b66ff7 com.apple.htmlrendering 68 (1.1.3) <fe87a9dede38db00e6c8949942c6bd4f> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering 0x96b67000 - 0x96b6bfff libGIF.dylib ??? (???) <d4234e6f5e5f530bdafb969157f1f17b> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib 0x96b6d000 - 0x96c14feb com.apple.QD 3.11.52 (???) <c72bd7bd2ce12694c3640a731d1ad878> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD 0x96c1b000 - 0x96c26ff9 com.apple.helpdata 1.0 (14) /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData 0x96ec2000 - 0x96ec2ffd com.apple.Accelerate.vecLib 3.4.2 (vecLib 3.4.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib 0xba900000 - 0xba916fff libJapaneseConverter.dylib ??? (???) <7b0248c392848338f5d6ed093313eeef> /System/Library/CoreServices/Encodings/libJapaneseConverter.dylib 0xc0000000 - 0xc0008fff +com.growl.growlframework 1.1.2 (1.1.2) <e4a1c0affd65f843be253224e017b90e> /Applications/Synergy Preferences.app/Contents/Resources/Synergy.prefPane/Contents/Resources/Synergy.app/Contents/Frameworks/Growl.framework/Versions/A/Growl 0xfffe8000 - 0xfffebfff libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib 0xffff0000 - 0xffff1780 libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib
-
Greg Hurrell
Just saw a very interesting post to the cocoa-dev mailing list from Apple's own Mark Piccirelli.
Basically, a developer wrote in asking about random crashes in NSAppleScript and Mark replied:
Is this a garbage-collected app? If so the crash is a known bug.
And then in a follow-up:
But we intend to fix it in a software update. (And I can't say anything more specific than that. A fix isn't a fix until it's shipped.)
So fingers crossed that it comes sooner rather than later (although note that he does say that they intend to fix it; which suggests that while it is a known issue it isn't actually fixed yet). It would be nice to have this in 10.5.3 rather than 10.6!
-
Greg Hurrell
If you are interested in this issue and would like to see Apple fix the bug, please file a report with them at:
In your report you should basically make the following points:
- That applications that run under Garbage Collection on Leopard are crashing in NSAppleScript
- That you're aware that this is a known issue, that the original Radar number is 5523530, but that you wanted to file a report because the issue is negatively impacting your use of Mac OS X and you have no known workarounds
Apparently, receiving duplicate reports help Apple prioritize their engineering resources and decide which bugs should be fixed first.
I think you need an ADC account (free, get one here) in order to use their bugreporter, and it would also be a good idea to attach a sample crash report. Look in your
~/Library/Logs/CrashReporter/
folder for a report, and make sure that it is one which resembles the sample above; in other words, it should be crashing in the main thread, thread 0:Thread 0 Crashed:
And if you look down the list of stack frames for thread 0 you should see some NSAppleScript calls that resemble these:
10 com.apple.Foundation 0x93658f7b -[NSAppleScript(NSPrivate) _executeWithMode:andReturnError:] + 107 11 com.apple.Foundation 0x93658e51 -[NSAppleScript executeAndReturnError:] + 49
-
Greg Hurrell
Installed 10.5.3 last night and am testing to see if Apple has fixed this bug... Not hopeful about it as there was no allusion to NSAppleScript, AppleScript or Apple Events in the release notes, and my own bug in Apple's tracker was marked as Closed/Duplicate a long time ago and they don't let you see the status of the original bug. But still, fingers crossed: will see if they've made a fix.
-
anonymous
hi, i'm just wondering if this bug has been fixed by Apple or not.
thanks.
-
Greg Hurrell
I haven't seen any crashes since upgrading to 10.5.3, and I haven't heard any reports from others either, so I am hoping that the fix was included. But only time will tell seeing as the release notes are not very detailed and didn't mention any low-level bugfixes.
-
Greg Hurrell
Sadly, just received my first report of this crash on 10.5.3, so looks like Apple still hasn't fixed the bug:
Date/Time: 2008-06-24 13:26:02.360 -0400 OS Version: Mac OS X 10.5.3 (9D34) Report Version: 6 Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000003 Crashed Thread: 0 Application Specific Information: objc[156]: garbage collection is ON Thread 0 Crashed: 0 com.apple.applescript 0x1c996214 TUASFrame::UnlinkTo(TUASFrameType, TUASUnlinkExtent) + 64 1 com.apple.applescript 0x1c97f714 UASExecute1() + 3240 2 com.apple.applescript 0x1c97f968 UASExecute(unsigned char) + 148 3 com.apple.applescript 0x1c94ea2c ASExecute(unsigned long, unsigned long, long, unsigned long*) + 308 4 com.apple.applescript 0x1c94a02c AppleScriptComponent + 1900 5 com.apple.applescript 0x1c968240 AGenericManager::HandleOSACall(ComponentParameters*) + 64 6 com.apple.openscripting 0x928877bc OSAExecute + 48 7 com.apple.Foundation 0x90faefd8 -[NSAppleScript(NSPrivate) _executeWithMode:andReturnError:] + 92 8 org.wincent.Synergy 0x0000f3c4 -[SynergyController timer:] + 8108 9 org.wincent.Synergy 0x000091a0 -[SynergyController playPauseHotKeyPressed] + 32 10 org.wincent.Synergy 0x0000295c -[HotkeyCapableApplication sendEvent:] + 100 11 com.apple.AppKit 0x938fb6f4 -[NSApplication run] + 776 12 com.apple.AppKit 0x938cc0d0 NSApplicationMain + 440 13 org.wincent.Synergy 0x000026fc start + 64
-
Brett Cassette
So what are we able to do in the meantime? I've been experiencing the same crash with Synergy
-
Greg Hurrell
In the meantime, you can use Synergy 3.2.1, which has the exact same feature set but does not expose the Leopard bug because it doesn't use the new Garbage Collection added in Leopard.
-
Greg Hurrell
Summary changed:
- From: CRASH: NSAppleScript freaks out under Garbage Collection
- To: NSAppleScript freaks out under Garbage Collection
Tags changed:
- From:
- To: crash
-
Greg Hurrell
It's been a while since my last post on this topic.
Since then, version 3.4 has been released (stable series) yesterday, and 3.5a9 (alpha/experimental) series was released today.
I've heard rumours that Apple might have fixed this bug in 10.5.7, so I've bumped the minimum system version requirement up to 10.5.7 and am putting this new build out into the wild to get some feedback and see if that rumour is true.
I'm kind of getting sick of having to maintain these two lines of development so I am thinking of starting to work on new features in the 3.5 series even if the Apple bug isn't fixed yet, while the 3.4 series will be bug fixes only.
Basically, if you want to live on the cutting edge, warts and all, you'll be able to run the 3.5 series; and if you want stability you'll can stay with 3.4, but you'll have to accept that there won't be any forward movement, feature-wise, on that branch.
-
Greg Hurrell
Alas, looks like Apple still hasn't fixed the bug in 10.5.7. Looks like we'll be waiting for Snow Leopard.
Process: Synergy [88682] Path: /Applications/Synergy Preferences.app/Contents/Resources/Synergy.prefPane/Contents/Resources/Synergy.app/Contents/MacOS/Synergy Identifier: org.wincent.Synergy Version: versión 3.5.1a (a79503f) Code Type: X86 (Native) Parent Process: launchd [160] Interval Since Last Report: 66121 sec Crashes Since Last Report: 1 Per-App Interval Since Last Report: 71989 sec Per-App Crashes Since Last Report: 1 Date/Time: 2009-07-03 13:32:25.012 +0200 OS Version: Mac OS X 10.5.7 (9J61) Report Version: 6 Anonymous UUID: 6544FCAB-683D-4A46-BCED-032781C7835E Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Crashed Thread: 0 Application Specific Information: objc[88682]: garbage collection is ON Thread 0 Crashed: 0 libSystem.B.dylib 0x94a7ee42 __kill + 10 1 libSystem.B.dylib 0x94af123a raise + 26 2 libSystem.B.dylib 0x94afd679 abort + 73 3 libstdc++.6.dylib 0x9745a005 0x97412000 + 294917 4 libstdc++.6.dylib 0x9745810c __gxx_personality_v0 + 1108 5 libstdc++.6.dylib 0x9745806c __gxx_personality_v0 + 948 6 libgcc_s.1.dylib 0x903495ee _Unwind_Backtrace + 270 7 libgcc_s.1.dylib 0x90349794 _Unwind_RaiseException + 308 8 libstdc++.6.dylib 0x97458254 __cxa_throw + 88 9 com.apple.applescript 0x004cc7b4 CFDataCreateMutableWithBytes(__CFAllocator const*, unsigned char const*, long) + 0 10 com.apple.applescript 0x004cc51d ASError(long) + 43 11 com.apple.applescript 0x004aefcd TGCStack::Pop() + 31 12 com.apple.applescript 0x004af000 GCPop() + 34 13 com.apple.applescript 0x005013a6 TUASValue::BecomeAEDesc(AEDesc&, TUASApplication*, unsigned char) + 176 14 com.apple.applescript 0x004aff1b ASCoerceToDesc(unsigned long, unsigned long, long, AEDesc*) + 113 15 ...ple.CoreServices.CarbonCore 0x92c92d01 CallComponentFunctionCommon + 537 16 ...ple.CoreServices.CarbonCore 0x92cd82b0 CallComponentFunction + 122 17 com.apple.applescript 0x004aba9e AppleScriptComponent + 1744 18 com.apple.applescript 0x004c78e3 AGenericManager::HandleOSACall(ComponentParameters*) + 63 19 ...ple.CoreServices.CarbonCore 0x92c929c9 CallComponentDispatch + 29 20 com.apple.openscripting 0x96a1b7c5 OSACoerceToDesc + 61 21 com.apple.Foundation 0x97088d8e -[NSAppleScript(NSPrivate) _executeWithMode:andReturnError:] + 158 22 com.apple.Foundation 0x97088c31 -[NSAppleScript executeAndReturnError:] + 49 23 org.wincent.Synergy 0x000105da -[SynergyController timer:] + 9202 24 org.wincent.Synergy 0x0000c889 -[SynergyController handleNotification:] + 415 25 com.apple.Foundation 0x96f9f43a _nsnote_callback + 106 26 com.apple.CoreFoundation 0x9020938b __CFXNotificationHandleMessage + 587 27 com.apple.CoreFoundation 0x9020947e __CFXNotificationReceiveFromServer + 238 28 com.apple.CoreFoundation 0x902041c5 __CFMachPortPerform + 117 29 com.apple.CoreFoundation 0x90228888 CFRunLoopRunSpecific + 3896 30 com.apple.CoreFoundation 0x90228c78 CFRunLoopRunInMode + 88 31 com.apple.HIToolbox 0x92ff528c RunCurrentEventLoopInMode + 283 32 com.apple.HIToolbox 0x92ff4fde ReceiveNextEventCommon + 175 33 com.apple.HIToolbox 0x92ff4f19 BlockUntilNextEventMatchingListInMode + 106 34 com.apple.AppKit 0x92232d0d _DPSNextEvent + 657 35 com.apple.AppKit 0x922325c0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 36 com.apple.AppKit 0x9222b5fb -[NSApplication run] + 795 37 com.apple.AppKit 0x921f8834 NSApplicationMain + 574 38 org.wincent.Synergy 0x000022be start + 54 Thread 1: 0 libSystem.B.dylib 0x94a1846e __semwait_signal + 10 1 libSystem.B.dylib 0x94a42dcd pthread_cond_wait$UNIX2003 + 73 2 libauto.dylib 0x949e7bcf auto_collection_thread(void*) + 175 3 libSystem.B.dylib 0x94a42155 _pthread_start + 321 4 libSystem.B.dylib 0x94a42012 thread_start + 34 Thread 2: 0 libSystem.B.dylib 0x94a11286 mach_msg_trap + 10 1 libSystem.B.dylib 0x94a18a7c mach_msg + 72 2 com.apple.CoreFoundation 0x9022804e CFRunLoopRunSpecific + 1790 3 com.apple.CoreFoundation 0x90228c78 CFRunLoopRunInMode + 88 4 com.apple.Foundation 0x97003530 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 320 5 com.apple.Foundation 0x96f9fe0d -[NSThread main] + 45 6 com.apple.Foundation 0x96f9f9b4 __NSThread__main__ + 308 7 libSystem.B.dylib 0x94a42155 _pthread_start + 321 8 libSystem.B.dylib 0x94a42012 thread_start + 34 Thread 3: 0 libSystem.B.dylib 0x94a11286 mach_msg_trap + 10 1 libSystem.B.dylib 0x94a18a7c mach_msg + 72 2 com.apple.CoreFoundation 0x9022804e CFRunLoopRunSpecific + 1790 3 com.apple.CoreFoundation 0x90228c78 CFRunLoopRunInMode + 88 4 com.apple.CFNetwork 0x9683d298 CFURLCacheWorkerThread(void*) + 388 5 libSystem.B.dylib 0x94a42155 _pthread_start + 321 6 libSystem.B.dylib 0x94a42012 thread_start + 34 Thread 4: 0 libSystem.B.dylib 0x94a606fa select$DARWIN_EXTSN + 10 1 libSystem.B.dylib 0x94a42155 _pthread_start + 321 2 libSystem.B.dylib 0x94a42012 thread_start + 34 Thread 5: 0 libSystem.B.dylib 0x94a1846e __semwait_signal + 10 1 libSystem.B.dylib 0x94a42dcd pthread_cond_wait$UNIX2003 + 73 2 com.apple.QuartzCore 0x94576a09 fe_fragment_thread + 54 3 libSystem.B.dylib 0x94a42155 _pthread_start + 321 4 libSystem.B.dylib 0x94a42012 thread_start + 34 Thread 0 crashed with X86 Thread State (32-bit): eax: 0x00000000 ebx: 0x94afd639 ecx: 0xbfffdd6c edx: 0x94a7ee42 edi: 0x9746f6ff esi: 0xa060d5b8 ebp: 0xbfffdd88 esp: 0xbfffdd6c ss: 0x0000001f efl: 0x00000282 eip: 0x94a7ee42 cs: 0x00000007 ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037 cr2: 0xffe2a688
-
Greg Hurrell
Snow Leopard has been out for a while now and it looks like Apple finally fixed the bug in 10.6. There is little hope of them ever going back and fixing Leopard, in my opinion, so gonna mark this one as closed.
To avoid the bug, Synergy users basically have these options:
- if stuck on Leopard, use the latest release in the 3.4 series: as it doesn't use Garbage Collection, the 3.4 series is not affected by the bug
- if able to upgrade to Snow Leopard, the problem goes away, and users can run the 3.4 series, 3.5 series or 4.0/4.1/4.2 etc without seeing this bug
-
Greg Hurrell
Status changed:
- From: open
- To: closed
Add a comment
Comments are now closed for this issue.