Home
Trees
Indices
Help
PyGeodesy
[
frames
] |
no frames
]
[
Identifiers
|
Term Definitions
]
Identifier Index
[
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
]
A
a
(in
AuxLat
)
AlbersError
(in
pygeodesy.albers
)
attrs()
(in
pygeodesy.streprs
)
A
(in
Ellipsoid
)
ALL
(in
_CapsBase
)
atyr
(in
Attitude
)
a
(in
Ellipsoid
)
alongTrackDistanceTo()
(in
LatLon
)
atyr
(in
Attitude4Tuple
)
a
(in
GeodesicExact
)
alongTrackDistanceTo()
(in
LatLon
)
auth
(in
Conic
)
a
(in
RhumbBase
)
ALorder
(in
AuxLat
)
Authalic()
(in
AuxLat
)
a
(in
_SolveLineSolveBase
)
alpha2
(in
Elliptic
)
AuthalicRadius2()
(in
AuxLat
)
a
(in
Triaxial_
)
AlphaKs
(in
Ellipsoid
)
Aux
(in
pygeodesy.auxilats
)
a1
(in
_GeodesicLineExact
)
alphap2
(in
Elliptic
)
Aux
(in
pygeodesy.auxilats.auxily
)
a13
(in
_GeodesicLineExact
)
alt
(in
Attitude
)
auxAngle
(in
pygeodesy.auxilats
)
a2
(in
Ellipsoid
)
angleTo()
(in
Vector3dBase
)
AuxAngle
(in
pygeodesy.auxilats.auxAngle
)
a2_
(in
Ellipsoid
)
anStr()
(in
pygeodesy.deprecated
)
auxAuthalic()
(in
Ellipsoid
)
a2_b
(in
Ellipsoid
)
anstr()
(in
pygeodesy.streprs
)
AuxBeta
(in
pygeodesy.auxilats.auxAngle
)
a2_b2
(in
Ellipsoid
)
antipodal()
(in
Azimuthal7Tuple
)
AuxChi
(in
pygeodesy.auxilats.auxAngle
)
a_b
(in
Ellipsoid
)
antipode()
(in
LatLonEllipsoidalBase
)
auxConformal()
(in
Ellipsoid
)
a_b2e()
(in
pygeodesy.ellipsoids
)
antipode()
(in
pygeodesy.formy
)
auxDLat
(in
pygeodesy.auxilats
)
a_b2e2()
(in
pygeodesy.ellipsoids
)
antipode()
(in
LatLonBase
)
AuxDLat
(in
pygeodesy.auxilats.auxDLat
)
a_b2e22()
(in
pygeodesy.ellipsoids
)
antipode_()
(in
pygeodesy.formy
)
auxDST
(in
pygeodesy.auxilats
)
a_b2e32()
(in
pygeodesy.ellipsoids
)
apply()
(in
Vector3dBase
)
AuxDST
(in
pygeodesy.auxilats.auxDST
)
a_b2f()
(in
pygeodesy.ellipsoids
)
Arc()
(in
_GeodesicLineExact
)
AuxError
(in
pygeodesy.errors
)
a_b2f2()
(in
pygeodesy.ellipsoids
)
ArcDirect()
(in
GeodesicExact
)
auxGeocentric()
(in
Ellipsoid
)
a_b2f_()
(in
pygeodesy.ellipsoids
)
ArcDirectLine()
(in
GeodesicExact
)
auxilats
(in
pygeodesy
)
a_b2n()
(in
pygeodesy.ellipsoids
)
ArcPosition()
(in
_GeodesicLineExact
)
auxily
(in
pygeodesy.auxilats
)
a_f
(in
Ellipsoid
)
ArcPosition()
(in
GeodesicLineSolve
)
auxIsometric()
(in
Ellipsoid
)
a_f2b()
(in
pygeodesy.ellipsoids
)
area
(in
Ellipsoid
)
auxLat
(in
pygeodesy.auxilats
)
a_f2Tuple
(in
pygeodesy.ellipsoids
)
AREA
(in
_CapsBase
)
AuxLat
(in
pygeodesy.auxilats.auxLat
)
a_f_2b()
(in
pygeodesy.ellipsoids
)
area
(in
Triaxial
)
AuxMu
(in
pygeodesy.auxilats.auxAngle
)
ab
(in
Geohash
)
area
(in
Triaxial_
)
auxParametric()
(in
Ellipsoid
)
ab
(in
JacobiConformalSpherical
)
Area()
(in
GeodesicExact
)
AuxPhi
(in
pygeodesy.auxilats.auxAngle
)
ABCMeta
Area()
(in
GeodesicSolve
)
auxRectifying()
(in
Ellipsoid
)
acos1()
(in
pygeodesy.utily
)
area0x
(in
GeodesicAreaExact
)
AuxTheta
(in
pygeodesy.auxilats.auxAngle
)
acre2ha()
(in
pygeodesy.utily
)
Area3Tuple
(in
pygeodesy.karney
)
AuxXi
(in
pygeodesy.auxilats.auxAngle
)
acre2m2()
(in
pygeodesy.utily
)
area_p()
(in
Triaxial_
)
azi
(in
Css
)
AddEdge()
(in
GeodesicAreaExact
)
areaof()
(in
pygeodesy.deprecated
)
azi0
(in
_GeodesicLineExact
)
AddPoint()
(in
GeodesicAreaExact
)
areaOf()
(in
pygeodesy.ellipsoidalExact
)
azi0_sincos2
(in
_GeodesicLineExact
)
adjacent()
(in
Geohash
)
areaOf()
(in
pygeodesy.ellipsoidalGeodSolve
)
azi1
(in
_GeodesicLineExact
)
adjust
(in
Frechet
)
areaOf()
(in
pygeodesy.ellipsoidalKarney
)
azi1
(in
GeodesicLineSolve
)
adjust
(in
Hausdorff
)
areaOf()
(in
pygeodesy.ellipsoidalVincenty
)
azi12
(in
RhumbLineBase
)
adjust
(in
_HeightIDW
)
areaOf()
(in
pygeodesy.points
)
azi12
(in
RhumbLineSolve
)
Aer
(in
pygeodesy.ltpTuples
)
areaOf()
(in
pygeodesy.sphericalNvector
)
azi12_sincos2
(in
RhumbLineBase
)
aer4
(in
Aer
)
areaOf()
(in
pygeodesy.sphericalTrigonometry
)
azi12_sincos2
(in
RhumbLineSolve
)
aer4
(in
Ned
)
areaux()
(in
RhumbAux
)
azi1_sincos2
(in
_GeodesicLineExact
)
aer4
(in
XyzLocal
)
areax
(in
Ellipsoid
)
azi1_sincos2
(in
GeodesicLineSolve
)
Aer4Tuple
(in
pygeodesy.ltpTuples
)
as_integer_ratio()
(in
Fsum
)
AZIMUTH
(in
_CapsBase
)
albers
(in
pygeodesy
)
asin1()
(in
pygeodesy.utily
)
azimuth
(in
Aer
)
Albers7Tuple
(in
pygeodesy.albers
)
atan2b()
(in
pygeodesy.utily
)
azimuth
(in
Local9Tuple
)
AlbersEqualArea
(in
pygeodesy.albers
)
atan2d()
(in
pygeodesy.utily
)
azimuth
(in
Ned
)
AlbersEqualArea2
(in
pygeodesy.albers
)
atand()
(in
pygeodesy.utily
)
azimuth
(in
XyzLocal
)
AlbersEqualArea4
(in
pygeodesy.albers
)
Attitude
(in
pygeodesy.ltp
)
azimuthal
(in
pygeodesy
)
AlbersEqualAreaCylindrical
(in
pygeodesy.albers
)
Attitude4Tuple
(in
pygeodesy.ltpTuples
)
Azimuthal7Tuple
(in
pygeodesy.azimuthal
)
AlbersEqualAreaNorth
(in
pygeodesy.albers
)
AttitudeError
(in
pygeodesy.ltp
)
AzimuthalError
(in
pygeodesy.azimuthal
)
AlbersEqualAreaSouth
(in
pygeodesy.albers
)
attrs()
(in
_Named
)
Home
Trees
Indices
Help
PyGeodesy
Generated by Epydoc 3.0.1 on Sun Aug 20 14:42:06 2023
http://epydoc.sourceforge.net


Here we present approaches to identify fishing activity from S-AIS data for three dominant fishing gear types.
…the descriptive copy goes across two lines instead of three hendrerit erat eu, auctor leo. Donec vitae rutrum.


# Annotations
Annotations allow API authors to express constraints that tools can
enforce. There are many examples of these, along with existing lint
checks:
* `@VisibleForTesting`: this API is considered private, and has been
exposed only for unit testing purposes
* `@CheckResult`: anyone calling this method is expected to do
something with the return value
* `@CallSuper`: anyone overriding this method must also invoke `super`
* `@UiThread`: anyone calling this method must be calling from the UI thread
* `@Size`: the size of the annotated array or collection must be
of a particular size
* `@IntRange`: the annotated integer must have a value in the given range
...and so on. Lint has built-in checks to enforce these, along with
infrastructure to make them easy to write, and to share analysis such
that improvements to one helps them all. This means that you can easily
write your own annotations-based checks as well.
!!! Tip
Note that the annotation support helps you write checks where you
check *usages* of annotated elements, not usages of the annotations
themselves. If you simply want to look at actual annotations,
override `getApplicableUastTypes` to return
`listOf(UAnnotation::class.java)`, and override `createUastHandler`
to return an `object : UElementHandler` which simply overrides
`visitAnnotation`.
## Basics
To create a basic annotation checker, there are two required steps:
1. Register the fully qualified name (or names) of the annotation
classes you want to analyze, and
2. Implement the `visitAnnotationUsage` callback for handling each
occurrence.
Here's a basic example:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
override fun applicableAnnotations(): List {
return listOf("my.pkg.MyAnnotation")
}
override fun visitAnnotationUsage(
context: JavaContext,
element: UElement,
annotationInfo: AnnotationInfo,
usageInfo: AnnotationUsageInfo
) {
val name = annotationInfo.qualifiedName.substringAfterLast('.')
val message = "`${usageInfo.type.name}` usage associated with " +
"`@$name` on ${annotationInfo.origin}"
val location = context.getLocation(element)
context.report(TEST_ISSUE, element, location, message)
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All this simple detector does is flag any usage associated with the
given annotation, including some information about the usage.
If we for example have the following annotated API:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
annotation class MyAnnotation
abstract class Book {
operator fun contains(@MyAnnotation word: String): Boolean = TODO()
fun length(): Int = TODO()
@MyAnnotation fun close() = TODO()
}
operator fun Book.get(@MyAnnotation index: Int): Int = TODO()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...and we then run the above detector on the following test case:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
fun test(book: Book) {
val found = "lint" in book
val firstWord = book[0]
book.close()
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
we get the following output:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
src/book.kt:14: Error: METHOD_CALL_PARAMETER usage associated with @MyAnnotation on PARAMETER
val found = "lint" in book
----
src/book.kt:15: Error: METHOD_CALL_PARAMETER usage associated with @MyAnnotation on PARAMETER
val firstWord = book[0]
-
src/book.kt:16: Error: METHOD_CALL usage associated with @MyAnnotation on METHOD
book.close()
-------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the first case, the infix operator “in” will call `contains` under
the hood, and here we've annotated the parameter, so lint visits the
argument corresponding to that parameter (the literal string “lint”).
The second case shows a similar situation where the array syntax will
end up calling our extension method, `get()`.
And the third case shows the most common scenario: a straight forward
method call to an annotated method.
In many cases, the above detector implementation is nearly all you have
to do to enforce an annotation constraint. For example, in the
`@CheckResult` detector, we want to make sure that anyone calling a
method annotated with `@CheckResult` will not ignore the method return
value. All the lint check has to do is register an interest in
*`androidx.annotation.CheckResult`*, and lint will invoke
`visitAnnotationUsage` for each method call to the annotated method.
Then we just check the method call to make sure that its return value
isn't ignored, e.g. that it's stored into a variable or passed into
another method call.
!!! Tip
In `applicableAnnotations`, you typically return the fully
qualified names of the annotation classes your detector is
targeting. However, in some cases, it's useful to match all
annotations of a given name; for example, there are many, many
variations of the `@Nullable` annotations, and you don't really
want to be in the business of keeping track of and listing all of
them here. Lint will also let you specify just the basename of an
annotation here, such as `"Nullable"`, and if so, annotations like
`androidx.annotation.Nullable` and
`org.jetbrains.annotations.Nullable` will both match.
## Annotation Usage Types and isApplicableAnnotationUsage
### Method Override
In the detector above, we're including the “usage type” in the error
message. The usage type tells you something about how the annotation is
associated with the usage element -- and in the above, the first two
cases have a usage type of “parameter” because the visited element
corresponds to a parameter annotation, and the third one a method
annotation.
There are many other usage types. For example, if we add the following
to the API:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
open class Paperback : Book() {
override fun close() { }
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
then the detector will emit the following incident since the new method
overrides another method that was annotated:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
src/book.kt:14: Error: METHOD_OVERRIDE usage associated with @MyAnnotation on METHOD
override fun close() { }
-----
1 errors, 0 warnings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Overriding an annotated element is how the `@CallSuper` detector is
implemented, which makes sure that any method which overrides a method
annotated with `@CallSuper` is invoking `super` on the overridden
method somewhere in the method body.
### Method Return
Here's another example, where we have annotated the return value
with @MyAnnotation:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
open class Paperback : Book() {
fun getDefaultCaption(): String = TODO()
@MyAnnotation
fun getCaption(imageId: Int): String {
if (imageId == 5) {
return "Blah blah blah"
} else {
return getDefaultCaption()
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, lint will flag the various exit points from the method
associated with the annotation:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
src/book.kt:18: Error: METHOD_RETURN usage associated with @MyAnnotation on METHOD
return "Blah blah blah"
--------------
src/book.kt:20: Error: METHOD_RETURN usage associated with @MyAnnotation on METHOD
return getDefaultCaption()
-------------------
2 errors, 0 warnings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note also that this would have worked if the annotation had been
inherited from a super method instead of being explicitly set here.
One usage of this mechanism in Lint is the enforcement of return values
in methods. For example, if a method has been marked with
`@DrawableRes`, Lint will make sure that the returned value of that
method will not be of an incompatible resource type (such as
`@StringRes`).
### Handling Usage Types
As you can see, your callback will be invoked for a wide variety of
usage types, and sometimes, they don't apply to the scenario that your
detector is interested in. Consider the `@CheckResult` detector again,
which makes sure that any calls to a given method will look at the
return value. From the “method override” section above, you can see
that lint would *also* notify your detector for any method that is
*overriding* (rather than calling) a method annotated with
`@CheckResult`. We don't want to report those.
There are two ways to handle this. The first one is to check whether
the usage element is a `UMethod`, which it will be in the overriding
case, and return early in that case.
The recommended approach, which `CheckResultDetector` uses, is to
override the `isApplicableAnnotationUsage` method:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
override fun isApplicableAnnotationUsage(type: AnnotationUsageType): Boolean {
return type != AnnotationUsageType.METHOD_OVERRIDE &&
super.isApplicableAnnotationUsage(type)
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
Notice how we are also calling `super` here and combining the result
instead of just using a hardcoded list of expected usage types. This
is because, as discussed below, lint already filters out some usage
types by default in the super implementation.
### Usage Types Filtered By Default
The default implementation of `Detector.isApplicableAnnotationUsage`
looks like this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
open fun isApplicableAnnotationUsage(type: AnnotationUsageType): Boolean {
return type != AnnotationUsageType.BINARY &&
type != AnnotationUsageType.EQUALITY
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These usage types apply to cases where annotated elements are
compared for equality or using other binary operators. Initially
introducing this support led to a lot of noise and false positives;
most of the existing lint checks do not want this, so they're opt-in.
An example of a lint check which *does* enforce this is the
`@HalfFloat` lint check. In Android, a
[HalfFloat](https://developer.android.com/reference/androidx/annotation/
HalfFloat) is a representation of a floating point value (with less
precision than a `float`) which is stored in a `short`, normally an
integer primitive value. If you annotate a `short` with `@HalfFloat`,
including in APIs, lint can help catch cases where you are making
mistakes -- such as accidentally widening the value to an int, and so
on. Here are some example error messages from lint's unit tests for the
half float check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
src/test/pkg/HalfFloatTest.java:23: Error: Expected a half float here, not a resource id [HalfFloat]
method1(getDimension1()); // ERROR
---------------
src/test/pkg/HalfFloatTest.java:43: Error: Half-float type in expression widened to int [HalfFloat]
int result3 = float1 + 1; // error: widening
------
src/test/pkg/HalfFloatTest.java:50: Error: Half-float type in expression widened to int [HalfFloat]
Math.round(float1); // Error: should use Half.round
------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
### Scopes
Many annotations apply not just to methods or fields but to classes and
even packages, with the idea that the annotation applies to everything
within the package.
For example, if we have this annotated API:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
annotation class ThreadSafe
annotation class NotThreadSafe
@ThreadSafe
abstract class Stack {
abstract fun size(): Int
abstract fun push(item: T)
abstract fun pop(): String
@NotThreadSafe fun save() { }
@NotThreadSafe
abstract class FileStack : Stack() {
abstract override fun pop(): String
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
And the following test case:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin linenumbers
fun test(stack: Stack, fileStack: Stack) {
stack.push("Hello")
stack.pop()
fileStack.push("Hello")
fileStack.pop()
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here, `stack.push` call on line 2 resolves to the API method on line 7.
That method is not annotated, but it's inside a class that is annotated
with `@ThreadSafe`. Similarly for the `pop()` call on line 3.
The `fileStack.push` call on line 4 also resolves to the same method
as the call on line 2 (even though the concrete type is a `FileStack`
instead of a `Stack), so like on line 2, this call is taken to be
thread safe.
However, the `fileStack.pop` call on line 6 resolves to the API method
on line 14. That method is not annotated, but it's inside a class
annotated with `@NotThreadSafe`, which in turn is inside an outer class
annotated with `@ThreadSafe`. The intent here is clearly that that
method should be considered not thread safe.
To help with scenarios like this, lint will provide *all* the
annotations (well, all annotations that any lint checks have registered
interest in via `getApplicableAnnotations`; it will not include
annotations like `java.lang.SuppressWarnings` and so on unless a lint
check asks for it).
This is provided in the `AnnotationUsageInfo` passed to the
`visitAnnotationUsage` parameters. The `annotations` list will include
all relevant annotations, **in scope order**. That means that for the
above `pop` call on line 5, it will point to first the annotations on
the `pop` method (and here there are none), then the `@NotThreadSafe`
annotation on the surrounding class, and then the `@ThreadSafe`
annotation on the outer class, and then annotations on the file itself
and the package.
The `index` points to the annotation we're analyzing. If for example
our detector had registered an interest in `@ThreadSafe`, it would be
called for the second `pop` call as well, since it calls a method
inside a `@ThreadSafe` annotation (on the outer class), but the `index`
would be 1. The lint check can check all the annotations earlier than
the one at the index to see if they "counteract" the annotation, which
of course the `@NotThreadSafe` annotation does.
Lint uses this mechanism for example for the `@CheckResult` annotation,
since some APIs are annotated with `@CheckResult` for whole packages
(as an API convention), and then there are explicit exceptions carved
out using `@CanIgnoreReturnValue`. There is a method on the
`AnnotationUsageInfo`, `anyCloser`, which makes this check easy:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
if (usageInfo.anyCloser { it.qualifiedName ==
"com.google.errorprone.annotations.CanIgnoreReturnValue" }) {
// There's a closer @CanIgnoreReturnValue which cancels the
// outer @CheckReturnValue annotation we're analyzing here
return
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Tip
You only have to worry about this when there are different
annotations that interact with each other. If the same annotation is
found in multiple nested contexts, lint *will* include all the
annotations in the `AnnotationUsageInfo`, but it will not invoke
your callback for any outer occurrences; only the closest one. This
is usually what detectors expect: the innermost one "overrides" the
outer ones, so lint omits these to help avoid false positives where
a lint check author forgot to handle and test this scenario. A good
example of this situation is with the `@RequiresApi` annotation; a
class may be annotated as requiring a particular API level, but a
specific inner class or method within the class can have a more
specific `@RequiresApi` annotation, and we only want the detector to
be invoked for the innermost one. If for some reason your detector
*does need* to handle all of the repeated outer occurrences, note
that they're all there in the `annotations` list for the
`AnnotationUsageInfo` so you can look for them and handle them when
you are invoked for the innermost one.
### Inherited Annotations
As we saw in the method overrides section, lint will include
annotations in the hierarchy: annotations specified not just on a
specific method but super implementations and so on.
This is normally what you want -- for example, if a method is annotated
with `@CheckResult` (such as `String.trim()`, where it's important to
understand that you're not changing the string in place, there's a new
string returned so it's probably a mistake to not use it), you probably
want any overriding implementations to have the same semantics.
However, there are exceptions to this. For example,
`@VisibleForTesting`. Perhaps a super class made a method public only
for testing purposes, but you have a concrete subclass where you are
deliberately supporting the operation, not just from tests. If
annotations were always inherited, you would have to create some sort
of annotation to "revert" the semantics, e.g.
`@VisibleNotJustForTesting`, which would require a lot of noisy
annotations.
Lint lets you specify the inheritance behavior of individual
annotations. For example, the lint check which enforces the
`@VisibleForTesting` and `@RestrictTo` annotations handles it like this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~kotlin
override fun inheritAnnotation(annotation: String): Boolean {
// Require restriction annotations to be annotated everywhere
return false
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(Note that the API passes in the fully qualified name of the annotation
in question so you can control this behavior individually for each
annotation when your detector applies to multiple annotations.)


Everyone's Progress
CJ Lin:
- Improved shooting physics by fixing collider and re-centering basketball hoop in blender
Peter Michael:
- Read research papers on how to get retargeting to work
- Get started on implementing retargeting
Yan Zhe Ong:
- Worked wit Jasmine develop a better shooting mechanics
- Assisted Jasmine with debugging and implementing a method to move hoop
Jasmine Woon:
- Worked with Yan develop a better shooting mechanics
- Collaborated with Yan debugging and implementing a method to move hoop
- Rigged a basic basketball player
Updates on Code
CJ has been working hard on improving the games physics of our app. Previously, we ran into the issue where some users will expereince the basketball going through the basketball hoop. We also had issues where the ball would oddly bounce off the backboard. Finally, we had issues where the ball would not fall through the net. CJ spent the week working on implementing these feedback into our app.
Jasmine and Yan has been working on allowing the user have the ability to move the hoop. Users can press the bumper of the controller and move their controller to where they want to place the hoop.
Updates on Ideas
Jasmine has been experimenting with rigging. She used this website to help her auto rig. After learning the basics to know how to auto rig, she plans to rig and apply texture in blender for the following basketball players: Steph Curry, LeBron James, Nikola Jokic.
Plan for Next Week
CJ Lin:
Goals for Monday 5/17
- Incorperate better feedback
Peter Michael:
Goals for Monday 5/17
- Implement retargeting
Yan Zhe Ong:
Goals for Monday 5/17
- Work with Jasmine to get a better shooting mechanism
Jasmine Woon:
Goals for Monday 5/17
- Work with Yan to get a better shooting mechanism
Blocking Issues
No blocking issue for now...


VUE-MASTER VBDE Pro Tutorial How to make a ROM from your PNG files (VBDE Pro)
In this tutorial, I'm sharing my experiences with creating the VUE-MASTER Demo Reel. I'm a CG graphics artist with nearly zero programming experience.
This tutorial shows how to make a VUE-MASTER reel in 6 easy steps using VBDE Pro. If you're using VBDE Light, please refer to the respective tutorial.
The tutorial describes the easiest way to use the VUE-MASTER template: by replacing the 7 existing demo images with your own files.
What you will need:
- VUE-prepared PNG files, matching the VB requirements (see the Graphics Tutorial)
- Download and unpack the latest VBDE*
*VBDE is a portable application, which means you can move it anywhere, but it's recommended to put it here: C:\vbde\
Step 1 – Preparing the VBDE project folder
- Browse C:\vbde\samples\vuengine\ and make a copy of the "vue-master" template folder. Name it after your reel's project title.
- Replace the existing demo PNGs under: assets\images\VueMasterImages\ with your own files.
- Delete all existing .c files under: assets\images\VueMasterImages\VueMasterImage#\Binary\ for every image you've replaced.
Step 2 – Setting up the VBDE Pro project
- Launch C:\vbde\VBDE.exe
- If the Windows firewall gives you any warning like "Unknown Publisher" choose "more" > "run anyway".
- Open the VUE-MASTER template path as a project with VBDE Pro.
- You can browse the project files in the left explorer window now.
Step 3 – Converting images to tiles
- Execute: "Tools" > "External Tools" > "CONVERT images" (or just use the quick button in the top right corner).
- New .c files were created in the "Binary" folders.
Step 4 – Transferring tiles count (for every image)
- Open: assets\images\VueMasterImages\VueMasterImage1\Binary\VueMasterImage1.c (neither "..Left.c" nor "..Right.c")
- If the "tiles" count from the header comment (line 7) is 2033 or less: copy it.
- If the tiles count is more than 2033, refer to Part 2 of the Graphics Tutorial.
- Open: assets\images\VueMasterImages\VueMasterImage1\Definition\VueMasterImage1Definition.c
- Paste/replace the tiles count of image 1 under "CharSetROMDef" (line 49).
- Now repeat this procedure (Step 4) for every image, that you have replaced before...
Step 5 – Adding titles to the main menu
- Open: assets\languages\Language_EN.c
- Add your reel's title at line 49.
- Add your reel's description text or credits at line 51.
- Keep your text inside the quotation marks.
- You can add line breaks by pasting \n.
Step 6 – Creating the ROM
- Execute: "Run" > "External Tools" > "COMPILE" (or just use the quick button in the top right corner).
- Compiling is done when this message appears in the console: "Process finished with exit code 0".
Enjoy your stereo reel!
- You will find your VUE-MASTER reel under: ...\build\output.vb
- Test the ROM with an emulator and flash it to your FlashBoy!


Additional remarks for Account.Category_13
The [Cicmpy.Category] field stores the thirteenth account category.


[gecode-users] Multiple separate searches
Guido Tack
tack at gecode.org
Mon Apr 23 07:44:35 CEST 2012
On 23/04/2012, at 3:31 PM, Milton Friedman wrote:
> Guido Tack <tack at ...> writes:
>>
>> --
>> Guido Tack
>> http://www.csse.monash.edu/~guidot/
>>
>> When you construct DFS from a space, DFS takes ownership of that space,
>> unless you give it a search options argument where you set clone to false
>> (see the reference documentation for the DFS class). So here it depends
>> on whether s is still the initial space (in which case you mustn't delete it)
>> or a space returned from e.next (in which case you must delete it).
>> But that's not the main problem with the code above:
>> a space returned from e.next() is always NULL or SS_SOLVED.
>> What you probably want to do is to implement your own Brancher
>> that runs a DFS internally. There is code that does more or less that in
>> gecode/flatzinc/flatzinc.cpp in the current svn trunk, it's called
>> "AuxVarBrancher". Perhaps that can help you to get started.
>>
>> Cheers,
>> Guido
>>
>> _______________________________________________
>> Gecode users mailing list
>> users at ...
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>
>
> Thanks Guido.
>
> I see what you mean about DFS only returning NULL & Solved, and not Branch.
> It looks like when you initialize DFS, s.status() returns Branch,
> you're immediately going to use e.next to call DFS,
> so no need to check for Branch.
As I said, DFS takes ownership of s, so you shouldn't do anything with s after initialising DFS. You are definitely not allowed to delete it!
> That makes the function simpler, and it works.
> But now I'm able to delete s in two places,
> as I was originally trying to do:
> - The first deletion deletes the initial space.
> - The final deletion deletes the space returned by s = e.next()
> So I'm not sure why it's letting me delete both spaces,
> since I didn't use the .clone=false option.
> I must have misunderstood what you meant.
It may just work by accident.
> void DoOneDFS(int argc, char* argv[],const char* ModelName){
> SizeOptions optModel(ModelName);
> optModel.iterations(1);
> optModel.size(3);
> optModel.parse(argc,argv);
> ModelB* s = new ModelB(optModel);
> //initialize DFS search engine
> DFS<modelB> e(s);
> delete s; //deletes initial space
> s = e.next(); //calls DFS
> if (s) { //if not null, then solved
> if (SS_SOLVED==s->status()){
> cout<<"Solved"<<endl;
> s->myprint();
> s->mydebugprint();
> //system("PAUSE");
> }
> else if (SS_FAILED==s->status()){
> cout<<"Failed"<<endl;
> //system("PAUSE");
> }
> else {
> cout<<"Shouldn't arrive here. status: "<<s->status()<<endl;
> system("PAUSE");
> }
> }
> else //null...no solution found.
> delete s;
> }
I'm still puzzled what you are trying to do here. I thought you wanted to run another DFS on a different set of variables when the first DFS finishes, so I would have expected the code to look more or less like this:
DFS<modelB> e(s);
modelB* sol=NULL;
while (sol==NULL) {
sol = e.next();
if (sol==NULL) break; // no more solutions -> done
branch(*sol,....); // Add branch for second set of variables
DFS<modelB> e2(sol);
sol = e2.next();
}
if (sol) {
sol->print();
delete sol; // this is the only object that needs deletion
}
> Thanks for the suggestion about writing my own brancher.
> Would it be significantly faster? If so, what is the source of the speedup?
It wouldn't be faster, it would just be easier to encapsulate (you can run it with any search engine, not just with your own combination of engines).
Cheers,
Guido
More information about the users
mailing list


Hello, Jatin!
Thank you for creating me, I will try to make your life easier!
Active Todos
Add Todos
Go!
Completed Todos
Deleted Todos


By: billyzhang2010 原文发布于：2011-09-11 10:15:59
网站界面简单朴实，作者定期更新一些英语学习的建议和方法，比较中肯实用。
例如下面两篇文章。另外，特别推荐iTunes U。有些讲座的确很适合英语自学者。

Some lectures include pictures or video that will help you understand more. And some professors give links to their web sites, where they have outlines and other information.
2) Bite-sized academic English
If you want to become familiar with American academic English, now you can – 5 minutes, or even 60 seconds, at a time!
iTunes U recently introduced two sources for bite-sized academic English. The University of Wisconsin offers a series of 5-minute Lectures, and you can get 60-second Lectures from the University of Pennsylvania.


In addition to the official pages of the meetup, please find below a brief summary of the previous meetings, with links to the presentations if available. There is also RNEWS page for R news.
Presentation by Casey Josman
Casey talked about ...
R News & Tips
by Andrey Kostenko
The highlights are:
Presentation
by Juan Luong
Juan's talk was on building web applications with Shiny, one of the prime RStudio projects. He reviewed the basic framework, motivating examples, key add-on's, useful links and other relevances.
Presentation
by W. Volk-Makarewicz
Warren's talk was on the nonlinear machine learning dimensionality reduction technique known as t-distributed stochastic neighbor embedding, or t-SNE for short. This relatively new algorithm can be used for embedding high-dimensional data into a space of two or three dimensions, meaning that a usual scatterplot can be used to visualize a high-deminesional dataset.
R News & Tips
by Andrey Kostenko
The highlights are:
● data.table 1.9.6 is now on CRAN
● R Newsfeeds and Cheatsheets
● Popular R time series book is now free
● R and MS PowerPoint (embed a Shiny App in your slides)
● Index of Online R Courses, October 2015
Presentation by Tommy O'Dell
Tommy focused on R package dplyr . Using a well-known dataset, he showed how the six most useful functions of the package can be used for data manipulation. He then reviewed the use of pipe operators, a recent addition to R's best practices. The remainder of the talk was devoted to Tommy's own R package rdplyr, which looks and smells much like dplyr.
The slides and some additional materials are also available from GitHub
here and
here.
R News & Tips
by Andrey Kostenko
The highlights are:
● 125 new R packages a month - how to keep up? Cranberries, MRAN, CRAN, METACRAN, Crantastic
● the man who revolutionised R, hadleyverse (30 slides from Barry Rowlingson exemplifying the use of Hadley's packages, including dplyr),
interviews with Hadley Wikcham
● two new MOOCs on R from Microsoft (starting after September 20)
● R at Microsoft (45 slides from Revolution Analytics)
Presentation by Brian Law
Brian Law presented on using R with other tools for ETL processes. He used no slides.
Presentation by Ulrich Holtel
Ulrich presented an overview of the usage of Docker containers with R and also more generally.
R News & Tips
by Andrey Kostenko
The highlights are:
● R 3.2.2 is coming soon
● R Journal VOL 7/1 is was in June 2015
● RStudio rules!
● Shiny 0.12.0 released
● Perth's WARG meet-up is in the R community calendar
Presentation by Andrey Kostenko
Andrey talked on four more prominent frameworks / technologies for interactive data visualization that are available for R users: ● htmlwidgets framework that bridges R and JavaScript world, ● rCharts package that combines many JavaScript data visualisation libraries, ● Google Chart API, and ● Plotly API. Upon briefly reviewing and exemplifying these alternatives, he concluded that all were good but the most recently proposed htmlwidgets framework seemed best thanks to its flexibility, generality and direct support from RStudio developers.
Presentation
by Alain Lesaffre
Alain shared his tips and advice on using R packages caret and mboost useful to those interested in data science in general and machine learning in particular. Through example he reviewed the caret's main function train() and three groups of parameters associated with it. He concluded that the package helps tune parameters of individual models and select models that predict better from over 140 alternatives.


You must provide clear reasons why {{theChildren}} should be named on the order
A child may be included on an order if the court is satisfied that naming the child on the order is necessary or desirable to protect the child from associated domestic violence, or being exposed to domestic violence committed by the respondent. Associated domestic violence is where domestic violence is committed against a child, relative or associate of an aggrieved.


:
Building permits issued within 6 weeks. Permits issued on-time in the 30-day period ending :
out of
:
Building permits issued within 2 weeks. Permits issued on-time in the 30-day period ending :
out of
:
Building permits issued within 4 weeks. Permits issued on-time in the 30-day
period ending : out of
:
Building permits issued within 8 weeks.
Permits issued on-time in the 30-day period ending : out of
:
ROW permits issued within 3 weeks. Permits issued on-time in the 30-day
period ending : out of
:
ROW permits issued within 3 weeks.Permits issued on-time in the 30-day
period ending : out of
:
Number of violations received:
Amount Allotted:
:
Number of violations received:
Total responses in the 30 day ending :
2018:
2019:


Seek algorithm calculates and returns the steering vector, which is applied to the current velocity of the vehicle in order to approach the target's position.
In this simulation, a target of the Seek method is a point attached to the cursor.
The orange vector sticking out of the center of the vehicle is a visualization of the desired velocity and the violet one shows current velocity of the agent.
The orange vector sticking out of the center of the vehicle is a visualization of the desired velocity and the violet one shows current velocity of the agent.
Mouse position x:
y:
Vehicle position x:
y:
Vehicle velocity :


Doctor Mark Down
Markdown to Html compiler for creating simple documentation that scales with your project. You can browse this document as part of documentation generated by Doctor Mark Down itself on its GitHub Pages.
Why?
Maintaining documentation is expensive. There are many tools that tries to address this issue out there. Some of them uses different aproaches some of them are pretty similar and differs only in features, API or implementation. Doctor Mark Down is not an alternative to any of these (or at least I do not know any of tool using the same aproach). To be clear there is no one good way to solve every case. You should probably consider if Doctor Mark Down fits your needs before you use it in your project. The reason I wrote Doctor Mark Down is that I missed the tool which fits my needs for some of my projects or projects I came across with my coleagues & collaborators. Documentation should be both accesible (think about easy HTML compilation) and easy to maintain (think about keeping it up to date with your project).
How is Doctor Mark Down do NOT Works
The most common solution is generate documentation directly from source files using its comments. This approach has its advantages and disadvantages. The good thing is that documentation lives directly besides source code it refers to. It's easy to track comments updates when implementation changes and also it's supper easy to automate documentation deploy during release etc. Another important thing might be that it's supper easy to access documentation when someone works with source directly. The down side (or at least I think) is that it's really hard to know how actual documentation will look like based on source (comments in source code). Also if you start to adding examples and description in your comments it starts to be quite hard to navigate your actual implementation. Often comments starts to be even larger than actual code which is not cool. I found it's usually hard to keep comments up to date especially when you're spiking some experimental feature. It's also hard to update coments afterwards or decide which part of your code needs to be docummented deeply and which implementation detail doesn't need to be documented at all. Super annoying thing can be when you for some reason need to switch to different tool and realise that structure of your comments is not compatible with new approach (new tool expect different structure). Personally I do not comment my source too much in favour of test/spec suit which descibes API anyway and is proven correct. Anyway still you'll probably need at least some solution for documenting public API especially for libraries.
Another approach I came around few times is to use static site generator like Jekyll. With this kind of tool the documentation written in
some nice markup language (like mark down) and using some template for HTML export. This is nice because you don't need to care about some weird parser which
comments generator usually uses. Also creating custom templates is supper familiar and documentation can be updated by non-technical people.
Anyway you lost some of the great features of comment approach has. For example your documentation no longer lives together with your implementation.
Even if they share same repository, usually you need to put all Markdown files in some _posts
folder etc. Then you have to think
about both structure of your modules and your documentation. It's also harder to keep a track of which part of documetation needs to be updated
if some implementation changes. Also links in your documentation does not corespond with structure of your code anymore
and you loose the benefit of easy accessibility for developers working with source directly.
How is Doctor Mark Down Works
Doctor Mark Down is not better in any of these categories but it comes with reasonable compromise between both. Its approch is simple. It uses markdown files instead of comments but these files live beside actuall implementation. Routes of generated html reflect structure of fils so links works across local copy, Github and generated HTML. It lets you easily define custom templates using templating language with your custom CSS and JS. It offers out of the box syntax highlighting. It lets you decide what is worth documenting and what not.
Instalation
Doctor Mark Down is written in typescript and available via npm as compilated javascript package.
npm install -g doctor-mark-down
You can also use library level version if you want and use public APIs in your projects:
npm install --save doctor-mark-down
Usage
If you have doctor-mark-down globaly instaled, you should be able to run this command from terminal.
docmd [options]
Options
All options are optional. Anyway you should use them to overwrite default values. Here is list of available options
| Name | Shortcut | Default | Description |
|---|---|---|---|
--recursive |
-r |
off |
Recursive mode |
--files |
-f |
["README.md"] |
List of source files |
--skip-first-headline |
-s |
false |
Skip first headline in menu tree (only for non recursive) |
--out-folder |
-o |
"docs" |
Compiled files will be stored to this folder |
--depth |
-d |
6 |
Depth limit of navigation tree (only for non recursive) |
--template |
-t |
default |
Path to template |
--ignore |
-i |
node_modules .git documentation, bower_components |
Ignored directories |
For explanation of how recursive and basic mode here You can find complete guide for templating here
State of Art
Please be aware that this package is in state of Experiment/Proof of concept stage. This means API can or can't change heavilly over time. There is no guarantees that this software will hit stable release or will be maintain for long time. If you found this project interesting please consider any contribution to make stable release happen.
Contributing
All sorts of contributions are wellcome. You fork or clone this repository.
Most of the tasks are already automated using npm scripts.
Dependencies
Node.js should be the only requirement. Anyway this was not tested using Windows. If you ran into some troubles feel free to open issue.
Install dependencies
npm install
Running Tests
Jasmine test framework is used. The most important parts are tested. There are still few things that can be test more deeply. Anyway Typescript provides some extra safety over JavaScript so there is not need to write any large integration tests. If you plan to contribute to this repository always think about providing PR with tests case by case. Its usually good to have at least one test per PR if you fixing bug or providing new feature.
npm test
Build project
Source is written in typescript. You can comple javascript running build
command as follows:
npm run build
This will egenerate dist
folder containing whole project files. This folder is ignored by git.
This step is required if you want to execute ./bin/docmd
.
DOCMD Doctor Mark Down
You can compile Doctor Mark Down documentation for Doctor markdow itsef. This will build project (same as running npm run build
)
and use builded bin/docmd
for generating documentation:
npm start
Improvements I Can Think of...
- [ ] Assets support
- [ ] Custom parser for links
- [ ] Linked assets copying
- [ ] Improve links parsing
- [ ] Link
/index.html
to make links work without server
- [ ] Link
- [ ] Passing start path within cmd line (like
docmd ~/somewhere
) - [ ] Configuration file
- [ ] Fs (levels up) looker for config file
- [ ] Load options from config file (
.docmd.rc
/docmd.json
...) - [ ] Custom footers/names and other meta (loaded from)
- [ ] Pass datastructure instead of HTML to navigation and menu
- [ ] Some recursive
menu-item
helper? - [ ] Add state to manu item (
acessor
&active
flags)
- [ ] Some recursive
MIT License
Copyright (c) 2016 Marek Fajkus
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Gets the nanoseconds since midnight.
The nanoseconds are relative to midnight in the specified
time zone. So for {@code 2016-09-24 00:00:00.000000001-00:01} the
value returned is {@code 1} even though {@code<PHONE_NUMBER>1}
nanoseconds have passed since midnight in UTC.


As I have been diving into programming I have started to learn a lot about the different types of languages there are out there. Not only is every language unique, but each language can also fit into a higher classification (similar to a monkey being a mammal). Two opposing classifications that we have been looking into are Object-oriented vs Functional programming. I want to take a little time to break down what each one is.
Object-oriented programming, aka OOP, is a language that focuses on objects and data over actions and logic. OOP is built around classes. Within these classes we define the methods they use as well as the data they store. From classes, we create objects, or individual instances of the class. These objects interact with each other in certain ways. Because each class only defines the information that it needs, when an object is run it cannot access other programming data. The concept of classes also allows programmers to create any new data type that does not already exist in the language. Examples of popular OOP languages are Java, Python, C++, Visual Basic .NET, and (my favorite) Ruby.
Functional programming, FP, is a style of programming which models computations as the evaluation of expressions. Huh? In FP, programs are run by evaluating expressions (think back to expressions in algebra). FP languages are very useful in distributed systems. If you are writing your program in a FP language, it will do exactly what you expect every time and operates in an environment where its tasks can be shared across hundreds or thousands of networked computers. There are two unique qualities of FP. The first is data is immutable. This basically means that it does not change. The second is functional programs are stateless. Meaning they run every task as if it was the first time with no knowledge of what came before in the program. Examples of functional programming languages are Haskell, Erlang, Lisp, and D.


oder Detail
Care fraud，
More info>
order info：
cancel order
Check out
Confirm receipt
newbee
Pls complete payment~
Confirming order~
warehouse in distribution~
The order has been shipped out~
Success，Thanks for your support~
Transaction closed~
Place order
02月07日
Pay
Distribution
progress
transaction success
newbee
1299元 × 1
delivery information
newbee
Payment method
Payment method：
Online
Deliver fee：
0
$
Total：
1299.00
$


This action returns communications regarding the support case. You can use the AfterTime and BeforeTime parameters to filter by date. The CaseId parameter enables you to identify a specific case by its CaseId number.
The MaxResults and NextToken parameters enable you to control the pagination of the result set. Set MaxResults to the number of cases you want displayed on each page, and use NextToken to specify the resumption of pagination.
describe-communications
--case-id <value>
[--before-time <value>]
[--after-time <value>]
[--next-token <value>]
[--max-results <value>]
String that indicates the AWS Support caseID requested or returned in the call. The caseID is an alphanumeric string formatted as shown in this example CaseId: case-12345678910-2013-c4c1d2bf33c5cf47
End date for a filtered date search on support case communications.
Start date for a filtered date search on support case communications.
Defines a resumption point for pagination.
Integer that sets the maximum number of results to return before paginating.


head_ref_deleted
by Liz Garcia at 2023-07-06 18:02:47.head_ref_deleted
by Liz Garcia at 2023-07-06 18:02:49.head_ref_deleted
by Liz Garcia at 2023-07-06 18:02:56.closed
by Christina Chortaria at 2023-07-06 23:06:57.closed
by Christina Chortaria at 2023-07-06 23:06:58.closed
by Christina Chortaria at 2023-07-06 23:06:58.head_ref_force_pushed
by Liz Garcia at 2023-07-06 19:21:49.referenced
by Christina Chortaria at 2023-07-06 23:06:56.merged
by Christina Chortaria at 2023-07-06 23:06:56.closed
by Christina Chortaria at 2023-07-06 23:06:56.Re-opening after having had a conversation with Will.
reopened
by None at 2023-07-06 16:26:50.We need to replace old notes with new values in a first pass, then in a second pass add boilerplate to all collections.
Spreadsheet is here: https://docs.google.com/spreadsheets/d/10YGW44UwmvOaaKJz4KqFqZ_Ym5dUGFcgmYeidciJ7Z0/edit#gid=0
Edit: we are replacing all existing phystech notes regardless of what the spreadsheet says.
For preservation reasons, original analog and digital media may not be read or played back in the reading room. Users may visually inspect physical media but may not remove it from its enclosure. All analog audiovisual media must be digitized to preservation-quality standards prior to use. Audiovisual digitization requests are processed by an approved third-party vendor. Please note, the transfer time required can be as little as several weeks to as long as several months and there may be financial costs associated with the process. Requests should be directed through the Ask Us Form.
If possible, we want the boilerplate to be the first note in the array.
@Will-Clements I'm assuming we want the link in the boilerplate to be in an EAD tag like so, could you confirm?
<extref xlink:href="https://library.princeton.edu/special-collections/ask-us" xlink:type="simple">Ask Us Form</extref>
Ruby prepend method: https://ruby-doc.org/3.1.4/Array.html#method-i-prepend
mentioned
by Will-Clements at 2023-07-06 16:45:50.subscribed
by Will-Clements at 2023-07-06 16:45:50.head_ref_force_pushed
by None at 2023-07-06 19:15:19.labeled
by Christina Chortaria at 2023-07-06 12:14:36.labeled
by Christina Chortaria at 2023-07-06 12:14:36.I volunteer to spearhead a one-time cleanup project for the lumped 041 fields. I can then add the cleanup method to the marc_cleanup gem to clean SCSB records prior to indexing. We will add 2 new tickets to track this (one in alma-config and one in bibdata).
assigned
by None at 2023-07-06 18:54:36.assigned
by Max Kadel at 2023-07-06 18:54:51.closed by https://github.com/pulibrary/princeton_ansible/pull/4057
labeled
by Christina Chortaria at 2023-07-06 18:36:39.assigned
by Christina Chortaria at 2023-07-06 18:36:44.closed
by Christina Chortaria at 2023-07-06 20:39:12.referenced
by Christina Chortaria at 2023-07-06 21:09:56.merged
by Christina Chortaria at 2023-07-06 21:09:56.closed
by Christina Chortaria at 2023-07-06 21:09:57.head_ref_deleted
by Christina Chortaria at 2023-07-06 21:09:58.I was able to index locally the file fulldump2725565973000642120230630100624[021]new.xml_99.tar.gz running the full reindex task on my machine.
I was also able to index the file using the traject command and no errors were triggered. The same count of files were indexed.
labeled
by Christina Chortaria at 2023-07-06 16:41:02.assigned
by Christina Chortaria at 2023-07-06 16:41:03.labeled
by Kevin Reiss at 2023-07-06 21:03:41.unassigned
by Christina Chortaria at 2023-07-06 22:55:38.closed
by Christina Chortaria at 2023-07-06 23:11:39.closed
by esmé cowles at 2023-07-06 13:11:17.review_requested
by Cliff Wulfman at 2023-07-06 12:13:52.referenced
by esmé cowles at 2023-07-06 13:11:15.merged
by esmé cowles at 2023-07-06 13:11:16.closed
by esmé cowles at 2023-07-06 13:11:16.head_ref_deleted
by esmé cowles at 2023-07-06 13:11:19.labeled
by esmé cowles at 2023-07-06 14:18:14.milestoned
by esmé cowles at 2023-07-06 14:20:03.Dear Lynn,
I’ve ingested these ETDs. There were 13 masters’ theses, as expected, but only 175 (not 177) dissertations in the transfer from ProQuest. I’m sorry, but I don’t have a way to know what’s missing.
The new collections under Masters’ Theses were created as requested.
The files were transferred to us from Proquest on 3 July 2023 and ingested on 6 July 2023.
Thanks, Bess
closed
by Bess Sadler at 2023-07-06 20:34:09.closed
by Bess Sadler at 2023-07-06 20:34:30.referenced
by James R. Griffin III at 2023-07-06 13:27:02.merged
by James R. Griffin III at 2023-07-06 13:27:02.closed
by James R. Griffin III at 2023-07-06 13:27:02.head_ref_deleted
by James R. Griffin III at 2023-07-06 13:27:03.referenced
by Bess Sadler at 2023-07-06 18:28:21.merged
by Bess Sadler at 2023-07-06 18:28:21.closed
by Bess Sadler at 2023-07-06 18:28:22.head_ref_deleted
by Bess Sadler at 2023-07-06 18:28:23.We want to also track the download from the imagecat2 legacy server to the new {source} that is located at imagecat-staging.princeton.edu /var/tmp/imagecat
-- this is where we are using rsync
to move the images to the {destination} that is puliiif-production
.
Tracking movement to var/tmp/imagecat
(see #3996)
- [x] disk1
- [x] disk2
- [x] disk3
- [x] disk4
- [x] disk5
- [x] disk6
- [x] disk7
- [x] disk8
- [x] disk9
- [x] disk10
- [x] disk11
- [x] disk12
- [x] disk13
- [x] disk14
- [x] disk15
- [x] disk16
- [x] disk17
- [x] disk18
- [x] disk19
- [x] disk20
- [x] disk21
- [x] disk22
referenced
by Jane Sandberg at 2023-07-06 14:12:09.merged
by Jane Sandberg at 2023-07-06 14:12:09.closed
by Jane Sandberg at 2023-07-06 14:12:09.head_ref_deleted
by Jane Sandberg at 2023-07-06 14:12:10.referenced
by Jane Sandberg at 2023-07-06 14:12:50.merged
by Jane Sandberg at 2023-07-06 14:12:50.closed
by Jane Sandberg at 2023-07-06 14:12:50.head_ref_deleted
by Jane Sandberg at 2023-07-06 14:12:51.See meeting notes
mentioned
by None at 2023-07-06 17:57:52.subscribed
by None at 2023-07-06 17:57:52.assigned
by Max Kadel at 2023-07-06 18:47:10.assigned
by None at 2023-07-06 17:03:55.After further review, Jennifer reported that there were not any PUL-added content warnings in Alma. She will consult with ADAPT on this and CaMS will establish guidelines for when they would add (initial discussion leaned towards adding them when users report issues, not doing it proactively).
I'm closing this ticket because we don't have this situation currently. We can reopen or make a new ticket when we have examples to work from.
closed
by esmé cowles at 2023-07-06 17:30:51.renamed
by Max Kadel at 2023-07-06 18:16:26.labeled
by Max Kadel at 2023-07-06 18:16:40.assigned
by Max Kadel at 2023-07-06 18:19:52.referenced
by Max Kadel at 2023-07-06 18:25:34.referenced
by Jane Sandberg at 2023-07-06 22:21:20.deployed
by None at 2023-07-06 16:46:41.referenced
by Max Kadel at 2023-07-06 20:12:31.merged
by Max Kadel at 2023-07-06 20:12:31.closed
by Max Kadel at 2023-07-06 20:12:32.head_ref_deleted
by Max Kadel at 2023-07-06 20:12:32.assigned
by Jane Sandberg at 2023-07-06 22:19:36.coverage: 95.385% (-0.001%) from 95.386% when pulling d5c1f16b6f7ce792d13704d9d40552b9663237d1 on i3611removenewactionnote_display into de419de1abed49e1b6e5060a29375fa9907df748 on main.
referenced
by Jane Sandberg at 2023-07-06 22:21:18.merged
by Jane Sandberg at 2023-07-06 22:21:18.closed
by Jane Sandberg at 2023-07-06 22:21:18.head_ref_deleted
by Jane Sandberg at 2023-07-06 22:21:19.assigned
by Christina Chortaria at 2023-07-06 23:21:21.assigned
by Kate Lynch at 2023-07-06 13:59:05.assigned
by Kate Lynch at 2023-07-06 17:09:32.While referencing https://github.com/pulibrary/pdc_discovery/blob/main/docs/solr-mismatch.md, I was continuing to find that new Collections with only 1 shard was failing. This was remedied by creating a new Collection pdc-discovery-production-5
with, instead, 2 shards with 2 nodes:
Priority was given to the diagnosis of the SolrCloud network, which was in part related to a Faraday
setting which did not handle delays in HTTP responses.
assigned
by James R. Griffin III at 2023-07-06 20:59:19.labeled
by James R. Griffin III at 2023-07-06 20:59:29.referenced
by Jane Sandberg at 2023-07-06 14:03:46.merged
by Jane Sandberg at 2023-07-06 14:03:46.closed
by Jane Sandberg at 2023-07-06 14:03:46.head_ref_deleted
by Jane Sandberg at 2023-07-06 14:03:47.referenced
by Jane Sandberg at 2023-07-06 14:21:36.merged
by Jane Sandberg at 2023-07-06 14:21:36.closed
by Jane Sandberg at 2023-07-06 14:21:36.head_ref_deleted
by Jane Sandberg at 2023-07-06 14:21:37.It looks like on the static site, even when there is no item to display, the Mirador viewer shows.
Apparently above is a known problem.
Work to put site into production moved to #4053.
closed
by Max Kadel at 2023-07-06 14:23:14.mentioned
by None at 2023-07-06 14:06:31.subscribed
by None at 2023-07-06 14:06:31.referenced
by None at 2023-07-06 17:23:40.merged
by None at 2023-07-06 17:23:40.closed
by None at 2023-07-06 17:23:40.head_ref_deleted
by None at 2023-07-06 17:23:41.labeled
by Max Kadel at 2023-07-06 18:16:51.@hackartisan - thanks, that's probably what it's doing, I've added a pair of issues to use an environment variable in Princeton Ansible and Orangelight for this - see https://github.com/pulibrary/princeton_ansible/issues/4055 and https://github.com/pulibrary/orangelight/issues/3629
mentioned
by None at 2023-07-06 18:18:02.subscribed
by None at 2023-07-06 18:18:03.review_requested
by Christina Chortaria at 2023-07-06 20:16:33.referenced
by Christina Chortaria at 2023-07-06 20:16:39.merged
by Christina Chortaria at 2023-07-06 20:16:39.closed
by Christina Chortaria at 2023-07-06 20:16:39.head_ref_deleted
by Christina Chortaria at 2023-07-06 20:16:40.closed
by Christina Chortaria at 2023-07-06 20:16:41.labeled
by Kevin Reiss at 2023-07-06 21:43:30.labeled
by Kevin Reiss at 2023-07-06 21:44:00.labeled
by Kevin Reiss at 2023-07-06 21:44:18.labeled
by Kevin Reiss at 2023-07-06 21:45:47.labeled
by Kevin Reiss at 2023-07-06 21:46:09.labeled
by Kevin Reiss at 2023-07-06 21:46:34.labeled
by Kevin Reiss at 2023-07-06 21:47:36.renamed
by Eliot Jordan at 2023-07-06 21:39:01.labeled
by Trey Pendragon at 2023-07-06 21:49:36.referenced
by Trey Pendragon at 2023-07-07 00:54:25.merged
by Trey Pendragon at 2023-07-07 00:54:25.closed
by Trey Pendragon at 2023-07-07 00:54:26.head_ref_deleted
by Trey Pendragon at 2023-07-07 00:54:26.Things we learned:
blacklight.yml
to let it wait longer. 15 minutes let some index.labeled
by Eliot Jordan at 2023-07-06 19:44:51.labeled
by Eliot Jordan at 2023-07-06 19:44:51.renamed
by Eliot Jordan at 2023-07-06 19:45:19.labeled
by Eliot Jordan at 2023-07-06 19:45:57.closed
by Trey Pendragon at 2023-07-07 00:54:27.closed
by Bess Sadler at 2023-07-06 14:09:39.assigned
by Bess Sadler at 2023-07-06 14:11:21.deployed
by None at 2023-07-06 14:50:07.ready_for_review
by Jane Sandberg at 2023-07-06 15:19:21.deployed
by None at 2023-07-06 16:14:49.referenced
by Kevin Reiss at 2023-07-06 18:11:42.merged
by Kevin Reiss at 2023-07-06 18:11:42.closed
by Kevin Reiss at 2023-07-06 18:11:43.head_ref_deleted
by Kevin Reiss at 2023-07-06 18:11:43.assigned
by Kevin Reiss at 2023-07-06 15:07:41.closed
by Kevin Reiss at 2023-07-06 18:29:21.referenced
by Kevin Reiss at 2023-07-06 19:50:24.merged
by Kevin Reiss at 2023-07-06 19:50:24.closed
by Kevin Reiss at 2023-07-06 19:50:24.head_ref_deleted
by Kevin Reiss at 2023-07-06 19:50:25.deployed
by None at 2023-07-06 13:46:39.deployed
by None at 2023-07-06 14:20:24.deployed
by None at 2023-07-06 14:35:58.deployed
by None at 2023-07-06 14:53:25.deployed
by None at 2023-07-06 15:57:25.head_ref_force_pushed
by Kevin Reiss at 2023-07-06 19:52:04.deployed
by None at 2023-07-06 19:58:40.referenced
by Christina Chortaria at 2023-07-06 20:29:05.merged
by Christina Chortaria at 2023-07-06 20:29:05.closed
by Christina Chortaria at 2023-07-06 20:29:06.head_ref_deleted
by Christina Chortaria at 2023-07-06 20:29:08.module added in https://github.com/pulibrary/special_collections/pull/768
assigned
by Kevin Reiss at 2023-07-06 15:07:40.closed
by Kevin Reiss at 2023-07-06 20:43:58.referenced
by None at 2023-07-06 17:46:13.merged
by None at 2023-07-06 17:46:13.closed
by None at 2023-07-06 17:46:13.head_ref_deleted
by None at 2023-07-06 17:46:22.


Default Dark
Small Default Large
Links inside text will be underlined so that they stand out.
test test test


North Herefordshire Election candidates for 2019 - Labour, Tories, Lib Dem, Brexit party and more
Traditionally, elections are held every five years to determine which party will head up the British government. However since 2015, this year will be the third time that voters have been called to the ballot box.
by James Rodger, https://www.facebook.com/jamesrodgerjournalistConservative Party representative Bill Wiggin will battle for North Herefordshire in the 2019 general election.
The constituency was held by the Tory two years ago, and this year, Mr Wiggin faces three other candidates.
He will be up against Joe Wood, from Labour, and Lib Dem representative Phillip Howells.
Ellie Chowns, from the Green Party, completes the list of four candidates for the constituency, which boasts an electorate of 67,000.
Traditionally, elections are held every five years to determine which party will head up the British government. However since 2015, this year will be the third time that voters have been called to the ballot box.
These are the candidates for 2019:
*Bill Wiggin (C)
Joe Wood (Lab)
Phillip Howells (LD)
Ellie Chowns (Green)
Following the controversial Brexit referendum in 2016, the public has witnessed tiresome debates in Parliament resulting in several failed exit deal suggestions.
Three-and-a-half years on, we’re still quite a way off deciding what the state of play will be when the UK leaves the European Union.
At present, Prime Minister, Boris Johnson does not have enough Conservative MPs to pass new laws and approve plans for a Brexit strategy.
It is hoped the general election on December 12, will amend that.


Solidarity is a comprehensive Android app for the University of Batangas' Core Values Subjects. It's an E-Learning app consisting the Digital Copy of the UBCV books. This app gives trivia questions at every end of the lesson and Chapter Quizzes at every end of the chapter. I used Java as it's development language and Firebase for Authentication and Database.
GoTalk is a community chat app for Android. Users can register, log-in and create a topic that will be visible to everyone. Users can enter and chat all people within the group. This app was made using Kotlin as its programming language, a custom API made by DevSlopes for broadcast and authentication and MongoDB for the database.
Boxes, Pies and Knives is a 2.5D Object-Dodger Platformer Game made with Unity. The mechanics in this game is very simple; Be a box, dodge the falling knives, catch the pies and survive as long as you can, Whoever stays alive the longest, wins. This game is still in progress and if you want to collaborate, just click the button below to view the game's repository on github.


Start
Show Music DB
Show Streaming DB
Show Book DB
Show File DB
Search File DB
Search Music DB
Search Streaming DB
Search Book DB
Logout
ID
NAME
SERIES
GENRE
STREAM
{% for row in rows %}
{{row["ID"]}}
{{row["NAME"]}}
{{row["series"]}}
{{row["genre"]}}
Stream
{% endfor %}


I have worked with mostly C# and python during my first year in programming. This was relatively easy since we only went over some basic things in python in the beginning of the year. In the second half of the year we started going over OOP in python and eventually went to C# with this. This is where it got complicating but i still managed to keep up with all the classes and get an A in all my development classes.
During my second year of programming, i picked up alot of the more indepth things that have to do with programming. Stuff like databases, rest apis, concurrent servers and more. I have also worked on two more projects, one that had to do with web development where we made a progressive webapplication and the second one was an application that used AI for posture improvement.
During my first year of college I have finished 2 projects within a team. During my first project I mostly focused on the use of scrum(Agile) and there was only a little bit of programming done. My second project is where I really had to start programming in Java to make an application in Android Studio. This became a good app and I have a video below to showcase the application.
During my second year of college I have finished 2 projects just like my first year but there was a bigger focus on programming. I have made an progressive web application and also a program that helps with improving posture with the use of AI.


Wellesley College Alumna
Wellesley College
Massachusetts Institute of Technology
American College of Greece-Athens


{# Grab the title and description from the CMS general settings. #}
{% set site_title = getSetting('site_name')%}
{% set site_description = getSetting('site_description')%}
{% block title %}{{ site_title|default('AintNobodyMusic.com') }}{% endblock %}
{# Put your CSS in here and we'll minify it into one file. No CDN scripts. More info: #}
{# http://www.webhook.com/docs/minify-your-js-and-css/ #}
{# Useful block for loading outside scripts in other pages. #}
{% block head_extra %}{% endblock %}
{% block body %}
{# Extend base_type to add headers, etc for various types of pages #}
{% block base_type %}{% endblock %}
{# Foundation JS #}
{# Put your JS in here and we'll minify it into one file. No CDN scripts. More info: #}
{# http://www.webhook.com/docs/minify-your-js-and-css/ #}
{% block scripts_extra %}{% endblock %}
{# Google Analytics code. Feel free to remove. #}
{% endblock %}


Love beer but hate the cold? Stay warm in the Balter Beerworks Igloo Village
by WVLT NewsKNOXVILLE, Tenn. (WVLT) — Balter Beerworks says you don't need to brave the cold to enjoy a cold one on the patio.
The brewery has set up the Balter Beerworks Igloo Village where beer lovers can stay warm during the cold Knoxville winter months.
The igloos are ready to use starting Wednesday.
"Come see Knoxville's first Igloo Village!" said Balter on Instagram.
Seats inside the igloos are first come first serve.


These articles are part of exploration that started in late 2015 and early 2016. It was a confusing time: autonomous vehicles and Boston Dynamics were frequently in the news and OpenAI was just formed to make sure that the “march towards AGI was safe.” UBI was actively being discussed by Sam Altman and Ray Kurzweil was promoting 10x / exponential thinking. At the same time, economists like Robert Gordon were arguing that we were actually living in a time of low progress.
I tried to develop my own perspective on what was happening, with key conclusions presented below. Greater detail supporting these conclusions can be found in Part I, Part II, and Part III.
2015-2016 - Conflicting narratives in the media
Living in Silicon Valley, it is difficult to not get caught up in techno-optimism. The World Economic Forum, many McKinsey reports, and Ray Kurzweil frequently remind us of the “unique time” we live in and the benefits of increasingly digital tools - the “4th Industrial Revolution.” It is easy to get caught up in the narrative that, collectively, we are building a service-oriented future, one of unprecedented disruption and progress. Is there any reason to call this into question?
The answer is “yes.” As a simple statistic, the 2015 Economic Report of the President noted that if economic productivity growth had continued to grow at its 1948–1973 rate, the average household income in the United States would be $30,000 higher today.
Technology has undoubtedly provided tremendous benefits to our society. With increased globalization in trade, innovation in information and communication technologies (ICT) is the second defining macroeconomic trend of the late 20th Century and early 21st Century. Together, they have raised hundreds of millions out of poverty, have removed countless information asymmetries (redefining the role of intermediaries and brokers in value chains), and have changed how groups organize, communicate, and exert political influence.
But despite their influence, these two sources of growth have not been able to provide comparable growth to historical innovations and trends. Furthermore, looking forward, there are many reasons to believe that this “quest for growth” may be even more difficult in the next few decades than it has been over the past 40 years. Our faith in technology, while directionally correct, may mask the amount of work required to create the future we want for ourselves and our children.
Unclear of what to make of these apparent paradoxes, I spent time researching economic literature, policy papers, and investment recommendations to understand the impact of digital technologies on the economic growth of the United States. My general conclusion was that digital’s anticipated effect on growth may not be enough to overcome weaknesses in a few common markers of a healthy, burgeoning economy: broad innovation, strong labor trends, and general competition.
In the United States, companies leading digital transformations are winning the battle for market share and profit growth; some (but not many) are reshaping entire industries to their own advantage. Workers with the most sophisticated digital skills are in such high demand that they command wages far above the national average. Meanwhile, there is a growing opportunity cost for the organizations and individuals that fall behind—and too many are falling behind.
After this research, I was left with five conclusions for improving future opportunity:
- Due to today’s market structures, digital skills most benefit incumbent firms. Economic shifts will be slow without large shocks to competition.
- Greater investments should be made in basic science R&D, to identify future growth and diversify areas of productivity in the economy.
- A key differentiation for digital technology is the knowledge of how to effectively apply technology. Therefore, job skills and retraining are a particularly important area of public-private partnerships.
- As the value of synthesized data grows, greater attention will need to be given to the administration of data security and privacy.
- For those marginalized by these disruptions in society, greater guardrails and supports may need to be put in place - e.g., reform in active labor policies.
In a later exercise, my hope is to identify caucuses, task forces, and organizations that are working on initiatives aligned with these causes. The research and additional detail that led to these conclusions can be found in a few supporting articles:
- Part I: We are in a time of slow productivity and strong incumbents.
- Part II: Aging & unproven learning models are headwinds to growth.
- Part III: Technology requires deeper integration into our work lives.
My goal in putting this together was to clarify my own thinking - and to present it in a way that can be challenged and deepened by others. I would be grateful to learn what may resonate (or differ) from your personal perspectives and work.


{% for comment in comments %}
{% include "blog/includes/comments.html" with comment=comment %}
{% endfor %}
{% endif %}
{% if new_comment %}
{% include "includes/components/alert.html" with type="success" title="Success" message="Your comment has been added." %}
{% else %}


# How to Scale your Impact _By Claudio Lassala & Daniel Scheufler_
## Overview * Who are We? * Other talks * Improving * It starts with 1 * Reaching a Group * Beyond the company * Grow another's Impact
![alt text](../img/improving/hiring.png "Improving is hiring")
![alt text](../img/improving/training.png "Upcoming Trainings")
Who is Claudio?
Rocker
Motorcycle Racer
Awesome Speaker
Improver
Who is Daniel?
Christian
Husband
Father
Improver
'Man-Machine Translator'
## Other Topics by Us * How to become a Better Developer - Claudio @ 2PM * Desiging and Running Effective Meetings - Daniel @ 1PM * How to expand your impact - Both @ 3PM
## Start with Why * What are you seeking?
## Finding someone to teach * The tale of Claudio, a Pupil, and TDD
## Lean In * No Teacher is an expert in all things * For maximum benefit, lean in
## How to teach when you aren't an expert * Learn together!
## It starts with One * Impact starts with One person * 'Do not despise the day of small beginnings'
## In the course of time...
## Leading a Team * Demonstrate the value of your belief * Find allies * Right time, Right way
## Teaching a Group * 1 on 1 * Create connections * Show them, do not tell them!
## Teaching future Teachers
## Sucess was found * When they beleived because of their own experience
## Beyond just the Company... * is the community * Talks * Events * Network
## Why Impact the Community? * Find good people * Be Found * Build Business
## Growing the next Generation 'The greatest contribution of a leader is to make other leaders.' - Simon Sinek
## Finding a Pupil * Share Values, interests * Wants to grow
## Grow them Right * Give together * Not about you * Grow where they want to
## Why grow Impact * For You * Start small * Aim beyond yourself
## Why grow Impact * For Company * Grow your Employees * Grow your Network * Grow your Value
## Having any feedback? ![alt text](../../../../img/qr/speaker_form.png "goo.gl/forms/c1sJ2BJX32zAct7J3")
## Care for more? * [daniel.scheufler.io](//daniel.scheufler.io) * [daniel<EMAIL_ADDRESS>* [lassala.net](//lassala.net) * [Claudio's email?]()


{% extends 'layout.html' %} {% set crumbs = (('Community',), ('Powering',)) %} {% block content %}
Below is a list of sites that are powered by mynt and their sources (if available) for people looking for some working examples of mynt sites or are just curious about how people are using mynt.
If you'd like your site added to this list, either message me (Anomareh) in the mynt IRC channel or send me an email with the URL to the site as well as a link to it's source if it's publicly available somewhere.


ester; mash tun, " enzymes alpha acid." hand pump dry hopping carbonation; lambic attenuation scotch ale, barrel. bottle conditioning bottom fermenting yeast pitching wheat beer glass. seidel dunkle alcohol aerobic barrel all-malt biere de garde.
malt extract infusion, hoppy lauter tun; cold filter. shelf life hops, " additive craft beer cold filter."   noble hops. crystal malt bottom fermenting yeast.


1st Author Peer Reviewed Articles
Total Articles
Citations
Approximate Outreach Hours
Realtime aftershock statistics may be able to identify whether an even larger event is likely to follow, the authors of a new study argue. Additional prospective testing and more strategic public communication will be needed prior to deployment.
Apollo 11 was the first step for humankind, and a giant leap for seismology. Landing and deploying seismic sensors on the moon required significant advances in instrumentation and shaped the study of earthquakes. Now we know that both planets host tidally triggered earthquakes.
What a busy end of season! After we made it under Erebus Glacier Tongue to image the grounding line it was full speed ahead to try to get as many dives as possible. We sure did collect a lot of new data, but now that we’re all back in Atlanta it’s time for a review.


An exploration of colour inspired by movement, positivity + New York City
Each bandana has been made and printed by hand.
Show Filters
All
Bandanas
Accessories
Bags
Pocket Square
£40
Bandana
£35
Neckerchief
£20
Wristkerchief
£25
Tea Towel
£35
Balaclava
£25


Control architecture
The vast majority of programming {_parameter parameters} are tonal
parameters. But there are a some that affect the behavior of the instrument
without changing the sound of individual {_voice voices}:
- A {Control_voice_count} parameter that can assign up to four
voices to each note played. The voices play the same sound, but the
{Control_tune_spread} and {Control_pan_spread}
parameters introduce differences into them that makes the overall sound
spacious and animated, rather like having a flanger or phaser per key.
- A {Common_keyboard_algorithm} parameter determines how
keys are assigned to voices. The full complement of keyboard algorithms
from the original Chroma are still present, except for two that don't
make sense in the context of such a large number of available voices. There
are also a pair of new "strum" algorithms, in which the bottom
or top two keys are intercepted and used not to play notes but to generate
triggers that replay whatever notes are held elsewhere on the keyboard. If
the other keys are released, then playing the trigger notes will replay the
last chord but with a very short duration, to roughly simulate the sound of
strumming on muted strings.
- A {Common_footswitch_mode} parameter determines whether
the right Sustain {_footswitch} is enabled or not, and what function the
left footswitch should be assigned to. Its usual function is Sostenuto, but
can also be used as a note gate (only playing notes if the footswitch is
depressed), or an inverted note gate (only playing notes if it is not
depressed). And unlike the original Chroma, it can also function as a
{_glide} enable.


Parna Pratim Mitra
Home
Developer
Suggestions
Every picture tells a story
Events
Lifelines
My Life
Engineering Life


The world is full of weak minded people who are in constant search for something to get offend by.  Thanks for the inspiration.


Hi! My name is Luay, a Front-End Developer
In this interactive page, you will find the projects I worked on and my Technology Background
Web Developer and Network Engineer - I create webpages for startups and private companies
-
My Journey with TECHNOLOGY
- C++, JS and blah blah blah


browser_mcu meeting member with websocket
Start Video
Stop Video
Connect
Disconnect
remote video
local video


If the connection was backpropped to on the last tick it will be green
Training...
Activated Value
#1
#2
Mydata


Two people taken to hospital in critical condition after A59 crash near Ormskirk
by Matthew CalderbankEmergency services have taken two people to hospital in a critical condition after a crash near Ormskirk.
The crash happened in Moss Lane, Burscough at around 4am and involved a number of vehicles.
It is believed that one of the vehicles also collided with a telegraph pole.
North West Ambulance Service said two casualties have been taken to hospital in a critical condition.
An NWAS spokesman said: "We were called at 4.01am to a road traffic accident in Moss Lane, Burscough.
"We sent two ambulances, a rapid response unit, an advanced paramedic and a Hazardous Area Response Team to the scene.
"Two people were taken to hospital."
NWAS said it was unable to provide details on the casualties' current condition.
The Hazardous Area Response Team (HART) is made up of specially trained paramedics who attend incidents that are declared a major incident.
Moss Lane remains closed in both directions, between Sluice Lane in Rufford and Red Cat Lane in Burscough, whilst police continue to investigate.
The A59 junction with New Road, near the Hesketh Arms pub, has also been closed.
Fire crews were also called to the scene to free trapped casualties from the vehicles.
An LFRS spokesman said: "We attended an road traffic accident at 4.05am in Moss lane, Burscough.
"We sent two fire engines from Ormskirk.
"We helped free a number of casualties who had been trapped inside the vehicles.
"We were on the scene for around two hours and were stood down at around 6.20am."
Police are urging people to avoid the area, with the A59 expected to remain closed for some time.
A police spokesman said: "We are asking motorists to continue to avoid the A59 between Burscough and Rufford as the road is still closed due to a serious collision.
"We were called at around 4.10am this morning to a report that a number of vehicles had collided.
"A number of people have been injured as a result and the road remains closed between Red Cat Lane in Burscough and New Road in Rufford whilst we investigate and repairs are carried out to a telegraph pole.
"Red Cat Lane in Burscough and the surrounding roads are congested and traffic in Rufford is being diverted towards Mawdesley which is also making the B5246 very busy.
"We'd urge people to avoid the area if possible for the remainder of the morning.
"We will let everyone know as soon as the road has re-opened."


MB Fund October performance
by Damien KlassenOctober saw investment returns for equity markets higher yet again, the bigger story was a reversal in the bond market. Our tactical investment funds have performed better than most superannuation and investment funds over the year. In October the funds gave back some of the lead we have built up. Outperformance in our international fund helped to pare bond losses.
In our portfolios, we are positioned for adverse outcomes, which means we tend to lag the market on strong up months and then make back the returns in weaker months:
Assets are priced for perfection, and we are expecting conditions to be far from perfect:
- corporate earnings are weak globally,
- inflation is almost nonexistent,
- central banks know that they are out of ammunition and are begging governments to borrow,
- largely governments are ignoring these central banks.
Buy high, sell higher?
Perversely, sometimes buying stocks on an expensive valuation is a good strategy. I am going to argue that this is not one of those times.
The price/earnings ratio is a commonly used valuation metric which compares expected earnings to the price. Simplistically, when this number is high, the market is expensive, when this number is low, it is cheap. In the US, the price/earnings ratio has averaged a little over 15x over the last 15 years.
You would think a profitable strategy would be to:
- Buy the US market when the price/earnings ratio was below average (i.e. cheap)
- Sell when it was above 15x (i.e. expensive)
But that has not been the case.
The reason why is that earnings growth is a great leveller of valuations. Say you bought the US market at 19x earnings (i.e. looking very expensive) in 2003. Two years later prices had increased to be up a further 14%. But, buoyed by a housing boom, the denominator of the price/earnings equation had boomed: 40%+ higher. The US price/earnings ratio was back to its average.
Rational Optimism or Irrational Exuberance?
While the above chart looks like the market always gets it right, you don’t have to stray too far to find counterexamples. Five years earlier, during the tech boom, buying on a high price/earnings multiple was a surefire way to lose money.
With the price/earnings ratio back above 18x, is this:
- Investors bidding prices up in front of another earnings boom?
- Or is it a sign prices have run in front of fundamentals?
In 2003 the US was recovering from the tech wreck, spurred on by loose monetary policy and a nascent housing boom. In 2009 the market was recovering from the financial crisis, just about to post a 30%+ increase in profits. In 2017 Trump tax cuts were just about to turbo-charge profits.
It is much harder now to find the reason for profits to boom from here. Most investors arguing for rational optimism point to:
1. Trade war resolution
Some say a trade war resolution will spur earnings growth. I would argue:
- resolution is uncertain
- the deal that is being currently negotiated is only a preliminary version with little meaningful changes
- the preliminary agreement has little that will spur earnings
- given the problems getting a preliminary deal over the line, the larger deal is a long (long) way away from being resolved
2. Central bank support
The other core argument is central banks have moved from tightening to loosening, which will turn economic conditions positive.
I have sympathy for this argument eventually, but not yet. In the meantime:
- each successive round of easing has less and less of an effect on the economy
- the amount of central bank loosening is still relatively limited
- it is likely economies will need to get worse before central banks act more decisively
For my part, it is too early to invest based on central bank support.
3. The goldilocks zone
A different argument notes that stocks are in a goldilocks zone – enough growth to keep profit strong, not so much growth that central banks need to raise rates.
Inflation, in particular, wage inflation, remains low. This means costs will remain constrained, which is good for profit margins.
There is plenty of truth in this argument. The more important question is how much do you want to pay for stocks in the goldilocks zone given:
- being in the goldilocks zone helps keep profits grinding high, but it isn’t a reason for earnings to rocket higher
- there is a risk that stocks leave the goldilocks zone
I’m arguing that stocks in the goldilocks zone are attractive – just not so attractive that I’m prepared to pay the same price the market usually pays just before a massive earnings boom.
So where does an asset allocator turn?
If the increase in valuations is a rational response by markets to improved economic conditions, then we should be buying stocks. We don’t think it is.
Another argument is that there is no alternative. Stocks are expensive, but so is everything else. This is partly true. Bonds are expensive, but cash is always fair value. We are also of the view that Australian bonds have room to become more expensive.
Stagnant growth is going to be on the menu until we see governments spending money. And probably “helicopter” money. Given the current state of economics, that will probably take a sizeable economic crisis. Until then, we expect more of the same – slow growth and a grind lower.
The low yields present an asset allocation quandary. I was hoping that by this stage, we would have seen more reasonable equity prices, allowing us to switch out of our bonds and into equities. But equities are looking expensive. Not irrationally expensive, but certainly more costly than we would have thought given the uncertain and low growth outlook. So we are now holding lots of cash, looking for the right opportunity.
October Performance
We are comfortable with the view that the defensive position is warranted. If markets shoot higher, then we will underperform, but we think the trade-off is justified. Downside protection is more important at this point in the cycle than chasing stock markets higher. The last few days of deteriorating US/China relations being a stark case in point
Investment Outlook
Australian shares are still considerably more expensive than most international comparisons with weaker growth expected. We retain large cash and bond balances to hedge against volatility and with the expectation capital protection will be necessary for the next few months.
Our key focus is on:
- Chinese growth, gauging the extent of the slow down and the policy response to the trade war
- Trying to work out how sustainable the effect of the Australian election will be on house prices
- Gauging the damage that a Boris Johnson led Brexit might cause
Damien Klassen is Head of Investments at the Macrobusiness Fund, which is powered by Nucleus Wealth.
The information on this blog contains general information and does not take into account your personal objectives, financial situation or needs. Past performance is not an indication of future performance. Damien Klassen is an authorised representative of Nucleus Wealth Management, a Corporate Authorised Representative of Nucleus Advice Pty Ltd – AFSL 515796.
Damien Klassen
Latest posts by Damien Klassen (see all)
- MB Fund October performance - November 21, 2019
- The problem with traditional ethical funds - November 15, 2019
- How to create a $47bn WeWork in one easy step - November 7, 2019


The current development version of SharpClaw can be obtained via Mercurial:
hg clone http://bitbucket.org/ketch/sharpclaw
If you don’t have Mercurial, you can download it from http://mercurial.selenic.com/downloads/.
Alternatively, the most recent release version of SharpClaw can be downloaded from http://web.kaust.edu.sa/faculty/davidketcheson/Software.html.
You must set the environment variable SCLAW to the path where you put the sharpclaw directory. In csh the relevant line in your .cshrc file is:
setenv SCLAW /path/to/sharpclaw/
Then, to build the 1D code:
cd $SCLAW/lib/1d
make
Or to build the 2D code:
cd $SCLAW/lib/2d
make
If you have built the code for 1D and later need to rebuild for 2D, (or vice versa), it is necessary to make clean in the /1d/ directory.
To run an example, just cd to any subdirectory of examples/ and type:
make all
This will compile the executable, run the code, and create plots. Finally, you will be given a message directing you to open a webpage containing the plots.


Individual Exercises
Class Discussion
Visually Aided Listening
Who are the United Nations peacekeepers and where do they come from? What role do they play
in
setting a calmer stage in a conflict situation—so that it is more
likely a negotiated solution to the conflict can be found and the conditions of peace can be restored? What
are the special challenges peacekeepers face in carrying out their mandate -- and what conditions
are necessary to their carrying it our successfully?
These are some of the questions this unit explores in its reading and listening
comprehension passages. The unit's Writing Task provides a chance for learners to write a
proposal to go on a peacekeeping mission.
Reading and listening comprehension exercises provide information about the role and origin
of UN peacekeeping as they provide practice with the four skills of English.


0
size
returns positive valuesavg
head
and tail
are Safefoldr1
average
map
init
init'
insert
List
s ElementsList
keys
Map
eval
create
pack
unsafeTake
unpack
Refinement Types = Types + Predicates
b := Int -- base types
| Bool
| ...
| a, b, c -- type variables
t := {x:b | p} -- refined base
| x:t -> t -- refined function
p := ... -- predicate in decidable logic
p := e -- atom
| e1 == e2 -- equality
| e1 < e2 -- ordering
| (p && p) -- and
| (p || p) -- or
| (not p) -- negation
e := x, y, z,... -- variable
| 0, 1, 2,... -- constant
| (e + e) -- addition
| (e - e) -- subtraction
| (c * e) -- linear multiplication
| (f e1 ... en) -- uninterpreted function
Refinement Logic: QF-UFLIA
Quantifier-Free Logic of Uninterpreted Functions and Linear Arithmetic
0
{-@ ... @-}
Q: First, can you fix Pos
so poss
is rejected?
poss
so it is accepted?
What is the type of 0
?
{-@ zero :: Zero @-}
zero = 0
{-@ zero' :: Nat @-}
zero' = zero
In environment \(\Gamma\) the type \(t_1\) is a subtype of the type \(t_2\)
\[\boxed{\Gamma \vdash t_1 \preceq t_2}\]
Environment \(\Gamma\) is a sequence of binders
\[\Gamma \doteq \overline{\bindx{x_i}{P_i}}\]
\[\boxed{\Gamma \vdash t_1 \preceq t_2}\]
\[ \begin{array}{rll} {\mathbf{If\ VC\ is\ Valid}} & \bigwedge_i P_i \Rightarrow Q \Rightarrow R & (\mbox{By SMT}) \\ & & \\ {\mathbf{Then}} & \overline{\bindx{x_i}{P_i}} \vdash \reft{v}{b}{Q} \preceq \reft{v}{b}{R} & \\ \end{array} \]
type Nat = {v:Int | 0 <= v}
Hence, we can type:
Eliminates boring proofs ... makes verification practical.
false
\(\Rightarrow\) no valid inputs for impossible
impossible
never called at run-time
Let's write a safe division function
safeDiv
to banish the error?
Precondition
{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
Verifies As
\[\inferrule{}{(v = 2) \Rightarrow (v \not = 0)} {\bindx{x}{\Int}, \bindx{y}{\Int} \vdash \reftx{v}{v = 2} \preceq \reftx{v}{v \not = 0}} \]
Q: Can you fix calc
so it typechecks?
Rejected as n
can be any Nat
\[0 \leq n \Rightarrow (v = n) \not \Rightarrow (v \not = 0)\]
size
returns positive valuesSpecify post-condition as output type
{-@ size :: [a] -> Pos @-}
size [] = 1 -- (1)
size (_:xs) = 1 + n where n = size xs -- (2)
Verified As
avg
Verifies As
\[(0 < n) \Rightarrow (v = n) \Rightarrow (v \not = 0)\]
Refinement Types
Types + PredicatesSpecify Properties
Via Refined Input- and Output- TypesVerify Properties
Via SMT based Predicate Subtyping
How to prevent calling size
with empty lists?
Next: A way to describe properties of structures


Bread Recipes
| abm.zip | (284k) | 1039 bread machine recipes |
| bread.zip | (344k) | 997 bread recipes (A - F) |
| bread2.zip | (379k) | 1006 bread recipes (G - Pi) |
| bread3.zip | (291) | 818 bread recipes (Pl - Z) |
| muffins.zip | (91k) | 121 muffin recipes |
| rolls.zip | (97k) | 232 roll recipes |
| bbq.zip | (351k) | 1077 barbecue recipes |
| cheese.zip | (485k) | 1532 cheese recipes |
| ch-brownies.zip | (29k) | 94 choc. brownies recipes |
| ch-cake.zip | (249k) | 635 choc. cake recipes |
| ch-cheesecake.zip | (57k) | 372 choc. cheesecake recipes |
| ch-cookie.zip | (135k) | 432 choc. cookie recipes |
| ch-fudge.zip | (32k) | 99 choc. fudge recipes |
| ch-icecream.zip | (16k) | 44 choc. ice cream recipes |
| ch-pie.zip | (40k) | 144 choc. pie recipes |
| otherchocolate.zip | (315k) | 893 other chocolate recipes |
| crockpot.zip | (352k) | 1297 crockpot recipes |
| brownies.zip | (25k) | 70 brownies recipes |
| cake.zip | (314k) | 897 cake (A - Mi) recipes |
| cake2.zip | (312k) | 905 cake (Mo - Z) recipes |
| cheesecake.zip | (134k) | 372 cheesecake recipes |
| cookies.zip | (370k) | 1228 cookie recipes |
| fudge.zip | (43k) | 161 fudge recipes |
| icecream.zip | (186k) | 619 ice cream recipes |
| otherdesserts.zip | (357k) | 1023 other chocolate recipes (A - H) |
| otherdesserts2.zip | (397k) | 1178 other chocolate recipes (I - Z) |
| pie.zip | (269k) | 964 pie recipes (A - O) |
| pie2.zip | (172k) | 538 pie recipes (P - Z) |
| lclfbbq.zip.zip | (13k) | 30 bbq recipes |
| lclfbread.zip | (26k) | 748 bread recipes |
| lclfchili.zip | (8k) | 16 chili recipes |
| lclfcrockpot.zip | (13k) | 40 crockpot recipes |
| lclfdessert.zip | (115k) | 315 dessert recipes |
| lclfgrndmeat.zip | (10k) | 21 gr. meat recipes |
| lclfham-pork.zip | (9k) | 19 ham/pork recipes |
| lclfothermeat.zip | (8k) | 21 other meat recipes |
| lclfseafood.zip | (40k) | 98 seafood recipes |
| lclfsidedish.zip | (15k) | 39 side dish recipes |
| lclfsoups.zip.zip | (40k) | 98 soup recipes |
| chili.zip | (196k) | 530 chili recipes |
| grndmeat.zip | (343k) | 938 gr. meat (A - O) recipes |
| grndmeat2.zip | (194k) | 531 gr. meat (P - Z) recipes |
| ham-pork.zip | (325k) | 372 ham/pork (A - O) recipes |
| ham-pork2.zip | (245k) | 631 ham/pork (P - Z) recipes |
| marinades.zip | (103k) | 397 marinade recipes |
| othermeat.zip | (406k) | 1137 other meat recipes (A - Mi) |
| othermeat2.zip | (331k) | 921 other meat recipes (I - Z) |
| steak.zip | (145k) | 444 steak recipes |
| seafood.zip | (328k) | 923 seafood recipes (A - Fir) |
| seafood1.zip | (343k) | 940 seafood (Fis - Ov) recipes |
| seafood2.zip | (390) | 1065 seafood (Oy - Sh) recipes |
| seafood3.zip | (247k) | 660 seafood (Si - Z) recipes |
| sidedish.zip | (296k) | 890 side dish recipes |
| soup.zip | (354k) | 1037 soup recipes (A - Cr) |
| soup1.zip | (329) | 954 soup (Cu - Mi) recipes |
| soup2.zip | (455) | 1283 soup (Mo - Z) recipes |


Preparation time
overnight
Cooking time
less than 10 mins
Serves
Serves 4
Korean kimchi flavours meet fresh seafood.
For the cabbage, put the cabbage in a colander, sprinkle it with sea salt and leave to drain over a plate for 2 hours. Rinse and squeeze dry – you should be left with 200g/7oz cabbage – then put it in a large heatproof bowl.
Put the sugar, vinegars, mirin, star anise, ginger, garlic and 1 heaped teaspoon salt in a saucepan and slowly bring to the boil. Cook, stirring, until the sugar and salt have dissolved. Pour the hot mixture over the cabbage, stir well and leave to cool.
Spoon the cabbage and its liquid into a sterilised jar, seal and label. Set aside for at least a day, or up to a week.
When you are ready to eat, make the Gentleman’s Relish mayonnaise. Spoon the mayonnaise into a bowl, add a teaspoon of the Gentleman’s Relish and taste. Keep adding the relish like this and tasting until you have a savoury, slightly salty mixture. Season with the lemon juice.
For the cabbage, put the pickled cabbage in a bowl. Blanch the chillies, then dunk them in iced water twice and drain before adding them to the bowl. Add the chervil, blanched chillies, rehydrated seaweed and brown shrimps and season with salt. Taste and mix in olive oil, lemon and lime juice to taste.
Put the sliced scallops on a clean stainless steel or plastic tray and sprinkle with the lime zest.
Put the kimchi-style cabbage in a serving dish and dot with the Gentleman’s Relish mayonnaise. Lay the scallops on top and lightly season each slice with salt. Finish with a drizzle of coriander oil.


Currently studying in UteM,
pursuing Bachelor of Science Computer(Computer Security)
AGE : 22 years old
DOB : 10th March 1998
EMAIL<EMAIL_ADDRESS>ADDRESS: Besut, Terengganu
HOBBIES: Reading, surfing internet, watching movies/drama
AMBITION: Lecturer