Explain Plan
DB2 Universal Database Version 9.7, 5622-044 (c) Copyright IBM Corp. 1991, 2008
Licensed Material - Program Property of IBM
IBM DATABASE 2 Explain Table Format Tool
******************** EXPLAIN INSTANCE ********************
DB2_VERSION: 09.07.0
SOURCE_NAME: SQLC2H20
SOURCE_SCHEMA: NULLID
SOURCE_VERSION:
EXPLAIN_TIME: 2009-10-19-<IP_ADDRESS>0001
EXPLAIN_REQUESTER: CLARALIU
Database Context:
----------------
Parallelism: None
CPU Speed: 3.818116e-007
Comm Speed: 100
Buffer Pool size: 6250
Sort Heap size: 256
Database Heap size: 600
Lock List size: 4096
Maximum Lock List: 22
Average Applications: 1
Locks Available: 28835
Package Context:
---------------
SQL Type: Dynamic
Optimization Level: 5
Blocking: Block All Cursors
Isolation Level: Cursor Stability
---------------- STATEMENT 1 SECTION 201 ----------------
QUERYNO: 15
QUERYTAG: CLP
Statement Type: Select
Updatable: No
Deletable: No
Query Degree: 1
Original Statement:
------------------
SELECT patient_id,date_of_consultancy,
XMLQUERY('$i/ClinicalDocument/component/structuredBody/component/section/text'
PASSING GRP1255977523782_12.out_patient_data.PMD as "i") as
Past_Medical_Details
FROM GRP1255977523782_12.out_patient_data
WHERE
xmlexists('$i/ClinicalDocument/recordTarget/patientRole/patient/name[given =
"James"]' passing PMD as "i")
Optimized Statement:
-------------------
SELECT Q2.PATIENT_ID AS "PATIENT_ID", Q2.DATE_OF_CONSULTANCY AS
"DATE_OF_CONSULTANCY", Q1.$C1 AS "PAST_MEDICAL_DETAILS"
FROM $INTERNAL_FOR$ ((TABLE ($INTERNAL_XPATH$
('($INTERNAL_XMLTOXML_NIEO$(Q2.PMD))/{(.[ $INTERNAL_EBV_BOOLEAN$(Clinic
alDocument/recordTarget/patientRole/patient/name[(given =
"James")])])(:-->$C0:),
ClinicalDocument/component/structuredBody/component/section/(text)(:-->$C1:)}'
))) AS Q1), GRP1255977523782_12.OUT_PATIENT_DATA AS Q2
Access Plan:
-----------
Total Cost: 37.86
Query Degree: 1
Rows
RETURN
( 1)
Cost
I/O
|
1
NLJOIN
( 2)
37.86
5
/-+--\
1 1
FETCH XSCAN
( 3) ( 7)
7.59764 30.2623
1 4
/-------+--------\
1 102
RIDSCN DP-TABLE: GRP1255977523782_12
( 4) OUT_PATIENT_DATA
0.0312501 Q2
0
|
1
SORT
( 5)
0.0307587
0
|
1
XISCAN
( 6)
0.0296034
0
|
102
XMLIN: GRP1255977523782_12
NAMEINDEX
Q2
Extended Diagnostic Information:
--------------------------------
No extended Diagnostic Information for this statement.
Plan Details:
-------------
1) RETURN: (Return Result)
Cumulative Total Cost: 37.86
Cumulative CPU Cost: 157087
Cumulative I/O Cost: 5
Cumulative Re-Total Cost: 30.2916
Cumulative Re-CPU Cost: 135049
Cumulative Re-I/O Cost: 4
Cumulative First Row Cost: 37.8581
Estimated Bufferpool Buffers: 9
Arguments:
---------
BLDLEVEL: (Build level)
DB2 v<IP_ADDRESS>1 : s090521
HEAPUSE : (Maximum Statement Heap Usage)
160 Pages
PREPTIME: (Statement prepare time)
58 milliseconds
STMTHEAP: (Statement heap size)
2048
Input Streams:
-------------
9) From Operator #2
Estimated number of rows: 1
Number of columns: 3
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q3.PAST_MEDICAL_DETAILS
+Q3.DATE_OF_CONSULTANCY+Q3.PATIENT_ID
Expected Sequence Sizes:
------------------------
1.000000,NA,NA
2) NLJOIN: (Nested Loop Join)
Cumulative Total Cost: 37.86
Cumulative CPU Cost: 157087
Cumulative I/O Cost: 5
Cumulative Re-Total Cost: 30.2916
Cumulative Re-CPU Cost: 135049
Cumulative Re-I/O Cost: 4
Cumulative First Row Cost: 37.8581
Estimated Bufferpool Buffers: 9
Arguments:
---------
EARLYOUT: (Early Out flag)
NONE
FETCHMAX: (Override for FETCH MAXPAGES)
IGNORE
ISCANMAX: (Override for ISCAN MAXPAGES)
IGNORE
Input Streams:
-------------
7) From Operator #3
Estimated number of rows: 1
Number of columns: 4
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)+Q2.DATE_OF_CONSULTANCY
+Q2.PATIENT_ID+Q2.PMD
Expected Sequence Sizes:
------------------------
NA,NA,NA,1.000000
8) From Operator #7
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q1.$C1
Expected Sequence Sizes:
------------------------
0.010539
Output Streams:
--------------
9) To Operator #1
Estimated number of rows: 1
Number of columns: 3
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q3.PAST_MEDICAL_DETAILS
+Q3.DATE_OF_CONSULTANCY+Q3.PATIENT_ID
Expected Sequence Sizes:
------------------------
1.000000,NA,NA
3) FETCH : (Fetch)
Cumulative Total Cost: 7.59764
Cumulative CPU Cost: 98575
Cumulative I/O Cost: 1
Cumulative Re-Total Cost: 0.0317091
Cumulative Re-CPU Cost: 83049
Cumulative Re-I/O Cost: 0
Cumulative First Row Cost: 7.59575
Estimated Bufferpool Buffers: 5
Arguments:
---------
CUR_COMM: (Currently Committed)
TRUE
GLOBLOCK: (Global Lock intent)
INTENT SHARE
JN INPUT: (Join input leg)
OUTER
LCKAVOID: (Lock Avoidance)
TRUE
MAXPAGES: (Maximum pages for prefetch)
1
PREFETCH: (Type of Prefetch)
NONE
ROWLOCK : (Row Lock intent)
SHARE (CS/RS)
SKIP_INS: (Skip Inserted Rows)
TRUE
SPEED : (Assumed speed of scan, in sharing structures)
SLOW
TABLOCK : (Table Lock intent)
INTENT SHARE
TBISOLVL: (Table access Isolation Level)
CURSOR STABILITY
THROTTLE: (Scan may be throttled, for scan sharing)
FALSE
VISIBLE : (May be included in scan sharing structures)
FALSE
WRAPPING: (Scan may start anywhere and wrap)
FALSE
Input Streams:
-------------
5) From Operator #4
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)
6) From Object GRP1255977523782_12.OUT_PATIENT_DATA
Estimated number of rows: 102
Number of columns: 3
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.DATE_OF_CONSULTANCY+Q2.PATIENT_ID+Q2.PMD
Expected Sequence Sizes:
------------------------
NA,NA,1.000000
Output Streams:
--------------
7) To Operator #2
Estimated number of rows: 1
Number of columns: 4
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)+Q2.DATE_OF_CONSULTANCY
+Q2.PATIENT_ID+Q2.PMD
Expected Sequence Sizes:
------------------------
NA,NA,NA,1.000000
4) RIDSCN: (Row Identifier Scan)
Cumulative Total Cost: 0.0312501
Cumulative CPU Cost: 81847
Cumulative I/O Cost: 0
Cumulative Re-Total Cost: 0.0302857
Cumulative Re-CPU Cost: 79321
Cumulative Re-I/O Cost: 0
Cumulative First Row Cost: 0.0307587
Estimated Bufferpool Buffers: 0
Arguments:
---------
NUMROWS : (Estimated number of rows)
1
Input Streams:
-------------
4) From Operator #5
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)
Output Streams:
--------------
5) To Operator #3
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)
5) SORT : (Sort)
Cumulative Total Cost: 0.0307587
Cumulative CPU Cost: 80560
Cumulative I/O Cost: 0
Cumulative Re-Total Cost: 0.0296034
Cumulative Re-CPU Cost: 77534
Cumulative Re-I/O Cost: 0
Cumulative First Row Cost: 0.0307587
Estimated Bufferpool Buffers: 0
Arguments:
---------
DUPLWARN: (Duplicates Warning flag)
TRUE
NUMROWS : (Estimated number of rows)
1
ROWWIDTH: (Estimated width of rows)
20
SORTKEY : (Sort Key column)
1: Q2.$RID$(A)
TEMPSIZE: (Temporary Table Page Size)
8192
UNIQUE : (Uniqueness required flag)
TRUE
Input Streams:
-------------
3) From Operator #6
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$
Output Streams:
--------------
4) To Operator #4
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$(A)
6) XISCAN: (Index Scan over XML)
Cumulative Total Cost: 0.0296034
Cumulative CPU Cost: 77534
Cumulative I/O Cost: 0
Cumulative Re-Total Cost: 0.0296034
Cumulative Re-CPU Cost: 77534
Cumulative Re-I/O Cost: 0
Cumulative First Row Cost: 7.57934
Estimated Bufferpool Buffers: 0
Arguments:
---------
DPNUMPRT: (Number of data partitions accessed)
4
GLOBLOCK: (Global Lock intent)
INTENT NONE
ROWLOCK : (Row Lock intent)
NONE
SCANDIR : (Scan Direction)
FORWARD
TABLOCK : (Table Lock intent)
INTENT NONE
UR_EXTRA: (UR plus extra table lock and may upgrade to CS)
TRUE
XDFOUT : (Expected Documents per Input Value)
0.009804
XLOGID : (Logical Index over XML)
GRP1255977523782_12.NAMEINDEX
XPHYID : (Physical Index over XML)
SYSIBM .SQL091019152046360
Predicates:
----------
*) Start Key Predicate,
Comparison Operator: Equal (=)
Subquery Input Required: No
Predicate Text:
--------------
($INTERNAL_XMLTOXML_NIEO$(Q2.PMD))/./ClinicalDocument/r
ecordTarget/patientRole/patient/name/given = "James"
Input Streams:
-------------
1) From Object GRP1255977523782_12.NAMEINDEX
Estimated number of rows: 102
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$
2) From Object SYSIBM.SQL091019152046360
Estimated number of rows: 102
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$
Output Streams:
--------------
3) To Operator #5
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q2.$RID$
7) XSCAN : (XML Doc Navigation)
Cumulative Total Cost: 30.2623
Cumulative CPU Cost: 58511.8
Cumulative I/O Cost: 4
Cumulative Re-Total Cost: 30.2599
Cumulative Re-CPU Cost: 52000
Cumulative Re-I/O Cost: 4
Cumulative First Row Cost: 30.2623
Estimated Bufferpool Buffers: 408
Arguments:
---------
INPUTXID: (Context Node)
PMD
JN INPUT: (Join input leg)
INNER
XPATH : (Internal XPath Expression)
($INTERNAL_XMLTOXML_NIEO$(Q2.PMD))/{(.[ $INTERNAL_EBV_B
OOLEAN$(ClinicalDocument/recordTarget/patientRole/patient/name[(given
= "James")])])(:-->$C0:),
ClinicalDocument/component/structuredBody/component/section/(text)(:-->$C1:)}
Output Streams:
--------------
8) To Operator #2
Estimated number of rows: 1
Number of columns: 1
Subquery predicate ID: Not Applicable
Column Names:
------------
+Q1.$C1
Expected Sequence Sizes:
------------------------
0.010539
Objects Used in Access Plan:
---------------------------
Schema: GRP1255977523782_12
Name: OUT_PATIENT_DATA
Type: Data Partitioned Table
Time of creation: 2009-10-19-<IP_ADDRESS>8003
Last statistics update: 2009-10-19-<IP_ADDRESS>000
Number of columns: 4
Number of rows: 102
Width of rows: 284
Number of buffer pool pages: 7
Number of data partitions: 4
Distinct row values: No
Tablespace name:
Tablespace overhead: 7.500000
Tablespace transfer rate: 0.060000
Source for statistics: Single Node
Prefetch page count: 32
Container extent page count: 32
Table overflow record count: 0
Table Active Blocks: -1
Average Row Compression Ratio: 0
Percentage Rows Compressed: 0
Average Compressed Row Size: 0
Schema: SYSIBM
Name: SQL091019152046360
Type: Physical Index over XML
Time of creation: 2009-10-19-<IP_ADDRESS>0001
Last statistics update: 2009-10-19-<IP_ADDRESS>000
Number of columns: 1
Number of rows: 102
Width of rows: -1
Number of buffer pool pages: 7
Distinct row values: No
Tablespace name:
Tablespace overhead: 7.500000
Tablespace transfer rate: 0.060000
Source for statistics: Single Node
Prefetch page count: 32
Container extent page count: 32
Index clustering statistic: 100.000000
Index leaf pages: 1
Index tree levels: 1
Index full key cardinality: 1
Index first key cardinality: 1
Index first 2 keys cardinality: 1
Index first 3 keys cardinality: 1
Index first 4 keys cardinality: 1
Index sequential pages: 0
Index page density: 0
Index avg sequential pages: 0
Index avg gap between sequences:0
Index avg random pages: 1
Fetch avg sequential pages: -1
Fetch avg gap between sequences:-1
Fetch avg random pages: -1
Index RID count: 1
Index deleted RID count: 0
Index empty leaf pages: 0
Base Table Schema: GRP1255977523782_12
Base Table Name: OUT_PATIENT_DATA
Columns in index:
PMD(A)
Schema: GRP1255977523782_12
Name: NAMEINDEX
Type: Logical Index over XML
Time of creation: 2009-10-19-<IP_ADDRESS>0001
Last statistics update: See physical index(es):
SYSIBM.SQL091019152046360
Number of columns: 1
Number of rows: 102
Width of rows: -1
Number of buffer pool pages: 7
Distinct row values: No
Tablespace name:
Tablespace overhead: 7.500000
Tablespace transfer rate: 0.060000
Source for statistics: Single Node
Prefetch page count: 32
Container extent page count: 32
Base Table Schema: GRP1255977523782_12
Base Table Name: OUT_PATIENT_DATA
Columns in index:
PMD(A)


Welcome @{{ user.username }}
Before you start using Commparte Ride we need you to do one las thing please visit the following Link and enter this code
{{ token }}


| < Day Day Up > |
8.1 Do I Have a Disk I/O Bottleneck?Web caches such as Squid don't usually come right out and tell you when disk I/O is becoming a bottleneck. Instead, response time and/or hit ratio degrade as load increases. The tricky thing is that response time and hit ratio may be changing for other reasons, such as increased network latency and changes in client request patterns. Perhaps the best way to explore the performance limits of your cache is with a benchmark, such as Web Polygraph. The good thing about a benchmark is that you can fully control the environment and eliminate many unknowns. You can also repeat the same experiment with different cache configurations. Unfortunately, benchmarking often takes a lot of time and requires spare systems that aren't already being used. If you have the resources to benchmark Squid, begin with a standard caching workload. As you increase the load, at some point you should see a significant increase in response time and/or a decrease in hit ratio. Once you observe this performance degradation, run the experiment again but with disk caching disabled. You can configure Squid never to cache any response (with the null storage scheme, see Section 8.7). Alternatively, you can configure the workload to have 100% uncachable responses. If the average response time is significantly better without caching, you can be relatively certain that disk I/O is a bottleneck at that level of throughput. If you're like most people, you have neither the time nor resources to benchmark Squid. In this case, you can examine Squid's runtime statistics to look for disk I/O bottlenecks. The cache manager General Runtime Information page (see Chapter 14) gives you median response times for both cache hits and misses: Median Service Times (seconds) 5 min 60 min: HTTP Requests (All): 0.39928 0.35832 Cache Misses: 0.42149 0.39928 Cache Hits: 0.12783 0.11465 Near Hits: 0.37825 0.39928 Not-Modified Replies: 0.07825 0.07409 For a healthy Squid cache, hits are significantly faster than misses. Your median hit response time should usually be 0.5 seconds or less. I strongly recommend that you use SNMP or another network monitoring tool to collect periodic measurements from your Squid caches (see Chapter 14). A significant (factor of two) increase in median hit response time is a good indication that you have a disk I/O bottleneck. If you believe your production cache is suffering in this manner, you can test your theory with the same technique mentioned previously. Configure Squid not to cache any responses, thus avoiding all disk I/O. Then closely observe the cache miss response time. If it goes down, your theory is probably correct. Once you've convinced yourself that disk throughput is limiting Squid's performance, you can try a number of things to improve it. Some of these require recompiling Squid, while others are relatively simple steps you can take to tune the Unix filesystems. |
| < Day Day Up > |


Main Page
Classes
Files
Class List
Class Hierarchy
Class Members
Graphical Class Hierarchy
Go to the textual class hierarchy
Generated on Sat Aug 10 22:15:35 2013 for QtArg by
1.5.6


MathGlobal Code Tester
First Code Fragment:
Second Code Fragment:
Third Code Fragment:
Send!
Your Solution is:


flickr-free
A minimal one-word Flickr search utility for FREE photos.
(
Github
for this,
GitHub
for original)


- TexCoordGenerator - Interface in com.github.mathiewz.slick.geom
-
A class capable of generating texture coordiantes based on
rendering positions of verticies.
- TextField - Class in com.github.mathiewz.slick.gui
-
A single text field supporting text entry
- TextField(GUIContext, Font, int, int, int, int, ComponentListener) - Constructor for class com.github.mathiewz.slick.gui.TextField
-
Create a new text field
- TextField(GUIContext, Font, int, int, int, int) - Constructor for class com.github.mathiewz.slick.gui.TextField
-
Create a new text field
- texture(Shape, Image) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- texture(Shape, Image, float, float) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- texture(Shape, Image, float, float, ShapeFill) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- texture(Shape, Image, TexCoordGenerator) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- texture(Shape, Image) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- texture(Shape, Image, ShapeFill) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- texture(Shape, Image, boolean) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- texture(Shape, Image, float, float) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- texture(Shape, Image, float, float, boolean) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- texture(Shape, Image, float, float, ShapeFill) - Method in class com.github.mathiewz.slick.Graphics
-
Draw the the given shape filled in with a texture
- Texture - Interface in com.github.mathiewz.slick.opengl
-
The description of a texture loaded by the TextureLoader utility
- textureFit(Shape, Image) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- textureFit(Shape, Image, float, float) - Static method in class com.github.mathiewz.slick.geom.ShapeRenderer
-
Draw the the given shape filled in with a texture.
- TextureImpl - Class in com.github.mathiewz.slick.opengl
-
A texture to be bound within JOGL.
- TextureImpl(String, int, int) - Constructor for class com.github.mathiewz.slick.opengl.TextureImpl
-
Create a new texture
- TextureLoader - Class in com.github.mathiewz.slick.opengl
-
A utility class to wrap the Slick internal texture loader and present a
rational interface.
- TextureLoader() - Constructor for class com.github.mathiewz.slick.opengl.TextureLoader
-
- TGA - Static variable in class com.github.mathiewz.slick.imageout.ImageOut
-
The format string for TGA
- TGAImageData - Class in com.github.mathiewz.slick.opengl
-
A utility to load TGAs.
- TGAImageData() - Constructor for class com.github.mathiewz.slick.opengl.TGAImageData
-
Create a new TGA Loader
- TGAWriter - Class in com.github.mathiewz.slick.imageout
-
A utility to save TGA's given a Slick image.
- TGAWriter() - Constructor for class com.github.mathiewz.slick.imageout.TGAWriter
-
- tick() - Method in class com.github.mathiewz.slick.ibxm.Channel
-
- TileBasedMap - Interface in com.github.mathiewz.slick.util.pathfinding
-
The description for the data we're pathfinding over.
- TiledMap - Class in com.github.mathiewz.slick.tiled
-
This class is intended to parse TilED maps.
- TiledMap(String) - Constructor for class com.github.mathiewz.slick.tiled.TiledMap
-
Create a new tile map based on a given TMX file
- TiledMap(String, boolean) - Constructor for class com.github.mathiewz.slick.tiled.TiledMap
-
Create a new tile map based on a given TMX file
- TiledMap(String, String) - Constructor for class com.github.mathiewz.slick.tiled.TiledMap
-
Create a new tile map based on a given TMX file
- TiledMap(InputStream) - Constructor for class com.github.mathiewz.slick.tiled.TiledMap
-
Load a tile map from an arbitary input stream
- TiledMap(InputStream, String) - Constructor for class com.github.mathiewz.slick.tiled.TiledMap
-
Load a tile map from an arbitary input stream
- tileHeight - Variable in class com.github.mathiewz.slick.tiled.TileSet
-
The height of the tiles
- tiles - Variable in class com.github.mathiewz.slick.tiled.TileSet
-
The image containing the tiles
- tilesAcross - Variable in class com.github.mathiewz.slick.tiled.TileSet
-
The number of tiles across the sprite sheet
- tilesDown - Variable in class com.github.mathiewz.slick.tiled.TileSet
-
The number of tiles down the sprite sheet
- TileSet - Class in com.github.mathiewz.slick.tiled
-
A holder for tileset information
- TileSet(TiledMap, Element, boolean) - Constructor for class com.github.mathiewz.slick.tiled.TileSet
-
Create a tile set based on an XML definition
- tileWidth - Variable in class com.github.mathiewz.slick.tiled.TileSet
-
The width of the tiles
- TOP_LEFT - Static variable in class com.github.mathiewz.slick.geom.RoundedRectangle
-
Indicates the top left corner should be rounded
- TOP_LEFT - Static variable in class com.github.mathiewz.slick.Image
-
The top left corner identifier
- TOP_RIGHT - Static variable in class com.github.mathiewz.slick.geom.RoundedRectangle
-
Indicates the top right corner should be rounded
- TOP_RIGHT - Static variable in class com.github.mathiewz.slick.Image
-
The top right corner identifier
- toString() - Method in class com.github.mathiewz.slick.Animation
-
- toString() - Method in class com.github.mathiewz.slick.BigImage
-
- toString() - Method in class com.github.mathiewz.slick.Color
-
- toString() - Method in class com.github.mathiewz.slick.command.BasicCommand
-
- toString() - Method in class com.github.mathiewz.slick.font.effects.ColorEffect
-
- toString(Color) - Static method in class com.github.mathiewz.slick.font.effects.EffectUtil
-
Convers a color to a string.
- toString() - Method in class com.github.mathiewz.slick.font.effects.GradientEffect
-
- toString() - Method in class com.github.mathiewz.slick.font.effects.OutlineEffect
-
- toString() - Method in class com.github.mathiewz.slick.font.effects.OutlineWobbleEffect
-
- toString() - Method in class com.github.mathiewz.slick.font.effects.OutlineZigzagEffect
-
- toString() - Method in class com.github.mathiewz.slick.font.effects.ShadowEffect
-
- toString() - Method in class com.github.mathiewz.slick.geom.Line
-
- toString() - Method in class com.github.mathiewz.slick.geom.Rectangle
-
- toString() - Method in class com.github.mathiewz.slick.geom.Transform
-
Convert this Transform to a String.
- toString() - Method in class com.github.mathiewz.slick.geom.Vector2f
-
- toString() - Method in class com.github.mathiewz.slick.Image
-
- toString() - Method in class com.github.mathiewz.slick.particles.ConfigurableEmitter
-
- toString() - Method in class com.github.mathiewz.slick.particles.Particle
-
- toString() - Method in class com.github.mathiewz.slick.util.pathfinding.navmesh.NavPath
-
Get a string representation of this instance
- toString() - Method in class com.github.mathiewz.slick.util.pathfinding.navmesh.Space
-
Get the string representation of this instance
- toString() - Method in class com.github.mathiewz.slick.util.xml.XMLElement
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Curve
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Ellipse
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Line
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.MorphShape
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Path
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Point
-
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Polygon
-
Apply a transformation and return a new shape.
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Rectangle
-
Apply a transformation and return a new shape.
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.RoundedRectangle
-
Apply a transformation and return a new shape.
- transform(Transform) - Method in class com.github.mathiewz.slick.geom.Shape
-
Apply a transformation and return a new shape.
- Transform - Class in com.github.mathiewz.slick.geom
-
A 2 dimensional transformation that can be applied to Shape
implemenations.
- Transform() - Constructor for class com.github.mathiewz.slick.geom.Transform
-
Create and identity transform
- Transform(Transform) - Constructor for class com.github.mathiewz.slick.geom.Transform
-
Copy a transform
- Transform(Transform, Transform) - Constructor for class com.github.mathiewz.slick.geom.Transform
-
Concatanate to transform into one
- Transform(float[]) - Constructor for class com.github.mathiewz.slick.geom.Transform
-
Create a transform for the given positions
- Transform(float, float, float, float, float, float) - Constructor for class com.github.mathiewz.slick.geom.Transform
-
Create a transform for the given positions
- transform(Float[], int, Float[], int, int) - Method in class com.github.mathiewz.slick.geom.Transform
-
Transform the point pairs in the source array and store them in the destination array.
- transform(Vector2f) - Method in class com.github.mathiewz.slick.geom.Transform
-
Transform the vector2f based on the matrix defined in this transform
- Transition - Interface in com.github.mathiewz.slick.state.transition
-
A transition between two game states
- translate(float, float) - Method in class com.github.mathiewz.slick.Graphics
-
Apply a translation to everything drawn to the context
- transparent - Static variable in class com.github.mathiewz.slick.Color
-
The fixed color transparent
- triangulate() - Method in class com.github.mathiewz.slick.geom.BasicTriangulator
-
Cause the triangulator to split the polygon
- triangulate() - Method in class com.github.mathiewz.slick.geom.MannTriangulator
-
- triangulate() - Method in class com.github.mathiewz.slick.geom.NeatTriangulator
-
Upate the triangles
- triangulate() - Method in class com.github.mathiewz.slick.geom.OverTriangulator
-
- triangulate() - Method in interface com.github.mathiewz.slick.geom.Triangulator
-
Run the triangulation
- Triangulator - Interface in com.github.mathiewz.slick.geom
-
A collection of triangles
- TrueTypeFont - Class in com.github.mathiewz.slick
-
A TrueType font implementation for Slick
- TrueTypeFont(Font, boolean, char[]) - Constructor for class com.github.mathiewz.slick.TrueTypeFont
-
Constructor for the TrueTypeFont class Pass in the preloaded standard
Java TrueType font, and whether you want it to be cached with
AntiAliasing applied.
- TrueTypeFont(Font, boolean) - Constructor for class com.github.mathiewz.slick.TrueTypeFont
-
Constructor for the TrueTypeFont class Pass in the preloaded standard
Java TrueType font, and whether you want it to be cached with
AntiAliasing applied.


In the previous part of my articles I talk about bootstraping the server to prepare it to install neccessary software. Now we’ll install RVM, Node.js, Nginx, Ruby, Bundler and Postrgres.
Setting up the necessary software
So, the next step is setting up the RVM - tool to manage the versions of gems simplier.
Switching to root and the first thing we uprading the versions of sofware in the repository
apt-get update
apt-get dist-upgrade
Install some useful software we will need later:
apt-get -y install curl git
Rvm, ruby, and bundler installation
Switch to deploy user:
login deploy -f
And install rvm after that.
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
Don’t forget to reload your shell to use rvm command.
Install ruby
rvm install 2.1.1 (or version that you prefer)
Install bundler
gem install bundler --no-ri --no-rdoc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
Node.js installation.
Next install Node.js - Rails uses it to compile static assets. Don’t forget to switch to root or use sudo.
add-apt-repository ppa:chris-lea/node.js
apt-get -y update
apt-get -y install nodejs
Nginx installation.
The next step is installing Nginx - it will serve our static requests.
add-apt-repository ppa:nginx/stable
apt-get -y update
apt-get -y install nginx
And start nginx:
service nginx start
PostgreSQL installation
My choice is using Postgres - it’s smart, clever and has very convenient console.
apt-get install postgresql postgresql-contrib libpq-dev
During the installation PostgreSQL created ‘postgres’ user. So, let’s start to use database console as postgres user.
sudo -u postgres psql
In the console:
create role deploy superuser;
alter role deploy login;
We’ve created new database user ‘deploy’, gave him superuser rights and allowed him to login. This user can login but only from the localhost.
The good way is not to use postgresql default config postgresql.conf. If you are not Postgres-guru you can set up the special tool called ‘pgtune’ that configures you database based on your environment.
apt-get install pgtune
after that we should find postgresql.conf file to feed it to pgtune. Login to the “psql” console mentioned before and type.
SHOW config_file;
Use \q
for logout, then
pgtune -i path/to/postgresql.conf -o path/to/postgresql.conf
service postgresql restart
Summary
In this section we setting up the necessary software to serve rails application. In the next section I cover how to install and configure Capistrano with Puma server and how to configure Nginx.


{% if statuscode == "completed" %}
The list of SSG/AF transcriptions that have been processed, and {{results|length}} have been added.
Possible actions:
| # | File | SSG/AF | Size of transcription |
|---|---|---|---|
| {{forloop.counter}} | {{item.filename}} | {{item.code|safe}} | {{item.tsize}} |


[gecode-users] Problem for modeling
Christian Schulte
cschulte at kth.se
Thu Apr 11 11:15:31 CEST 2013
Please, this users list is really about Gecode in particular and not about
modeling with constraint programming in general.
Please respect that
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Jean-Noël Monette
Sent: Thursday, April 11, 2013 11:04 AM
To: users at gecode.org
Subject: Re: [gecode-users] Problem for modeling
Hello,
I would model the relations between a car model and a conductor or passenger
using table constraints. For instance for Car1, you might have two tables:
car1 - COND1
0 - 0
0 - 1
0 - 5
1 - 0
1 - 5
and
car1 - OTHER1
0 - 0
0 - 1
1 - -1
where "-1" models the absence of another person. A table constraint states
that the values of the variables must be equal to one of the lines of the
table. In Gecode, the table constraint is called "extensional" (the version
with a TupleSet argument).
Finally for the all distinct, you can use the "distinct" constraint on {
COND1, OTHER1, COND2, OTHER2 }. Note that giving the value "-1" for the
absence of person is fine with the distinct constraint as it is now. If you
have several cars where the other person might be absent, you should give
them other numbers (-2, -3, ...) to make sure the distinct constraint does
not remove solutions.
Best,
JN
On 04/11/2013 10:44 AM, christine bouzant wrote:
Dear all,
I am wondering if you could you help me to make my model ?
I put in attachment a small document to explain what i would like to model.
Here are some explanations:
I would like to find 2 cars : Car1 and Car2.
The domain for Car1 is [0,1].
The car number 0 must have a conductor COND1 (people domain is [0,1,5]) and
an other person OTHER1 (people domain is [0,1]).
The car number 1 is not the same car model. It must have only the conductor
COND1 (for this car number, the people domain is [0, 5]).
The domain for Car2 is [2,3].
The car number 2 must have a conductor COND2 (people domain is [7, 8]) and
an other person OTHER2 (people domain is [6, 9]).
The car number 3 is not exactly the same car model. It must have the
conductor COND2 (for this car, the people domain is [7, 8, 12]) and the
person OTHER2 (domain is [6, 15]).
Moreother, i would like to have the constraint that each people chosen in
cars are distinct.
I have no idea how to model this since the car configuration (COND or/and
OTHER) and the people domain depends of the car number selection...
Many thanks for your help !
Cheers,
Christine
_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130411/0118c9b8/attachment.html>
More information about the users
mailing list


We spend a lot of time advising startups. Though one-on-one advice will always be crucial, we thought it might help us scale Y Combinator if we could distill the most generalizable parts of this advice into a sort of playbook we could give YC and YC Fellowship companies.
Then we thought we should just give it to everyone.
This is meant for people new to the world of startups. Most of this will not be new to people who have read a lot of what YC partners have written—the goal is to get it into one place.
There may be a part II on how to scale a startup later—this mostly covers how to start one.
Your goal as a startup is to make something users love. If you do that, then you have to figure out how to get a lot more users. But this first part is critical—think about the really successful companies of today. They all started with a product that their early users loved so much they told other people about it. If you fail to do this, you will fail. If you deceive yourself and think your users love your product when they don’t, you will still fail.
The startup graveyard is littered with people who thought they could skip this step.
It’s much better to first make a product a small number of users love than a product that a large number of users like. Even though the total amount of positive feeling is the same, it’s much easier to get more users than to go from like to love.
A word of warning about choosing to start a startup: It sucks!  Joining an early-stage startup that’s on a rocketship trajectory is usually a much better financial deal.
On the other hand, starting a startup is not in fact very risky to your career—if you’re really good at technology, there will be job opportunities if you fail. Most people are very bad at evaluating risk. I personally think the riskier option is having an idea or project you’re really passionate about and working at a safe, easy, unfulfilling job instead.
To have a successful startup, you need: a great idea (including a great market), a great team, a great product, and great execution.
One of the first things we ask YC companies is what they’re building and why.
We look for clear, concise answers here. This is both to evaluate you as a founder and the idea itself. It’s important to be able to think and communicate clearly as a founder—you’ll need it for recruiting, raising money, selling, etc. Ideas in general need to be clear to spread, and complex ideas are almost always a sign of muddled thinking or a made up problem. If the idea does not really excite at least some people the first time they hear it, that’s bad.
Another thing we ask is who desperately needs the product.
In the best case, you yourself are the target user. In the second best case, you understand the target user extremely well.
If a company already has users, we ask how many and how fast that number is growing. We try to figure out why it’s not growing faster, and we especially try to figure out if users really love the product. Usually this means they’re telling their friends to use the product without prompting from the company. We also ask if the company is generating revenue, and if not, why not.
If the company doesn’t yet have users, we try to figure out the minimum thing to build first to test the hypothesis—i.e., if we work backwards from the perfect experience, we try to figure out what kernel to start with.
The way to test an idea is to either launch it and see what happens or try to sell it (e.g. try to get a letter of intent before you write a line of code.) The former works better for consumer ideas (users may tell you they will use it, but in practice it won’t cut through the clutter) and the latter works better for enterprise ideas (if a company tells you they will buy something, then go build it.) Specifically, if you are an enterprise company, one of the first questions we’ll ask you is if you have a letter of intent from a customer saying they’ll buy what you’re building. For most biotech and hard tech companies, the way to test an idea is to first talk to potential customers and then figure out the smallest subset of the technology you can build first.
It’s important to let your idea evolve as you get feedback from users. And it’s critical you understand your users really well—you need this to evaluate an idea, build a great product, and build a great company.
As mentioned earlier, startups are really hard. They take a very long time, and consistent intense effort. The founders and employees need to have a shared sense of mission to sustain them. So we ask why founders want to start this particular company.
We also ask how the company will one day be a monopoly. There are a lot of different terms for this, but we use Peter Thiel’s. Obviously, we don’t want your company to behave in an unethical way against competitors. Instead, we’re looking for businesses that get more powerful with scale and that are difficult to copy.
Finally, we ask about the market. We ask how big it is today, how fast it’s growing, and why it’s going to be big in ten years. We try to understand why the market is going to grow quickly, and why it’s a good market for a startup to go after. We like it when major technological shifts are just starting that most people haven’t realized yet—big companies are bad at addressing those. And somewhat counterintuitively, the best answer is going after a large part of a small market.
A few other thoughts on ideas:
We greatly prefer something new to something derivative. Most really big companies start with something fundamentally new (one acceptable definition of new is 10x better.) If there are ten other companies starting at the same time with the same plan, and it sounds a whole lot like something that already exists, we are skeptical.
One important counterintuitive reason for this is that it’s easier to do something new and hard than something derivative and easy. People will want to help you and join you if it’s the former; they will not if it’s the latter.
The best ideas sound bad but are in fact good. So you don’t need to be too secretive with your idea—if it’s actually a good idea, it likely won’t sound like it’s worth stealing. Even if it does sound like it’s worth stealing, there are at least a thousand times more people that have good ideas than people who are willing to do the kind of work it takes to turn a great idea into a great company. And if you tell people what you’re doing, they might help.
 Maybe they are right. Maybe they are not good at evaluating startups, or maybe they are just jealous.  The faster you can develop self-belief and not get dragged down too much by haters, the better off you’ll be. No matter how successful you are, the haters will never go away.
What if you don’t have an idea but want to start a startup? Maybe you shouldn’t. It’s so much better if the idea comes first and the startup is the way to get the idea out into the world.
We once tried an experiment where we funded a bunch of promising founding teams with no ideas in the hopes they would land on a promising idea after we funded them.
All of them failed. I think part of the problem is that good founders tend to have lots of good ideas (too many, usually). But an even bigger problem is that once you have a startup you have to hurry to come up with an idea, and because it’s already an official company the idea can’t be too crazy. You end up with plausible sounding but derivative ideas. This is the danger of pivots.
So it’s better not to try too actively to force yourself to come up with startup ideas. Instead, learn about a lot of different things. Practice noticing problems, things that seem inefficient, and major technological shifts. Work on projects you find interesting. Go out of your way to hang around smart, interesting people. At some point, ideas will emerge.
Mediocre teams do not build great companies. One of the things we look at the most is the strength of the founders. When I used to do later-stage investing, I looked equally hard at the strength of the employees the founders hired.
What makes a great founder? The most important characteristics are ones like unstoppability, determination, formidability, and resourcefulness. Intelligence and passion also rank very highly. These are all much more important than experience and certainly “expertise with language X and framework Y”.
We have noticed the most successful founders are the sort of people who are low-stress to work with because you feel “he or she will get it done, no matter what it is.” Sometimes you can succeed through sheer force of will.
Good founders have a number of seemingly contradictory traits. One important example is rigidity and flexibility. You want to have strong beliefs about the core of the company and its mission, but still be very flexible and willing to learn new things when it comes to almost everything else.
The best founders are unusually responsive. This is an indicator of decisiveness, focus, intensity, and the ability to get things done.
Founders that are hard to talk to are almost always bad. Communication is a very important skill for founders—in fact, I think this is the most important rarely-discussed founder skill.
Tech startups need at least one founder who can build the company’s product or service, and at least one founder who is (or can become) good at sales and talking to users. This can be the same person.
Consider these criteria when you’re choosing a cofounder—it’s one of the most important decisions you’ll make, and it’s often done fairly randomly. You want someone you know well, not someone you just met at a cofounder dating thing. You can evaluate anyone you might work with better with more data, and you really don’t want to get this one wrong. Also, at some point, the expected value of the startup is likely to dip below the X axis. If you have a pre-existing relationship with your cofounders, none of you will want to let the other down and you’ll keep going. Cofounder breakups are one of the leading causes of death for early startups, and we see them happen very, very frequently in cases where the founders met for the express purpose of starting the company.
The best case, by far, is to have a good cofounder. The next best is to be a solo founder. The worse case, by far, is to have a bad cofounder. If things are not working out, you should part ways quickly.
A quick note on equity: the conversation about the equity split does not get easier with time—it’s better to set it early on. Nearly equal is best, though perhaps in the case of two founders it’s best to have one person with one extra share to prevent deadlocks when the cofounders have a fallout.
Here is the secret to success: have a great product. This is the only thing all great companies have in common.
If you do not build a product users love you will eventually fail. Yet founders always look for some other trick. Startups are the point in your life when tricks stop working.
A great product is the only way to grow long-term. Eventually your company will get so big that all growth hacks stop working and you have to grow by people wanting to use your product. This is the most important thing to understand about super-successful companies. There is no other way. Think about all of the really successful technology companies—they all do this.
You want to build a “product improvement engine” in your company. You should talk to your users and watch them use your product, figure out what parts are sub-par, and then make your product better. Then do it again. This cycle should be the number one focus of the company, and it should drive everything else. If you improve your product 5% every week, it will really compound.
The faster the repeat rate of this cycle, the better the company usually turns out. During YC, we tell founders they should be building product and talking to users, and not much else besides eating, sleeping, exercising, and spending time with their loved ones.
To do this cycle right, you have to get very close to your users. Literally watch them use your product. Sit in their office if you can. Value both what they tell you and what they actually do. You should not put anyone between the founders and the users for as long as possible—that means the founders need to do sales, customer support, etc.
Understand your users as well as you possibly can. Really figure out what they need, where to find them, and what makes them tick.
“Do things that don’t scale” has rightfully become a mantra for startups. You usually need to recruit initial users one at a time (Ben Silbermann used to approach strangers in coffee shops in Palo Alto and ask them to try Pinterest) and then build things they ask for. Many founders hate this part, and just want to announce their product in the press. But that almost never works. Recruit users manually, and make the product so good the users you recruit tell their friends.
You also need to break things into very small pieces, and iterate and adapt as you go. Don’t try to plan too far out, and definitely don’t batch everything into one big public release. You want to start with something very simple—as little surface area as possible—and launch it sooner than you’d think. In fact, simplicity is always good, and you should always keep your product and company as simple as possible.
Some common questions we ask startups having problems: Are users using your product more than once? Are your users fanatical about your product? Would your users be truly bummed if your company went away?  If you’re a B2B company, do you have at least 10 paying customers?
If not, then that’s often the underlying problem, and we tell companies to make their product better. I am skeptical about most excuses for why a company isn’t growing—very often the real reason is that the product just isn’t good enough.
When startups aren’t sure what to do next with their product, or if their product isn’t good enough, we send them to go talk to their users. This doesn’t work in every case—it’s definitely true that people would have asked Ford for faster horses—but it works surprisingly often. In fact, more generally, when there’s a disagreement about anything in the company, talk to your users.
The best founders seem to care a little bit too much about product quality, even for seemingly unimportant details. But it seems to work. By the way, “product” includes all interactions a user has with the company. You need to offer great support, great sales interactions, etc.
Remember, if you haven’t made a great product, nothing else will save you.
Although it’s necessary to build a great product, you’re not done after that. You still have to turn it into a great company, and you have to do it yourself—the fantasy of hiring an “experienced manager” to do all this work is both extremely prevalent and a graveyard for failed companies. You cannot outsource the work to someone else for a long time.
This sounds obvious, but you have to make money. This would be a good time to start thinking about how that’s going to work.
The only universal job description of a CEO is to make sure the company wins. You can do this as the founder even if you have a lot of flaws that would normally disqualify you as a CEO as long as you hire people that complement your own skills and let them do their jobs. That experienced CEO with a fancy MBA may not have the skill gaps you have, but he or she won’t understand the users as well, won’t have the same product instincts, and won’t care as much.
Growth and momentum are the keys to great execution. Growth (as long as it is not “sell dollar bills for 90 cents” growth) solves all problems, and lack of growth is not solvable by anything but growth. If you’re growing, it feels like you’re winning, and people are happy. If you’re growing, there are new roles and responsibilities all the time, and people feel like their careers are advancing. If you’re not growing, it feels like you’re losing, and people are unhappy and leave. If you’re not growing, people just fight over responsibilities and blame.
Founders and employees that are burnt out nearly always work at startups without momentum. It’s hard to overstate how demoralizing it is.
The prime directive of great execution is “Never lose momentum”. But how do you do it?
The most important way is to make it your top priority. The company does what the CEO measures. It’s valuable to have a single metric that the company optimizes, and it’s worth time to figure out the right growth metric. If you care about growth, and you set the execution bar, the rest of the company will focus on it.
Here are a couple of examples.
The founders of Airbnb drew a forward-looking graph of the growth they wanted to hit. They posted this everywhere—on their fridge, above their desks, on their bathroom mirror. If they hit the number that week, great. If not, it was all they talked about.
Mark Zuckerberg once said that one of the most important innovations at Facebook was their establishment of a growth group when growth slowed. This group was (and perhaps still is) one of the most prestigious groups in the company—everyone knew how important it was.
Keep a list of what’s blocking growth. Talk as a company about how you could grow faster. If you know what the limiters are, you’ll naturally think about how to address them.
For anything you consider doing, ask yourself “Is this the best way to optimize growth?” For example, going to a conference is not usually the best way to optimize growth, unless you expect to sell a lot there.
Extreme internal transparency around metrics (and financials) is a good thing to do.  But it’s great for keeping the whole company focused on growth. There seems to be a direct correlation between how focused on metrics employees at a company are and how well they’re doing. If you hide the metrics, it’s hard for people to focus on them.
Speaking of metrics, don’t fool yourself with vanity metrics. The common mistake here is to focus on signups and ignore retention. But retention is as important to growth as new user acquisition.
It’s also important to establish an internal cadence to keep momentum. You want to have a “drumbeat” of progress—new features, customers, hires, revenue milestones, partnerships, etc that you can talk about internally and externally.
You should set aggressive but borderline achievable goals and review progress every month. Celebrate wins! Talk internally about strategy all the time, tell everyone what you’re hearing from customers, etc. The more information you share internally—good and bad—the better you’ll be.
There are a few traps that founders often fall into. One is that if the company is growing like crazy but everything seems incredibly broken and inefficient, everyone worries that things are going to come unraveled. In practice, this seems to happen rarely (Friendster is the most recent example of a startup dying because of technical debt that I can point to.) Counterintuitively, it turns out that it’s good if you’re growing fast but nothing is optimized—all you need to do is fix it to get more growth! My favorite investments are in companies that are growing really fast but incredibly un-optimized—they are deeply undervalued.
A related trap is thinking about problems too far in the future—i.e. “How are we going to do this at massive scale?” The answer is to figure it out when you get there.  A good rule of thumb is to only think about how things will work at 10x your current scale. Most early-stage startups should put “Do things that don’t scale” up on their wall and live by it. As an example, great startups always have great customer service in the early days, and bad startups worry about the impact on the unit economics and that it won’t scale. But great customer service makes for passionate early users, and as the product gets better you need less support, because you’ll know what customers commonly struggle with and improve the product/experience in those areas. (By the way, this is a really important example—have great customer support.)
There’s a big catch to this—”Do things that don’t scale” does not excuse you from having to eventually make money. It’s ok to have bad unit economics in the early days, but you have to have a good reason for why the unit economics are going to work out later.
Another trap is getting demoralized because growth is bad in absolute numbers even though it’s good on a percentage basis. Humans are very bad at intuition around exponential growth. Remind your team of this, and that all giant companies started growing from small numbers.
 Common examples are deals with other companies and the “big press launch”. Beware of these and understand that they effectively never work. Instead get growth the same way all great companies have—by building a product users love, recruiting users manually first, and then testing lots of growth strategies (ads, referral programs, sales and marketing, etc.) and doing more of what works. Ask your customers where you can find more people like them.
Remember that sales and marketing are not bad words. Though neither will save you if you don’t have a great product, they can both help accelerate growth substantially. If you’re an enterprise company, it’s likely a requirement that your company get good at these.
Don’t be afraid of sales especially. At least one founder has to get good at asking people to use your product and give you money.
Alex Schultz gave a lecture on growth for consumer products that’s well worth watching. For B2B products, I think the right answer is almost always to track revenue growth per month, and remember that the longer sales cycle means the first couple of months are going to look ugly (though sometimes selling to startups as initial customers can solve this problem).
If I had to distill my advice about how to operate down to only two words, I’d pick focus and intensity. These words seem to really apply to the best founders I know.
They are relentlessly focused on their product and growth. They don’t try to do everything—in fact, they say no a lot (this is hard because the sort of people that start companies are the sort of people that like doing new things.)
As a general rule, don’t let your company start doing the next thing until you’ve dominated the first thing. No great company I know of started doing multiple things at once—they start with a lot of conviction about one thing, and see it all the way through. You can do far fewer things than you think. A very, very common cause of startup death is doing too many of the wrong things. Prioritization is critical and hard. (Equally important to setting the company’s priorities is setting your own tactical priorities. What I’ve found works best for me personally is a pen-and-paper list for each day with ~3 major tasks and ~30 minor ones, and an annual to-do list of overall goals.)
While great founders don’t do many big projects, they do whatever they do very intensely. They get things done very quickly. They are decisive, which is hard when you’re running a startup—you will get a lot of conflicting advice, both because there are multiple ways to do things and because there’s a lot of bad advice out there. Great founders listen to all of the advice and then quickly make their own decisions.
Please note that this doesn’t mean doing everything intensely—that’s impossible. You have to pick the right things. As Paul Buchheit says, find ways to get 90% of the value with 10% of the effort. The market doesn’t care how hard you work—it only cares if you do the right things.
It’s very hard to be both obsessed with product quality and move very quickly. But it’s one of the most obvious tells of a great founder.
I have never, not once, seen a slow-moving founder be really successful.
You are not different from other startups. You still have to stay focused and move fast. Companies building rockets and nuclear reactors still manage to do this. All failing companies have a pet explanation for why they are different and don’t have to move fast.
When you find something that works, keep going. Don’t get distracted and do something else. Don’t take your foot off the gas.
Don’t get caught up in early success—you didn’t get off to a promising start by going to lots of networking events and speaking on lots of panels. Startup founders who start to have initial success have a choice of two paths: either they keep doing what they’re doing, or they start spending a lot of time thinking about their “personal brand” and enjoying the status of being a founder.
It’s hard to turn down the conferences and the press profiles—they feel good, and it’s especially hard to watch other founders in your space get the attention. But this won’t last long. Eventually the press figures out who is actually winning, and if your company is a real success, you’ll have more attention than you’ll ever want. The extreme cases—early-stage founders with their own publicists—that one would think only exist in TV shows actually exist in real life, and they almost always fail.
Focus and intensity will win out in the long run. (Charlie Rose once said that things get done in the world through a combination of focus and personal connections, and that’s always stuck with me.)
Earlier I mentioned that the only universal job description of the CEO is to make sure the company wins. Although that’s true, I wanted to talk a little more specifically about how a CEO should spend his or her time.
A CEO has to 1) set the vision and strategy for the company, 2) evangelize the company to everyone, 3) hire and manage the team, especially in areas where you yourself have gaps 4) raise money and make sure the company does not run out of money, and 5) set the execution quality bar.
In addition to these, find whatever parts of the business you love the most, and stay engaged there.
As I mentioned at the beginning, it’s an intense job. If you are successful, it will take over your life to a degree you cannot imagine—the company will be on your mind all the time. Extreme focus and extreme intensity means it’s not the best choice for work-life balance. You can have one other big thing—your family, doing lots of triathlons, whatever—but probably not much more than that. You have to always be on, and there are a lot of decisions only you can make, no matter how good you get at delegation.
You should aim to be super responsive to your team and the outside world, always be clear on the strategy and priorities, show up to everything important, and execute quickly (especially when it comes to making decisions others are blocked on.) You should also adopt a “do whatever it takes” attitude—there will be plenty of unpleasant schleps. If the team sees you doing these things, they will do them too.
Managing your own psychology is both really hard and really important. It’s become cliché at this point, but it’s really true—the emotional highs and lows are very intense, and if you don’t figure out how to stay somewhat level through them, you’re going to struggle. Being a CEO is lonely. It’s important to have relationships with other CEOs you can call when everything is melting down (one of the important accidental discoveries of YC was a way for founders to have peers.)
A successful startup takes a very long time—certainly much longer than most founders think at the outset. You cannot treat it as an all-nighter. You have to eat well, sleep well, and exercise. You have to spend time with your family and friends. You also need to work in an area you’re actually passionate about—nothing else will sustain you for ten years.
Everything will feel broken all the time—the diversity and magnitude of the disasters will surprise you. Your job is to fix them with a smile on your face and reassure your team that it’ll all be ok. Usually things aren’t as bad as they seem, but sometimes they are in fact really bad. In any case, just keep going. Keep growing.
The CEO doesn’t get to make excuses. Lots of bad and unfair things are going to happen. But don’t let yourself say, and certainly not to the team, “if only we had more money” or “if only we had another engineer”. Either figure out a way to make that happen, or figure out what to do without it. People who let themselves make a lot of excuses usually fail in general, and startup CEOs who do it almost always fail. Let yourself feel upset at the injustice for 1 minute, and then realize that it’s up to you to figure out a solution. Strive for people to say “X just somehow always gets things done” when talking about you.
No first-time founder knows what he or she is doing. To the degree you understand that, and ask for help, you’ll be better off. It’s worth the time investment to learn to become a good leader and manager. The best way to do this is to find a mentor—reading books doesn’t seem to work as well.
A surprising amount of our advice at YC is of the form “just ask them” or “just do it”. First-time founders think there must be some secret for when you need something from someone or you want to do some new thing. But again, startups are where tricks stop working.
It’s important that you distort reality for others but not yourself. You have to convince other people that your company is primed to be the most important startup of the decade, but you yourself should be paranoid about everything that could go wrong.
Be persistent. Most founders give up too quickly or move on to the next product too quickly. If things generally aren’t going well, figure out what the root cause of the problem is and make sure you address that. A huge part of being a successful startup CEO is not giving up (although you don’t want to be obstinate beyond all reason either—this is another apparent contradiction, and a hard judgment call to make.)
Be optimistic. Although it’s possible that there is a great pessimistic CEO somewhere out in the world, I haven’t met him or her yet. A belief that the future will be better, and that the company will play an important role in making the future better, is important for the CEO to have and to infect the rest of the company with. This is easy in theory and hard in the practical reality of short-term challenges. Don’t lose sight of the long-term vision, and trust that the day-to-day challenges will someday be forgotten and replaced by memories of the year-to-year progress.
Among your most important jobs are defining the mission and defining the values. This can feel a little hokey, but it’s worth doing early on. Whatever you set at the beginning will usually still be in force years later, and as you grow, each new person needs to first buy in and then sell others on the mission and values of the company. So write your cultural values and mission down early.
Another cliché that I think is worth repeating: Building a company is somewhat like building a religion. If people don’t connect what they’re doing day-to-day with a higher purpose they care about, they will not do a great job. I think Airbnb has done the best job at this in the YC network, and I highly recommend taking a look at their cultural values.
One mistake that CEOs often make is to innovate in well-trodden areas of business instead of innovating in new products and solutions. For example, many founders think that they should spend their time discovering new ways to do HR, marketing, sales, financing, PR, etc. This is nearly always bad. Do what works in the well-established areas, and focus your creative energies on the product or service you’re building.
Hiring is one of your most important jobs and the key to building a great company (as opposed to a great product.)
My first piece of advice about hiring is don’t do it. The most successful companies we’ve worked with at YC have waited a relatively long time to start hiring employees. Employees are expensive. Employees add organizational complexity and communication overhead. There are things you can say to your cofounders that you cannot say with employees in the room. Employees also add inertia—it gets exponentially harder to change direction with more people on the team. Resist the urge to derive your self-worth from your number of employees.
The best people have a lot of opportunities. They want to join rocketships. If you have nothing, it’s hard to hire them. Once you’re obviously winning, they’ll want to come join you.
It’s worth repeating that great people have a lot of options, and you need great people to build a great company. Be generous with equity, trust, and responsibility. Be willing to go after people you don’t think you’ll be able to get. Remember that the kind of people you want to hire can start their own companies if they want.
When you are in recruiting mode (i.e., from when you get product-market fit to T-infinity), you should spend about 25% of your time on it. At least one founder, usually the CEO, needs to get great at recruiting. It’s most CEOs’ number one activity by time. Everyone says that CEOs should spend a lot of their time recruiting, but in practice, none but the best do. There’s probably something to that.
Don’t compromise on the quality of people you hire. Everyone knows this, and yet everyone compromises on this at some point during a desperate need. Everyone goes on to regret it, and it sometimes almost kills the company. Good and bad people are both infectious, and if you start with mediocre people, the average does not usually trend up. Companies that start off with mediocre early employees almost never recover. Trust your gut on people. If you have doubt, then the answer is no.
Do not hire chronically negative people. They do not fit what an early-stage startup needs—the rest of the world will be predicting your demise every day, and the company needs to be united internally in its belief to the contrary.
Value aptitude over experience for almost all roles. Look for raw intelligence and a track record of getting things done. Look for people you like—you’ll be spending a lot of time together and often in tense situations. For people you don’t already know, try to work on a project together before they join full-time.
Invest in becoming a good manager. This is hard for most founders, and it’s definitely counterintuitive. But it’s important to get good at this. Find mentors that can help you here. If you do not get good at this, you will lose employees quickly, and if you don’t retain employees, you can be the best recruiter in the world and it still won’t matter. Most of the principles on being a good manager are well-covered, but the one that I never see discussed is “don’t go into hero mode”. Most first-time managers fall victim to this at some point and try to do everything themselves, and become unavailable to their staff. It usually ends in a meltdown. Resist all temptation to switch into this mode, and be willing to be late on projects to have a well-functioning team.
Speaking of managing, try hard to have everyone in the same office. For some reason, startups always compromise on this. But nearly all of the most successful startups started off all together. I think remote work can work well for larger companies but it has not been a recipe for massive success for startups.
Finally, fire quickly. Everyone knows this in principle and no one does it. But I feel I should say it anyway. Also, fire people who are toxic to the culture no matter how good they are at what they do. Culture is defined by who you hire, fire, and promote.
A quick word about competitors: competitors are a startup ghost story.  But 99% of startups die from suicide, not murder. Worry instead about all of your internal problems. If you fail, it will very likely be because you failed to make a great product and/or failed to make a great company.
99% of the time, you should ignore competitors. Especially ignore them when they raise a lot of money or make a lot of noise in the press. Do not worry about a competitor until they are beating you with a real, shipped product. Press releases are easier to write than code, which is easier still than making a great product. In the words of Henry Ford: "The competitor to be feared is one who never bothers about you at all, but goes on making his own business better all the time."
Every giant company has faced worse competitive threats than what you are facing now when they were small, and they all came out ok. There is always a counter-move.
Oh yes, making money. You need to figure out how to do that.
The short version of this is that you have to get people to pay you more money than it costs you to deliver your good/service. For some reason, people always forget to take into account the part about how much it costs to deliver it.
If you have a free product, don’t plan to grow by buying users. That’s really hard for ad-supported businesses. You need to make something people share with their friends.
If you have a paid product with less than a $1,000 customer lifetime value (LTV), you generally cannot afford sales. Experiment with different user acquisition methods like SEO/SEM, ads, mailings, etc., but try to repay your customer acquisition cost (CAC) in 3 months. If you have a paid product with more than a $1,000 LTV (net to you) you maybe can afford direct sales if your product is easy to sell. But unless your LTV is more like $5,000 or higher, it may not work. Try selling the product yourself first to learn what works. Hacking Sales is a useful book to read.
In any case, try to get to “ramen profitability”—i.e., make enough money so that the founders can live on ramen—as quickly as you can. When you get here, you control your own destiny and are no longer at the whims of investors and financial markets.
Watch your cash flow obsessively. Although it sounds unbelievable, we’ve seen founders run out of money without being aware it was happening a number of times (and read Paul Graham’s essay).
Most startups raise money at some point.
You should raise money when you need it or when it’s available on good terms. Be careful not to lose your sense of frugality or to start solving problems by throwing money at them. Not having enough money can be bad, but having too much money is almost always bad.
The secret to successfully raising money is to have a good company. All of the other stuff founders do to try to over-optimize the process probably only matters about 5% of the time. Investors are looking for companies that are going to be really successful whether or not they invest, but that can grow faster with outside capital. The “really successful” part is important—because investors’ returns are dominated by the big successes, if an investor believes you have a 100% chance of creating a $10 million company but almost no chance of building a larger company, he/she will still probably not invest even at a very low valuation. Always explain why you could be a huge success.
 (For the best companies, they fear both at the same time.)
It is a bad idea to try to raise money when your company isn’t in good enough shape to attract capital. You will burn reputation and waste time.
Don’t get demoralized if you struggle to raise money. Many of the best companies have struggled with this, because the best companies so often look bad at the beginning (and they nearly always look unfashionable.) When investors tell you no, believe the no but not the reason. And remember that anything but “yes” is a “no”—investors have a wonderful ability to say “no” in a way that sounds like “maybe yes”.
It’s really important to have fundraising conversations in parallel—don’t go down a list of your favorite investors sequentially. The way to get investors to act is fear of other investors taking away their opportunity.
View fundraising as a necessary evil and something to get done as quickly as possible. Some founders fall in love with fundraising; this is always bad. It’s best to have just one founder do it so the company doesn’t grind to a halt.
Remember that most VCs don’t know much about most industries. Metrics are always the most convincing.

Insist on clean terms (complicated terms compound and get worse each round) but don’t over-optimize, especially on valuation. Valuation is something quantitative to compete on, and so founders love to compete for the highest valuation. But intermediate valuations don’t matter much.
The first check is the hardest to get, so focus your energies on getting that, which usually means focusing your attention on whoever loves you the most. Always have multiple plans, one of which is not raising anything, and be flexible depending on interest—if you can put more money to good use, and it’s available on reasonable terms, be open to taking it.
An important key to being good at pitching is to make your story as clear and easy to understand as possible. Of course, the most important key is to actually have a good company. There are lots of thoughts about what to include in a pitch, but at a minimum you need to have: mission, problem, product/service, business model, team, market and market growth rate, and financials.
Remember that the bar for each round of funding is much higher. If you got away with just being a compelling presenter for your seed round, don’t be surprised when it doesn’t work for your Series A.
Good investors really do add a lot of value. Bad investors detract a lot. Most investors fall in the middle and neither add nor detract.
Great board members are one of the best outside forcing functions for a company other than users, and outside forcing functions are worth more than most founders think. Be willing to accept a lower valuation to get a great board member who is willing to be very involved.
I think this essay by Paul Graham is the best thing out there on fundraising. As a tactical point, you will usually need to be a Delaware C Corporation to raise institutional capital, so it’s best to just incorporate that way.
Remember that at least a thousand people have every great idea. One of them actually becomes successful. The difference comes down to execution. It’s a grind, and everyone wishes there were some other way to transform “idea” into “success”, but no one has figured it out yet.
So all you need is a great idea, a great team, a great product, and great execution. So easy! ;)
Thanks to Paul Buchheit, Erica Carpenter, Brian Chesky, Adam D’Angelo, Paul Graham, Drew Houston, Justin Kan, Matt Krisiloff, Aaron Levie, Gabriel Leydon, Jessica Livingston, Dustin Moskovitz, David Rusenko and Colleen Taylor for contributing thoughts to this.


com.CMPUT301W15T02.teamtoapp.Activities
Classes
ApproverClaimsListActivity
ApproverExpenseListActivity
ApproverExpenseViewActivity
ClaimantClaimsListActivity
ClaimantExpenseListActivity
ClaimEditActivity
DestinationGeoLocationActivity
ExpenseEditActivity
ExpenseViewActivity
HomeGeoLocationActivity
LoginActivity
TagManagerActivity


I've just set a cookie on your browser that disables all your visits tracking for MexApi at Google Analytics. That's it! You can keep reading MexApi.
I've just set a cookie on your browser that disables all your visits tracking for MexApi at Google Analytics. That's it! You can keep reading MexApi.


There is more hope for a fool than for him.
13 The lazy person says, "There is a lion on the road!
There is a lion between the open places!"


{% extends "layout.html" %} {% block title %}Session required!{% endblock %} {% block content %}
The action you have tried to perform requires that you be logged in to the system.


Async function wrapper for Redux powered by Redux-Saga
npm i @weavedev/redux-async
We generate API documentation with TypeDoc.
In this example we create a reducer, saga and actions from an async function. This async function triggers its callback after 3 seconds.
import { ReduxAsync } from '@weavedev/redux-async';
const START_ACTION = 'START_ACTION';
const DONE_ACTION = 'DONE_ACTION';
const FAIL_ACTION = 'FAIL_ACTION';
export const asyncResource = new ReduxAsync(START_ACTION, DONE_ACTION, FAIL_ACTION, async (name: string): Promise<string> => {
// This promise waits 3 seconds and then returns
return new Promise((resolve: ((value: string) => void)): void => {
setTimeout(() => {
resolve(`Hey, ${name}!`);
}, 3000);
});
});
// If you are also using our store package (@weavedev/store)
window.storeReducers.asyncResource = asyncResource.reducer;
window.storeSagas.asyncResource = asyncResource.saga;
declare global {
interface StoreReducersMap {
asyncResource: typeof asyncResource.reducer;
}
interface StoreActionsMap {
asyncResource: typeof asyncResource.actions;
}
}
You can run your async function by calling .run()
. The argument types will match those of your async function.
import { asyncResource } from './asyncResource';
// If you are also using our store package (@weavedev/store)
window.store.dispatch(asyncResource.run('Dave'));
You can run and wait for results from your async function by passing .runSaga
to redux-saga
's call()
effect. The argument types will match those of your async function. This can be useful when you need to run multiple async tasks in order.
function* mySaga(): Iterator<any> {
const result = yield call(asyncResource.runSaga, 'Laura');
console.log("resource returned", result);
}
You can access the types of the actions, reducer, saga and state by using typeof
// All actions
type MyActions = typeof asyncResource.actions;
// Trigger action
type MyTriggerAction = typeof asyncResource.actionMap.trigger;
// Callback action
type MyCallbackAction = typeof asyncResource.actionMap.callback;
// Error action
type MyErrorAction = typeof asyncResource.actionMap.error;
// Reducer
type MyReducer = typeof asyncResource.reducer;
// Reducer
type MySaga = typeof asyncResource.saga;
// State
type MyState = typeof asyncResource.state;
Made by Paul Gerarts and Weave
Generated using TypeDoc


For the fig-swirl: Melt butter over medium heat in a saucepan. Add brown sugar and stir to dissolve. Halve all too the figs and toss in the saucepan with water and lemon juice. Cook over medium, heat stirring frequently, until you have chunck-jammy mixture. Add salt with one or two stirs, set aside and let cool completely. doloribus eligendi, obcaecati aspernatur.
Ice cream: In a small pot over medium heat, combine milk, and granulated sugar until sugar is completely dissolved and the milk is just barely lukewarm. Whisk in the egg yolks. Set Mixture in the fridge and wait until fig mixture is cooled.
Using an ice cream machine, pour liquids into the frozen basin and process according to manufacturer instructions, i.e., let spin and thicken for 20 minutes before adding mascarpone, fig jam mixture, and the nuts. Continue to process for +/- 10 minutes. Pour semi-frozen mixture into a pyrex dish or glass tupperware. Freeze for at least two hours before serving.


JavaScript Class Static Methods
To use the "mycar" object inside the static method, you can send it as parameter.


Nine arrested after Darling residents protest over housing
Police were initially called to monitor a public residents meeting after the protests erupted on Sunday night.
by News24 WireImage: iStock
Nine people have been arrested in Darling after around 1,500 people protested over housing and service delivery, police said on Monday.
Police were initially called to monitor a public residents meeting after the protests erupted on Sunday night.
“According to information, a group of about 1,500 people participated in the protest last night,” said Western Cape police spokesperson Sergeant Noloyiso Rwexana.
“Nine people, aged between 19 and 33, were arrested after they burned tyres and threw stones at the police. They will appear in court once charged.”
Community leader Archie Mbele told Netwerk24 that the protests turned violent when police handled protesters harshly.
Public Order Police and other law enforcement agencies were monitoring the area.
There were no reports of violence on Monday, but “police will remain in the area until law and order is restored”, Rwexana said.


{{resultTweet.text}}
Welcome to Twitter Hoax Finder! Please fill below form to find some hoaxes.
Welcome to Twitter Hoax Finder! Please fill below form to find some hoaxes.
Here is the list of people who tweeted this.
We are sorry to inform you that we couldn't find any results matching your search.


Usage: new point: left click | drag a point: move mouse while pressing mouse left button near the point | delete a point: right click near the point | increase / decrease a point weight: scroll up / scroll down near the point


Select the fields that you want to use in your query by clicking on the checkboxes. Only the checked fields will be available in the query screen. When you are done, please click on 'Go to Query Builder'.


The State of Software Development
Modern software teams are confronted with an ever-changing set of requirements, wishes and shifting focus. On top of that, business demands that new features are quickly implemented and put into production without compromising existing functionality and quality aspects.
Continuous Delivery & DevOps
Often teams are also responsible for maintaining the acceptance and/or production environment by means of CI/CD pipelines. Teams need to not only develop the software but also have the capabilities to ensure the software can be put into production in a controlled fashion.
HyperDev CI/CD
HyperDev provides teams with all the tools necessary for proper CI/CD pipelines. Not only will you get the tools, but they will also be configured and ready for use, including an example pipeline.
HyperDev Dashboard
The HyperDev Dashboard makes it easy to run your own development setup. You can create an ad-hoc development and test environments through simple, one-click deployments. All functionality is readily available through a well-defined API. This makes for really simple CI/CD pipelines.
Build on Docker
HyperDev is built on top of Docker - the leading tool in containerization. The platform uses standards, such as docker-compose, to ensure a smooth transition to production and integration with all of your other services. Using Docker Swarm, we ensure maximum resource utilization.
Secure Cloud
HyperDev runs a private cloud per tenant on top of virtual servers located in The Netherlands. All services (CI/CD tooling and your own applications) are accessible through a VPN. This way we ensure the safety of your data.


Texture paint to canvas. To set the per-material.
More...
Texture paint to canvas. To set the per-material.
§ GetHeightTexture()
| Texture Es.TexturePaint.DynamicCanvas.GetHeightTexture |
( |
string |
materialName | ) |
|
To get the original height map.
- Parameters
-
| materialName | Material name. |
- Returns
- Original height map.
§ GetMainTexture()
| Texture Es.TexturePaint.DynamicCanvas.GetMainTexture |
( |
string |
materialName | ) |
|
To get the original main texture.
- Parameters
-
| materialName | Material name. |
- Returns
- Original main texture.
§ GetNormalTexture()
| Texture Es.TexturePaint.DynamicCanvas.GetNormalTexture |
( |
string |
materialName | ) |
|
To get the original normal map.
- Parameters
-
| materialName | Material name. |
- Returns
- Original normal map.
§ GetPaintHeightTexture()
| RenderTexture Es.TexturePaint.DynamicCanvas.GetPaintHeightTexture |
( |
string |
materialName | ) |
|
To get the paint in height map.
- Parameters
-
| materialName | Material name. |
- Returns
- Height map in paint.
§ GetPaintMainTexture()
| RenderTexture Es.TexturePaint.DynamicCanvas.GetPaintMainTexture |
( |
string |
materialName | ) |
|
To get the main texture in paint.
- Parameters
-
| materialName | Material name. |
- Returns
- Main texture in paint.
§ GetPaintNormalTexture()
| RenderTexture Es.TexturePaint.DynamicCanvas.GetPaintNormalTexture |
( |
string |
materialName | ) |
|
To get the paint in normal map.
- Parameters
-
| materialName | Material name. |
- Returns
- Normal map in paint.
§ Paint() [1/2]
| bool Es.TexturePaint.DynamicCanvas.Paint |
( |
PaintBrush |
brush, |
|
|
Vector3 |
worldPos, |
|
|
Camera |
renderCamera = null |
|
) |
| |
Paint processing that use world-space surface position.
- Parameters
-
| brush | Brush data. |
| worldPos | Point on object surface (world-space). |
| renderCamera | Camera to use to render the object. |
- Returns
- The success or failure of the paint.
§ Paint() [2/2]
| bool Es.TexturePaint.DynamicCanvas.Paint |
( |
PaintBrush |
brush, |
|
|
RaycastHit |
hitInfo |
|
) |
| |
Paint processing that use raycast hit data. Must MeshCollider is set to the canvas.
- Parameters
-
| brush | Brush data. |
| hitInfo | Raycast hit info. |
- Returns
- The success or failure of the paint.
§ PaintNearestTriangleSurface()
| bool Es.TexturePaint.DynamicCanvas.PaintNearestTriangleSurface |
( |
PaintBrush |
brush, |
|
|
Vector3 |
worldPos, |
|
|
Camera |
renderCamera = null |
|
) |
| |
Paint of points close to the given world-space position on the Mesh surface.
- Parameters
-
| brush | Brush data. |
| worldPos | Approximate point. |
| renderCamera | Camera to use to render the object. |
- Returns
- The success or failure of the paint.
§ PaintUVDirect()
| bool Es.TexturePaint.DynamicCanvas.PaintUVDirect |
( |
PaintBrush |
brush, |
|
|
Vector2 |
uv |
|
) |
| |
Paint processing that UV coordinates to the specified.
- Parameters
-
| brush | Brush data. |
| uv | UV coordinates for the hit location. |
- Returns
- The success or failure of the paint.
§ ResetPaint()
| void Es.TexturePaint.DynamicCanvas.ResetPaint |
( |
| ) |
|
§ SetPaintHeightTexture()
| void Es.TexturePaint.DynamicCanvas.SetPaintHeightTexture |
( |
string |
materialName, |
|
|
RenderTexture |
newTexture |
|
) |
| |
Set paint texture.
- Parameters
-
| materialName | Material name. |
| newTexture | New rendertexture. |
§ SetPaintMainTexture()
| void Es.TexturePaint.DynamicCanvas.SetPaintMainTexture |
( |
string |
materialName, |
|
|
RenderTexture |
newTexture |
|
) |
| |
Set paint texture.
- Parameters
-
| materialName | Material name. |
| newTexture | New rendertexture. |
§ SetPaintNormalTexture()
| void Es.TexturePaint.DynamicCanvas.SetPaintNormalTexture |
( |
string |
materialName, |
|
|
RenderTexture |
newTexture |
|
) |
| |
Set paint texture.
- Parameters
-
| materialName | Material name. |
| newTexture | New rendertexture. |
§ OnInitializedAfter
| Action<DynamicCanvas> Es.TexturePaint.DynamicCanvas.OnInitializedAfter |
|
set |
Called by dynamic canvas initialization completion times.
The documentation for this class was generated from the following file:
- C:/Users/Es/Documents/Unity/TexturePaint/Assets/TexturePaint/Script/Core/DynamicCanvas.cs


--- layout: post authors: ["Will Fyson"] title: "What Is ORCID?" date: 2015-08-22 time: "02:00:00" tags: ["Publishing", "ORCID"] ---
Part of being a successful researcher lies in the ability to stand out from your peers, which can be done through making and being acknowledge for valuable and original contributions. Once acknowledged for one discovery this can then act as a springboard to allow your peers to identify your other scholarly contributions, or alternatively identify potential for future collaboration, or be used as a proof of your research skills when applying for further funding. In short, making your work and accomplishments known is crucial to success in academia.
Yet whilst so many functions of the academic process hang on the concept of citations and as such the ability to identify the researchers behind a piece of work, the actual means of identifying a researcher is not without its problems. For example how to identify the discoveries and related work of a specific "John Smith" after coming across one of the author's particularly informative publications? How do we keep up to date with a researcher's publications if they change their name? How do we keep track of a successful researcher who works across a number of institutions over the course of their career or who engages in work across a range of disciplines?
Thus arises a demand for researchers to be uniquely identifiable through the course of their careers, no matter what changes within their personal or professional lives. Perhaps the most popular solution to this problem is the Open Researcher and Contributor ID, otherwise known as ORCID. An ORCID is a 16 digit, persistent digital identifier that identifies a researcher and it is remarkably simple to acquire one: simply go along to the website at http://orcid.org/ and provide your name and email address. This identifier can then be attached to all of your various scholarly works from publications or datasets (and anything else in-between and beyond!) to firmly identify you as a contributor to the work in question. And by using the notion of contributor ORCIDs have the flexibility to allow for numerous different roles in a work to be recorded, thus greatly increasing the scope of works a researcher can affiliate themselves with. Once a researcher has a unique identifier, the problems describe above are resolved and it becomes almost trivial to follow a researchers progress throughout the course of their career which in turn makes it much easier for them to showcase their accomplishments.
However, once a system of uniquely identifying researchers is embedded within the research ecosystem, a number of uses begin to emerge that extend the benefits beyond resolving the aforementioned issues, benefits that are enabled by the manner in which ORCID operates. ORCID itself is a non-profit organisation and thus it can offer an ORCID as a neutral identifier that allows different institutions' or publisher's own proprietary systems to interface with one another. As a result, different systems storing information about researchers can begin to build a much more comprehensive record of the research landscape, allowing them to consistently identify researchers who may not even have an identifier within the system in question.
This feature of ORCID is perhaps best highlighted in ORCID's very own profile pages available at http://orcid.org/ which presents users with a CV-like interface, providing a record of a researcher's education, employment, funding and works. One way in which to add a work to your ORCID profile is to import it from another site and in doing so it is possible to register your ORCID with the external organisation. For example, when I imported a paper from Scopus using my ORCID I came across another paper I had been listed as co-author on which I didn't realise was online. By using the ORCID profile system in this way, it is therefore possible to build a single, consistent (and perhaps more comprehensive that one would initially image) record of one's research outcomes.
Whilst the ORCID.org profiles are a useful feature that provide an overview of your research, they are ultimately a distraction from ORCID's power in it's ability to bring in all research contributions from a wide range of sources. When ORCID is combined with identifiers for other resources such as papers (identified by DOI's for example) and grants, the potential exists to illustrate a very informative and flexible image of a researcher's true impact in their community, that could be queried for a range of different purposes by different stakeholders. For example a researcher could use this dataset when applying for research grants, or a university may use it to demonstrate outreach work their academics have taken part in.
The potential of ORCID is one that has many parallels with the potential of open linked data, but to properly achieve such benefits requires both a lot of work in developing tools that allow different systems to expose their data and to talk to one another, but also a high level of ORCID adoption. At the time of writing, ORCID claim to have 1,523,480 registered users, and this number is only likely to increase: ORCID is supported by a wide array of member organisations including the University of Southampton, many of which are actively encouraging people to sign up for ORCIDs and some research councils are considering mandating researchers have an ORCID as a condition on rewarding grants.
It becomes clear then that ORCIDs are a potentially useful and powerful tool for the academic community. Having been devised to tackle some important, but perhaps unexciting issues facing around the way in which we disseminate research, all new opportunities arise that illustrate a potential to revolutionise the way in which we communicate our contributions. And whilst much of this potential is still yet to be realised, through increased adoption of ORCIDs and a better understanding of the role of good software in research, it is perhaps only a matter of time before everyone has their own ORCID.


--- layout: page comments: true title: "About" description: "听香小筑" header-img: "img/post-bg-rwd.jpg" ---
爱是一种习得的能力
理解与交互的能力
我们是 Ben 和 Leo，现在休斯顿生活。
我喜欢篆刻、绘画、唱歌、园艺、做饭、烘焙
他喜欢飞行、摄影、音乐、里程
这里是我们的小花园。欢迎走近我们的生活
Love is an acquired ability
An ability to understand and interact
We are Ben and Leo, living in Houston
I like chinese stone carving, painting, singing, gardenning, cooking and baking
He enjoys aviation, photography, music and miles
This is our little gardenGet closer to our life


Korea
All things pretty during our hedonist trip to Seoul, Korea
All things pretty during our hedonist trip to Seoul, Korea
Ayorek is a platform to record, connect, and enable the city and the people of Surabaya (Indonesia).
It is an interesting time in Ha Giang, a transition where a long standing solitude way of living is slowly adapting to modern convenience.
Founded in 2008 in Surabaya, C2O library & collabtive is an independent library and a collaborative space to learn, connect and create.
Chimp Chomp is a design and research lab based in Surabaya, Indonesia. Powered by a couple of hyper monkeys honed in multidisciplinary areas from design, computer science, photography, social science and cultural studies, our clients and collaborators range from independent initiatives to multi-national corporations and organisations.
Project inquiry, job application, internship application? This way please.
Chimp Chomp Design
Jl. Dr. Cipto 20 Surabaya 60264 Indonesia
Email<EMAIL_ADDRESS>Phone/WhatsApp: +62-818 0304 8070


{% extends "common-base.html" %} {% load custom_tags %} {% block common_content %}
Please, log in with your already generated credentials.


Paul Ralph
Articulates a model of software development oriented unusually-well towards design thinking, in terms of iteration, reflection in action and so on.


The self-diffusion coefficient of water molecules in the interlayer of montmorillonite with different charge characteristics (×10 −10 m 2·s −1).


Your personal secure space
Your personal Modern Money Vault is protected by additional layers of security. It offers 100% security for your funds, utilizing a 2-of-2 multi-signature digital signature approach and multiple authentication mechanisms like biometric authentication (fingerprint), a personal combination lock (PIN code) and a 24-hour time lock with email confirmation.


Climate Change Spurred the Rise and Fall of Neo-Assyrian Empire
by NATHAN SOLIS(CN) – Roughly 2,600 years ago, the largest Mesopotamian empire fell due to political unrest, civil war, overpopulation and – according to a new study – climate change.
The Neo-Assyrian Empire included modern-day Iraq and Syria and at its height also stretched from northern Africa to the Persian Gulf and into what is now Turkey. In the approximately 300 years of its existence, the Iron Age empire saw the reign of multiple dynasties, plagues and conflicts with the Babylonian, Persian and many other neighboring empires.
And in its final 60 years, it saw the effects of multidecade droughts.
According to a study published on Wednesday in the journal Science Advances, the Neo-Assyrian Empire’s rise and fall was bookended by rain.
The empire’s expansive borders increased the need for a stable supply of food and water for urban centers and the Assyrian cavalry, according to the study’s authors. Control over water was also politically sensitive, which played into propaganda from Assyrian kings as the construction of canals and reservoirs preceded the move of the capital circa 879 B.C.
The study’s lead author – Earth and climate sciences professor Ashish Sinha from California State University, Dominguez Hills – says two stalagmites found in northern Iraq gave researchers a record of rainfall over the last 4,000 years.
Researchers studied the oxygen and carbon isotopic data from the sample, which showed from 850 to 740 B.C. – during the peak of the empire’s reign – rainfall levels were at their highest in centuries. Precipitation levels during the cool season were 15% to 30% higher than during the modern era, but that changed during a 7th century megadrought, according to the study’s authors. The drought lasted for years, and the data suggest that, if it continued for more than a century, it would have been the worst episode of drought in the region in the last four millennia.
The drought set off a debilitating domino effect, stifling agriculture, causing civil unrest amid a shortage of food and water, and stoking political upheaval. Uprising then gave way to civil wars as the empire’s enemies closed in from multiple fronts. Once the mightiest of nations, the fall of Assyria began around 627 B.C. with the empire stretched thin.
By 612 B.C., the capital had changed multiple times until final settling in Harran near the Tigris River. That city was sacked after a siege by the Babylonians and Medes, eventually falling for good in 605 B.C.
Copyright © 2019 courthousenews.com