"Translate each face into a list of 3D points."
asPolygonsColorCoded
"Color code the facets of the solid."
asPolygonsColoredBy: aColorRule
"Generate polygons from the solid`s dimension. - Subtypes should over-ride."
asThreeJS
"Render this solid as a cube via three.js"
asVPython
asVPythonPosition
"Generate VPythgon code giving position."
asVPythonThing
"A solid has color and is visible."
asX3D
"Return a string in X3D notation representing this box / thing.
attachCanvas: aCanvas toFace: aSymbol
"Attach the canvas to the face. -- Used for billboards.
color
^solidColor ifNil: [ solidColor := Color gray. ].
color: aColor
"What id the default (background) color of the surface and interior of this solid 3D object?"
density
"Return set density otherwise lookup the density of my material."
density: aMeasure
"What is the average density (mass per cube) of this solid?
densityOfMaterial
faces
"Hold image/canvas to be attached to a face."
initialize
mass
^ mass ifNil: [ mass := (self volume) * (self density)].
mass: aMeasure
"What is the mass of this object?"
material
^ material ifNil: [ Error signal: 'Material has not been set for this solid'].
material: aString
"See also: #densityOfMaterial for names of standard materials. "
solidColor
^solidColor ifNil: [ solidColor := Color gray. ]
type: aSymbol
"TODO: Why was this coded?
weight
"Get the Earth-bound weight of the object. (in Newtons)."
wireFrameColor
^wireFrameColor ifNil: [ wireFrameColor := Color black ].
x3dColor
"Translate my Smalltalk Color to x3dColor string"
x3dExampleJSON
x3dExampleXML
"Example to aid design
x3dMaterial
"Return X3D element for appearance/material of this color and opacity.
x3dMaterialColorRed: red green: green blue: blue alpha: alpha
"Return X3D element for appearance/material of this color and opacity."
x3dShape
"Produce X3D XML shape element"
x3dShape: typeOfShape diffuseColor: diffuseColor specularColor: specularColor
"Produce X3D XML shape element - override instance variable color?"
Hum-UI -- HumSpace
asPolygons
"Return an empty collection of polygons - HumSpace is not drawn. It is used for spacing in layout logic."
asPolygonsColorCoded
"Return an empty collection of polygons - HumSpace is not drawn. It is used for spacing in layout logic."
asVPythonThing
"A space has no color and is not visible."
Hum-UI -- HumStringWidget
asHTML
"Generate HTML input element"
asMorph
renderContentOn: aWAHtmlCanvas
"render self via a simple input tag"
Hum-UI -- HumSurface
about
"
addShape: aHumSurface
asBillBoard
"Convert the surface to a thin HumBox, facing South, hung at eye-level."
asHTML
" Render surface as HTML"
asHtmlCanvasOffsetX: offsetX y: offsetY
"Return a HTML <rect . . . /> element for this surface."
asMeasure: aQuantity
asMorph
asSVG
"Generate the opening <svg . . . > element."
asSvgRect
"Return a SVG <rect . . . /> element for this surface."
asSvgRectOffsetX: offsetX y: offsetY
"Return a SVG <rect . . . /> element for this surface."
asSvgViewBox
asXML
asXMLRectOffsetX: offsetX y: offsetY
"Return a hum <surface . . . /> element for this surface."
backgroundColor
backgroundColor: aColor
"Set color to be used when background is rendered."
bbBottom
"Find my bounding box edge."
bbEdge: aSymbol
"Find my bounding box edge.
bbHeight
"Find my bounding box edge."
bbLeft
"Find my bounding box edge."
bbRight
"Find my bounding box edge."
bbTop
"Find my bounding box edge."
bbWidth
"Find my bounding box edge."
borderColor
"What color is my border, ifany?"
bottom
^ bottom ifNil: [ self bottom: 0 meter ].
bottom: aNumber
"Reset the bottom edge."
canvas
"Attach a canvas - for placing drawings and images on the surface"
defaultUnits
^defaultUnits ifNil: [ defaultUnits := 'px' ].
defaultUnits: aSymbol
^defaultUnits := aSymbol.
drawOn: aHumCanvas
"Draw self on the given canvas."
expandToFit
fillColor
"What color is my fill, ifany?"
generateHumScript
"Proof of concept: Generate Hum code."
height
"What is the height of this object?
height: aNumber.
"Reset the distance between top and bottom edges."
id
id: aString
initialize
initialize: units
layer
"What layer is the surface in?
layer: aNumber
left
^ left ifNil: [ self left: 0 meter ].
left: aNumber
origin
"a zero-size object positioned at ( left top layer ) = ( 0 0 0 )"
overlay: aHumSurfaceB onTopOf: aHumSurfaceA
"Both shapes are assumed (forced) to be present in my collection."
place: aHumSurfaceB above: aHumSurfaceA
"Place B above A on the surface.
place: aHumSurface at: anArray
place: aHumSurfaceB below: aHumSurfaceA
"Place B below A on the surface. (Not to be confused with putting B on a different layer.)"
place: aHumSurfaceB leftOf: aHumSurfaceA
"Place B left of A on the surface. "
place: aHumSurfaceB rightOf: aHumSurfaceA
"Place B right of A on the surface. "
right
^ right ifNil: [self right: 0 meter ].
right: aNumber
shapes
"I remember the 2d objects placed on me."
title
^ title ifNil: [ self id ].
title: aString
top
^ top ifNil: [ top := 0 ].
top: aNumber
"Reset the top edge."
width
^ width ifNil: [ self width: 0 meter. ]
width: anObject
"Reset the width.
Hum-UI -- HumTextPrettyPrinter
addCommentToEndOfLineStartsWith: aString
parse: aHumTextLine
Hum-UI -- HumTextPrettyToken
string
string: aString
Hum-UI -- HumTextWidget
asHTML
"Generate HTML textarea element"
asMorph
renderContentOn: aWAHtmlCanvas
"render self via a text area tag"
rows
"How many rows should we display?"
rows: aSmallInteger
"How many rows should we display?"
Hum-UI -- HumTurtle
headEast
headNorth
headSouth
headWest
heading
^heading ifNil: [ heading := (0 degrees) ].
heading: compassHeading
"North is 0 degrees. East is 90 degrees. West is minus 90. South is 180."
initialize
"The initial turtle position is at origin (0@0) facing North."
position
^ position ifNil: [ position :=<EMAIL_ADDRESS>]
position: aPoint
"Move turtle to aPoint without painting."
speed
"Distance traveled on each step."
speed: aFloat
"Distance traveled on each step."
step
"Move forward one step"
tail
^ tail ifNil: [ tail := #up ].
tail: aSymbol
"tail = #up means no paint, otherwise lines are drawn with tailColor."
tailColor
"What color am I painting at this time?"
tailColor: aColor
"What color am I painting at this time?"
turn: degreeIncrement
"Change heading by given amount."
turnLeft
turnRight
Hum-UI -- HumVR
addScene: aHumScene
jump: aTime
"Execute equations of motion, etc."
jumpTime
"Get the latest VR-world time. This is set by the last time-jump. See: #jump: "
jumpTime: aTime
"Set the VR-world time. (Use to synchronize state across scenes) - called from #jump:"
scenes
"A VR world has one or more scenes identified and accessed by their IDs. "
start
"Start stepping."
stop
"Stop stepping"
Hum-UI -- HumViewPortMorph
camera
handleKeystroke: anEvent
handlesMouseOver: evt
^true.
mouseEnter: anEvent
mouseLeave: anEvent
viewPort
^ viewPort
viewPort: aHumViewPort
Hum-UI -- HumViewPort
asMorph
camera
"Which camera (in the scene)?"
camera: aCamera
"Which camera (in the scene)?"
cameraCanSeePolygon: aHumPolygon
"The camera can see the polygon
changed
getPolygonsForSolids: aCollectionOfSolids
"Return polygons corresponding to the surfaces of the given solids."
getPolygonsForSolids: aCollectionOfSolids colorRule: aOneArgumentBlock
"Return polygons corresponding to the surfaces of the given solids."
mapPolygonsFrom3Dto2D
"Each solid in the scene provides a collection of polygons with points in 3D scene coordinates.
mapPolygonsFrom3Dto2DcolorCoded
"Each solid in the scene provides a collection of polygons with points in 3D scene coordinates.
mapPolygonsToViewPort: aCollectionOfPolygons
"Map from 3D to 2D"
mapToCanvas: aHumCanvas bounds: aRectangle
"Declare where to draw me. Drawing is defered. See . . ."
mapTrianglesFrom3Dto2D
"Each solid in the scene provides a collection of polygons with points in 3D scene coordinates.
paintHumPolygon: aHumPolygon
"The HumPolygon may contain 3D points and specifies fill and border colors.
paintScene
"Render solids in my scene as polygons projected onto my canvas."
paintSceneAsTriangles
"Render solids in my scene as polygons projected onto my canvas."
paintSceneColorCoded
"Render solids in my scene as polygons projected onto my canvas."
projectPolygon: aScenePolygon
"Return a new polygon with the points transformed into camera`s coordinate system."
projectScenePoint: aViewPoint cameraDepth: aCameraDepth
"Translate from camera view coordinates (meters) to canvas coordinates (px)"
projectionMode
"Map the scene polygons onto the viewport using orthogonal or perspective projection?"
projectionMode: aSymbol
renderScene
"Render solids in my scene as polygons projected onto my canvas."
renderSceneAsTriangles
"Render solids in my scene as polygons projected onto my canvas."
renderSceneAsWireFrame
"Render solids in my scene as polygons projected onto my canvas."
repaint
"Repaint using stored block."
repaint: aBlock
"Which method to use when repainting?"

transformPointIntoCameraFrame: aPoint3D
"Transform the point into the camera`s coordinate system."
transformPolygonToCameraFrame: aScenePolygon
"Return a new polygon with the points transformed into camera`s coordinate system."
update: anObject
"Something in my model has been changed."
zmapPolygonsFrom3Dto2D
"Each solid in the scene provides a collection of polygons with points in 3D scene coordinates.
zrenderScene
"Render solids in my scene as polygons projected onto my canvas."
Hum-UI -- HumView
asWidget
"Initialize a HumFormWidget for this view"
blackboard
^ blackboard ifNil: [ Error signal: 'No blackboard has been assigned to this view.'].
blackboard: aHumBlackBoard
calc
"Create a calculator to be shared . . ."
entityName
"get"
entityName: aString
"Set"
interpretEmphasisIn: aString on: aWAHtmlCanvas
"TODO: THIS IS A STUB - Expect aString contains Hum Markup."
ontology: aHumOntology
renderFrameLine: aHumMarkupLine viaSeasideCanvas: aWAHtmlCanvas
renderMarkupLinesViaSeasideOn: aWAHtmlCanvas
"Render the ontology view frame lines via Seaside"
renderUpToNextWidget: aMarkupString on: html
"Render mark-up that does not involve heading/list/widget"
view
^ viewFrame ifNil: [Error signal: (self class asString),' not initialized']
view: aViewNameString
"Fetch the view frame of that name."
Hum-UI -- HumWidget
about
" The traditional idea of a widget is that it is a component in a view. (MVC concept)
asGlamorBrick
"Render widget and data as Glamor Brick object"
asHTML
"Render widget and data as HTML code"
asJSF
"Render widget and data as Jave Server Face code"
asMagritteMorph
"Render widget and data as Magritte Morph object"
asMorph
"Render widget and data as Morph object
asXUL
"Render widget and data as XUL code"
attributeName
^attributeName
attributeName: aString
"name of attribute"
attributeValue
^ attributeValue ifNil: [ '' ].
attributeValue: aString
"Set current value of attribute -- in display/input format."
blackboard: aHumBlackBoard
canvas
"Canvas on which to draw the widget - "
canvas: aHumCanvas
"Canvas on which to draw the widget - "
entityName: aString
formCanvas
^self canvas formCanvas.
renderContentOn: aWAHtmlCanvas
"Default: Render self via a simple input tag"
store: anObject
"Set my attribute value and store it on my blackboard."
Hum-X -- H3dCamera
depth
"Distance from eye point to viewport rectangle."
depth: aHumMeasure
"Distance from eye point to viewport rectangle."
projectScenePointToScreenPoint: aScenePoint
"Map a scene point onto a screen point ( x y z ) ==> ( x' y' z').
scene: aScene
"Scene (or layer) the camera is viewing."
Hum-X -- H3dObjectTests
test110buildBox
test120yawBox90degrees
"90 degree yaw exchanges X and Y"
test122yawBox90degreesAroundPivot
"90 degree yaw exchanges X and Y"
test125yawBox180degrees
"180 degree rotations should leave bounds the same."
test130pitchBox90degrees
"90 degree pitch exchanges Y and Z"
test132pitchBox90degreesAboutPivot
"90 degree pitch exchanges Y and Z"
test135pitchBox180degrees
"180 degree rotations should leave bounds the same."
test140rollBox90degrees
"90 degree roll exchanges X and Z"
test142rollBox90degreesAboutPivot
"90 degree roll exchanges X and Z"
test143rollBox90degreesAboutPivot
"90 degree roll exchanges X and Z"
test145rollBox180degrees
"180 degree rotations should leave bounds the same."
test150yawPitchRollBox
"180 degree rotations should leave it looking the same."
test220moveBoxEast
test225moveBoxWest
test230moveBoxNorth
test235moveBoxSouth
test240moveBoxTop
test245moveBoxBottom
test310stepVelocity
test320stepYawRate
test325stepVelocityAndYawRate
test330stepPitchRate
test335stepVelocityAndPitchRate
test340stepRollRate
test345stepVelocityAndRollRate
test350stepEverything
test610buildElipsoid
test620yawElipsoid90degrees
"90 degree yaw exchanges X and Y"
test630pitchElipsoid90degrees
"90 degree pitch exchanges Y and Z"
test640rollElipsoid90degrees
"90 degree roll exchanges X and Z bounds"
test710buildRotation
test711buildRotationAroundX
test712buildRotationAroundY
test810buildAssembly
test820stackBoxes
test821stackAndYaw90
test822stackAndPitch90
test824stackAndRoll90
Hum-X -- H3dObject
addPart: anH3dObject
"Add a part (or subassembly) to my assembly."
addParts: aPartsList
"Add each part to my set of parts."
assertRadians: anAngleInRadians
assertRadiansPerSecond: radiansPerSecond
axis: anAxisSymbol
"Which axis is rotation around?
borderColor
^ borderColor ifNil: [ borderColor := (self fillColor) lighter. ].
bottom
"Value without yaw, pitch, roll - Use minZ to see value with yaw, pitch, roll."
bottom: aMeasure
"Move so that bottom is at given z value."
buildAndOrient
"Return polygons in scene coordinates.
buildAssembly
"Build the polygons for the assembly by aggregating and translating polygons from the parts."
buildBasePolygons
"Return my base polygons. Polygons before pitch, yaw, roll."
buildBox
"Create polygons for a box"
buildElipsoid
"Create polygons forming the elipsoid."
buildRotation
"Given curve and an axis, build a rotation as a collection of polygons."
center
^ center ifNil: [ center := (HumVector newFrom: { 0.0 meter. 0.0 meter. 0.0 meter. } ) ].
center: aVector
"Set my center in container coordinates."
clearance
"Default value for clearance is one millimeter."
curve: xyPoints
"Curve to use when building a rotation.
east
"Value without yaw, pitch, roll - Use maxX to see value with yaw, pitch, roll."
east: aMeasure
"Move so that east edge is at the given value."
fillColor
^ fillColor ifNil: [ fillColor := Color gray. ].
height
"What is my Up-Down height? (prior to pitch, yaw, roll).
height: aHeight
"What is my Up-Down height? (prior to pitch, yaw, roll).
initialize
"Set initial position, orientation, velocity, and rotation rates to zero."
length
"What is my North-South length? (prior to pitch, yaw, roll)
length: aLength
"What is my North-South length? (prior to pitch, yaw, roll)
maxX
maxY
maxZ
minX
minY
minZ
move: aH3dObject toMyCoordinate: aHumVector
north
"Value without yaw, pitch, roll - Use maxY to see value with yaw, pitch, roll."
north: aMeasure
"Move so that north edge is at given value."
numberOfWedges
"Number of wedges to produce when drawing rotation or elipsoid."
numberOfWedges: anInteger
parts
"Return my set of parts/subassemblies - each part is unique - hence a member of a set."
pitch
"Amount of current pitch = rotation about x-axis"
pitch: anAngleInRadians
"Amount of current pitch = rotation about x-axis"
pitchRate: randiansPerSecond
"pitch rate (angular velocity) "
pivot
"Return the pivot in scene coordinates."
pivotPoint
"Pivot-point is relative to object`s center.
pivotPoint: aVector
"Pivot-point is relative to object`s center.
place: aH3dObjectA onTopOf: aH3dObjectB
"Position so that bottom matches top with a little clearance."
polygons
roll
"Amount of current roll. = rotation about y-axis"
roll: anAngleInRadians
"Amount of current roll. = rotation about y-axis"
rollRate: randiansPerSecond
"roll rate (angular velocity) "
south
"Value without yaw, pitch, roll - Use minY to see value with yaw, pitch, roll."
south: aMeasure
"Move so that south edge is at given value."
step: aTimeIncrement
"Step the position and orientation."
top
"Value without yaw, pitch, roll - Use maxZ to see value with yaw, pitch, roll."
top: aMeasure
"Move so that top is at given z value."
type: aType
"What type of 3D object am I?"
velocity: aVector
"Set my velocity in container coordinates."
volume
"Return volume of box."
west
"Value without yaw, pitch, roll - Use minX to see value with yaw, pitch, roll."
west: aMeasure
"Move so that west edge is at the given value."
width
^ width ifNil: [ Error signal: 'width has not been set' ].
width: aWidth
"What is my East-West width? (prior to pitch, yaw, roll)
yaw
"Amount of current yaw. = rotation about z-axis"
yaw: anAngleInRadians
"Amount of current yaw. = rotation about z-axis"
yawRate: randiansPerSecond
"yaw rate (angular velocity) = rotation about z-axis"
Hum-X -- H3dPath
= anotherPath
"Are the two paths equal."
addVertex: xyzCoordinates
allButFirstDo: aBlockClosure
^self vertices allButFirstDo: aBlockClosure.
at: anInteger
"Return the vertex at: ..."
borderColor
^ borderColor ifNil: [ borderColor := (self fillColor) lighter ].
borderColor: aColor
"Color to use when rendering path (polygon edges)."
do: aBlockClosure
^self vertices do: aBlockClosure.
fillColor
^ fillColor ifNil: [ fillColor := Color gray ].
fillColor: aColor
"Color to use when rendering path as a polygon"
first
last
max: aBlockClosure
^self vertices max: aBlockClosure.
pitch: pitchAngle
"Return a new path with my points adjusted by pitch about origin."
pitch: pitchAngle aboutPivot: aPivot
"Return a new path with my points adjusted by pitch about origin."
roll: rollAngle
"Return a new path with my points adjusted by roll about origin."
roll: rollAngle aboutPivot: aPivot
"Return a new path with my points adjusted by roll about origin."
size
^ self vertices size.
translateBy: aHumVector
"Return a path with vertices translated by the given vector."
translatedBy: aHumVector
"Return a new path with my vertices translated by the given vector"
vertices
^ vertices ifNil: [ vertices := OrderedCollection new ].
yaw: yawAngle
"Return a new path with my points adjusted by yaw about origin."
yaw: yawAngle aboutPivot: pivot
"Return a new path with my points adjusted by yaw about origin."
Hum-X -- H3dViewPortTests
test110CreateCamera
test120ProjectScenePointToCameraViewPort
test130PitchCamera
test140RollCamera
test150YawCamera
test160TranslateCamera
test210CreateViewPort
"A viewport is a view on a scene via a camera in the scene."
Hum-X -- H3dViewPort
camera: anH3dCamera
"The viewport is attached to this camera."
mapScenePoint: aScenePoint
"Map scene point to camera image, camera image to my image."
origin: pointOrigin extent: pointExtent
"What is my origin and extent in container coordinates and pixel metrics?"
resolutionAt: aDistance
"What is the resolution per pixel at given distance"
scale
^scale ifNil: [ Error signal: 'This viewport`s scale has not been set yet.' ].
scale: measureNumerator per: measureDenominator
"Multiply camera screen coordinates by scale to get my coordinates."
Hum-X -- HApplication
handleRequest: aZnRequest
"Return a response for given request"
handler: aBlockClosure
"Use the block to handle request"
Hum-X -- HBaseTests
test240WorldBaseBacksBlackBoard
"Blackboard calls on World Base to persist events, state-changes."
Hum-X -- HBase
entities
"Dictionary of (id -> entity)"
events
^events ifNil: [ events := Dictionary new ].
putEntity: anEntity attribute: anAttribute value: aValue event: anEvent
"Record entity attribute value"
putEvent: anEvent
"Record the given event in my store."
Hum-X -- HBlackboardTests
test140BlackboardSaveFetch
"A blackboard records events, noun values"
test145BlackboardSaveFetchNouns
"A blackboard records events, noun values"
test150BlackboardSaveFetchUpdate
"A blackboard records events, noun values"
test160BlackboardToStream
"A blackboard records events, noun values"
Hum-X -- HBlackboard
asStream
"Show the values in the blackboard on a stream."
events
^ events ifNil: [ events := OrderedCollection new.]
getEntity: anEntity attribute: anAttribute
getEntityNamed: aNoun
getNoun: aNoun
nouns
^ nouns ifNil: [ nouns := Dictionary new ].
putEntity: anEntity attribute: anAttribute value: aValue event: anEvent
putEntityNamed: aNoun
putEvent: anEvent
worldBase: aWorldBase
"MOCK: Pretend we are persisting values on world base.
Hum-X -- HClientServerTests
setUp
tearDown
test110CharacterizeZnHttpClient
"Characterize ZnHttpClient"
test112CharacterizeZnHttpClientNotFound
"Characterize ZnHttpClient"
test114CharacterizeZnHttpConnected
"Characterize ZnHttpClient"
test115CharacterizeZnHttpHead
"Characterize ZnHttpClient"
test116CharacterizeZnHttpConnectExternal
"Characterize ZnHttpClient"
test120CharacterizeZnHTTPSocketFacade
"Characterize ZnHttpClient"
test190CharacterizeHClient
"HClient is light wrapper on ZnHTTPSocketFacade."
test210CharacterizeZnServer
test211CharacterizeZnServer
test212CharacterizeZnHTTPSocketFacadeNotFound
"Characterize ZnHttpClient"
test212CharacterizeZnServer
test214CharacterizeZnHTTPSocketFacadeConnected
"Characterize ZnHttpClient"
test216CharacterizeZnHTTPSocketFacadePost
"Characterize ZnHttpClient"
test220CharacterizeZnServerGetResponse
test221CharacterizeZnServerPutResponse
test222CharacterizeZnServerPostResponse
test223CharacterizeZnServerDeleteResponse
test224CharacterizeZnServerHeadResponse
test226CharacterizeZnHTTPSocketFacadePost
"Characterize ZnHttpClient"
test310CharacterizeZnRequest
""
test324CharacterizeZnServerGetResponse
"Use Case: (Single Threaded) Server with HApplication responds to client GET request."
test325CharacterizeZnServerGetResponse
"Use Case: (Multi-Threaded) Server with HApplication responds to client GET request."
test326CharacterizeZnServerGetResponse
"Use Case: (Multi-Threaded) Server with HApplication responds to HClient GET request."
Hum-X -- HClient
clientSettings
Hum-X -- HEntityTests
test110EntityHasAttributes
"An entity has one or more attributes"
test120SetAttributeValueInEvent
"An entity has one or more attributes"
test125EntityPrintOn
"An entity has one or more attributes"
test130UpdateAttributeValueInEvent
"An entity has one or more attributes"
Hum-X -- HEntity
attribute: anAttributeName value: anAttributeValue
"Initialize entity-attribute value. (No event, no history)
attribute: anAttributeType value: aValue event: anEvent
"Record a state-change associated with the given event."
attributes
"Return my dictionary of current attribute values."
getAttribute: anAttributeName
"What is the value of the given attribute?"
history
"Return history of state-changes."
id
^ id
id: aLargePositiveInteger
"Set unique identifier.
printOn: aStream
"Format my data for easy reading.
title
"Entity should be given a contextually unique name (noun)"
title: aString
"Set my title - something appropriate to usage and unique within the context.
Hum-X -- HEvent
> otherEvent
attributes
id: aLargePositiveInteger
what: aWhat
"What happened? (Relate to business process event.)"
when
^ when
when: aTimeStamp
"When did the event occur? Real clock or simulated clock"
where: aWhere
"Where did event occur? - Test/Simulation/Host/Application/Service"
who: aWho
"Who caused the event? - User/Robot/Actor/Test"
why: aWhy
"Why did the event occur? - Authorization/JobTicket"
Hum-X -- HGlamourTest
test100ReadMe
"This group of tests follows 'Deep into Pharo - chapter 10' "
test110Page192
"Example at page 192"
test110Page193a
"Example at page 193"
test110Page193b
"Example at page 193"
test110Page194
"Example at page 194"
Hum-X -- HTimeTests
test110timestampIsBigInteger
""
test120timestampIsUnique
""


Our marketing solutions will give your business the edge that it needs in today’s digital landscape.
Paid search marketing offers your business the unique opportunity to connect to a wide audience via PPC...
Social Media Marketing focuses on utilizing all of the different social media platforms as a way to reach a ...
Marketing has always been about connecting with your audience in the right place and the right time. At Silver...
You will always need Web Development. When your website looks fresh and new, it shows visitors that ...
Our Local Citation Services helps local businesses get mentioned and noticed by other sites, most specifically business directories...
Local On-page Optimization is a method of optimizing a webpage for local searches. Our local SEO services will help improve a business’...
Local link building is a rarely touched SEO method, as not every business can take advantage of it. If suitable for your site, our local link building...
Email: contact@silveredgemedia.com


--- layout: post title: Solid Waste Routing - Improving Efficiency in Solid Waste Collection Part 2 date: 2011-02-13 14:38:21.000000000 -06:00 type: post published: true status: publish categories: - Route Optimization tags: [] meta: _wpas_done_twitter: '1' _wpas_done_fb: '1' _edit_last: '15714693' author: login: broberts65 email<EMAIL_ADDRESS>display_name: Bob Roberts first_name: '' last_name: '' ---
It is safe to assume that if you are reading this then you already believe you have room for improvement in your collection operations. There are a couple of ways that can test the efficiency of solid waste routes.
For a troublesome route, try putting one of your better drivers on that route for a couple of weeks. If the better driver takes just as long as the regular driver then the problem is likely the route and not the driver. Bear in mind that your "better" driver will most likely always get done faster.
There are some industry "thumb rule" counts for stops per route. As "thumb rules" they will not pertain to every area. For example, very rural areas will require more driving and therefore collect at fewer stops. For automated collection, the maximum number of stops per route is 1,000 stops per 8-hour day, and 1,200 and for Semi-Automated (with one helper) it is 800 stops per 8-hour day and 1,000 per 10-hour day. So, in a dense city area where automated routes collect 600 stops in an 8-hour day, there is room for improvement.
"When I started driving a garbage truck, I was trained by the driver that was running the route. He was taught by the driver before him and I taught my replacement. That is probably the start of the problem. I ran my route like the driver before me and my replacement ran my route just like I did. That didn't mean that the route was being run in the most efficient manner.
There were plenty of times that I wondered if there were a faster or better way to run the route but we were always just trying to finish the route on time. With overtime being taboo and already working a five day per week schedule, there just wasn't any time to try a different approach.
I think what really hurt us was when a driver was out sick. We all knew our routes but very few knew the other routes. When I started, there were no maps or route books to speak of. I myself created one when I was learning my route by going home every day and printing out the route area that I ran. I would then highlight the streets that were in my route. Most drivers didn't do this and so it was chaos when a driver was absent."
Regardless of whether you are a Private or Public organization, many of the following techniques or strategies can assist to improve efficiency with your solid waste collection:
Heuristic Definition: Logical, commonsense thought-process learned through experience that helps organize ideas, concepts, and information into a useful form or solution. In 1974, the U.S. Environmental Protection Agency released an outline for solid waste routing strategies.
Right Turns
The use of right turns and turnarounds saves time and fuel.
On-board Computers
On-board computers provide accountability and increase driver efficiency.
Optimize Dump Trips
Selecting the optimized location to leave route and head to transfer station/landfill.
Automated Collection
If your area is suitable for automation, it is the preferable way to go.
Optimize Customers
It may sound counter-intuitive, but sometimes canceling customers can save you money.
Routing Software
From point-to-point commercial collection to high-density residential collection there are many software solutions available.


TANZANIA STANDARD
Road vehicles – Code of practice for inspection and testing of used motor vehicles for road worthiness
TANZANIA BUREAU OF STANDARDS
This Tanzania Standard was published under the authority of the Board of Directors of Tanzania Bureau of Standards on
The Tanzania Bureau of Standards (TBS) is the statutory National Standards Body for Tanzania, established under the Standards Act No.3 of 1975, repealed and replaced by Act No.2 of 2009.
The Mechanical Engineering Divisional Standards Committee (MEDC) under whose supervision this Tanzania Standard was prepared consists of representatives from the following organizations:
*University of Dar es Salaam, Prospective University College of Engineering and Technology
Metal Engineering Industries Development Association Tanzania Industrial Research and Development Organization *Daima Associates Ltd
Aluminium Africa Limited
Tanzania Investment Bank *National Institute of Transport * Ministry of Works
Weights and Measures Agency K J Motors
Transport Resource Centre
The organizations marked with an asterisk (*) in the above list together with the following were directly represented on the Technical Committee entrusted with the preparation of this Tanzania Standard:
Ministry of Home Affairs (Traffic Police Division)
Quality Group Limited
TABOA
Tanzania Motor Traders Association
Tanzania Bureau of Standards
P. O. Box 9524
Dar es Salaam
Tel:<PHONE_NUMBER>/2450298/2450949
Fax:<PHONE_NUMBER>
ISBN
Road vehicles – Code of practice for inspection and testing of used motor vehicles for road worthiness
0 Foreword
Following Tanzania’s policy on trade liberalization, various types of products have been imported into the
Tanzanian market. Among the products are used motor vehicles.
In order to restrict importation of sub standard used motor vehicles, this Tanzania Standard has been formulated to prescribe the basic requirements for vehicle roadworthiness together with the inspection system procedures for its approval for roadworthiness.
In the preparation of this Tanzania Standard, assistance was drawn from the following:
JAAI 16 - 303, Inspection standard for exported used cars published by Japan Auto Appraisal Institute (JAAI).
SABS 047, The testing of motor vehicle for roadworthiness published by the South African Bureau of Standards.
Road Traffic Act No. 30 of 1973.
Vehicle Inspectors Training Manual published by the Ministry of Works.
This second edition cancels and replaces the first edition (TZS 698: 2003) which has been technically revised.
In reporting the results of a test made in accordance with this Tanzania Standard, if the final value observed or calculated is to be rounded off, it shall be done in accordance with TZS 4 (see clause 3).
1 Scope
This Tanzania Standard specifies the safety related performance characteristics of used motor vehicles and their inspection and tests for roadworthiness.
2 Definitions
For the purpose of this Tanzania Standard, the following definitions shall apply:
2.1 inspection
Activities such as measuring, examining one or more characteristics of a product or service and comparing these with specified requirements to determine conformity.
2.2 specification
Prescribed requirement with which the product or service has to conform.
2.3 defect
The non fulfillment of intended usage requirements.
2.4 non conformity
The non fulfillment of specified requirement.
2.5 reliability
The ability of an item to perform a required function under stated conditions or a stated period of time.
2.6 quality
The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs.
2.7 background radiation
The ionizing radiation constantly present in the natural environment of the Earth, which is emitted by natural and artificial sources.
2.8 dose
A measure of the radiation received or absorbed by a target.
3 References
For the purpose of this Tanzania Standard, the following references shall apply:
TZS 4: 2009, Rounding off numerical values
TZS 598: 2010, Automotive engineering – Bus body building – Code of practice
TZS 240: 1984, Road vehicles – Positioning and routing of engine exhaust pipes – General requirement
TZS 238: 1984, Road vehicle – Leaf spring – Specification
TZS 557: 1995, Road vehicles – Reflective rear marking plates for motor vehicles – Specification
4 Inspection for the performance characteristics
4.1 Inspection of steering wheel alignment
The alignment of the steered wheels shall be inspected with a side slip tester machine or any other suitable apparatus. The reading for skidding shall not exceed 5 mm inward or outward for 1 m of travel (see annex A). Wheel alignment shall also be inspected visually in accordance with the following:
a)the camber shall not exceed the manufacturer’s specified limits or
b)in case of a semi trailer, any axle shall not be out of square to longitudinal
c)the front wheels (in the
4.2Inspection of braking force
The braking force of a vehicle under inspection shall be measured with one inspector therein as an occupant with no passenger or luggage, according to the requirements specified in annex B and the results shall conform to 4.2.1 and 4.2.2.
4.2.1Braking force of main brake system
a)The total braking force of the main braking system shall not be less than 50% of the axle weight of the vehicle, and the sum of braking forces on the rear wheels shall not be less than 50 % of the axle weight of the subject axle when un laden.
b)For the main braking system, the difference of braking forces applied to the right and left wheels shall be 8% or less of the axle weight of the subject axle when un laden.
4.2.2Braking force of parking brake system
The total sum of the braking force of the parking brake system shall not be less than 20% of the weight of the vehicle as inspected.
4.3 Level of noise produced by automobile
4.3.1 The measurement of the noise level of steady running noise shall not be more than 88 dB(A).
To allow for any lack of precision in the measuring equipment the highest sound level reading obtained shall be reduced by 1 dB (A).
4.3.2The muffler shall be free from corrosion, damage, and cracking, and shall function favourably to muffle sound.
4.3.3The noise level in the cabin should not be more than 70 dB(A).
4.4 Exhaust gas from automobile
The concentration of, or the level of contamination from exhaust gas shall be determined according to annex C and observe the following requirements:
4.4.1 Automobiles using gasoline or liquefied petroleum gas as fuel
The concentration of the exhaust gas from an automobile shall be measured when the engine is idling, and inserting the probe of a tester into the exhaust pipe to a depth of approximately 60 cm. (If this is not feasible, measures to prevent the ingress of air from outside shall be taken before inserting the probe). The measurements shall not exceed the following reference values:
a)concentration of carbon monoxide: 4.5% and
b)concentration of hydrocarbon:
4.4.2 Automobiles using light oil (diesel) as fuel
The excessive black smoke or fumes emitted from the automobile shall not be allowed:
4.4.3 Smoke and soot emission
a) The exhaust pipe shall be securely installed, and be free from damage and excessive deformation.
b) The catalytic muffler shall be securely installed and free from damage.
c) The blow by gas reducing device shall be securely installed and free from damage.
d)The emission control device for fuel evaporative gases shall be securely installed and free from damage.
4.5Brightness of headlamps and orientation of main optical axis
The brightness of headlamps and the orientation of their main optical axis shall be measured either manually or using suitable apparatus with the light receiving portion of a tester squarely opposed to the headlamp according to the distance and method of measurement. The manual measurements shall be done in accordance with test methods specified in annex D and shall agree with the following reference values:
4.5.1Luminous intensity
a)
For the main headlamp for driving, the intensity shall be 12 000 cd or above and With a sub headlamp added, the intensity shall be 15 000 cd or above.
b)Other types
For the headlamps for driving, the intensity shall be 15 000 cd or above.
4.5.2Orientation of main optical axis
The main optical axis shall be properly oriented both in the horizontal and vertical directions.
4.6 Horn
With the engine of an automobile stopped, the loudness of its alarm unit (horn) shall meet the following requirements: Measurement shall be conducted in accordance with test method specified in annex E, a microphone set in a position 1.0 m above the ground and at 2.0 m from the front of the vehicle:
a)reference value: Within the range 90 dB(A) through 115 dB(A).
b)the sound of an alarm buzzer shall be continuous and of constant volume.
4.7Speedometer
The speedometer shall be in good working order.
4.8 Background Radiation
4.8.1When the vehicle subjected to radiation measurement test as described in annex F, the radiation dose rate shall not exceed the background radiation of 0.3 microsieverts/hour. (0.3 µSv/h).
4.8.2The equipments to be used on radiation dose measurement shall be calibrated from accredited laboratory.
5 Inspection for the operational requirements
5.1 Inspection for engine
The engine shall be inspected visually while observing the following:
5.1.1The engine shall start with ease, and shall not produce excessive unusual noise or vibration during operation.
5.1.2No oil leakage or water leakage shall be observed from the main body of the engine.
5.1.3 No cracking, damage, or deformation shall be observed in the oil sump, and there shall be no oil leaking from gaskets.
5.2 Exhaust pipe
The positioning and routing of exhaust pipe shall be done in accordance with TZS 240 (see clause 3) and observation of the following shall be made:
5.2.1No damage or cracking shall be permitted in the intake or exhaust manifold.
5.2.2No cracking or rubber flaking shall be observed in the exhaust pipe and support bracket.
5.2.3The muffler and the gaskets of the exhaust pipe shall be free from damage, exhaust leakage, and noise.
5.3 Inspection of cooling system
No coolant leakage shall be observed from the radiator or rubber hoses. Where an
5.4 Fuel system
5.4.1The fuel system shall have no visible leakage.
5.4.2The fuel tank shall not be deformed and shall be firmly mounted.
5.5 Transmission system
5.5.1Clutch
a)There shall be no anomalies in the engagement system of the clutch (e.g. slip, incomplete disengagement, judder and unusual noise) and shall operate smoothly.
b)No oil leakage shall be permitted in the clutch system.
c)A clutch pedal shall be provided with a mechanism to prevent slipping
d)For automatic transmission vehicles, the torque converter shall function properly.
5.5.2Transmission
a)The transmission shall be capable of being turned to each shift position with ease in the idling state, and there shall be no excessive play in the shift lever in any shift position.
b)The gears or bearings in the transmission shall not produce unusual noise, and no oil leakage shall be permitted from oil seals.
c)For an automatic transmission car, the indicator reading shall be matched with the actual shift position, and its engine shall not be capable of being started in any position other than the (P) position and neutral (N) position.
5.5.3Propeller shaft
a)No excessively loose fixing bolt or joint shall be present at the coupling portions in the propeller shaft.
b)The propeller shaft shall not produce
5.5.4Final drive system
The final drive system shall be free from excessive backlash, unusual noise, and oil leakage.
5.5.5 Axle housing
No cracking, damage, deformation or oil leakage shall be permitted in the axle housing.
5.6 Suspension system
5.6.1No cracking damage, setting, or misalignment shall be permitted in the spring and the clip band. Centre bolt or
5.6.2Miscellaneous
a)No excessive play, oil leakage, or gas leakage shall be present at the mounting portions of the shock absorber.
b)The torque rod, radius rod, and their brackets shall be free from deformation and damage such as cracking and mounting portions and coupling portions shall not be loose or damaged.
c)No damaged or loosely mounted upper or lower arm shall be permitted and the knuckle arm and support arm shall be free from cracking, damage, and bends.
d)The bellows and piping of an air suspension system shall be free from damage, and no air leakage shall be permitted from air piping.
6 Inspection of axles, wheels, and tyres
6.1 Axles
6.1.1The axle shall be free from cracking and damage, and the drive shaft shall be free from looseness and backlash.
6.1.2No nuts or bolts shall be loose or missing in a wheel.
6.1.3The wheel disks, rims, and side rings shall be free from cracking and damage due to excessive corrosion or deformation, and the disks shall be free from excessive
6.1.4Wheel bearings shall be free from excessive backlash, and the drag from the brakes and the preload on bearings shall be correct.
6.2 Steering system
6.2.1Steering wheel
a)The steering wheel shall be capable of being easily and reliably operated by a driver sitting in the regular position, and the steering wheel shall be mounted without backlash, lightly operatable and provided with proper play.
b)There shall be no backlash in the direction of the axis of the steering shaft.
c)The effort required to manipulate the steering wheel shall not be excessively different between the clockwise direction and the counterclockwise direction.
6.2.2Steering gear box
a)The gearbox shall be mounted without looseness and be free from oil leakage.
b)The sector shaft shall be free from backlash.
6.2.3Steering linkage
a)The steering linkage shall be free from deformation and damage such as cracking.
b)No loosely mounted parts, excessive backlash, or defective split pins shall be present in any part of the rod arms.
c)There shall be no risk of the wheels coming into contact with the frame, fender, brake hose or any other part during steering.
6.2.4Power steering
The power steering system shall be free from oil leakage and looseness in its body or connecting portions and shall operate and function properly.
6.3 Brake system
6.3.1Brake pedal
a)The height, play, and full depression of the brake pedal shall be correct, and the clearance between it and the floorboard shall not be less than 25% of the overall stroke of the pedal. (For an air brake, the play of its pedal shall not exceed 20 mm).
b)The brake pedal shall be free from backlash in the axial direction, and shall not produce any unusual noise when depressed.
c)The brake pedal shall be provided with a mechanism to prevent slipping or a rubber pad.
d)The brake system shall be free from oil leakage and the ingress of air.
6.3.2Parking brake
a)The parking brake shall be completely engaged when the brake lever is fully activated.
b)The pulling margin of the brake lever shall not be more than 70% of its overall stroke.
c)The ratchet shall not be worn or damaged.
6.3.3Brake rods and cables
Any visual damage shall not be allowed.
6.3.4Brake hose and piping
a)No damaged or loosely installed brake hoses or pipes shall be permitted and there shall be no oil leakage or air leakage from piping or joints.
b)There shall be no risk of a hose or pipe being brought into contact with any other part and no hose or pipe shall show signs of having been in contact with any other part.
6.3.5Master cylinder and wheel cylinder
The master cylinder and wheel cylinder shall function properly and shall be free from oil leakage, and no bend or damage shall be present in the push rod.
6.3.6 Backing plate
The backing plate shall be free from deformation and distortion, and shall not be cracked especially in proximity to anchor pin installation areas.
6.3.7 Air brake
The hoses and pipes, release valve, and brake chamber shall be free from damage and air leakage. The brake chamber and rod shall be free from deformation, and no split pins shall be missing.
6.3.8 Braking servo unit
The servo unit shall function properly and there shall be no liquid or air leakage from the unit or pipe joints.
6.4Tyres
The tyres shall be inspected visually in accordance with types and sizes while observing the following:
6.4.1The tread pattern shall not be excessively worn or damaged. The sidewall shall be free from cracking and damage and tread shall not show signs of slipping.
6.4.2Tyres shall be free from excessive wear.
6.5Front windshield and other window glass
6.5.1Front windshield
The windshield shall be made of safety glass, and shall be free from any distortion or flaws that may limit visibility.
6.5.2Other window glass
Other window glass shall not be broken, and the window glass shall be clear.
6.6Lighting devices and reflectors
6.6.1Colour of lighting
The light from headlamps shall be white and the colour of all headlamps shall be identical.
6.6.2Brake lights
The light from brake lamps shall be red, and the brake lamps shall be automatically turned on when the main brake system is activated.
6.6.3Number plate lights
The light from licence plate lamps shall be white in colour and the licence plate lamps shall be so structured that they are not interlocked with the headlamps or position lamps.
6.6.4Parking lights
The light from parking lamps shall be red in colour and the parking lamps shall be so structured that they are interlocked with the headlamps or auxiliary headlamps.
6.6.5Reverse lights
The light from
6.6.6Indicating device
Indicator lights lamps shall be installed at the front and rear of an automobile, and shall be positioned bilaterally and symmetrically in pairs, respectively. The light from the indicator lamps shall be orange, and the lights shall flash 60 through 120 times per minute.
6.6.7Indicator lights
The light from position lamps shall be orange or light yellow and the colour of left and right position lamps shall be identical.
6.6.8Reflectors
Reflectors used shall be in accordance with requirements specified in TZS 557: 1995 (see clause 3).
6.6.9Function and damage
Lighting devices and reflectors shall function normally and shall be free from damage and dirt.
6.7Devices for ensuring vision
6.7.1 Wipers
The windscreen shall be provided with wipers capable of cleaning the wind screen. The wipers shall function normally and its blades shall be free from damage.
6.7.2Rear view mirror
a)The rear view mirror shall be firmly installed, and its surface shall be free from smudges, distortion and cracking.
b)The rear view mirror shall be so structured that its orientation can be easily adjusted and maintained.
6.8 Mileage meter and other instruments
The mileage meter and other instruments such as water temperature indicator, fuel gauge, and tachometer, shall function properly and be free from damage.
6.9 Warning system
6.9.1 Warning lights
Warning lights shall provide warning on the state of oil pressure, charging, parking brake and opening of doors, and the warning lights shall function favourably and be free from damage.
6.9.2 Hazard warning flashing lights
Hazard warning flashing lights shall be installed bilaterally and symmetrically and shall function properly. The hazard warning flashing lights shall be free from damage and shall be orange or light yellow.
6.10
6.11 Frame and vehicle body
6.11.1Frame
a)The frame of an automobile shall be sufficiently rigid to withstand driving.
b)The frame shall be free from cracking, damage or deformation.
c)No loose rivests shall be permitted at the joints between a side member and a cross member and no cracking shall be observed in proximity to rivet holes.
6.11.2Vehicle body
a)The vehicle body shall be reliably secured on the frame, and shall not be loosened by vibration or impact.
b)The contour and any other shape of the vehicle body shall not contain any sharp projections, protruded rotating parts or any other elements that may interfere with the safe traffic of other vehicles or pedestrians.
c)Any cracking, corrosion or distortion in parts such as pilars and the floorboard, which constitute the fundamentals or a vehicle body and sills, shall be remedied.
6.12 Vehicle dimensions
6.12.1Overall length
a)A
b)A single vehicle, excluding a semi trailer, including any drawbar or coupling, shall not exceed 12.5 m.
c)A trailer with one axle or axle unit (other than a semi trailer), the GVM of which does not exceed 12,000 kg, shall not exceed 8 m, excluding the length of the drawbar or coupling;
d)An articulated motor vehicle or other combination of motor vehicles consisting of drawing vehicle and a semi trailer, including any draw bar or coupling, shall not exceed 17 m.
e)A distance between the drawing vehicle and the trailer, shall not exceed
1.8m, including any drawbar or coupling.
f)A trailer with one axle or axle unit (other than a semi trailer) the GVM of which exceeds 12,000 kg, shall not exceed 11.3 m, excluding the length of the drawbar or coupling.
g)A trailer not referred to in (c), (e) and (f) above (other than a semi trailer), the GVM of which exceeds 12,000 kg, shall not exceed 12.5 m excluding the length of any drawbar or coupling.
h)Any other combination of vehicles including any drawbar or coupling shall not exceed 22 m.
6.12.2Overall width and height
The requirements in accordance with TZS 598 (see clause 3) shall apply.
6.12.3 Overall overhang a) Front overhang
Measure the distance between the front axle and the front of the bumper and observe the following:
i)
ii)any vehicle (other than a semi trailer or trailer with one axle unit) shall not:
-exceed 60% of wheel base or
-exceed 6.2 m less half of the wheel base, in the case of vehicle in which the front surface of the backrest of the driver’s seat and seat level is within 1.7 m of the front end of the vehicle, when such seat, if adjustable, is in the rearmost position or
-exceed 5.8 m less half the wheel base, in the case of any other vehicle.
b)Rear overhang
The distance between the centre of the rear axle and the rearmost part of the rear bumper shall be measured and the observation of the following shall be made:
i)any trailer with one axle or one axle unit other than a semi trailer
or
ii)any trailer other than a semi trailer, with two axles where the distance between the
iii)any other vehicle shall not exceed 50% of the wheel base.
6.13 Coupling device
6.13.1The coupling device shall be rigid and so structured that it will provide secure coupling. The coupling device shall not be disconnected due to vibration or impact during driving, and shall sufficiently withstand driving.
6.13.2The coupler of the coupling device shall be installed without looseness, and shall function favorably. The pitching shaft, rolling shaft, and bearings shall be free from wear and damage.
6.13.3The kingpin of the coupling device for trailers, shall be installed without looseness.
6.13.4The pintle hook and lunette eye installed on trucks, etc, shall be reliably operatable and free from damage.
6.14 Seating arrangement
For public service vehicles, the seating arrangement shall conform with the requirements specified in TZS 598 (see clause 3).
6.15 Vehicle appearance
6.15.1Any serious damage to an outer panel shall be remedied.
6.15.2Window glass elevating devices shall be functional.
6.15.3Any other damage that may interfere with the safe driving of the vehicle shall not be permitted.
7 Criteria for conformity
Unless otherwise stated, the following information shall be made available:
7.1 Certificate of roadworthiness attesting conformity to the requirements according to clauses 4, 5 and 6.
7.2 Certificate of appraisal showing model, year of manufacture, engine capacity and mileage.
8 Marking
8.1All vehicles shall be inspected for conformity as stated in clause 7 and the marking shall be made only after a vehicle has undergone inspection and has been found to have no severe defects.
8.2Marking of the vehicle shall include the following: chassis number, engine number, type of vehicle, vehicle make, colour (body), year of manufacturing and vehicle registration number.
Marking shall not be tempered or concealed by any means, such as painting, welding or any kind of deformation process.
8.3If some particulars or vehicle configurations are changed, the owner shall report to the vehicle registration authority.
8.4All vehicles shall have stickers issued by the registration authority indicating the vehicle particulars and placed at location as required by registration authority.
Annex A
(normative)
Wheel alignment testing
A.1 Purpose
This annex sets out the assessment of the wheel slip sideways, to be measured while the vehicle is travelling. The unit of scale employed on measuring the slip is generally m/km which is the amount of the wheel slip perpendicular to the direction of travel as the vehicle makes a straight drive for 1 km.
A.2 Apparatus
The tester may be either mechanical or electrical depending on the method by which the amount of movement of the board is detected and transmitted to the indicator. The length of the running board is available in either 500 mm, 800 mm, or 1000 mm.
A.3 Procedure
Before performing the test, make sure that there is no dirt on the board and that the boards and the indicator are functioning properly. Then let the vehicle run straight parallel to the
Annex B
(normative)
Brake testing
B.1 Purpose
This annex sets out the assessment of the braking capacity of the vehicle. The widely used testers are roller driven. The rollers rotate with the wheels placed on top of them. The rollers are motor driven supplied in a set of two, one for each wheel. When brakes are applied, a rotation resistance is applied to the roller that creates torque in the direction opposite to the roller rotation.
B.2 Apparatus
There are various types of testing equipment such as the roller gearbox driven type and roller driven worn shaft type.
B.3 Procedures
Turn on the motor and let the rollers run idle to check that they are smoothly rotating. Make sure the needle indicator is adjusted to zero.
Turn off the motor and move the vehicle to place its wheels on top of and perpendicular to the rollers. Make sure that each of the wheels to be measured are firmly supported by two rollers.
Turn on the motor and let the rollers rotate. Before applying the brakes, check the reading on the indicator and make sure there is no drag of brakes. Then slowly step on the brake pedal. Gradually press down the pedal. The wheels will be eventually locked and the reading on the indicator will become constant.
Read the value indicated immediately prior to the locking of the wheels. This value is usually the maximum braking force.
Measure the braking force of both front and rear wheels.
Annex C
(normative)
Exhaust emmisions testing
C.1 Purpose
The test is done to measure the volumetric concentrations of CO and HC emissions at idling and not at slightly higher speed and load.
C.2 Apparatus
The apparatus used should be an independent
C.3 Procedures
Procedures for calibrating and using exhaust gas analyzers vary with the make and model of testers so emphasis shall be put on careful reading of the instructions for the analyzer.
Make necessary connections (electrical supply etc), turn on the analyzer, warm the equipment and calibrate the HC and CO metres for zero reading.
Check the system to be sure it is leak free.
To measure the amount of CO, run the engine at fast idle (say 1 500 to 2 000 rpm for about 30 s), then run the engine at its specified idle speed and read CO on the CO meter.
To measure the HC, run the engine at fast idle (1500 – 2000 rpm for about 30 s), then run the engine at its specified idle speed, then read HC on the HC metre.
For diesel engine, vehicle measurement is done under no load and quickly accelerated and the percentage of smoke is read from the smoke metre or inspection done visually.
Annex D
(normative)
Head light testing
D.1 Purpose
This annex sets out test for determining the luminosity and direction of irradiation (am) of the headlamp manually. The luminosity is expressed in candela (cd) and the direction of irradiation is generally indicated by the amount (in cm or mm) which the main optical axis oscillates at a 10 m distance in the front or as specified by the vehicle manufacturer as to agreed standards.
D.2 Apparatus
There are various types of testers according to the methodology and specifications of measurements. The types of headlight testers are classified into types: screen type, projecting type, and automatic tester (i.e. automatic optic axis tracking testing) type.
D.3 Procedure
The arrangement shall be done as shown in figure D.1. The results shown in figures D.2 and D.3, together with the following general guidelines on handling a headlight tester shall also be observed:
a)air pressure of all the tyres is of standard/specified value;
b)there is no inclination of vehicle body due to damaged springs;
c)the tester and the vehicle are precisely facing each other;
d)the testing floor is flat;
e)the distance between the tester and the vehicle headlamp is accurate;
f)the engine is running and its battery is being charged while testing;
g)the vehicle should be unladen with one driver on board.
NOTE – Luminosity refers to the brightness of light source and is expressed in candelas (cd) whereas illumination refers to the brightness of the irradiated surface and is expressed in luxes (lx).
Annex E
(normative)
Sound level testing
E.1 Purpose
This annex sets out assessment of the levels of noises produced by the vehicle and the sound of its horn. The gauge simulates human auditory perception. The audit level is indicated in dB (A) units.
Also sound can be expressed in many physical quantities other than dB (A) such as in Pascal (Pa) unit of pressure, sound power (watts), intensity (sound/surface) in watts/metre2 or particle speed (m/s).
NOTES
1 Sound level dB = 20 x log P / Po
where
Po is the lowest audible sound of 20 MPa.
2 1Pa = 1N/m2
1atm = 105Pa
E.2 Apparatus
Apparatus uses microphone that converts sound captioned in electrical current and its level is indicated on the indicator in dB(A).
E.3 Procedures
Calibrate the indicator before use, follow specific instructions as to the gauge settings and measurements taking. Note the specific settings for measuring of exhaust noises and sound level of the horn, careful noting placement of a gauge to avoid interference of background noises and reflected sounds. Make adjustments for such noises where such noises cannot be avoided.
Figure D.1 – Manual headlight aiming screen
Figure D.2 – Irradiating range of headlights
Vibrating of main |
Vibration of main light |
light aim |
aim 10 m forward |
|
|
Height of headlights (m)
Figure D.3 – Upper and lower limits to mounting position of headlight
ANNEX F
(Normative)
Radiation measurement test
F.1 Purpose
The aim of the test is to measure radiation dose on the surface, interior and on the tires of motor vehicles when the vehicle is stationary.
F.2 Apparatus
The apparatus or equipment to be used for the measurement should be handheld radiation alert detector such as Geiger Muller (GM) tube, Scintillator counter, Ionization chamber, Semi conductor survey meter etc. calibrated to an accuracy of ± 10% of the measure ranging from 0.1 µSv/h and stop watch.
F.3 Procedures
F.3.1 The equipment for measuring the dose rate should be placed as close as possible to the surface of the measuring point, though it shall not be in contact with the surface.
F.3.2 The measurement should take place in such a manner that the time of measurement is sufficient for the equipment to stabilize to indicate the dose rate and that both the maximum and minimum value for the respective point are recoded.
To fully calculate and understand the amount of dose radiation at the given point, measure five to ten times and take an average.


I have recently involved with integrating two different project components which are using jQuery and Prototype JavaScript libraries. One of major issue was projects are almost completed and having huge JavaScript code base. Initially integration was quite difficult because project was depending on specific JavaScript library versions. Requirement was to integrate code together without harming the existing code. Fortunately, jQuery code parts were very easy to modify, having known these kind of situations.
jQuery.noConflict() has one simple purpose.It enables you to load multiple instances of jQuery on the same page typically different versions of jQuery at that. You may be wondering why you would ever want to do that. There are two primary reasons. First, you may want to use a jQuery plugin that is not compatible with the newest version of jQuery, while writing most of your jQuery code on the newest version of jQuery. Second, you may have no control over what jQuery version is loaded on a page,and you need to be sure a specific version of jQuery is loaded for your jQuery code or jQuery plugin to work.
One of major issue was conflicting $ with jQuery and Prototype. While researching over the internet solution was became quite easy.
In conclusion, jQuery.noConflict() is an extremely powerful tool, and can be used to do great things for the Web. I hope you have found this article useful and informative.


Identity, Values and Strengths Exploration
Values
I did a bit of research for questions to ask myself and topics to consider, in order to find out what my values are. This is a difficult topic for me, because while there are immediate things that come to mind, I have always felt that in a lot of ways I don’t really know who I am and that I’m still figuring it out - I’m constantly learning new things about myself. Probably the last time I solidly reflected on my values was in my final years at high school for some homework task. This is what I came up with as my core personal values, and why:
Connection - I value the times I’m able to feel a connection with myself.  I consider myself a bit of an introverted extrovert; I need to get out and see my friends and socialise, but at the same time without some solid time alone to be entirely by myself I cannot recharge either. In my mid this comes back to connection, the connection to self and others. The connection I have and feel with people 100% influences how I feel in life, and brings me a great happiness. The best memories I have, the most immediate ones that pop to mind are all to do with spending quality time with the people important to me and building a deep bond by talking and sharing in honesty. I think I feel this way because to me connection is what makes us human.
Honesty - Without honesty I wouldn’t have the best relationships that I have made in my life. I wouldn’t have grown as a person and learnt about others that matter to me. I think honestly is key, we need to understand our strengths as well as our shortcomings. It can be tough to be honest, especially when it hurts our ego or pride, but that is especially why I value it. I also think it is the most important quality in our connections with each other in creating bonds, and is the foundation of respect.
Experiences - This sounds a little vague at first, but to clarify I’m talking about experiencing things outside of our norm. For instance, moving out from home or to a foreign country, creating something, failing at something. Experience is the cornerstone of what makes us all unique; all our experiences are different even if they can be similar at times, and this is why it is so important to me. My experiences have pushed me outside of my comfort zone and posed my boundaries in for both the better and worst. Ultimately it is how I think we learn about ourselves and to open our eyes to what is around us.
Work ethic / Effort - In my mind and experience there is no substitute for work ethic and actually putting in the effort. I have seen people turn their life around and build something out of nothing through simply hard work and effort. It is something that can be developed, but this also ironically requires the effort to do so. This is something that I am constantly working towards developing in myself.
Acceptance - For the longest time I never really felt accepted, and I think in part a large part of this was also not knowing myself all that well too and I didn’t have the confidence to be myself. This is not necessarily that people weren’t accepting but rather that I might not have been aware. I think this is why it is important to me. I remember vividly the realisation and the feeling and happiness of being accepted by a friend. This is what makes us feel free to be individual, and is where I think our greatest strengths. Being an accepting person as well as being accepted means we are able to embrace the differences and share a connection. I try to encourage this attitude in myself and to see it reflected in others.
Individuality - This ties in with acceptance. Having the confidence to be individual and not change yourself to suit other people is something that I have always struggled with. People who are able to do that are the ones I really admire. I know we all have our own self-doubts, but I often find myself very self critical. I have learned that we can’t change everyone and that at times you just have to be yourself regardless of whether people will accept it or not.
Creativity - I think creativity is the manifestation of our individuality. They are so linked that without one you almost couldn't have the other. It offers a way for us to express our individuality and that is why I value it. There can never be a right or wrong when it comes to creativity, it just is.
I arrived at these values by asking myself about times that have made me the happiest, times I felt satisfied in life or fulfilled, moment I felt the most proud, and lastly the people I love and admire most. I asked myself other questions along with the above, such as who was there, what other factors influenced the feeling and so.
Identity
I think my very European family has likely influence my values and identity more than I realised when I was young. Everyone is very family orientated, and my grandparents are central figures in the family. They came from growing up in WWII with nothing, and then moved to NZ with nothing and built their lives from scratch. I this has made an intrenched attitude of appreciation and a lack of regard for wealth as being important. Overall probably a hard work ethic and determination are common values in the family. Growing up amongst this, being very close with my grandparents and seeing the people around me act in this way undoubtedly influenced the was I act and think. I think also the fact that we eat certain Dutch foods, speak some words and frequently have relatives over to NZ to visit has also instilled a feeling or being dutch, although I’ve never actually been there and hardly speak the language.
Strengths
I think my main strengths are my work ethic, determination and awareness. I have a deep motivation to accomplish what I set my mind to and this drives me through doing things and completing them right until the end. I don’t like to leave things unfinished. I also have a keen awareness of others and how they feel, where they struggle, and I think this allows me to work well with anybody - I can honestly say I don’t think I’ve every been in a situation where work or study has been tough because of interpersonal tensions. However I am always very self critical, and this can set me back at times and I doubt myself and struggle to find the motivation or drive if I get in my head. Also because of this I struggle to take any form of praise or complement, but on the flip side tend to value constructive criticism more. For some reason in my head it feel more practical, and I tend to have my doubts that positive feedback is genuine at times. I think my strength will definitely be an asset on this learning journey as learning anything new require a lot of effort and hardwork.
The only instance I can think of where there was a tension, was in my last job. I had been working there for 3 years along with my colleague. We were working on a project to retrofit some equipment, and the method he proposed seemed totally illogical to me. I politely offered my method to the group as an alternative, at which point my colleague insisted that his was the right way to go and that was that, end of discussion. I handled this by simply removing myself from the situation because I was aware that there was something going on here with him where he felt he needed it done his way. Maybe he felt he had something to prove, or disagreed with my suggestion, which is fine either way, but I recognised that then and there was not the time to discuss it. I waited a day or so for the tension to die down, before trying to discuss this again. At this time things were more calm and we had a discussion coming to a compromise. I think this is the nature of people, we all have lives and who knows what is influencing or affecting someone at any given time, but recognising this and having awareness of others helps.


{{no footnotes|date=January 2014}}
The saucisse de Morteau, also known as the Belle de Morteau, is a traditional smoked sausage from the Morteau region of France (in the department of Doubs in Franche-Comté). It is smoked in traditional pyramidal chimneys, called tuyés. It is a very strongly flavoured and very dense uncooked sausage.
It is produced on the plateau and in the mountains of the Jura mountains in the Doubs at an altitude greater than 600 metres. The city of Morteau is at the centre of this artisanal industry.
Morteau sausage is produced using only pork from the Franche-Comté, because in this mountainous region the animals are fattened traditionally. In addition, to be permitted to use the label "Saucisse de Morteau", the sausages must be smoked for at least 48 h with sawdust from conifer and juniper within the tuyé. It is not cooked, however, as the combustion is accompanied by a strong current of air. These sausages are guaranteed by the IGP label, which denotes their quality, origin and method of preparation as a regional French specialty. Authentic Morteau has a metal tag as well as a small wooden stick wrapped around the end of the link.
{{reflist}}
{{commons}}


This is a page to test how html-archiver handles inline styles.
These inline styles do not refer to external resources, so they should be left unmodified.
This text is orange.


|
CppNoddy
0.92
|
A class to represent a two-dimensional hyperbolic system of equations. More...
#include <TwoD_Hyperbolic_System.h>
Public Member Functions | |
| TwoD_Hyperbolic_System (const unsigned &order) | |
| virtual | ~TwoD_Hyperbolic_System () |
| An empty destructor, virtual since we have virtual methods. More... | |
| virtual void | flux_fn_x (const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &f) const |
| A virtual flux function for the x-derivative. More... | |
| virtual void | flux_fn_y (const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &f) const |
| A virtual flux function for the y-derivative. More... | |
| virtual void | Jac_flux_fn_x (const DenseVector< double > &x, const DenseVector< double > &q, DenseMatrix< double > &J) const |
| A virtual function function to define the Jacobian of the x-flux function. More... | |
| virtual void | Jac_flux_fn_y (const DenseVector< double > &x, const DenseVector< double > &q, DenseMatrix< double > &J) const |
| A virtual function function to define the Jacobian of the y-flux function. More... | |
| virtual void | max_charac_speed (const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &c) const |
| A virtual method that is used to bound the characteristic speed in both directions. More... | |
| virtual std::vector< bool > | edge_values (const int &face_index, const DenseVector< double > &x, DenseVector< double > &q) const |
| Define the edge boundary conditions. More... | |
| virtual void | edge_slopes (const int &face_index, const DenseVector< double > &x, DenseVector< double > &sigma_n) const |
| Define the edge boundary condition slopes. More... | |
| virtual void | source_fn (const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &r) const |
| unsigned | get_order () |
Protected Attributes | |
| const unsigned | ORDER_OF_SYSTEM |
| The order of the system of equations. More... | |
A class to represent a two-dimensional hyperbolic system of equations.
Definition at line 12 of file TwoD_Hyperbolic_System.h.
|
inlineexplicit |
| order | The order of the hyperbolic system |
Definition at line 17 of file TwoD_Hyperbolic_System.h.
|
inlinevirtual |
An empty destructor, virtual since we have virtual methods.
Definition at line 21 of file TwoD_Hyperbolic_System.h.
|
inlinevirtual |
Define the edge boundary condition slopes.
These default to zero unless otherwise over-ridden.
| face_index | An index for the face: 0,1,2,3 for S,E,N,W on the TwoD_TVDLF_Mesh |
| x | The global position vector |
| sigma_n | Specify the slope normal to the face |
Definition at line 124 of file TwoD_Hyperbolic_System.h.
|
inlinevirtual |
Define the edge boundary conditions.
| face_index | An index for the face: 0,1,2,3 for S,E,N,W on the TwoD_TVDLF_Mesh |
| x | The global position vector |
| q | Specify the unknowns specified along the face |
Reimplemented in CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, and CppNoddy::Example::Shallow_2d_source.
Definition at line 114 of file TwoD_Hyperbolic_System.h.
References ORDER_OF_SYSTEM.
|
inlinevirtual |
A virtual flux function for the x-derivative.
| x | The vector position |
| q | The unknowns |
| f | The flux function |
Reimplemented in CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::Shallow_2d_rad, and CppNoddy::Example::Shallow_2d_source.
Definition at line 28 of file TwoD_Hyperbolic_System.h.
Referenced by Jac_flux_fn_x().
|
inlinevirtual |
A virtual flux function for the y-derivative.
| x | The vector position |
| q | The unknowns |
| f | The flux function |
Reimplemented in CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::Shallow_2d_rad, and CppNoddy::Example::Shallow_2d_source.
Definition at line 39 of file TwoD_Hyperbolic_System.h.
Referenced by Jac_flux_fn_y().
|
inline |
Definition at line 130 of file TwoD_Hyperbolic_System.h.
References ORDER_OF_SYSTEM.
|
inlinevirtual |
A virtual function function to define the Jacobian of the x-flux function.
The default method uses first-order finite differencing to compute the Jacobian if not otherwise specified by the user.
| x | The vector position |
| q | The unknowns |
| J | The Jacobian of the flux function |
cheap & nasty differencing
Reimplemented in CppNoddy::Example::Shallow_2d_rad, and CppNoddy::Example::Shallow_2d_source.
Definition at line 53 of file TwoD_Hyperbolic_System.h.
References flux_fn_x(), ORDER_OF_SYSTEM, and CppNoddy::DenseMatrix< _Type >::set_col().
|
inlinevirtual |
A virtual function function to define the Jacobian of the y-flux function.
The default method uses first-order finite differencing to compute the Jacobian if not otherwise specified by the user.
| x | The vector position |
| q | The unknowns |
| J | The Jacobian of the flux function |
cheap & nasty differencing
Reimplemented in CppNoddy::Example::Shallow_2d_rad, and CppNoddy::Example::Shallow_2d_source.
Definition at line 76 of file TwoD_Hyperbolic_System.h.
References flux_fn_y(), ORDER_OF_SYSTEM, and CppNoddy::DenseMatrix< _Type >::set_col().
|
inlinevirtual |
A virtual method that is used to bound the characteristic speed in both directions.
It determines the time step in order that the CFL constraint holds. It is sometimes required to specify a speed that is a function of position and to even specify the two-directional speeds. eg. your mesh may actually be w.r.t. a polar coordinate system in which the physical mesh size grows linearly with radius, so one of the speeds should be scaled accordingly.
| x | The global coordinate |
| q | The unknowns |
| c | The speed |
Reimplemented in CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::NlinAdv, CppNoddy::Example::Shallow_2d_rad, and CppNoddy::Example::Shallow_2d_source.
Definition at line 101 of file TwoD_Hyperbolic_System.h.
|
inlinevirtual |
Reimplemented in CppNoddy::Example::Shallow_2d_source.
Definition at line 127 of file TwoD_Hyperbolic_System.h.
|
protected |
The order of the system of equations.
Definition at line 137 of file TwoD_Hyperbolic_System.h.
Referenced by edge_values(), get_order(), Jac_flux_fn_x(), and Jac_flux_fn_y().
© 2012
R.E. Hewitt


He may not have been successful in the Hougang by-election but, for People's Action Party's (PAP's) Desmond Choo, it is back to work today, helping residents on the ground.
Said the 34-year-old: "Let's remain true to what we have always set out to do, which is to help residents solve their problems.
"Many residents have said that they want to come by, and there are some follow-up cases that we need to do... The programmes (for residents) still need a lot of fund raising."
Despite his defeat, Mr Choo appeared upbeat before heading out to thank residents in Hougang yesterday morning.
At the PAP's Hougang branch office, he told reporters that he has "no regrets" about his "heartfelt campaign".
He was also encouraged by his larger vote share this time, compared to that in the General Election (GE) last year.
"We have an improvement in the percentage, reversed a downward trend, which is a big positive for myself and for the team... I believe that the process of change has started."
Mr Choo garnered 37.9 per cent of the votes in the by-election, compared to 35.2 per cent in last year's GE. In the 2006 GE, PAP secured 37.3 per cent of the votes in Hougang. Waving to residents from a lorry that took him around Hougang's public and private estates, Mr Choo was greeted by cheers and jeers. Still, he was heartened by the reception, saying it was "warmer" and better than it was at last year's tour to thank residents.
Last Saturday night, newly minted Member of Parliament for Hougang Png Eng Huat called upon Mr Choo to back the town council's efforts in pushing for upgrading in the constituency.
To this, Mr Choo said yesterday: "As long as the projects are sound, practicable, and are in the best interests of residents, I will try my best to support these programmes."
There was a chance meeting between Workers' Party (WP) and PAP members on their thank-you tours along Hougang Avenue 2, with spontaneous clapping erupting from both parties.
Hoping to catch up with Mr Png over a cup of coffee, Mr Choo said in Mandarin: "I told him, 'I'll wait till you aren't so busy and we will make a date'... We have exchanged phone numbers, he can look for me any time."
At an event last night, Deputy Prime Minister Teo Chee Hean was asked about WP chief Low Thia Khiang's intention to put the by-election behind them and work together with the PAP.
Mr Teo said: "I do hope that he will move away from the combative tone he took during the by-election and work in a constructive way with the Government."
<EMAIL_ADDRESS>Additional reporting by Ethan Lou
For more my paper stories click here.
|


I did a small POC on how to load data automatically while scrolling the table view. Data is loading over network using a rest API. So I have choose a 500px API to load set of photos. They are providing API to load featured photos and that has lot of data. So they have providing data as pages. (Which is exactly what I wanted.)
We should have a array to keep loaded data in the memory. I have named this array as photos. This will be the data source for the UITableView. We are dynamically updating this array after each successful data retrieval. So it should be mutable.
@property (nonatomic, strong) NSMutableArray *photos;
Keep private properties to keep track of current page and total number of pages. These two variables will be use to decide whether application should make a request to load more data from the server. 500px API is returning totalNumber of items in their API. For the approach I am using currentPage variable and totalPages will be enough. But for more safety I will add another variable to keep track of totalItems as well.
@property (nonatomic, assign) NSInteger currentPage;
@property (nonatomic, assign) NSInteger totalPages;
@property (nonatomic, assign) NSInteger totalItems;
To load data, I wrote a separate method, which will accept page parameter. After a successful response, photos array will be updated with new elements. In addition to that currentPage, totalPages and totalItems properties will also updated / reset according to the server response. Usually updating the value once is sufficient. But I am expecting two advantages with approach.
- If the system updating frequently, new data will be available at any time. So problem of not having updated data will avoid with this.
- Sometimes because of programming errors values of above properties will take wrong values. So we can be confident about having correct page numbers.
Finally we are reload data in the table view.
- (void)loadPhotos:(NSInteger)page {
NSString *apiURL = [NSString stringWithFormat:@"https://api.500px.com/v1/photos?feature=editors&page=%ld&consumer_key=%@",(long)page,kConsumerKey];
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:[NSURL URLWithString:apiURL]
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
if (!error) {
NSError *jsonError = nil;
NSMutableDictionary *jsonObject = (NSMutableDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
[self.photos addObjectsFromArray:[jsonObject objectForKey:@"photos"]];
self.currentPage = [[jsonObject objectForKey:@"current_page"] integerValue];
self.totalPages = [[jsonObject objectForKey:@"total_pages"] integerValue];
self.totalItems = [[jsonObject objectForKey:@"total_items"] integerValue];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}
}] resume];
}
Now the things about the UITableView. When deciding number of rows, we should first check whether there are more data to load. If the current page is equal to totalNumber pages that means we are done. We loaded all the available data from the server. For more safety we can check for totalItems with the size of the photos array. If current page is not equal to total number of pages, We increment the numer of rows by 1 to show a additional cell with loading activity indicator.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (self.currentPage == self.totalPages
|| self.totalItems == self.photos.count) {
return self.photos.count;
}
return self.photos.count + 1;
}
In tableView:willDisplayCell:forRowAtIndexPath: method, we checking whether the cell which going to display is last cell. That’s the cell with the loading activity indicator. If so we are making a server call to load data for next page.
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [self.photos count] - 1 ) {
[self loadPhotos:++self.currentPage];
}
}
Here’s body for tableView:cellForRowAtIndexPath: method. If the cell is last cell, we are first showing the loading indicator. Otherwise we are constructing the cell with current element of the photos array. Here you’ll see a strage method which has a sd_ prefix. This is not a standard method of UIImageView class. I did a small improvement to cache images locally using SDWebImage library.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
if (indexPath.row == [self.photos count]) {
cell = [tableView dequeueReusableCellWithIdentifier:@"LoadingCell" forIndexPath:indexPath];
UIActivityIndicatorView *activityIndicator = (UIActivityIndicatorView *)[cell.contentView viewWithTag:100];
[activityIndicator startAnimating];
} else {
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSDictionary *photoItem = self.photos[indexPath.row];
cell.textLabel.text = [photoItem objectForKey:@"name"];
if (![[photoItem objectForKey:@"description"] isEqual:[NSNull null]]) {
cell.detailTextLabel.text = [photoItem objectForKey:@"description"];
}
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:[photoItem objectForKey:@"image_url"]]
placeholderImage:[UIImage<EMAIL_ADDRESS>completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (error) {
NSLog(@"Error occured : %@", [error description]);
}
}];
}
return cell;
}
Server API considerations.
If your API has lot of data to return, then I suggest to use pagination. Without just returning data for requested page, it’ll be helpful to developers to if the API is returning current page, totoal pages, total items count with the response. These information will be change according to the data you have. But without maintaining lot of data locally inside phone / browser we can use server if those are included in response.
Some APIs returning only total items without returning the total number of pages. For such occasions we can calculate the total number of pages using following method. Source.
totalPages = (totalCount + pageSize - 1) / pageSize;


{ if($c{org}->is_generic_nctest) { if($c{exam_login}->finished) { $OUT.=<<"+++"; You have already finished this test - please logout by closing this window. +++ } else { $OUT.=<<"+++";
Once you are happy with your answers - please click the FINISH button below.
WARNING
- please ensure that you have completely finished as you will not have the change to come back and correct answers.
If you want to return and change answers - DO NOT click FINISH and close this window. Later, you can use the login information provided - your answers are saved.
+++ } } else { if(!$c{exam_login}->is_bridge_login) { $OUT.=<<"+++";
You have now finished the quiz - please tell the teacher that you have finished.
+++ } else { if($c{exam_login}->finished) { my $score = $c{exam_login}->get_total_marks; my $total_score = $c{exam_login}->get_total_question_marks; $OUT.=<<"+++";
You have now finished the quiz - below is your mark
$score / $total_score
+++ } else { $OUT.=<<"+++";
TO FINISH THE QUIZ CLICK THE BUTTON BELOW:
+++ } } } }


9:40
Sakura_U
54
Posts
50,8mil
Followers
162
Following
Sakura Uchiha
Medical Ninja in
@Konohahospital
There is no such thing as impossible love, only people incapable of love.
Edit Profile


Daily summary of the Coronavirus (COVID-19) cases by state/province.
coronavirus
A data frame with 7 variables.
Date in YYYY-MM-DD format.
Name of province/state, for countries where data is provided split across multiple provinces/states.
Name of country/region.
Latitude of center of geographic region, defined as either country or, if available, province.
Longitude of center of geographic region, defined as either country or, if available, province.
An indicator for the type of cases (confirmed, death, recovered).
Number of cases on given date.
Country code
Officially assigned country code identifiers with two-letter
Officially assigned country code identifiers with three-letter
UN country code
Country and province (if applicable)
Country or province population
Continent name
Continent code
Johns Hopkins University Center for Systems Science and Engineering (JHU CCSE) Coronavirus website.
The dataset contains the daily summary of Coronavirus cases (confirmed, death, and recovered), by state/province.
#>#> Warning: package ‘dplyr’ was built under R version 3.6.2#> #>#>#> #>#>#> #># Get top confirmed cases by state coronavirus %>% filter(type == "confirmed") %>% group_by(country) %>% summarise(total = sum(cases)) %>% arrange(-total) %>% head(20)#> # A tibble: 20 × 2 #> country total #> <chr> <int> #> 1 US 45400466 #> 2 India 34159562 #> 3 Brazil 21711843 #> 4 United Kingdom 8730787 #> 5 Russia 8041581 #> 6 Turkey 7800766 #> 7 France 7215584 #> 8 Iran 5844589 #> 9 Argentina 5278910 #> 10 Spain 4997732 #> 11 Colombia 4988021 #> 12 Italy 4733557 #> 13 Germany 4462324 #> 14 Indonesia 4238594 #> 15 Mexico 3777209 #> 16 Poland 2961923 #> 17 South Africa 2918883 #> 18 Ukraine 2852109 #> 19 Philippines 2745889 #> 20 Malaysia 2420222# Get the number of recovered cases in China by province coronavirus %>% filter(type == "recovered", country == "China") %>% group_by(province) %>% summarise(total = sum(cases)) %>% arrange(-total)#> # A tibble: 0 × 2 #> # … with 2 variables: province <chr>, total <int>


The information you provide will permit the Consumer Financial Protection Bureau to process your request or inquiry. See More


This browser does not have a Java Plug-in. Get the latest Java Plug-in here.
Before beginning this test, verify that you have access to the Manifest test subject that is to be tested (either included in a Package Interchange File (PIF) or in non-PIF format on the local file system). Complete the test using the step-by-step instructions below. During testing, summary messages to indicate the test progress and status will be displayed in the Test Suite Log located to the right. You may click the link below each summary section to see the detailed messages of the test.
1 of 4
2 of 4
3 of 4
4 of 4
Enter the IMS Manifest file to be tested: File:


Kuda.
Open An Account
Column
Column
Column
Column
Column
Column
Column
Column
Column
Sign in to Kuda
To sign in, please type in the username linked to your Kuda account and your Kuda password.
Username
Password
Forgot User ID or Password? Reset


Marco Parenzan
Marco Parenzan is an independent Cloud and IoT Architect and .NET Developer. He has been awarded as a MVP on Microsoft Azure since 2014 and he's a speaker in major community events in Italy about Azure and .NET development. Currently, Marco is a community lead for 1nn0va, an official Microsoft community in Pordenone, Italy. In 2016, Marco has written a book on Azure. He loves developing retrogames and reading comix.
Talk: Build a serverless, distributed Pong game with Azure
When you want to build a game for fun and profit, you don't like thinking about infrastructure, but focus on business and pay only few, better if you are a startup. But when you build a distributed game, you need state, and state is costly. So having new cloud technologies moving towards serverless, seems we are reaching our goals.
In this live demo, we'll build a distributed pong game, allowing playing over Internet thanks to some Azure PaaS and Serverless services like Service Fabric Mesh, Functions, Event Grid, Azure SignalR, Azure Storage, and having some fun with them.


{{ dining }}
Dining Dollars
{{ schill }}
Schillers
{{ meals }}
Meal Swipes Left This Week
{{ guest }}
Guest Swipes Left This Term
Dining Dollar Balance, Last Two Weeks
LDC vs. Burton
Schiller Balance, Last Two Weeks
Additional Spending Information
Weekly Dining Dollar Budget
{{diningBudget}}
Daily Dining Dollar Budget
{{dailyDiningBudget}}
Meal Swipes in Burton
{{burton}}
Meal Swipes in LDC
{{ldc}}
Laundry Cycles Left
{{laundry}}


PGC League
PGCL is a Counter Strike: Global Offensive league that is open for everyone.
The league is divided into two groups; premier and amateur. Premier league was made for those who want to play more competitively. Amateur league is free and anyone can participate.
Premier League
- 16 teams
- Every thursday 19:30 Eastern European Time
- Matches are streamed on Twitch
- Entry fee 50e per team (everything goes towards the prize)
- Finals are played offline
Amateur League
- Unlimited teams
- Every thursday 19:30 Eastern European Time
- Is not streamed on Twitch
- No entry fee
- Finals are played online


Hello,
Alice
Account Setting
Your Time Line
My Projects
Project Digests
add project
Project title:
Group Member:
Abstract:
Top
Notification
Your Conversations


Preparation time
over 2 hours
Cooking time
10 to 30 mins
Serves
Serves 4-6
For the chicken, using a mortar and pestle, pound the lemongrass with the salt and sugar to make a rough paste. Add the garlic and coriander root or stems and continue to pound to a paste. Add the crushed black peppercorns and pound until you have a semi-smooth paste. Finally, add the fish sauce and mix until well blended.
Rub the chicken pieces thoroughly with the paste, and marinate, covered, in the refrigerator for at least two hours.
Preheat a ridged cast-iron grill pan until hot, but not too hot. Alternatively, light a barbecue outdoors and wait until the flames have died down and the coals are turning white.
Place the chicken in the pan or on the barbecue where it is not too close to the direct heat. Cook the chicken in the grill pan or over the barbecue slowly in order to impart a smoky savoury character and allow the marinade to caramelise.
Turn the chicken pieces frequently (every three minutes or so) to prevent them from burning. Cook for 10-15 minutes, or until cooked through and caramelised (the chicken is cooked when the juices run clear when the chicken is pierced in the thickest part with a skewer).
For the dressing, dry-roast the nuts in a heavy-based pan (without oil) over a medium heat until golden-brown. Shake the pan occasionally, being careful not to scorch the nuts. Remove from the heat and allow the nuts to cool.
Using a mortar and pestle, grind the ginger, chillies and shallots to a paste. Add the roasted nuts and continue to crush, then add the palm sugar and work until smooth. Add the remaining dressing ingredients and mix together. The dressing will be sweet, hot, salty and sour.
For the bean curd salad, half-fill a deep, heavy-based pan with the vegetable oil and heat until a cube of bread dropped in sizzles and turns golden-brown in 30 seconds. (CAUTION: Hot oil can be dangerous. Do not leave unattended.)
Pat the bean curd dry with kitchen paper, then deep-fry in the hot oil for 4-5 minutes, or until golden-brown all over. Remove with a slotted spoon, drain on kitchen paper and cut into ½cm/¼in slices.
Bring a pan of salted water to the boil. Cook the mangetout and bean sprouts in the boiling water for 30 seconds, then quickly refresh under cold running water to stop them from cooking further. Mix the blanched vegetables with the cucumber and red pepper. Scatter over the fried slices of bean curd, the spring onions and coriander leaves.
To serve, spoon the roasted nut and tamarind dressing over the top of the salad and pile the chicken alongside. The salad is best eaten straightaway.


N + 1 refers to where you create N logical brokers inside a Fabric Profile, then run N + 1 containers of the Profile.
For example if N is 2, you'd run 3 containers; one container would be the master of broker1, another container the master of broker2 then the other container would be a slave of broker 1 and 2. This way you can share a smaller pool of slaves across more brokers; so you have a small number of hot stand by slaves to save hardware.


notebooks/MAST/HSC/HSC_TAP/HSC_TAP.html
notebooks/MAST/Kepler/Kepler_Lightcurve/kepler_lightcurve.html
notebooks/MAST/Kepler/Kepler_TPF/kepler_tpf.html
notebooks/MAST/TESS/tess_tic_search_for_dwarf_stars_around_hd_209458/tess_tic_search_for_dwarf_stars_around_hd_209458.html


Back to Posts
Category
Music
Music
Categories
Jan 11, 2016
You will be always a hero
This is David Bowie (Spotify)
Read More
Nov 21, 2015
Meat Loaf - I'd Do Anything For Love (But I Won't Do That)
Read More
Oct 25, 2015
The Magic Numbers "Forever Lost" Live
Read More
Programming
18 Posts
View All
Music
3 Posts
View All
Gamming
2 Posts
View All
Cloud
6 Posts
View All


Lorraine Kelly portrait by Dundee graduate unveiled live on TV
The oil painting was presented to the Scottish host live on air for her 60th birthday.
Television star Lorraine Kelly has been presented with a specially commissioned portrait on her morning show to celebrate her 60th birthday.
The work by University of Dundee graduate Sylvia Tarvet was gifted to the host live on air on Friday by Dr Hilary Jones ahead of her birthday on Saturday.
It was commissioned by members of the team working on the Lorraine show as a surprise present for the former rector of the university.
Ms Tarvet graduated with a degree in fine art from the university’s Duncan of Jordanstone College of Art and Design in 2017.
She wished her subject a happy birthday in a recorded message that accompanied the 36cm by 64cm oil painting.
She has a lovely, open face that is quick to smile but I wanted to show a more contemplative side of her personality, tooSylvia Tarvet
The artist said: “I was very honoured to be selected to paint Lorraine’s portrait and can only hope the final work does her justice.
“I know that she is a great supporter of Duncan of Jordanstone and its graduates and, as I am trying to establish myself as an artist after graduating, this was a major commission for me.
“Normally I would meet the person I’m painting to do sketches and take my own reference photos.
“Of course it wasn’t possible to do that in this case because the painting was a surprise so it was a little more difficult that other portraits. I’d love to get the chance to paint her from life.”
She added: “She has a lovely, open face that is quick to smile but I wanted to show a more contemplative side of her personality, too.
“The unveiling was very nerve-wracking because I really hope she likes and that I have captured not only a physical resemblance but a little of the real Lorraine – kind, contemplative and comfortable in herself.”