Represents a collection of screens forming a menu. More...
#include <LiquidMenu.h>
Public Member Functions | |
Constructors | |
| LiquidMenu (LiquidCrystal &liquidCrystal, uint8_t startingScreen=1) | |
| The main constructor. More... | |
| LiquidMenu (LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen, uint8_t startingScreen=1) | |
| Constructor for 1 LiquidScreen object. More... | |
| LiquidMenu (LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1, LiquidScreen &liquidScreen2, uint8_t startingScreen=1) | |
| Constructor for 2 LiquidScreen objects. More... | |
| LiquidMenu (LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1, LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3, uint8_t startingScreen=1) | |
| Constructor for 3 LiquidScreen objects. More... | |
| LiquidMenu (LiquidCrystal &liquidCrystal, LiquidScreen &liquidScreen1, LiquidScreen &liquidScreen2, LiquidScreen &liquidScreen3, LiquidScreen &liquidScreen4, uint8_t startingScreen=1) | |
| Constructor for 4 LiquidScreen objects. More... | |
Public methods | |
| bool | add_screen (LiquidScreen &liquidScreen) |
| Adds a LiquidScreen object to the menu. More... | |
| void | next_screen () |
| Switches to the next screen. More... | |
| void | operator++ () |
| Switches to the next screen. More... | |
| void | operator++ (int) |
| Switches to the next screen. More... | |
| void | previous_screen () |
| Switches to the previous screen. More... | |
| void | operator-- () |
| Switches to the previous screen. More... | |
| void | operator-- (int) |
| Switches to the previous screen. More... | |
| bool | change_screen (LiquidScreen &p_liquidScreen) |
| Switches to the specified screen. More... | |
| bool | change_screen (uint8_t number) |
| Switches to the specified screen. More... | |
| bool | operator= (LiquidScreen &p_liquidScreen) |
| Switches to the specified screen. More... | |
| bool | operator= (uint8_t number) |
| Switches to the specified screen. More... | |
| void | switch_focus (bool forward=true) |
| Switches the focus. More... | |
| bool | set_focusPosition (Position position) |
| Sets the focus position for the whole menu at once. More... | |
| bool | set_focusSymbol (Position position, uint8_t symbol[8]) |
| Changes the focus indicator's symbol. More... | |
| bool | call_function (uint8_t number) const |
| Calls an attached function specified by the number. More... | |
| void | update () const |
| Prints the current screen to the display. More... | |
| void | softUpdate () const |
| Prints the current screen to the display (without clearing). More... | |
Friends | |
| class | LiquidSystem |
Detailed Description
Represents a collection of screens forming a menu.
 It holds pointers to them and calls their functions depending on which one is active. This is the class used for control. It is possible to use multiple menus, it that case this classes' objects go into a LiquidSystem object which controls them using the same public methods.
- See also
- LiquidScreen
- Examples:
- buttons_menu.ino, focus_menu.ino, functions_menu.ino, hello_menu.ino, serial_menu.ino, and system_menu.ino.
Constructor & Destructor Documentation
| LiquidMenu::LiquidMenu | ( | LiquidCrystal & | liquidCrystal, |
| uint8_t | startingScreen = 1 |
||
| ) |
The main constructor.
This is the main constructor that gets called every time.
- Parameters
-
&liquidCrystal - pointer to the LiquidCrystal object startingScreen - the number of the screen that will be shown first
| LiquidMenu::LiquidMenu | ( | LiquidCrystal & | liquidCrystal, |
| LiquidScreen & | liquidScreen, | ||
| uint8_t | startingScreen = 1 |
||
| ) |
Constructor for 1 LiquidScreen object.
- Parameters
-
&liquidCrystal - pointer to the LiquidCrystal object &liquidScreen - pointer to a LiquidScreen object startingScreen - the number of the screen that will be shown first
| LiquidMenu::LiquidMenu | ( | LiquidCrystal & | liquidCrystal, |
| LiquidScreen & | liquidScreen1, | ||
| LiquidScreen & | liquidScreen2, | ||
| uint8_t | startingScreen = 1 |
||
| ) |
Constructor for 2 LiquidScreen objects.
- Parameters
-
&liquidCrystal - pointer to the LiquidCrystal object &liquidScreen1 - pointer to a LiquidScreen object &liquidScreen2 - pointer to a LiquidScreen object startingScreen - the number of the screen that will be shown first
| LiquidMenu::LiquidMenu | ( | LiquidCrystal & | liquidCrystal, |
| LiquidScreen & | liquidScreen1, | ||
| LiquidScreen & | liquidScreen2, | ||
| LiquidScreen & | liquidScreen3, | ||
| uint8_t | startingScreen = 1 |
||
| ) |
Constructor for 3 LiquidScreen objects.
- Parameters
-
&liquidCrystal - pointer to the LiquidCrystal object &liquidScreen1 - pointer to a LiquidScreen object &liquidScreen2 - pointer to a LiquidScreen object &liquidScreen3 - pointer to a LiquidScreen object startingScreen - the number of the screen that will be shown first
| LiquidMenu::LiquidMenu | ( | LiquidCrystal & | liquidCrystal, |
| LiquidScreen & | liquidScreen1, | ||
| LiquidScreen & | liquidScreen2, | ||
| LiquidScreen & | liquidScreen3, | ||
| LiquidScreen & | liquidScreen4, | ||
| uint8_t | startingScreen = 1 |
||
| ) |
Constructor for 4 LiquidScreen objects.
- Parameters
-
&liquidCrystal - pointer to the LiquidCrystal object &liquidScreen1 - pointer to a LiquidScreen object &liquidScreen2 - pointer to a LiquidScreen object &liquidScreen3 - pointer to a LiquidScreen object &liquidScreen4 - pointer to a LiquidScreen object startingScreen - the number of the screen that will be shown first
Member Function Documentation
| bool LiquidMenu::add_screen | ( | LiquidScreen & | liquidScreen | ) |
Adds a LiquidScreen object to the menu.
- Parameters
-
&liquidScreen - pointer to a LiquidScreen object
- Returns
- true on success and false if the maximum amount of screens has been reached
- Note
- The maximum amount of screens per menu is specified in LiquidMenu_config.h as
MAX_SCREENS
. The default is 16.
- See also
- LiquidMenu_config.h
- MAX_SCREENS
- Examples:
- functions_menu.ino.
| bool LiquidMenu::call_function | ( | uint8_t | number | ) | const |
Calls an attached function specified by the number.
Calls the function specified by the number argument for the current screen and for the focused line.
- Parameters
-
number - number of the function in the array
- Returns
- true if there is a function at the specified number
- Note
- Function numbering starts from 1.
- See also
- bool LiquidLine::attach_function(uint8_t number, void (*function)(void))
- Examples:
- functions_menu.ino.
| bool LiquidMenu::change_screen | ( | LiquidScreen & | p_liquidScreen | ) |
Switches to the specified screen.
- Parameters
-
*p_liquidScreen - pointer to the LiquidScreen object
- Returns
- true on success and false if the screen is not found
| bool LiquidMenu::change_screen | ( | uint8_t | number | ) |
Switches to the specified screen.
- Parameters
-
number - the number of the screen
- Returns
- true on success and false if the number of the screen is invalid.
| void LiquidMenu::next_screen | ( | ) |
Switches to the next screen.
- Examples:
- functions_menu.ino.
| void LiquidMenu::operator++ | ( | ) |
Switches to the next screen.
- Note
- Prefix increment operator overloading.
| void LiquidMenu::operator++ | ( | int | ) |
Switches to the next screen.
- Note
- Postfix increment operator overloading.
| void LiquidMenu::operator-- | ( | ) |
Switches to the previous screen.
- Note
- Prefix decrement operator overloading.
| void LiquidMenu::operator-- | ( | int | ) |
Switches to the previous screen.
- Note
- Postfix decrement operator overloading.
| bool LiquidMenu::operator= | ( | LiquidScreen & | p_liquidScreen | ) |
Switches to the specified screen.
- Parameters
-
&p_liquidScreen - pointer to the screen
- Returns
- true on success and false if the screen is not found
| bool LiquidMenu::operator= | ( | uint8_t | number | ) |
Switches to the specified screen.
- Parameters
-
number - the number of the screen
- Returns
- true on success and false if the number of the screen is invalid.
| void LiquidMenu::previous_screen | ( | ) |
Switches to the previous screen.
- Examples:
- functions_menu.ino.
| bool LiquidMenu::set_focusPosition | ( | Position | position | ) |
Sets the focus position for the whole menu at once.
The valid positions are LEFT
and RIGHT
. CUSTOM
is not valid for this function because it needs individual colum and row for every line.
- Parameters
-
position - LEFT
orRIGHT
- Returns
- true on success and false if the position specified is invalid
- Note
- The
Position
is enum class. UsePosition::(member)
when specifeing the position.
- See also
- Position
| bool LiquidMenu::set_focusSymbol | ( | Position | position, |
| uint8_t | symbol[8] | ||
| ) |
Changes the focus indicator's symbol.
The symbol is changed for a particular position.
- Parameters
-
position - the position for which the symbol will be changed symbol[] - the symbol
- Returns
- true on success and false if the position specified is invalid
- Note
- The
Position
is enum class. UsePosition::(member)
when specifeing the position.
- See also
- Position
| void LiquidMenu::softUpdate | ( | ) | const |
Prints the current screen to the display (without clearing).
Call this method when there is a change in some of the variable attached and the new symbols cover all of the old symbols.
- Note
- This method doesn't clear the display.
| void LiquidMenu::switch_focus | ( | bool | forward = true | ) |
Switches the focus.
Switches the focus to the next or previous line according to the passed parameter.
- Parameters
-
forward - true for forward, false for backward
- Examples:
- functions_menu.ino.
| void LiquidMenu::update | ( | ) | const |
Prints the current screen to the display.
Call this method when there is a change in some of the variable attached.
- Examples:
- functions_menu.ino.
The documentation for this class was generated from the following files:
- LiquidMenu.h
- LiquidMenu.cpp


Scan Dewar and Rack
Barcode or FacilityCode
Location
Submit
Cancel
Find a Dewar
Facility Code
Search
Cancel
Dewars that need refilling
[[dewar]]
[[message]]
[[rack]]:
[[dewar.barcode]]
empty
Confirm Clear
Confirm removal of dewar from location [[locationToRemove]]?


(hide)
Testicular germ cell tumor risk I('TGCT'; i.e. testicular cancer risk) was increased 40% per copy of the major allele (C) at rs4324715 and rs6897876 (OR = 1.37, CI: 1.14–1.64; OR = 1.39, CI: 1.16–1.66, respectively), based on a genome-wide scan of 277 primarily Caucasian TGCT cases and 919 controls. Men who have two copies of the common version of the sprouty 4 SPRY4 gene have a 1.5-fold higher risk of testicular cancer than men who have two copies of the less common or minor version of the gene. [doi|10.1038/ng.393]


{{.Title}}
{{ .Content }} {{ with .Site.GetPage "section" "post" }}{{ range first 1 .Data.Pages }}latest from the blog
{{ .Summary}}
{{ if .Params.tags }}
featured book: R Data Mining |
|
|---|---|
R data mining is a data mining crime book, a new kind of book we developed with good guys at Packt and the great statistician Enrico Pegoraro. What is a data mining crime book? It is a book stuctured to teach you data mining fundamentals while immersing you in a crime case. read more |
other projects
|
SmoothJob |
Afraus |


This package provides a class with factory methods for create TrustManager array objects and KeyManager array objects.


This is just a sandbox for development.
Local video, single source, with poster and bound play event
Test 2
Vimeo opened in lightbox
Open the lightbox


2 implementations of ICommandRuntime2
System.Management.Automation (2)
engine\DefaultCommandRuntime.cs (1)
15
internal class DefaultCommandRuntime :
ICommandRuntime2
engine\MshCommandRuntime.cs (1)
29
internal class MshCommandRuntime :
ICommandRuntime2
6 references to ICommandRuntime2
System.Management.Automation (6)
engine\cmdlet.cs (6)
681
ICommandRuntime2
commandRuntime2 = commandRuntime as
ICommandRuntime2
;
739
ICommandRuntime2
commandRuntime2 = commandRuntime as
ICommandRuntime2
;
1568
ICommandRuntime2
runtime2 = commandRuntime as
ICommandRuntime2
;


An Akan name is given to a child at birth in the Ghana community.
Please click on the buttons to input your information and glimpse what your Akan name will be.


Sources enumerate (yield from each) generator specs which describe where to find and how to create generators. Enumerable is mixed in so, for example, source.collect will retrieve every generator. Sources may be assigned a label to distinguish them.
Methods
Included Modules
Attributes
| [R] | label |
Public Class methods
[ show source ]
# File vendor/rails/railties/lib/rails_generator/lookup.rb, line 164 164: def initialize(label) 165: @label = label 166: end
Public Instance methods
The each method must be implemented in subclasses. The base implementation raises an error.
[ show source ]
# File vendor/rails/railties/lib/rails_generator/lookup.rb, line 170 170: def each 171: raise NotImplementedError 172: end
Return a convenient sorted list of all generator names.
[ show source ]
# File vendor/rails/railties/lib/rails_generator/lookup.rb, line 175 175: def names 176: map { |spec| spec.name }.sort 177: end


CloudWatch Metric Dimension Property Type
The Metric Dimension is an embedded property of the AWS::CloudWatch::Alarm type. Dimensions are arbitrary name/value pairs that can be associated with a CloudWatch metric. You can specify a maximum of 10 dimensions for a given metric.
Syntax
JSON
{ "Name" :
String
, "Value" :String
}
YAML
Name:
String
Value:String
Properties
Name
-
The name of the dimension, from 1–255 characters in length.
Required: Yes
Type: String
Value
-
The value representing the dimension measurement, from 1–255 characters in length.
Required: Yes
Type: String
Examples
Two CloudWatch alarms with dimension values supplied by the Ref function
The Ref and Fn::GetAtt intrinsic functions are often used to supply
values for CloudWatch metric dimensions. Here is an example using the Ref
function.
"CPUAlarmHigh": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmDescription": "Scale-up if CPU is greater than 90% for 10 minutes", "MetricName": "CPUUtilization", "Namespace": "AWS/EC2", "Statistic": "Average", "Period": "300", "EvaluationPeriods": "2", "Threshold": "90", "AlarmActions": [ { "Ref": "WebServerScaleUpPolicy" } ],
"Dimensions": [ { "Name": "AutoScalingGroupName", "Value": { "Ref": "WebServerGroup" } } ],
"ComparisonOperator": "GreaterThanThreshold" } }, "CPUAlarmLow": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmDescription": "Scale-down if CPU is less than 70% for 10 minutes", "MetricName": "CPUUtilization", "Namespace": "AWS/EC2", "Statistic": "Average", "Period": "300", "EvaluationPeriods": "2", "Threshold": "70", "AlarmActions": [ { "Ref": "WebServerScaleDownPolicy" } ],"Dimensions": [ { "Name": "AutoScalingGroupName", "Value": { "Ref": "WebServerGroup" } } ],
"ComparisonOperator": "LessThanThreshold" } }
See Also
-
Dimension in the Amazon CloudWatch API Reference
-
Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference in the Amazon CloudWatch Developer Guide


Pool cleaning service
Our Weekly residential pool cleaning is designed for unscreened pools, with or without spas, which may require extra attention because of leaves or debris.
Starting at
$65.00 a month
Pool cleaning service
Our Weekly residential pool cleaning is designed for unscreened pools, with or without spas, which may require extra attention because of leaves or debris.
Starting at
$65.00 a month
Pool cleaning service
Our Weekly residential pool cleaning is designed for unscreened pools, with or without spas, which may require extra attention because of leaves or debris.
Starting at
$65.00 a month


ASP.NET: Blackbelt Web Form Programming
Here. From Vaclav Novak: Push your ASP.NET Web Forms to the extreme. This session focuses on advanced tips and tricks for ASP.NET page development, including UI that morphs based on the data it displays, dynamic templates, passing values from page to page, adding client events to server controls, and more. Assumes a basic understanding of ASP.NET pages and controls.


---
layout: default
title: Textbooks Are A Right
---
The Youth Are Our Future Please Help Provide Textbooks When The School Will Not.A Good Education Is A Right!
To Keep Us Educated In The Best Most Efficient Way Possible We Need A REAL Curriculum.
We Need A Proper Education To Grow As Students And Prepare Us For College.
A Good Education Creates A Great Foundation That We Will Need For Our Entire Lives.
I am a student who wants and knows I can receive a better education but cannot due to lack of materials. It is also difficult to hop from curriculum to curriculum and work to the best of my ability. Textbook would help a ton so I hope you decide to donate!
Sign up to hear the latest news and progress in our fight for textbooks.


{% extends "accounts/user_settings_base.html" %} {% load i18n %}{% load bootstrap %} {% block title %}{% trans 'Account settings' %}{% endblock %} {% block settings_panel %}
{% blocktrans trimmed %} If you'ld like to stop using this service and delete this user profile and all your data (especially all hosts and all domains created by this user), you can do it here. {% endblocktrans %}
{% trans "Delete User Profile" %}


Resume
Kaveh Saleminejad
Fullstack Web Developer Student at Epicodus Bootcamp
My name is Kaveh Saleminejad. I am from Persia. Here is my resume about my jobs and experiences
Work Experience
- Front-end web developer 2018-present
- CEO Saleminejad Trading Co. 2003-2017
- STR Construction, Sakhreh Bushehr 2005-2013
Education
- Fullstack web developing courses, Epicodus (Not Finished yet)
- Passed ESL classes, South Seattle College
- Bachelor Degree in Civil Engineering, Azad University, Bushehr
Skills
- Leadership
- Problem Solving
- Critical Thinking
- Speaking English,Persian


networkTomography: Tools for network tomography
networkTomography implements the methods developed and evaluated in
Blocker and Airoldi (2011) and Airoldi and Blocker (2012). These include the
authors' own dynamic multilevel model with calibration based upon a Gaussian
state-space model in addition to implementations of the methods of Tebaldi &
West (1998; Poisson-Gamma model with MCMC sampling), Zhang et al. (2002;
tomogravity), Cao et al. (2000; Gaussian model with mean-variance relation),
and Vardi (1996; method of moments). Data from the 1router network of Cao et
al. (2000), the Abilene network of Fang et al. (2007), and the CMU network
of Blocker and Airoldi (2011) are included for testing and reproducibility.
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=networkTomography
to link to this page.


Improve website event tracking with trak.js
Whether you use Google Analytics or another provider, adding tracking events to a site is often a painful experience. Events usually have to be defined in javascript which can make it tricky to dynamically change parameters based on certain criteria. Wouldn’t it be nice to define events within the markup so that hundreds of click events can be left free from your javasript code? Trak.js does just that.
Put simply, trak.js is a wrapper for any analytics API. By default it uses Google Universal Analytics but you can override this with the older ga.js or Google Tag Manager if you wish, or you can even add custom event trackers as well, instead of Google Analytics.
Using trak.js
There are two main ways to use trak.js, as data-trak
attributes in your markup or in your javascript code.
data-trak attr implementation:
link
Custom trigger type (new as of v0.4.0)
data-trak
attrs can also define a custom trigger type instead of click
. Now mouseover
, touchstart
, focus
, blur
or any other valid event can be used to trigger a trak event. Just add "trigger": "eventName"
to the options object. See below for an example of this using the focus
event:

Custom trigger type
Javascript implementation
trak.event({
category: 'engagement',
action: 'signpost',
label: 'page.href'
});
trak.event({
category: 'engagement',
action: 'signpost',
label: 'page.href',
value: 10,
nonInteraction: true,
eventName: 'This is a Google Tag Manager event name'
});
API Reference
Arguments object: (these are all optional)
category: A string value of the category value to set
action: A string value of the action value to set
label: A string value of the label value to set
value: An integer
trigger: A string value of a valid event name: click
, focus
, mouseover
etc
nonInteraction: An integer
eventName: A string value used only with Google Tag Manager. Define your GTM event name here
If any property is left undefined
, the browser’s default value will be used instead.
Wildcards
trak.js introduces the concept of wildcards when working with your events, this makes it extremely easy to use more complex values in your events. There are a number of wildcards available for both the data-trak
attr and js implentation. These can be used to specify certain options like the page title, the url, the current anchor’s href value and a few others.
page.href
wildcard useswindow.location.href
as the value.page.title
wildcard usesdocument.title
as the value.link.href
wildcard usesthis.href
as the value.link.title
wildcard usesthis.title
as the value.referrer
usesdocument.referrer
as the value

link

link

link

link

link
Getting the Library
Direct downloads
- Minified (~481 B gzipped)
- Unminified (~1.7 KB gzipped)
Bower
bower install trak
NPM
npm install trak.js --save
More information
More information and the full documentation can be found at our repository on Github. Also, options can be overridden; there’s a debug mode; and most importantly, almost any other analytics APIs can be used.


|
Bullet Collision Detection & Physics Library
|
The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays. More...
#include <btTriangleIndexVertexArray.h>
Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btTriangleIndexVertexArray () | |
| virtual | ~btTriangleIndexVertexArray () |
| btTriangleIndexVertexArray (int numTriangles, int *triangleIndexBase, int triangleIndexStride, int numVertices, btScalar *vertexBase, int vertexStride) | |
| void | addIndexedMesh (const btIndexedMesh &mesh, PHY_ScalarType indexType=PHY_INTEGER) |
| virtual void | getLockedVertexIndexBase (unsigned char **vertexbase, int &numverts, PHY_ScalarType &type, int &vertexStride, unsigned char **indexbase, int &indexstride, int &numfaces, PHY_ScalarType &indicestype, int subpart=0) |
| get read and write access to a subpart of a triangle mesh this subpart has a continuous array of vertices and indices in this way the mesh can be handled as chunks of memory with striding very similar to OpenGL vertexarray support make a call to unLockVertexBase when the read and write access is finished More... | |
| virtual void | getLockedReadOnlyVertexIndexBase (const unsigned char **vertexbase, int &numverts, PHY_ScalarType &type, int &vertexStride, const unsigned char **indexbase, int &indexstride, int &numfaces, PHY_ScalarType &indicestype, int subpart=0) const |
| virtual void | unLockVertexBase (int subpart) |
| unLockVertexBase finishes the access to a subpart of the triangle mesh make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished More... | |
| virtual void | unLockReadOnlyVertexBase (int subpart) const |
| virtual int | getNumSubParts () const |
| getNumSubParts returns the number of seperate subparts each subpart has a continuous array of vertices and indices More... | |
| IndexedMeshArray & | getIndexedMeshArray () |
| const IndexedMeshArray & | getIndexedMeshArray () const |
| virtual void | preallocateVertices (int numverts) |
| virtual void | preallocateIndices (int numindices) |
| virtual bool | hasPremadeAabb () const |
| virtual void | setPremadeAabb (const btVector3 &aabbMin, const btVector3 &aabbMax) const |
| virtual void | getPremadeAabb (btVector3 *aabbMin, btVector3 *aabbMax) const |
| Public Member Functions inherited from btStridingMeshInterface | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btStridingMeshInterface () | |
| virtual | ~btStridingMeshInterface () |
| virtual void | InternalProcessAllTriangles (btInternalTriangleIndexCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const |
| void | calculateAabbBruteForce (btVector3 &aabbMin, btVector3 &aabbMax) |
| brute force method to calculate aabb More... | |
| const btVector3 & | getScaling () const |
| void | setScaling (const btVector3 &scaling) |
| virtual int | calculateSerializeBufferSize () const |
| virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
| fills the dataBuffer and returns the struct name (and 0 on failure) More... | |
Protected Attributes | |
| IndexedMeshArray | m_indexedMeshes |
| int | m_pad [2] |
| int | m_hasAabb |
| btVector3 | m_aabbMin |
| btVector3 | m_aabbMax |
| Protected Attributes inherited from btStridingMeshInterface | |
| btVector3 | m_scaling |
The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays.
Additional meshes can be added using addIndexedMesh No duplicate is made of the vertex/index data, it only indexes into external vertex/index arrays. So keep those arrays around during the lifetime of this btTriangleIndexVertexArray.
Definition at line 65 of file btTriangleIndexVertexArray.h.
|
inline |
Definition at line 78 of file btTriangleIndexVertexArray.h.
|
virtual |
Definition at line 33 of file btTriangleIndexVertexArray.cpp.
| btTriangleIndexVertexArray::btTriangleIndexVertexArray | ( | int | numTriangles, |
| int * | triangleIndexBase, | ||
| int | triangleIndexStride, | ||
| int | numVertices, | ||
| btScalar * | vertexBase, | ||
| int | vertexStride | ||
| ) |
Definition at line 18 of file btTriangleIndexVertexArray.cpp.
|
inline |
Definition at line 87 of file btTriangleIndexVertexArray.h.
| btTriangleIndexVertexArray::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
inline |
Definition at line 110 of file btTriangleIndexVertexArray.h.
|
inline |
Definition at line 115 of file btTriangleIndexVertexArray.h.
|
virtual |
Implements btStridingMeshInterface.
Definition at line 57 of file btTriangleIndexVertexArray.cpp.
|
virtual |
get read and write access to a subpart of a triangle mesh this subpart has a continuous array of vertices and indices in this way the mesh can be handled as chunks of memory with striding very similar to OpenGL vertexarray support make a call to unLockVertexBase when the read and write access is finished
Implements btStridingMeshInterface.
Definition at line 37 of file btTriangleIndexVertexArray.cpp.
|
inlinevirtual |
getNumSubParts returns the number of seperate subparts each subpart has a continuous array of vertices and indices
Implements btStridingMeshInterface.
Definition at line 105 of file btTriangleIndexVertexArray.h.
|
virtual |
Reimplemented from btStridingMeshInterface.
Definition at line 86 of file btTriangleIndexVertexArray.cpp.
|
virtual |
Reimplemented from btStridingMeshInterface.
Definition at line 74 of file btTriangleIndexVertexArray.cpp.
|
inlinevirtual |
Implements btStridingMeshInterface.
Reimplemented in btTriangleMesh.
Definition at line 121 of file btTriangleIndexVertexArray.h.
|
inlinevirtual |
Implements btStridingMeshInterface.
Reimplemented in btTriangleMesh.
Definition at line 120 of file btTriangleIndexVertexArray.h.
|
virtual |
Reimplemented from btStridingMeshInterface.
Definition at line 79 of file btTriangleIndexVertexArray.cpp.
|
inlinevirtual |
Implements btStridingMeshInterface.
Definition at line 101 of file btTriangleIndexVertexArray.h.
|
inlinevirtual |
unLockVertexBase finishes the access to a subpart of the triangle mesh make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished
Implements btStridingMeshInterface.
Definition at line 99 of file btTriangleIndexVertexArray.h.
|
mutableprotected |
Definition at line 73 of file btTriangleIndexVertexArray.h.
|
mutableprotected |
Definition at line 72 of file btTriangleIndexVertexArray.h.
|
mutableprotected |
Definition at line 71 of file btTriangleIndexVertexArray.h.
|
protected |
Definition at line 69 of file btTriangleIndexVertexArray.h.
|
protected |
Definition at line 70 of file btTriangleIndexVertexArray.h.


The previous two examples introduced Twisted Web's session APIs. This
included accessing the session object, storing state on it, and retrieving it
later, as well as the idea that the Session
object has a lifetime which is tied to
the notional session it represents. This example demonstrates how to exert some
control over that lifetime and react when it expires.
The lifetime of a session is controlled by the sessionTimeout
attribute of the Session
class. This attribute gives the number of
seconds a session may go without being accessed before it expires. The default
is 15 minutes. In this example we'll change that to a different value.
One way to override the value is with a subclass:
1 2 3 4
from twisted.web.server import Session class ShortSession(Session): sessionTimeout = 60
To have Twisted Web actually make use of this session class, rather
than the default, it is also necessary to override
the sessionFactory
attribute of Site
. We could do this with another
subclass, but we could also do it to just one instance
of Site
:
1 2 3 4
from twisted.web.server import Site factory = Site(rootResource) factory.sessionFactory = ShortSession
Sessions given out for requests served by this Site
will
use ShortSession
and only last one minute without activity.
You can have arbitrary functions run when sessions expire,
too. This can be useful for cleaning up external resources associated
with the session, tracking usage statistics, and more. This
functionality is provided via Session.notifyOnExpire
. It accepts a
single argument: a function to call when the session expires. Here's a
trivial example which prints a message whenever a session expires:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
from twisted.web.resource import Resource class ExpirationLogger(Resource): sessions = set() def render_GET(self, request): session = request.getSession() if session.uid not in self.sessions: self.sessions.add(session.uid) session.notifyOnExpire(lambda: self._expired(session.uid)) return "" def _expired(self, uid): print "Session", uid, "has expired." self.sessions.remove(uid)
Keep in mind that using a method as the callback will keep the instance (in
this case, the ExpirationLogger
resource) in memory until the
session expires.
With those pieces in hand, here's an example that prints a message whenever a session expires, and uses sessions which last for 5 seconds:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
from twisted.web.server import Site, Session from twisted.web.resource import Resource from twisted.internet import reactor class ShortSession(Session): sessionTimeout = 5 class ExpirationLogger(Resource): sessions = set() def render_GET(self, request): session = request.getSession() if session.uid not in self.sessions: self.sessions.add(session.uid) session.notifyOnExpire(lambda: self._expired(session.uid)) return "" def _expired(self, uid): print "Session", uid, "has expired." self.sessions.remove(uid) rootResource = Resource() rootResource.putChild("logme", ExpirationLogger()) factory = Site(rootResource) factory.sessionFactory = ShortSession reactor.listenTCP(8080, factory) reactor.run()
Since Site
customization is required, this example can't be
rpy-based, so it brings back the manual reactor.listenTCP
and reactor.run
calls. Run it and visit /logme
to see
it in action. Keep visiting it to keep your session active. Stop visiting it for
five seconds to see your session expiration message.


Shakespeare In Love.
Starring Joseph Fiennes and Gwyneth Paltrow Directed By John Madden Running Time: 2 hours.
(Miramax)
This story about the Bard and his love for a woman named Viola is witty, dramatic and very very enjoyable. The plot centres around William Shakespeare (Fiennes) who is stuck for ideas for his next play. He soon hashes one together, and gets a cast together, featuring the likes of Ned Alleyn (Ben Affleck), but the one cast member who strikes him is a young 'boy' played by Paltrow. They soon start a relationship, but she is already set to be married to the slimy Lord Wessex (Colin Firth) who wants nothing but her money. Will Will (pun kinda intended) both keep Viola and get his play finished in time?
Despite a simple story conceived by Tom Stoppard and Marc Norman, Shakespeare in Love is undeniably charming. Wit and drama is dished out in equal amounts, and there's a fair bit of sentimentally in there aswell. The cast give all their worth to the well realised script. Fiennes is a standout as the young William, giving an energetic and well rounded performance. Ben Affleck is fun as the 'Bruce Willis' of the Elizabethan age, offering a change of pace for him since the hectic Armageddon. Colin Firth doesn't have much to work with what is a very two dimensional character, but he gives a suitably slimy performance even if he is nothing but a plot device. Also popping up are British comedians Martin Clunes and Mark Williams giving two likeable performances, Geoffrey Rush as a flustered theatre manager, and Dame Judi Dench makes an appearance as Queen Elizabeth, who gets a very funny scene at the end of the film. The cast list goes on, and each individual performance is a delight.
But it's Paltrow who has to carry the film, and while she's a competent actress, she's never experienced a role as challenging as this one. Thankfully, she's really rather good, delivering Shakespeare lines with ease and brings a lot of charm and warmth to her character. I find it hard to believe, however, that Shakespeare mistook her for a boy, and even with a moustache she still looks as beautiful as ever (make of that what you will.) And, the chemistry between Fiennes and Paltrow is intense, although with boyfriend Affleck on set it may have been a bit embarrassing for her acting slushy with another man right in front of her own man!
While the story is wafer thin, it's well handled by Mrs. Brown director John Madden, who grabs the audience attention and keeps a strong hold on them. I found it very hard not to be entranced by the film, with it's rich, vibrant colours and costumes and entertaining interpretation of the screenplay. There's also lots of contemporary references to look out for, the long 'credit's list on Will's new play being one of them. The soundtrack is nice, and the entire production is very enchanting.
Knowledge of Shakespeare and his plays aren't really needed, although it may help to get some of the jokes. The film is based around one of the Bards better known plays, 'Romeo & Juliet,' which thanks to Leonardo DiCaprio has been opened up to a whole new generation of teenage girls. In summary, it's very hard not to like Shakespeare in Love. It truly is a lovely film, and would be an excellent use of two hours.
Heartily recommended.
DAVID WILCOCK ©1999<EMAIL_ADDRESS>Visit the Wilcock Movie Page! http://www.geocities.com/Hollywood/9061
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


PHOTOS: Snoozing seal pup captures attention at White Rock Pier
by Aaron Hinks
A pod of seals had a relaxing Saturday at White Rock Pier, but a young pup sleeping on the breakwater captured the attention of onlookers.
Seals frequently visit the city’s iconic structure, however, their presence has increased within the last week.


Peru Two drugs mule Michaella McCollum forced to watch lesbian sex romps in prison
The mum-of-two said she was shocked by the behaviour of fellow inmates.
by Kathleen SpeirsPeru Two d rugs mule Michaella McCollum has spoken out lesbian sex romps on bunk beds during her time behind bars.
The mum-of-two spent three years in a Peruvian jail with Scot Melissa Reid from Lenzie, East Dumbartonshire.
The pair were sentenced to six years and eight months in prison after trying to smuggle 11kg of cocaine out of Peru’s capital, Lima in August 2013, but were both released in 2016.
Michaella is breaking her silence on what she and Melissa witnessed in the South American cells among female inmates, the Irish Mirror reports .
The 26-year-old wrote: "With all the chetos around, I shouldn’t have been surprised to discover a couple of them going at it on one of the bunks.
“I didn’t know where to look but they barely acknowledged me.

She continued: “Not all the disturbances in the workshops were the result of violence. I was there one day, middle of the bench as usual, women to my right and left.
“I was chatting when I got a nudge from the girl on the other side of me. I turned around.
“The girl on the other side of her was off the bench, her trousers and pants round her ankles.
“Just like that, right next to me, in front of hundreds of prying eyes. It was a weird situation.
“Every single person around the table carried on sewing and chatting or watching as if it was the most normal thing in the world.”
She added: “Honestly, I think we were just grateful for something to break up the day.

“Maybe it was normal. Like scratching an itch. A couple of times a day you’d see two or three couples or triples at it.
“Often it was between chetos and others but sometimes two very feminine-looking women would go at it as well.”


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/leanpkg.20upgrade.html ---
It seems leanpkg upgrade
doesn't want to upgrade mathlib past<PHONE_NUMBER>68ec261e031cefc6d30e0304088b03 Is someone else seeing this?
Is your Lean 3.4.1?
yes
then I think it upgrades to mathlib branch 3.4.1
no
things would be much worse then
maybe your upstream is leanprover-community, that one is still at the commit you mention
Indeed
That's silly
Someone messed up
I took the opportunity to update community mathlib
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


§490:11-108 Presumption that rule of law continues unchanged. Unless a change in law has clearly been made, the provisions of the new U.C.C. shall be deemed declaratory of the meaning of the old U.C.C. [L 1978, c 155, pt of §1(34)]


| 1073 | (A) | women and wayke folke and those þat weryn of Elde |
| 1077 | (C) | As wymmen & weke folk . þat fallen were in elde |
| 1060 | (D) | wymmen and wirk folk þat were in grete elde |
| 1040 | (E) | as wommen & weyk foolk . þat were in gret age |
| (Ex) | ---- no text ---- | |
| 1098 | (L) | wymmen & weyke folke þat weren of olde age |
| 1012 | (P) | line illegible |
| 1049 | (U) | women and wayker folke / that were in grete elde |
| 138 | (V) | wymmen and werke folke . þat werin of eelde |


Document
cmd-ssg
<img src="https://i.ibb.co/VDZ9LmC/cmd-ssg-img1.png"
alt="Program running -h"
style="float: left; margin-right: 10px;" />
deliverable 0.1 for OSD600 open source course at seneca
Description: command-line-static site tool
VERSION : 0.1.0
Use : Process input .txt or .md files into generated .html files.
FEATURES :
- MIT license chosen
- Built with Node.js, Commander
- running the tool with --version or -v flag will print the tool's name and current version
- running the tool with --help or -h flag should print standard help/usage message also showing how to run the tool, which command line flags and arguments can be used, etc.
- specify input file or folder with --input or -i
- accept .txt and .md files
- generate one .html output file for each input file
- Use -o or --output to specify output folder else a ./dist folder is used by default
- input can be deep within the files such as .\test\test2\
- parse a title from your input files
- adding -s or --stylesheet stylesheet option
- proper error message if incorrect file/folder inputs
- Use -c or --config option with json file to pass options from the file
CONTRIBUTING :
See CONTRIBUTING.md for setup and development
Special Thanks : Kevan Yang
Markdown Feature: Oliver Pham
Author : Eugene Chung
License
MIT


gobject.Value
The gobject library’s GValue
type is represented
in gobbi by
gobject.Value
.
See the list example for an example of its use.
The gobject library’s GValue
type is represented
in gobbi by
gobject.Value
.
See the list example for an example of its use.


A brief history of our work on understanding, explaining, and predicting variation in food web strucure.
The first quantitative explanation (i.e. mathematical model) for the number of trophic links one would expect to see in a food web. We also showed that when parameterised with independent data the explanation made very nice predictions of what is observed in real food webs (Beckerman et al 2006.). The explanation is based on the contingency foraging model that predicts which of the food items a consumer should choose to consume out of all available food items. The contingency model does this by finding the food items that would maximise energy intake rate, and works with organismal traits such as energetic content of a food item, rate of space clearance, time to handle a food items, and probability of encountering different food items.
The first model able to predict food web complexity and structure. We added to the model size dependency of the organismal traits (i.e. we added allometries of the foraging relevant traits) (Petchey et al 2008). Doing this created explanations for the patterning of trophic links in food webs that were able to very well explain the observed structure of some real food webs. We termed this model the Allometric diet breadth model (ADBM).
The first predictions of temperature effects on food web complexity (connectance). We added to the model temperature dependence of the organismal traits to the ADBM (Petchey et al 2010). The effect of temperature on the number of links (and connectance) in a food web is predicted to depend on variation in the effects of temperature on the different organismal traits.
83% of trophic links predicted correctly when ignoring taxonomy.. When allowed to ignore taxomony the ADBM explained the structure of empirical food webs almost twice as accurately as the equivalent species-based explanation, with the best performance being 83% of the links predicted correctly in the Broadstone Stream food web. (Nasty paywall on this: Woodward et al 2010) (Here’s a link to the article on SciHub, though you should be aware that it may be illeagal to use this resource).
Clarification of what is so different and special about our approach to explaining and predicting food web structure. Peer reviews of Petchey et al 2008 argued that we should not compare our model to previous ones as it would be akin to comparing apples and oranges–we were happy they view our model as being so different/special. We clarified the differences and their implications (e.g. that comparisons with other types of model is rather misplaced) in this article: Petchey et al 2011.
Adpative rewiring predicted by the ADBM stabilises food webs. A study involving model food webs in which species are made extinct and the remaining ones adjust their diets according to the contingency foraging model in the ADBM. This adjustment, also termed rewiring generally leads to fewer secondary extinctions, though not always, depending on species body sizes, and the criteria used for secondary extinctions. (Thierry et al 2011)
Foraging allometries explain variation in food web structure. An theoretical investigation of if and how allomtries of organismal traits (e.g. handling time, space clearance rate) affect the foodweb allometries: the generality‐mass correlation, the vulnerability‐mass correlation and the trophic height‐mass correlation. The results demonstrate how allometries of individual foraging behaviour are linked across scales of organisation. (Thierry et al 2011)
What next? Its now early 2019 and we are starting some new related projects. Hopefully we will have some more points to add here very soon.


<script src="RGraph.common.core.js"></script> <script src="RGraph.pie.js"></script>Put this where you want the chart to show up:
<div> <canvas id="cvs" width="650" height="400">[No canvas support]</canvas> </div>This is the code that generates the chart - it should be placed AFTER the
canvas
tag(s):


WebAuthn Sample App
Source code on
GitHub
Register credential
On bound (platform) authenticator
On roaming (cross-platform) authenticator
Authenticate credential
Last created in this browser
Any credential (allowCredentials empty)
Register
Authenticate


Have a difficult choice to make? Enter all of your options (hitting enter after each one), then hit decide!


Please enter the name of the category to add:
Add
Are you sure you want to delete the
?
Yes
No
A category with that name already exists.
Ok
Google Gears does not appear to be installed.
Please go
HERE
to install it, then reload this application.
You can still use this application, but data
WILL NOT
be saved between browser sessions!
Ok
To perform a search you must specify at least one search criteria.
Ok
Add Category
Delete Category
Add Snippet
Delete Snippet
This category currently has no snippets in it.
Select a category to view the snippets in it.
Snippet Name:
Description
Author:
eMail
Web Link
Save
Save
Save
The following keywords are associated with this snippet:
Save
Search
Keywords:
Code:
Name:
Description:
Author:
Notes:
Search
Clear
Search results will appear here
(Hint: select a category to do a search)
No snippets were founding matching your search criteria


|
Class Summary |
| ASN1Encodable |
|
| ASN1EncodableVector |
the parent class for this will eventually disappear. |
| ASN1Generator |
|
| ASN1InputStream |
a general purpose ASN.1 decoder - note: this class differs from the
others in that it returns null after it has read the last object in
the stream. |
| ASN1Null |
A NULL object. |
| ASN1Object |
|
| ASN1ObjectParser |
|
| ASN1OctetString |
|
| ASN1OutputStream |
|
| ASN1Sequence |
|
| ASN1Set |
|
| ASN1StreamParser |
|
| ASN1TaggedObject |
ASN.1 TaggedObject - in ASN.1 nottation this is any object proceeded by
a [n] where n is some number - these are assume to follow the construction
rules (as with sequences). |
| BERConstructedOctetString |
|
| BERConstructedSequence |
Deprecated. use BERSequence |
| BERGenerator |
|
| BERInputStream |
Deprecated. use ASN1InputStream |
| BERNull |
A BER NULL object. |
| BEROctetStringGenerator |
|
| BEROctetStringParser |
|
| BEROutputStream |
|
| BERSequence |
|
| BERSequenceGenerator |
|
| BERSequenceParser |
|
| BERSet |
|
| BERSetParser |
|
| BERTaggedObject |
BER TaggedObject - in ASN.1 nottation this is any object proceeded by
a [n] where n is some number - these are assume to follow the construction
rules (as with sequences). |
| BERTaggedObjectParser |
|
| ConstructedOctetStream |
|
| DefiniteLengthInputStream |
|
| DERApplicationSpecific |
Base class for an application specific object |
| DERBitString |
|
| DERBMPString |
DER BMPString object. |
| DERBoolean |
|
| DERConstructedSequence |
Deprecated. use DERSequence. |
| DERConstructedSet |
Deprecated. use DERSet |
| DEREncodableVector |
a general class for building up a vector of DER encodable objects -
this will eventually be superceded by ASN1EncodableVector so you should
use that class in preference. |
| DEREnumerated |
|
| DERGeneralizedTime |
Generalized time object. |
| DERGeneralString |
|
| DERGenerator |
|
| DERIA5String |
DER IA5String object - this is an ascii string. |
| DERInputStream |
Deprecated. use ASN1InputStream |
| DERInteger |
|
| DERNull |
A NULL object. |
| DERNumericString |
DER NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }. |
| DERObject |
|
| DERObjectIdentifier |
|
| DEROctetString |
|
| DEROutputStream |
|
| DERPrintableString |
DER PrintableString object. |
| DERSequence |
|
| DERSequenceGenerator |
|
| DERSet |
A DER encoded set object |
| DERT61String |
DER T61String (also the teletex string) |
| DERTaggedObject |
DER TaggedObject - in ASN.1 nottation this is any object proceeded by
a [n] where n is some number - these are assume to follow the construction
rules (as with sequences). |
| DERUniversalString |
DER UniversalString object. |
| DERUnknownTag |
We insert one of these when we find a tag we don't recognise. |
| DERUTCTime |
UTC time object. |
| DERUTF8String |
DER UTF8String object. |
| DERVisibleString |
DER VisibleString object. |
| IndefiniteLengthInputStream |
|
| LimitedInputStream |
|
| OIDTokenizer |
class for breaking up an OID into it's component tokens, ala
java.util.StringTokenizer. |
| Strings |
|


I enjoy writing software that help people on their daily life!
I am passionate about computer engineering and information technology.
I love to learn new things and help others and I am highly motivated and willing to work hard to achieve success in what I do.
Here are some of the technologies I enjoy writing day-to-day:
The easiest way to contact me is via LinkedIn: @marcelonogueira
Thanks for visiting!


This is a hand-written little html page. All it does is include the jbrowse-protein-viewer.js bundle with a script tag, and then call new JBrowseProteinViewer.Viewer with a JSON object of data. It also directly calls an SVG feature renderer with hand-inputted data and nclist-adapter retrieved data


Introduction
In this section we will be following along with and completing course material from the Pentester Academy's SecurityTube Linux Assembly language Expert 64 Bit course. The second assignment is writing a Hello World program in 64 Bit assembly language. It is to be coded, assembled, linked and run. Execution is then to be monitored via GDB. We will use the GEF add-on for GDB to enhance the visual presentation from GDB.
Project code is contained in my github.
The program helloworld.asm
The screenshot below displays the contents of the program helloworld.asm. The program contains a string called hello_world that holds the string Hello World to the SLAE-64 Course. A new line is added by appending the 0x0a ASCII character. We need to assemble, link, run and instruction step this program in GDB.
The program is assembled with:
$ nasm -felf64 helloworld.asm -o helloworld.oAnd linked with:
$ ld helloworld.o -o helloworld
We then run the executable and look at it's objdump. The results of these operations is shown below:
In the above screenshot, we assemble and link the program. We then use the objdump tool to look at the opcodes within the .text section by using the -d switch. Finally the program is run using:
$ ./helloworld
The "./" is needed because the executable is not in a directory listed in the PATH environment variable.
In the objdump of the executable, we notice large amounts of null bytes (i.e. 00). These are not good for shellcode, since in many cases, a victim process encountering a null byte as input understands the null byte as an end of the input. This would prematurely end the victim program from receiving all of the shellcodes contents.
In further videos in this course, the instructor shows how to remove these null bytes, while still maintaining the same functionality in the executable.
Running helloworld in GDB + PEDA
Setup and before run
From the disassembly of the _start function above, we can notice a difference between our written code and the disassembly of the _start function. Namely, rather than involving the 64-bit versions of the registers, the assembler optimized away usage of those in favor of the 32-bit versions. For example, the register RAX was replaced with EAX.
From a functionality point of view, this is a moot point. However, from a shellcoding perspective, it is desireable to have complete control over how the actual opcodes are produced.
In the next sections, we will step through the code and describe what occurs.
Running helloworld in GDB + PEDA
Running step <0x401000 <_start>: mov eax,0x1
Prior to running mov eax, 0x1, the state of the registers and stack is shown below:
The mov eax, 0x1 instruction simply moves the immediate value 1 into the 32-bit register eax.
The mov eax, 0x1 instruction moved the immediate value 1 into the 64-bit register rax, as can be seen in the screen shot above. The purpose of moving the immediate 1 into eax is to set up the write system call. If you recall, the system calls are enumerated in:
/usr/include/asm/unistd_64.h
A portion of this file is shown below:
┌─[mark@ubermentch]─[/usr/include/asm] └──╼ $more unistd_64.h #ifndef _ASM_X86_UNISTD_64_H #define _ASM_X86_UNISTD_64_H 1 #define __NR_read 0 #define __NR_write 1 #define __NR_open 2 #define __NR_close 3 #define __NR_stat 4 #define __NR_fstat 5 #define __NR_lstat 6 #define __NR_poll 7 #define __NR_lseek 8 #define __NR_mmap 9 #define __NR_mprotect 10 #define __NR_munmap 11 #define __NR_brk 12 #define __NR_rt_sigaction 13
As can be seen from the file contents above, the number 1 is associated with the WRITE system call. Note that I have looked at the 64 bit version of the file. There also exists a 32-bit version, which we will not be using since this is 64-bit code.
Running helloworld in GDB + PEDA
Executing step 0x401005 <_start+5>: mov edi,0x1
Prior to executing the instruction mov edi,0x1, the state of the registers and stack are as shown below:
The instruction mov edi,0x1 simply moves the immediate value 1 into the 32-bit register edi.
The mov edi, 0x1 instruction simply moved the immediate value 1 into the 32-bit register edi, as can be seen in the screen shot above. The purpose of moving the 1 into edi is as a parameter to the WRITE system call. The 1 represents standard output, or STDOUT. This refers to the screen. Therefore, the WRITE system call will be writing to the screen, as opposed to writing to a network socket, or to a file on disk.
Running helloworld in GDB + PEDA
Executing step 0x40100a <_start+10>: movabs rsi,0x402000
Prior to executing the instruction 0x40100a <_start+10>: movabs rsi,0x402000, the state of the registers and stack are as shown below:
The instruction 0x40100a <_start+10>: movabs rsi,0x402000 simply moves the immediate value 0x402000 into the 64-bit register rsi.
What is the significance of the value 0x402000? It is actually a memory address. We will examine the data at this memory address to see what it is, using the command:
gdb-peda$ x/s 0x402000
0x402000: "Hello World to the SLAE-64 Course\n"
gdb-peda$
So basically the contents of the array of addresses starting at 0x402000 contains the string "Hello World to the SLAE-64 Course\n". We can see this more clearly by issuing the command:
gdb-peda$ x/34xb 0x402000 0x402000: 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x57 0x6f 0x402008: 0x72 0x6c 0x64 0x20 0x74 0x6f 0x20 0x74 0x402010: 0x68 0x65 0x20 0x53 0x4c 0x41 0x45 0x2d 0x402018: 0x36 0x34 0x20 0x43 0x6f 0x75 0x72 0x73 0x402020: 0x65 0x0a gdb-peda$
These are nothing but the hexadecimal representations of the bytes that make up the letters of the string "Hello World to the SLAE-64 Course\n". Notice the 0x0a at the end, which is the newline character. This is another bit of setup before the WRITE system call is invoked. The WRITE system call will output the string located at 0x402000 to the screen.
Running helloworld in GDB + GEF
Executing step 0x401014 <_start+20> mov edx, 0x22
Prior to executing the instruction 0x401014 <_start+20> mov edx, 0x22>, the state of the registers and stack are as shown below:
The instruction 0x401014 <_start+20> mov edx, 0x22> simply moves the immediate value 0x22 into the 32-bit register edx.
The instruction 0x401014 <_start+20> mov edx, 0x22 moved the immediate value 0x22 into the 32-bit register edx. The hex value 0x22 is 34 in decimal. We will confirm this by using IPython for conversion and to get comfortable with incorporating more Python use for computing activities.
0x22 hex or 34 decimal is the length of the string "Hello World to the SLAE-64 Course\n", including the newline character \n. This was actually computed by the assembler and placed into the hardcoded opcodes. If you recall, the original assembly code was:
global _start section .text _start: ; print on screen mov rax, 1 mov rdi, 1 mov rsi, hello_world mov rdx, length syscall ; exit gracefully mov rax, 60 mov rdi, 11 syscall section .data hello_world: db 'Hello World to the SLAE-64 Course',0x0a length: equ $-hello_world
There was actually a trick used to obviate the need to manually count the number of characters in the string "Hello World to the SLAE-64 Course". This trick was to create a constant called length, and to equate it to the memory location just after the string "Hello World to the SLAE-64 Course", subtracted from its memory location. This memory location math gives exactly the length of the string "Hello World to the SLAE-64 Course". The way to obtain the memory location of the constant is to use the "$" directive in the assembly code, as can be seen from the code snippet:
length: equ $-hello_world
This is the last bit of setup needed before invoking the WRITE system call. The instruction 0x401014 <_start+20> mov edx, 0x22, will let the WRITE system call know that the length of the string to output to the screen is 0x22 hex bytes long. We are now ready to invoke the system call. This will occur in the next instruction as shown in the next section.
Running helloworld in GDB + PEDA
Executing the instruction 0x401019 <_start+25>: syscall
Prior to executing the instruction
0x401019 <_start+25>: syscallthe state of the registers and stack are as shown below:
The syscall instruction invokes the Linux kernel to execute a system call. In this case, we are invoking the WRITE system call, which will print the string "Hello World to the SLAE-64 Course" to the screen. The results of this call are shown below.
It can be seen from the above screenshot that the WRITE system call was invoked properly as the string "Hello World to the SLAE-64 Course" was printed to the screen, and execution of the program is continuing normally. The next step is to invoke the EXIT system call. It is important to properly exit a program as the program counter may be pointing to an invalid instruction after the WRITE system call instructions. In this case the program will crash. Exiting properly will virtually guarantee that the program will exit gracefully back to the shell. We will look at exiting gracefully in the next section.
Running helloworld in GDB + PEDA
Executing the instruction 0x40101b <_start+27>: mov eax,0x3c
Prior to running the instruction
0x40101b <_start+27>: mov eax,0x3cthe state of the stack and registers are as shown in the following screenshot.
As stated in the previous section, we must now have the program exit gracefully. In order to do this, we setup an invocation to the EXIT system call. This is done by loading eax with the system call number for the EXIT system call. In this case, it is 0x3c hex, or 60 in decimal. To find the correct system call number, we again look at the /usr/include/asm/unistd_64 and search for the EXIT system call.
#define __NR_alarm 37 #define __NR_setitimer 38 #define __NR_getpid 39 #define __NR_sendfile 40 #define __NR_socket 41 #define __NR_connect 42 #define __NR_accept 43 #define __NR_sendto 44 #define __NR_recvfrom 45 #define __NR_sendmsg 46 #define __NR_recvmsg 47 #define __NR_shutdown 48 #define __NR_bind 49 #define __NR_listen 50 #define __NR_getsockname 51 #define __NR_getpeername 52 #define __NR_socketpair 53 #define __NR_setsockopt 54 #define __NR_getsockopt 55 #define __NR_clone 56 #define __NR_fork 57 #define __NR_vfork 58 #define __NR_execve 59 #define __NR_exit 60 #define __NR_wait4 61 #define __NR_kill 62 #define __NR_uname 63 #define __NR_semget 64 #define __NR_semop 65 #define __NR_semctl 66 #define __NR_shmdt 67 #define __NR_msgget 68 #define __NR_msgsnd 69 #define __NR_msgrcv 70 #define __NR_msgctl 71 #define __NR_fcntl 72 #define __NR_flock 73 #define __NR_fsync 74 #define __NR_fdatasync 75 #define __NR_truncate 76
From the above listing of the /usr/include/asm/unistd_64 file, we can see that indeed the EXIT system call number is 60, and this is the reason to load 60, or 0x3c hex into eax.
It can be seen from the above screenshot that the the 0x3c hex or 60 decimal was loaded into eax. This is the first part of setting up the EXIT system call. The last part is to tell teh EXIT system call which return value to give back to the shell. It is really an exit status, and is arbitrary. Usually, when there are no errors, a zero is returned back to the shell. In our case, we wish to return 0xb hex or 11 decimal as a learning tool. We can then check the return exit status with an appropriate command.
Running helloworld in GDB + PEDA
Executing the instruction 0x401020 <_start+32>: mov edi,0xb
Prior to executing the instruction:
0x401020 <_start+32>: mov edi,0xbthe state of the stack and registers are as shown in the following screenshot.
The instruction:
0x401020 <_start+32>: mov edi,0xbsimply moves the immediate value 0xb hex or 11 decimal into the 32-bit register edi. This value is the return value of our executable to the calling shell.
After executing the instruction:
0x401020 <_start+32>: mov edi,0xb0xb hex or 11 decimal was loaded into the 32-bit register edi. We are now ready to call the kernal to invoke the EXIT system call. This is shown in the next section.
Running helloworld in GDB + PEDA
Executing the instruction 0x401025 <_start+37>: syscall
Prior to executing the instruction:
0x401025 <_start+37>: syscallthe state of the stack and registers are as shown in the following screenshot.
After executing the instruction:
0x401025 <_start+37>: syscallthe Linux kernel is called to invoke the EXIT system call with an exit status of 0xb or 11 decimal.
The results of executing this command are shown in the following screenshot.
We can see from the above screenshot that the process terminated with an exit code of 013. Why is it not 0xb hex or 11 decimal? Because apparently, GDB displays the exit code in octal. As before, we will use Python to convert 013 octal into decimal. This is shown in the following screenshot.
We can also verify the exit status of the process by using the command:
echo $?This can be seen from the following screenshot.
We can see from the above screenshot that the exit status of the terminated process is indeed 11.
Conclusions on examining helloworld in GDB.
In this section we looked at examining the execution of a simple 64 bit binary in GDB. We looked at how system calls are setup and how they are invoked. We also looked at how to obtain the exit status of a terminated process. In the next section, we will examine why the helloworld executable is not suitable for being used as shellcode. The reasons are that:
-
The object code for the executable contains many nulls. This is evident by examining the object file's dump:
$objdump -d helloworld.o helloworld.o: file format elf64-x86-64 Disassembly of section .text:<PHONE_NUMBER>000000 <_start>: 0: 48 b8 01 00 00 00 00 movabs $0x1,%rax 7: 00 00 00 a: 48 bf 01 00 00 00 00 movabs $0x1,%rdi 11: 00 00 00 14: 48 be 00 00 00 00 00 movabs $0x0,%rsi 1b: 00 00 00 1e: 48 ba 22 00 00 00 00 movabs $0x22,%rdx 25: 00 00 00 28: 0f 05 syscall 2a: 48 b8 3c 00 00 00 00 movabs $0x3c,%rax 31: 00 00 00 34: 48 bf 0b 00 00 00 00 movabs $0xb,%rdi 3b: 00 00 00 3e: 0f 05 syscall $
We can see from the objdump above that the code indeed includes many nulls. These nulls make the code above unsuitable for shellcode.
- The code makes use of the full 64-bit registers, which can hold very large numbers; however, the immediate numbers that we have used are relatively very small, less than then integer 100. This is an inefficient use of resources. In shellcoding, we want to make the shellcode as efficient and compact as possible.
In the next section, we will look at how to remove these nulls and optimize the code so that it can be suitable to be used as shellcode.


public interface ConfigSource
Implement this interfaces to provide a ConfigSource. A ConfigSource provides configuration values from a specific place, like JNDI configuration, a properties file, etc. A ConfigSource is always read-only, any potential updates of the configured values must be handled directly inside each ConfigSource.
The default config sources always available by default are:
Custom ConfigSource will get picked up via the ServiceLoader
mechanism and and can be registered by
providing a file
META-INF/services/org.eclipse.microprofile.config.spi.ConfigSourcewhich contains the fully qualified
ConfigSource
implementation class name as content.
Adding a dynamic amount of custom config sources can be done programmatically via
ConfigSourceProvider
.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CONFIG_ORDINAL |
static int |
DEFAULT_ORDINAL |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getName()
The name of the config might be used for logging or analysis of configured values.
|
default int |
getOrdinal()
Return the ordinal for this config source.
|
java.util.Map<java.lang.String,java.lang.String> |
getProperties()
Return the properties in this config source
|
default java.util.Set<java.lang.String> |
getPropertyNames()
Gets all property names known to this config source, without evaluating the values.
|
java.lang.String |
getValue(java.lang.String propertyName)
Return the value for the specified property in this config source.
|
static final java.lang.String CONFIG_ORDINAL
static final int DEFAULT_ORDINAL
java.util.Map<java.lang.String,java.lang.String> getProperties()
default java.util.Set<java.lang.String> getPropertyNames()
getProperties()
slower ConfigSource implementations should replace this with a more performant implementationdefault int getOrdinal()
Some operating systems allow only alphabetic characters or an underscore(_), in environment variables.
Other characters such as ., /, etc may be disallowed.
In order to set a value for a config property that has a name containing such disallowed characters from an environment variable,
the following rules are used.
This ConfigSource searches for potentially 3 environment variables with a given property name (e.g. "com.ACME.size"
):
"com.ACME.size"
)"com_ACME_size"
)"COM_ACME_SIZE"
)The first environment variable that is found is returned by this ConfigSource.
java.lang.String getValue(java.lang.String propertyName)
propertyName
- the property namejava.lang.String getName()


Original author: David Banas<EMAIL_ADDRESS>Original date: November 30, 2017
Copyright © 2017 David Banas; all rights reserved World wide.
This Jupyter notebook can be used to sanity check a batch of 4-port single-ended Touchstone files, and generate their equivalent differential step responses, for use w/ PyBERT.
%matplotlib inline
from matplotlib import pyplot as plt
import skrf as rf
import numpy as np
import scipy.signal as sig
Load the channels of interest and sanity check them.
plt.figure(figsize=(16, 8))
def sdd_21(ntwk):
"""
Given a 4-port single-ended network, return its differential throughput."
Note that the following connectivity is assumed:
- 1 ==> 2
- 3 ==> 4
"""
return 0.5*(ntwk.s21 - ntwk.s23 + ntwk.s43 - ntwk.s41)
# Load the channels of interest.
chnls = []
chnls.append(('ch1', rf.Network('../channels/802.3bj_COM_Cisco/kochuparambil_3bj_02_0913/Beth_longSmooth_THRU.s4p')))
chnls.append(('ch2', rf.Network('../channels/802.3bj_COM_Cisco/kochuparambil_3bj_02_0913/Beth_shortReflective_THRU.s4p')))
chnls.append(('ch5', rf.Network('../channels/shanbhag_01_0511/TEC_Whisper27in_THRU_G14G15.s4p')))
# Create diagonal mask, for checking passivity, below.
n = chnls[0][1]
m = np.zeros(n.s[0].shape, dtype=bool)
np.fill_diagonal(m, True)
# Check them against several criteria.
passivities = []
clrs = ['r','g','b','c','m','y']
for (lbl, ntwk), clr in zip(chnls, clrs):
passivity = map(lambda x: max(x[m]), ntwk.passivity)
# passivities.append(ntwk.is_passive()) # Apparently, not implemented, yet.
if(max(passivity) <= 1.0):
passivities.append(True)
else:
passivities.append(False)
plt.subplot(121)
plt.plot(ntwk.f / 1e9, passivity, clr, label=lbl)
plt.subplot(122)
plt.plot(ntwk.f / 1e9, sdd_21(ntwk).group_delay.flatten(), clr, label=lbl)
#Plot passivities.
plt.subplot(121)
plt.title("Passivity Plots")
plt.xlabel("f (GHz)")
plt.grid()
plt.legend(loc='upper right')
#Plot group delays.
plt.subplot(122)
plt.title("Group Delay")
plt.xlabel("f (GHz)")
plt.grid()
plt.legend(loc='upper right')
# Print a summary of the results.
print("{:10s} {:10s}".format('Channel','Passive'))
print('_'*21)
for ((lbl, ntwk), passive) in zip(chnls, passivities):
print("{:^10s} {:^10s}".format(lbl, str(passive)))
All channels appear passive. And none have any serious anomalies in their group delay plots.
Convert to mixed mode and display Sdd[2,1].
# Plot their differential insertion losses.
sdd_21s = []
plt.figure(figsize=(16, 8))
for (lbl, ntwk), clr in zip(chnls, clrs):
H = sdd_21(ntwk)
sdd_21s.append(H)
plt.semilogx(ntwk.f, 20 * np.log10(abs(H.s[:,0,0])), clr, label=lbl)
plt.title("SDD[2,1]")
plt.xlabel("f (Hz)")
plt.ylabel("|Sdd21| (dB)")
plt.grid()
plt.legend(loc='upper right')
plt.axis(ymin=-40)
No real surprises, here. So far, so good.
# Here, I calculate the impulse response myself,
# as opposed to using the 'Network.s_time()' function provided by skrf,
# because I've found I get better results.
ts = []
fs = []
hs = []
ss = []
plt.figure(figsize=(16, 8))
for (lbl, _), sdd_21, clr in zip(chnls, sdd_21s, clrs):
# Form frequency vector.
f = sdd_21.f
fmin = f[0]
if(fmin == 0): # Correct, if d.c. point was included in original data.
fmin = f[1]
fmax = f[-1]
f = np.arange(fmin, fmax + fmin, fmin)
F = rf.Frequency.from_f(f / 1e9) ## skrf.Frequency.from_f() expects its argument to be in units of GHz.
print("{} frequencies: {}".format(lbl, F))
# Form impulse response from frequency response.
sdd_21 = sdd_21.interpolate_from_f(F)
H = sdd_21.s[:,0,0]
H = np.concatenate((H, np.conj(np.flip(H[:-1], 0)))) # Forming the vector that fft() would've outputted.
H = np.pad(H, (1,0), 'constant', constant_values=1.0) # Presume d.c. value = 1.
h = np.real(np.fft.ifft(H))
h /= np.abs(h.sum()) # Equivalent to assuming that step response settles at 1.
# Form step response from impulse response.
s = np.cumsum(h)
# Form time vector.
t0 = 1. / (2. * fmax) # Sampling interval = 1 / (2 fNyquist).
t = np.array([n * t0 for n in range(len(h))])
# Save results.
ts.append(t)
fs.append(f)
hs.append(h)
ss.append(s)
# Plot results.
plt.plot(t * 1e9, h / t0 * 1e-9, clr, label=lbl)
# Annotate the plot.
plt.title("Impulse Response")
plt.xlabel("t (ns)")
plt.ylabel("h(t) (V/ns)")
plt.grid()
plt.legend(loc='upper right')
plt.axis(xmin=0, xmax=10);
Note that the locations of the peaks in the plot, above, agree with the group delays plotted, further above. This lends confidence to the code used to extract these impulse responses from the S-parameter data.
Further, note that the magnitudes are all very reasonable.
Channel, ch2, has some troubling artifacts just before the initial attack. This is, probably, due to insufficient bandwidth and an insufficient number of frequency sampling points for a channel this short and reflective.
plt.figure(figsize=(16, 8))
for (lbl, _), t, s, clr in zip(chnls, ts, ss, clrs):
plt.plot(t * 1e9, s, clr, label=lbl)
plt.title("Step Response")
plt.xlabel("t (ns)")
plt.ylabel("s(t) (V)")
plt.grid()
plt.legend(loc='upper left');
# plt.axis(xmin=1.8, xmax=2.0)
Channels, ch1 and ch2, are clearly problematic. ch5 is the cleanest.
# Save the step responses.
for (lbl, _), t, s in zip(chnls, ts, ss):
with open(lbl+'_s.csv', 'wt') as file:
for x, y in zip(t, s):
print >> file, "{:014.12f}, {:05.3f}".format(x, y)
# Take them back into the frequency domain and compare to original data.
hps = []
plt.figure(figsize=(16, 8))
for f, s, (lbl, _), Href, clr in zip(fs, ss, chnls, sdd_21s, clrs):
h = np.diff(s)
h = np.pad(h, (1, 0), 'constant', constant_values=0)
H = np.fft.fft(h)
# Using [1], as opposed to [0], to accomodate ch1. (See, below.)
# I'm assuming the strange behavior in ch1 is due to me forcing d.c. values of 1.
H *= abs(Href.s[:,0,0][1]) / abs(H[1]) # Normalize the "d.c." levels.
plt.semilogx(Href.f, 20 * np.log10(abs(Href.s[:,0,0])), clr+'--', label=lbl+'_ref')
plt.semilogx(f, 20 * np.log10(abs(H[:len(f)])), clr, label=lbl)
plt.title("SDD[2,1]")
plt.xlabel("f (Hz)")
plt.ylabel("|Sdd21| (dB)")
plt.grid()
plt.legend(loc='upper right')
plt.axis(ymin=-40);
With the single exception of ch1, the comparisons look great. I claim we have faithful transformations from S-parameter data to step responses.
Wrt/ ch1, note that the only anomaly occurs in the very first frequency point (50 MHz) and probably won't cause any issues in PyBERT. (It's the high frequency content that matters most, when trying to open eyes in PyBERT.)
Note: Don't forget that both ch1 and ch2 have exhibited signs of a significant lack of numerical fidelity throughout this analysis.
(The ch1 / ch2 results are a bit of a surprise, actually, because I pulled them from the 802.3bj representative channel library. I wonder if those folks are aware of this.)


asf Amazon great Indian festival sale Flipkart Big Billion day sale Download App Chrome Extension Sell Gift Card Corporate Gift Cards Sign up Log in Giftcards.com CATEGORIES STORES HOW IT WORKS?