Yocto/Obj
Wavefront OBJ/MTL loader and writer with support for points, lines, triangles and general polygons and all materials properties. Contains also a few extensions to easily create demos such as per-vertex color and radius, cameras, environment maps and instances. Can use either a low-level OBJ representation or a high level flattened representation.
Both in reading and writing, OBJ has no clear convention on the orientation of textures Y axis. So in many cases textures appears flipped. To handle that, use the option to flip textures coordinates on either saving or loading. By default texture coordinates are flipped since this seems the convention found on test cases collected on the web. The value Tr has similar problems, since its relation to opacity is software specific. Again we let the user chose the convension and set the default to the one found on the web.
In the high level interface, shapes are indexed meshes and are described by arrays of vertex indices for points/lines/triangles and arrays for vertex positions, normals, texcoords, color and radius. The latter two as extensions. Since OBJ is a complex formats that does not match well with current GPU rendering / path tracing algorithms, we adopt a simplification similar to other single file libraries: 1. vertex indices are unique, as in OpenGL and al standard indexed triangle meshes data structures, and not OBJ triplets; YOCTO_OBJ ensures that no vertex dusplication happens thought for same triplets 2. we split shapes on changes to groups and materials, instead of keeping per-face group/material data; this makes the data usable right away in a GPU viewer; this is not a major limitation if we accept the previous point that already changes shapes topology.
This library depends in yocto_math.h. Texture loading depends on yocto_image. If the texture loading dependency is not desired, it can be disabled by defining YOBJ_NO_IMAGE before including this file.
Usage Of High-Level Interface
- load a scene with
load_scene()
- look at the
scene
data structures for access to individual elements - can also manipulate the scene by adding missing data with
add_XXX()
functions - since OBJ does natively support mesh transfotms, which we support with
instances, use
flatten_instaces()
oradd_instances()
to go back and fourth - use
save_scene()
ti write the data to disk
Usage Of Low-Level Interface
- load a obj data with
load_obj()
; can load also textues - look at the
obj_XXX
data structures for access to individual elements - use obj back to disk with
save_obj()
; can also save textures - conversion from low- to -high-level data structures with
scene_to_obj()
andobj_to_scene()
History
- v 0.30: support for smoothing groups
- v 0.29: use reference interface for textures
- v 0.28: add function to split meshes into single shapes
- v 0.27: explicit transforms
- v 0.26: added interpreting of illum in scene conversions
- v 0.25: added convention for Tr
- v 0.24: remove exception from code and add explicit error handling
- v 0.23: texture have always 4 channels
- v 0.22: change variable names for compilation on gcc
- v 0.21: bug fixes
- v 0.20: use yocto_math in the interface and remove inline compilation
- v 0.19: add missing bounding box computation and missing data functions
- v 0.18: prioritize high-level interface
- v 0.17: name cleanup in both interface to better align with glTF
- v 0.16: change flattened data structure to use pointers
- v 0.15: added unknown properties std::map for materials
- v 0.14: added extension to store tetrahedral meshes
- v 0.13: started adding physics extension to materials
- v 0.12: change texture loading by flipping uvs rather than images
- v 0.11: use yocto_image for texture handling.
- v 0.10: switch to .h/.cpp pair
- v 0.9: bug fixes and optionally texture skipping
- v 0.8: high level interface uses grouping
- v 0.7: doxygen comments
- v 0.6: bug fixes
- v 0.5: removed options to force image formats (image library not reliable)
- v 0.4: [major API change] move to modern C++ interface
- v 0.3: new API internals and C++ interface
- v 0.2: removal of C interface
- v 0.1: C++ implementation
- v 0.0: initial release in C99
Namespace yobj
Reading and Writing support for Wavefront OBJ.
Typedef template <typename T >
property_map
template <typename T>
using property_map = std::map<std::string, std::vector<T>>;
Property map
Struct texture
struct texture {
std::string path;
ym::image4b ldr;
ym::image4f hdr;
int width() const;
int height() const;
}
Scene Texture
- Members:
- path: path
- ldr: if loaded, ldr image
- hdr: if loaded, hdr image
- width(): get texture width
- height(): get texture height
Struct texture_info
struct texture_info {
bool clamp = false;
float bump_scale = 1;
property_map<std::string> unknown_props;
}
Scene Texture Additional Information
- Members:
- clamp: clamping
- bump_scale: bump scale
- unknown_props: unknown string props
Struct material
struct material {
std::string name;
ym::vec3f ke = {0, 0, 0};
ym::vec3f kd = {0, 0, 0};
ym::vec3f ks = {0, 0, 0};
ym::vec3f kt = {0, 0, 0};
float rs = 0.0001;
float opacity = 1;
texture* ke_txt = nullptr;
texture* kd_txt = nullptr;
texture* ks_txt = nullptr;
texture* kt_txt = nullptr;
texture* rs_txt = nullptr;
texture* op_txt = nullptr;
texture* bump_txt = nullptr;
texture* disp_txt = nullptr;
texture* norm_txt = nullptr;
texture_info ke_txt_info = {};
texture_info kd_txt_info = {};
texture_info ks_txt_info = {};
texture_info kt_txt_info = {};
texture_info rs_txt_info = {};
texture_info bump_txt_info = {};
texture_info disp_txt_info = {};
texture_info norm_txt_info = {};
property_map<std::string> unknown_props;
}
Scene Material
- Members:
- name: material name
- ke: emission color
- kd: diffuse color
- ks: specular color
- kt: transmission color
- rs: roughness
- opacity: opacity
- ke_txt: emission texture
- kd_txt: diffuse texture
- ks_txt: specular texture
- kt_txt: transmission texture
- rs_txt: roughness texture
- op_txt: opacity texture
- bump_txt: bump map texture (heighfield)
- disp_txt: displacement map texture (heighfield)
- norm_txt: normal texture
- ke_txt_info: emission texture
- kd_txt_info: diffuse texture
- ks_txt_info: specular texture
- kt_txt_info: transmission texture
- rs_txt_info: roughness texture
- bump_txt_info: bump map texture (heighfield)
- disp_txt_info: displacement map texture (heighfield)
- norm_txt_info: normal texture
- unknown_props: unknown string props
Struct shape
struct shape {
std::string name = "";
material* mat = nullptr;
std::vector<int> points;
std::vector<ym::vec2i> lines;
std::vector<ym::vec3i> triangles;
std::vector<ym::vec4i> tetras;
std::vector<ym::vec3f> pos;
std::vector<ym::vec3f> norm;
std::vector<ym::vec2f> texcoord;
std::vector<ym::vec4f> color;
std::vector<float> radius;
std::vector<ym::vec4f> tangsp;
}
Shape. May contain only one of the points/lines/triangles.
- Members:
- name: name of the group that enclosed it
- mat: material
- points: points
- lines: lines
- triangles: triangles
- tetras: tetrahedrons
- pos: per-vertex position (3 float)
- norm: per-vertex normals (3 float)
- texcoord: per-vertex texcoord (2 float)
- color: [extension] per-vertex color (4 float)
- radius: [extension] per-vertex radius (1 float)
- tangsp: [extension] per-vertex tangent space (4 float)
Struct mesh
struct mesh {
std::vector<shape*> shapes;
~mesh();
}
Mesh
- Members:
- shapes: primitives
- ~mesh(): cleanup
Struct instance
struct instance {
ym::vec3f translation = {0, 0, 0};
ym::quat4f rotation = {0, 0, 0, 1};
ym::vec3f scale = {1, 1, 1};
ym::mat4f matrix = ym::identity_mat4f;
mesh* msh = nullptr;
ym::mat4f xform() const;
}
Mesh instance.
- Members:
- translation: translation
- rotation: rotation
- scale: scale
- matrix: generic transform matrix
- msh: mesh instances
- xform(): xform
Struct camera
struct camera {
std::string name;
ym::vec3f translation = {0, 0, 0};
ym::quat4f rotation = {0, 0, 0, 1};
ym::mat4f matrix = ym::identity_mat4f;
bool ortho = false;
float yfov = 2;
float aspect = 16.0f / 9.0f;
float focus = 1;
float aperture = 0;
ym::mat4f xform() const;
}
Scene Camera
- Members:
- name: name
- translation: translation
- rotation: rotation
- matrix: generic transform matrix
- ortho: ortho cam
- yfov: vertical field of view
- aspect: aspect ratio
- focus: focus distance
- aperture: lens aperture
- xform(): xform
Struct environment
struct environment {
std::string name;
material* mat = nullptr;
ym::quat4f rotation = {0, 0, 0, 1};
ym::mat4f matrix = ym::identity_mat4f;
ym::mat4f xform() const;
}
Envinonment map
- Members:
- name: name
- mat: index of material in material array
- rotation: rotation
- matrix: generic transform matrix
- xform(): xform
Struct scene
struct scene {
std::vector<mesh*> meshes;
std::vector<instance*> instances;
std::vector<material*> materials;
std::vector<texture*> textures;
std::vector<camera*> cameras;
std::vector<environment*> environments;
~scene();
}
Scene
- Members:
- meshes: shape array
- instances: instance array
- materials: material array
- textures: texture array
- cameras: camera array
- environments: environment array
- ~scene(): cleanup
Function load_scene()
scene* load_scene(const std::string& filename, bool load_textures,
bool flip_texcoord = true, bool skip_missing = true, bool flip_tr = true,
std::string* err = nullptr);
Load scene
- Parameters:
- filename: filename
- load_textures: whether to load textures (default to false)
- flip_texcoord: whether to flip the v coordinate
- skip_missing: skip missing textures
- flip_tr: whether to flip tr
- err: if set, store error message on error
- Returns:
- scene (nullptr on error)
Function save_scene()
bool save_scene(const std::string& filename, const scene* scn,
bool save_textures, bool flip_texcoord = true, bool flip_tr = true,
std::string* err = nullptr);
Save scene
- Parameters:
- filename: filename
- scn: scene data to save
- save_textures: whether to save textures (default to false)
- flip_texcoord: whether to flip the v coordinate
- flip_tr: whether to flip tr
- err: if set, store error message on error
- Returns:
- whether an error occurred
Function load_textures()
bool load_textures(scene* scn, const std::string& dirname,
bool skip_missing = false, std::string* err = nullptr);
Loads textures for an scene.
- Parameters:
- scn: scene to load textures into
- dirname: base directory name for texture files
- skip_missing: whether to skip missing textures or stops with error
- err: if set, store error message on error
- Returns:
- whether an error occurred
Function save_textures()
bool save_textures(const scene* scn, const std::string& dirname,
bool skip_missing = false, std::string* err = nullptr);
Saves textures for an scene.
- Parameters:
- scn: scene to write textures from
- dirname: base directory name for texture files
- skip_missing: whether to skip missing textures or stops with error
- err: if set, store error message on error
- Returns:
- whether an error occurred
Function compute_scene_bounds()
ym::bbox3f compute_scene_bounds(const scene* scn);
Computes a scene bounding box
Function add_normals()
void add_normals(scene* scn);
Add missing data to the scene.
Function add_radius()
void add_radius(scene* scn, float radius);
Add missing data to the scene.
Function add_tangent_space()
void add_tangent_space(scene* scn);
Add missing data to the scene.
Function add_texture_data()
void add_texture_data(scene* scn);
Add missing data to the scene.
Function add_instances()
void add_instances(scene* scn);
Add missing data to the scene.
Function add_names()
void add_names(scene* scn);
Add missing data to the scene.
Function add_default_camera()
void add_default_camera(scene* scn);
Add a default camera that views the entire scene.
Function flatten_instances()
void flatten_instances(scene* scn);
Flatten scene instances into separate meshes.
Function split_shapes()
void split_shapes(scene* scn);
Split meshes into single shapes
Struct obj_vertex
struct obj_vertex {
int pos;
int texcoord;
int norm;
int color;
int radius;
obj_vertex(int pos = -1, int texcoord = -1, int norm = -1, int color = -1, int radius = -1);
}
Face vertex
- Members:
- pos: position
- texcoord: texcoord
- norm: normal
- color: color [extension]
- radius: radius [extension]
- obj_vertex(): Constructor (copies members initializing missing ones to -1)
Enum obj_element_type : uint16_t
enum struct obj_element_type : uint16_t {
point = 1,
line = 2,
face = 3,
tetra = 4,
}
element type
- Values:
- point: lists of points
- line: polylines
- face: polygon faces
- tetra: tetrahedrons
Struct obj_element
struct obj_element {
uint32_t start;
obj_element_type type;
uint16_t size;
}
Element vertex indices
- Members:
- start: starting vertex index
- type: element type
- size: number of vertices
Struct obj_group
struct obj_group {
std::string matname;
std::string groupname;
bool smoothing = true;
std::vector<obj_vertex> verts;
std::vector<obj_element> elems;
}
Element group
- Members:
- matname: material name
- groupname: group name
- smoothing: smoothing
- verts: element vertices
- elems: element faces
Struct obj_object
struct obj_object {
std::string name;
std::vector<obj_group> groups;
}
Obj object
- Members:
- name: object name
- groups: element groups
Struct obj_material
struct obj_material {
std::string name;
int illum = 0;
ym::vec3f ke = {0, 0, 0};
ym::vec3f ka = {0, 0, 0};
ym::vec3f kd = {0, 0, 0};
ym::vec3f ks = {0, 0, 0};
ym::vec3f kr = {0, 0, 0};
ym::vec3f kt = {0, 0, 0};
float ns = 1;
float ior = 1;
float op = 1;
std::string ke_txt;
std::string ka_txt;
std::string kd_txt;
std::string ks_txt;
std::string kr_txt;
std::string kt_txt;
std::string ns_txt;
std::string op_txt;
std::string ior_txt;
std::string bump_txt;
std::string disp_txt;
std::string norm_txt;
property_map<std::string> ke_txt_info = {};
property_map<std::string> ka_txt_info = {};
property_map<std::string> kd_txt_info = {};
property_map<std::string> ks_txt_info = {};
property_map<std::string> kr_txt_info = {};
property_map<std::string> kt_txt_info = {};
property_map<std::string> ns_txt_info = {};
property_map<std::string> op_txt_info = {};
property_map<std::string> ior_txt_info = {};
property_map<std::string> bump_txt_info = {};
property_map<std::string> disp_txt_info = {};
property_map<std::string> norm_txt_info = {};
property_map<std::string> unknown_props;
}
OBJ material
- Members:
- name: material name
- illum: MTL illum mode
- ke: emission color
- ka: ambient color
- kd: diffuse color
- ks: specular color
- kr: reflection color
- kt: transmision color
- ns: phong exponent for ks
- ior: index of refraction
- op: opacity
- ke_txt: emission texture
- ka_txt: ambient texture
- kd_txt: diffuse texture
- ks_txt: specular texture
- kr_txt: reflection texture
- kt_txt: transmission texture
- ns_txt: specular exponent texture
- op_txt: opacity texture
- ior_txt: index of refraction
- bump_txt: bump map texture (heighfield)
- disp_txt: displacement map texture (heighfield)
- norm_txt: normal map texture
- ke_txt_info: emission texture
- ka_txt_info: ambient texture
- kd_txt_info: diffuse texture
- ks_txt_info: specular texture
- kr_txt_info: reflection texture
- kt_txt_info: transmission texture
- ns_txt_info: specular exponent texture
- op_txt_info: opacity texture
- ior_txt_info: index of refraction
- bump_txt_info: bump map texture (heighfield)
- disp_txt_info: displacement map texture (heighfield)
- norm_txt_info: normal texture
- unknown_props: unknown string props
Struct obj_camera
struct obj_camera {
std::string name;
ym::vec3f translation = {0, 0, 0};
ym::quat4f rotation = {0, 0, 0, 1};
ym::vec3f scale = {1, 1, 1};
ym::mat4f matrix = ym::identity_mat4f;
bool ortho = false;
float yfov = 2 * std::atan(0.5f);
float aspect = 16.0f / 9.0f;
float aperture = 0;
float focus = 1;
}
Camera [extension]
- Members:
- name: camera name
- translation: translation
- rotation: rotation
- scale: scale
- matrix: generic transform matrix
- ortho: orthografic camera
- yfov: vertical field of view
- aspect: aspect ratio
- aperture: lens aperture
- focus: focus distance
Struct obj_environment
struct obj_environment {
std::string name;
ym::quat4f rotation = {0, 0, 0, 1};
ym::mat4f matrix = ym::identity_mat4f;
std::string matname;
}
Environment [extension]
- Members:
- name: environment name
- rotation: rotation
- matrix: generic transform matrix
- matname: material name
Struct obj_instance
struct obj_instance {
std::string name;
ym::vec3f translation = {0, 0, 0};
ym::quat4f rotation = {0, 0, 0, 1};
ym::vec3f scale = {1, 1, 1};
ym::mat4f matrix = ym::identity_mat4f;
std::string meshname;
}
Instance [extension]
- Members:
- name: instance name
- translation: translation
- rotation: rotation
- scale: scale
- matrix: generic transform matrix
- meshname: object name
Struct obj
struct obj {
std::vector<ym::vec3f> pos;
std::vector<ym::vec3f> norm;
std::vector<ym::vec2f> texcoord;
std::vector<ym::vec4f> color;
std::vector<float> radius;
std::vector<obj_object> objects;
std::vector<obj_material> materials;
std::vector<obj_camera> cameras;
std::vector<obj_environment> environments;
std::vector<obj_instance> instances;
}
OBJ asset
- Members:
- pos: vertex positions
- norm: vertex normals
- texcoord: vertex texcoord
- color: vertex color [extension]
- radius: vertex radius [extension]
- objects: objects
- materials: materials
- cameras: cameras [extension]
- environments: env maps [extension]
- instances: instances [extension]
Function load_obj()
obj* load_obj(const std::string& filename, bool flip_texcoord = true,
bool flip_tr = true, std::string* err = nullptr);
Load OBJ
- Parameters:
- filename: filename
- flip_texcoord: whether to flip the v coordinate
- flip_tr: whether to flip the Tr value
- err: if set, store error message on error
- Return:
- obj (nullptr on error)
Function load_mtl()
std::vector<obj_material> load_mtl(const std::string& filename,
bool flip_tr = true, std::string* err = nullptr);
Load MTL
- Parameters:
- filename: filename
- flip_tr: whether to flip the Tr value
- err: if set, store error message on error
- Return:
- loaded materials (empty on error)
Function save_obj()
bool save_obj(const std::string& filename, const obj* asset,
bool flip_texcoord = true, bool flip_tr = true, std::string* err = nullptr);
Save OBJ
- Parameters:
- filename: filename
- asset: obj data to save
- flip_texcoord: whether to flip the v coordinate
- flip_tr: whether to flip the Tr value
- err: if set, store error message on error
- Returns:
- whether an error occurred
Function save_mtl()
bool save_mtl(const std::string& filename,
const std::vector<obj_material>& materials, bool flip_tr = true,
std::string* err = nullptr);
Save MTL (@deprecated interface)
Function obj_to_scene()
scene* obj_to_scene(const obj* obj);
Converts an OBJ into a scene.
- Parameters:
- obj: obj to be flattened
Function scene_to_obj()
obj* scene_to_obj(const scene* scn);
Save a scene in an OBJ file.
- Parameters:
- scn: scene to convert


{% extends "email_base.html" %} {% block content %}
The following tickets that you have created or been assigned have not yet been closed.
| Ticket Number | Title | Priority | Status | Assigned |
|---|---|---|---|---|
| {{ ticket.id_zfill }} | {{ ticket.title }} | {{ ticket.ticket_priority.priority }} | {{ ticket.current_status.status }} | {{ ticket.assigned.name }} |


personal info
- first name : Dave
- last name : Wolfe
- Freelance : Available
- Address : Greater Seattle Area
- phone :<PHONE_NUMBER>
- Email<EMAIL_ADDRESS>2
years of techexperience
15
completed projects
2
Happycustomers
1
certificates earned
My Skills
50%
html
50%
javascript
50%
css
90%
customer service
35%
react
50%
jquery
25%
react native
60%
project management
Experience & Education
-
2018 - 2020
Product Acceptance Analyst Zonar Systems
- Provided support to the development pods through end-to-end testing of new products and releases. Responsible for timely identification of severity of system issues and effectively communicated priority level and impact.
- Diagnosed and documented 3-10 advanced application issues, per day, received via Jira tickets, from customer support, and assigned them directly to correct pods.
- Principal product tester for one project, where I identified over 100 bug tickets, and assisted in helping developers understand customer-centric needs.
-
2017 - 2018
Quality Assurance Inspector Exotic Metals Forming Company
- Responsible for verifying the quality of manufactured aerospace parts, using visual, tactile, and measurement processes.
- Interpreted technical drawings to confirm specifications of parts.
- Accurately used a variety of calibrated measurement tools, including pin gauges, calipers, height gauges, and pi tapes.
-
2015 - 2017
President/Owner Obsidian Vape, Inc.
- Managed a team of 3 employees, including scheduling, payroll, hiring and resource management.
- Sourced and purchased quality products for retail sale.
- Ran the day-to-day operations of a retail store, including sales, POS systems, finances, deposits and inventory tracking.
- Managed fundraising events for industry non-profit organization. Raised an average of $2000 per event.
-
2003 - 2013
Local Vice President of Communications - Event Planner/Manager Society for Creative Anachronism, Inc.
- Recognized for significantly building the membership participation and organizing major events in Western Washington for the Society for Creative Anachronism (SCA), a non-profit, international living history group that studies and recreates Medieval European cultures and their histories before the 17th Century.
- Served as the Assistant to the Vice President of Communications for the Kitsap County Branch in 2003, and then served as the Vice President of Communications for the Pierce County Branch from 2004 to 2013.
- Organized local events and major 5-Day to 10-Day Medieval Fair events for several years at multiple rural locations in Chehalis, Randle and Orting, WA.
- Increased the Medieval Fair attendance 275%, from 400 to 1,500 in 6 years.
- Implemented emergency response protocols that resulted in no accidents or injuries during massive flooding in 2013 when the Cowlitz River overflowed onto the Medieval Fair grounds, cutting off emergency responders to the area due to the flooding of access roads.
- Secured and negotiated contracts for the Medieval Fair locations, managed the operating budget, interviewed and hired volunteers, marketed and advertised events, coordinated with 30+ vendors as well as local and county officials, coordinated and supplied all sanitation needs for events, developed risk assessments, delegated responsibilities to workers, and staffed and supervised a 10-member Management Team, a 20-member Logistics Team and a 30-Member Safety Team.
-
2010 - 2015
Owner/Operator Silver Wolfe Express
- Owned and operated a single person trucking company.
- Managed time and deliveries across the United States.
-
2020
Certificate - Advanced Software Development - Javascript Code Fellows
Learned industry best practices and practical software development standards with a focus on HTML5, CSS3, JavaScript, jQuery, NodeJS, React, Redux, and algorithms and data structures. I created and deployed numerous mobile-first applications while learning new languages and frameworks by collaborating 50+ hours per week.


-
user
java.lang.String user
Name of user node that started the job.
-
jobType
java.lang.String jobType
Type of the job, e.g. `grep` or `wordcount`.
-
input
java.lang.String input
Path to the input-/output-files.
-
output
java.lang.String output
Path to the input-/output-files.
-
otherArgs
java.lang.String otherArgs
Additional command-line arguments fed in by the user.
-
status
java.lang.String status
Human-readable status message for the job.
-
recordStart
int recordStart
The range for the current job to operate on from the input file.
-
recordEnd
int recordEnd
The range for the current job to operate on from the input file.
-
jobID
int jobID
Unique JobID associated to the current job.
-
tasks
java.util.ArrayList<E> tasks
List of Task IDs for pending tasks associated to the job.


| DOSE: T+ 0:00 |
3.0 mg |
oral |
5-MeO-AMT |
(powder / crystals) |
| T+ 2:50 |
3.0 mg |
oral |
5-MeO-AMT |
(powder / crystals) |
6:30 AM - Ate 3 milligrams of 5-MeO-AMT.
7:05 AM - Feeling a bit of nausea nothing too bad.
7:22 AM - Stomach is gassy burps will not stop.
7:27 AM - Nausea is gone pretty much little body buzz going.
7:29 AM - Whoa, color just got a lot brighter all of a sudden!
7:31 AM - Trails have started VERRRRRRY delayed.
7:46 AM - Intense trials and closed eye visuals.
7:48 AM - The joy of a smile is all one can ever want. :P
7:52 AM - So much better than AMT more focused in tune with movement.
8:20 AM - At a bit of a plateau maybe peak I don’t know it’s still great.
8:23 AM - Visuals kind of fading but believe from lack of stuff to do other than sit at a computer at the moment.
9:20 AM - Ate three more milligrams!
9:52 AM - Everything I focus on is melting away feels like I am underwater its very relaxing.
2:06 PM - I decide I will never do this drug again without knowing for sure no one is going to show up at my door that I don’t want here. I forgot all about an old roommate that was coming buy and he was trying to find a car part. He had left here he also brought two of his friends with him witch is not cool the guy was ok and polite but his girlfriend was very – how do I put this – ‘snooty’. When she walked in the first thing she did was make a face and stare right into my eyes with the expression, ‘WTF are you on?’ So I quickly turned away and let them look for the part they tore up my big closet looking for it. I was too incapacitated to look for it but I was still walking around looking for it after they left I was like totally stressed out and wanted not to trip anymore because I was full of bad vibes. I ate two downers and was awaiting them to kick in so I would at least not be feeling so bad.
2:50 PM - I decide to take a few nitrous hits and see if I can get ride of nasty feelings it works and brings back melting a bit and trails but I am totally worn out and decide to just chill and listen to music.
3:31 PM - Back to a smooth ride no problems.
5:50 PM - Coming down decide to go to sleep.
10:22 AM (next day) - Awoke from sleep refreshed.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Ocean [aq52], ocean, in The Inner Sea
Last updated Turn #104
Ocean [aq52], ocean, in The Inner Sea
------------------------------------------------------------------------
16: Whalebone [fe4m], ship, 6 hulls, 1 rowing port, 18 sails, 1% damaged,
16: arrived from Ocean [aq53], owner:
16: Toulouse [h1q], Pen, with 20 sailors, 15 lt. xbowmen,
16: accompanied by:
16: Jonathan [h9k], Pen, duke, with nine skirmishers, 16 pikemen,
16: 14 soldiers
16: Halmary [f9m], Pen, with 15 lt. xbowmen
17: Whalebone [fe4m], ship, 6 hulls, 1 rowing port, 18 sails, 1% damaged,
17: departed for Ocean [aq51].
Routes leaving Ocean:
North, to Ocean [ap52], 6 days
East, to Ocean [aq53], 5 days
South, to Ocean [ar52], 6 days
West, to Ocean [aq51], 5 days


SeqAnt annotates single base mutations, insertions, and deletions sequenced on any platform.
Silent, Replacement, 5' UTR, 3' UTR, Intronic, Intergenic, presence in dbSNP, and evolutionary conservation.
All loci harboring 2+ coding sequence variants are annotated to help investigators identify potential compound heterozygous loci within exome sequencing experiments.
View here, downloaded in a tab delimited text file, send via email, or uploaded to the UCSC genome browser as a BED file.


|
Slow Transients Pipeline Prototype
Component of the Science Data Processor being developed in the context of the Square Kilometre Array international project, which provides fast snapshot imaging, object detection and cataloguing for the identification of astrophysical image-plane transients.
|
Functor that computes the residual on the given point x,y between source data and 2D gaussian model. More...
#include <fitting.h>
Public Member Functions | |
| GaussianResidual (const double data, const double x, const double y) | |
| GaussianResidual constructor. More... | |
| template<typename T > | |
| bool | operator() (const T *const params, T *residual) const |
| Operator that computes residuals of between data and 2D gaussian model. More... | |
Functor that computes the residual on the given point x,y between source data and 2D gaussian model.
Computes residual on the given point x,y between the source data and the 2D gaussian model. Required by the ceres solver when performing non-linear least-squares optimisation based on automatic differentiation method.
|
inline |
GaussianResidual constructor.
| [in] | data | (double): Data value at given point x,y. |
| [in] | x | (double): Point coordinate x. |
| [in] | y | (double): Point coordinate y. |
|
inline |
Operator that computes residuals of between data and 2D gaussian model.
| [in] | params | (T*): Guassian function parameters to be optimised. |
| [in] | residual | (T*): Residual values. |


Returns parsed route object.
parseRoute(route)
| route |
string dynamic route |
Returns object.
Description
The route argument is a string, for example:
Returns
You can also define some routes as optional:
Returns
The "path" returned can be used as a regular expression to compare if path matches.
This method is used internally to process routes for w2toolbar, w2sidebar, w2tabs, etc.


Seven-year RCDP under way
With the aim of implementing natural disaster protection works, including rural development and poverty reduction, the Ministry of Agriculture, Livestock and Irrigation plans to implement Resilient Community Development Project (RCDP) from 2019-20 to 2025-26 fiscal year.
According to the Global Climate Risk Index 2017, Myanmar is on the list of the countries most affected by extreme weather events. Due to natural disasters, those living in disaster-prone areas, those with livelihoods affected by climate change and those who have no knowledge about natural disaster protection are experiencing more losses. As a result, they have to live below the poverty line, said Deputy Minister Hla Kyaw.
Disaster risk reduction should be put in sustainable development and poverty reduction projects. Based on that point, the ministry plans to implement the RCDP.
The main objective of RCDP is to promote the income and living standards of rural families through the public participation in regional development tasks and to enhance the people’s resilience to natural disasters.
Rural Development Department conducted a preliminary survey in cooperation with Asian Development Bank (ADB) for one year in 2018. The project design has been created. According to the project design, the project is estimated to cost 244.95 million US dollars.
In his opening speech at the 11th ASEAN Ministers Meeting on Rural Development and Poverty Eradication (AMRDPE) and related meetings in Nay Pyi Taw on November 8, Vice-President Henry Van Thio said the government needs to organize the public to encourage the private sector participation in the field of rural development and poverty reduction.


Healthify
Home
Diabetes Prediction
Breast Cancer Prediction
Kidney Disease
Liver Disease
Heart Disease
Diabetes Prediction
Predict


The Fibonacci sequence
Define the Fibonacci function with a double recursion step.
Recall that the Fibonacci sequence is the sequence un
defined by
u0 =u1 = 1
un+2 =un + un+1
Define another function for computing un with a linear
complexity (by computing simultaneously un and
un+1).
Show that both functions always compute the same result.
Solution
Look at This file


Verifies that we can set the scale by adding a new meta tag with all *-scale, and then removing the meta tag to cleanup.


-
Metronic
Bestseller Admin Theme -
Keen
Ultimate Admin Theme -
ASP.NET Zero
Application Starter Kit -
Metronic Laravel
The World’s Bestseller
& Laravel Admin Theme of All Time Save thousands to millions of dollars by using a single tool for different types of unique and amazing admin dashboard solutions for all your projects.
Next Generation Web Apps Save thousands to millions of bucks by using single tool for different type of amazing and great useful admin well done projects.
A Modern UI And SOLID Architecture It saves your time by providing common application requirements as a pre-built Visual Studio solution (with full source code). Get its source code as the base solution and focus on your own business code.
We Create Best Admin Dashboard Themes
and Amazing Back-end solutions
tailored to produce unique
looking components
SPA application starter
kit and integration
SPA application starter
kit and integration
SPA application starter
kit and integration
Webpack Mix and
layout view and configuration
KeenThemesTutorials
For The World’s Best Developers & Agencies
It’s no doubt that when a development takes longer to complete, additional costs to integrate and test each extra feature creeps up and haunts most of us. In this post we will make short review of top 5 reasons of using bootstrap admin templates.
Bootstrap Admin themes are ready-made templates. For example, Metronic dashboard has pre-styled components, pages and widgets in various high-quality layouts, with which even a novice developer can make up high-quality sites or CRM systems with standard analytical tools and metrics.
Having some trouble familiarizing with Metronic's Bootstrap Admin Template files? Check this article out as we dig in and list down all of Metronic's files and folders and what each of them do.
Read More
Having some trouble familiarizing with Keen's Bootstrap Admin Template files? Check this article out as we dig in and list down all of Keen's files and folders and what each of them do.
Read MoreLearn how to customize and compile Keen Bootstrap Admin Theme's assets via Gulp in the latest version 2 and above.
With 100,000+ Outstanding
Developers & Agencies Keenthemes can’t be wrong!
Metronic has had...
and the most well structured...
which deserve a 5 star...
I decided to rate it...
everything...
admin template...
of Administrative/Dashboard...
Thank you!
Please click it and you are done.


By National Id
Full Name: {{getStudentFullName()}}
ID: {{Student.id}}
Gender: {{Student.gender === 0 ? "Male" : "Female"}}
Birth Date: {{Student.birthDate | date}}
{{Record.issuer.issuerName}}
Student ID: {{Record.studentId}}
GPA: {{Record.gpa}}
Enrollment Date: {{Record.enrollmentDate | date}}
Graduation Date: {{Record.graduationDate | date}}
| Course Name | Course Code | Course Credit | Course Grade |
|---|---|---|---|
| {{course.courseName}} | {{course.courseCode}} | {{course.courseHours}} | {{course.courseGrade}} |


---
subject: Your Question has been Posted - Drugs.com Answers Community
---
{{> header-secondary }}
Answers Community {F jS, Y}
Hi {user.username},
Your question has been posted on {project.name}.
{post.title}
Note that response time will vary depending on the difficulty of your question and the availability of other members. Please be patient and do not post your question more than once. You will be notified by email when someone answers your question.
Click here if you need to edit or add further information.


Chisora’s retirement fight
England’s Zimbabwe-born heavyweight boxer Derek Chisora would be accepting a “retirement fight” if he pursues Oleksandr Usyk instead of Joseph Parker, says the New Zealander’s manager David Higgins.
The British heavyweight has recently targeted Usyk, who is WBO mandatory challenger, with manager David Haye admitting the fight “makes sense” as he attempts to manoeuvre Chisora toward a world title shot.
Usyk’s team are willing to risk their WBO status against Chisora, but Haye’s motives have been strongly questioned by Higgins, who believes Chisora would take a final pay day, rather than settle his rivalry with Parker.
Sending a message to Haye, he told Sky Sports: “Don’t play games with Chisora’s head, don’t play games for two years with the British public, don’t play games with Eddie Hearn, who has always done right by everyone.
Related Articles
Chisora still eager to fight Parker
Oct 18, 2019 19,087 0
Chisora wants to spar Anthony Joshua
Oct 16, 2019 17,286 1
David Price to fight Dereck Chisora in all-British…
Oct 8, 2019 8,031 0
Oct 3, 2019 18,184 0
“Stop running away, trying to take another option because you think there might be a little bit more money. Chisora would probably lose to Usyk. He might make a little bit more money, but that’s like a retirement fight. When you take a fight you know you’re going to lose, for a bit more money, you’re basically saying ‘I’m retiring.’
“My message is — if Chisora and Haye choose to go with Usyk, they are putting up a white flag. Chisora is saying “I’m finished with boxing and I just want to take the money.”
“But if Chisora is serious, he’ll deliver what he’s been crowing about. He’ll fight Parker. He says he can beat Parker, then he can fight Usyk anyway.
“I think the fans are smart enough to see through Haye’s manoeuvring, his rhetoric, his Machiavellian posturing, and I feel a bit sorry for Eddie Hearn in all of this, because he’s putting on the big shows that people want to see.”
Parker will be fit enough to return in February or March after being forced to withdraw from last month’s scheduled fight with Chisora due to a suspected spider bite.
David Price stepped in as a replacement, suffering a fourth-round stoppage to Chisora, and Parker has reiterated his desire for a rescheduled bout in a strongly worded message on social media.
“If Parker wants to fight Chisora he will,” said Higgins. “He’s willing, ready, able and he’s now even more keen to knock him out than he was before.
“If Haye and politics get in the way, and if Chisora wants to go and take a loss to Usyk, which he would, then Parker will fight someone else, and it will be whoever is put in front of him.” — AFP.


Run RunLocal.java
and then load this page. This simply echos back any messages you send. Send
close
to close the socket from the server.
Status: Connecting...
Run RunLocal.java
and then load this page. This simply echos back any messages you send. Send
close
to close the socket from the server.
Status: Connecting...


Author: Sherif F. Makary, Pedro Igor, Stefan Guilhen
Level: Intermediate
Technologies: Servlet, Security
Summary: The servlet-security
quickstart demonstrates the use of Java EE declarative security to control access to Servlets and Security in JBoss EAP.
Target Product: JBoss EAP
Source: https://github.com/jboss-developer/jboss-eap-quickstarts/
The servlet-security
quickstart demonstrates the use of Java EE declarative security to control access to Servlets and Security in Red Hat JBoss Enterprise Application Platform.
When you deploy this example, two users are automatically created for you: user quickstartUser
with password quickstartPwd1!
and user guest
with password guestPwd1!
. This data is located in the src/main/resources/import.sql
file.
This quickstart takes the following steps to implement Servlet security:
@ServletSecurity
and @HttpConstraint
annotations.WEB-INF/jboss-web.xml
.login-config
that sets the auth-method
to BASIC
in the WEB-INF/web.xml
.standalone.xml
):
elytron
subsystem that uses the JDBC security realm to obtain the security data used to authenticate and authorize users.http-authentication-factory
in the elytron
subsystem that uses the security domain created in step 1 for BASIC authentication.application-security-domain
mapping in the undertow
subsystem to map the Servlet security domain to the HTTP authentication factory defined in step 2.User Name: quickstartUser
Password: quickstartPwd1!
Role: quickstarts
User Name: guest
Password: guestPwd1!
Role: notauthorized
Note: This quickstart uses the H2 database included with Red Hat JBoss Enterprise Application Platform 7.1. It is a lightweight, relational example datasource that is used for examples only. It is not robust or scalable, is not supported, and should NOT be used in a production environment!
The application this project produces is designed to be run on Red Hat JBoss Enterprise Application Platform 7.1 or later.
All you need to build this project is Java 8.0 (Java SDK 1.8) or later and Maven 3.3.1 or later. See Configure Maven for JBoss EAP 7.1 to make sure you are configured correctly for testing the quickstarts.
In the following instructions, replace EAP7_HOME
with the actual path to your JBoss EAP installation. The installation path is described in detail here: Use of EAP7_HOME and JBOSS_HOME Variables.
You can configure the server by running JBoss CLI commands. For your convenience, this quickstart batches the commands into a configure-server.cli
script provided in the root directory of this quickstart.
Before you begin, back up your server configuration file
EAP7_HOME/standalone/configuration/standalone.xml
Start the JBoss EAP server by typing the following:
For Linux: EAP7_HOME/bin/standalone.sh
For Windows: EAP7_HOME\bin\standalone.bat
configure-server.cli
file in the root of this quickstart directory. This script adds security domain and HTTP authentication factory to the elytron
subsystem in the server configuration and also configures the undertow
subsystem to use the configured HTTP authentication factory for the Web application.For Linux: EAP7_HOME/bin/jboss-cli.sh --connect --file=configure-server.cli
For Windows: EAP7_HOME\bin\jboss-cli.bat --connect --file=configure-server.cli
You should see the following result when you run the script:
The batch executed successfully
After stopping the server, open the EAP7_HOME/standalone/configuration/standalone.xml
file and review the changes.
The following datasource was added to the datasources
subsystem.
<datasource jndi-name="java:jboss/datasources/ServletSecurityDS" pool-name="ServletSecurityDS">
<connection-url>jdbc:h2:mem:servlet-security;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
The following security-realm
was added to the elytron
subsystem.
<jdbc-realm name="servlet-security-jdbc-realm">
<principal-query sql="SELECT PASSWORD FROM USERS WHERE USERNAME = ?"  data-source="ServletSecurityDS">
<attribute-mapping>
<attribute to="roles" index="1"/>
</attribute-mapping>
</principal-query>
</jdbc-realm>
The security-realm
is responsible for verifying the credentials for a given principal and for obtaining security attributes (like roles) that are associated with the authenticated identity.
The following role-decoder
was added to the elytron
subsystem.
<simple-role-decoder name="from-roles-attribute" attribute="roles"/>
The jdbc-realm
in this quickstart stores the roles associated with a principal in an attribute named roles. Other realms might use different attributes for roles (such as group
). The purpose of a role-decoder
is to instruct the security domain how roles are to be retrieved from an authorized identity.
The following security-domain
was added to the elytron
subsystem.
<security-domain name="servlet-security-quickstart-sd" default-realm="servlet-security-jdbc-realm" permission-mapper="default-permission-mapper">
<realm name="servlet-security-jdbc-realm" role-decoder="from-roles-attribute"/>
</security-domain>
The following http-authentication-factory
was added to the elytron
subsystem.
<http-authentication-factory name="servlet-security-quickstart-http-auth" http-server-mechanism-factory="global" security-domain="servlet-security-quickstart-sd">
<mechanism-configuration>
<mechanism mechanism-name="BASIC">
<mechanism-realm realm-name="RealmUsersRoles"/>
</mechanism>
</mechanism-configuration>
</http-authentication-factory>
It basically defines an HTTP authentication factory for the BASIC mechanism that relies on the servlet-security-quickstart-sd
security domain to authenticate and authorize access to Web applications.
The following application-security-domain
was added to the undertow
subsystem.
<application-security-domains>
<application-security-domain name="servlet-security-quickstart" http-authentication-factory="servlet-security-quickstart-http-auth"/>
</application-security-domains>
This configuration tells Undertow
that applications with the servlet-security-quickstart
security domain, as defined in the jboss-web.xml
or by using the @SecurityDomain
annotation in the Servlet class, should use the http-authentication-factory
named servlet-security-quickstart-http-auth
. If no application-security-domain
is defined for a particular security domain, Undertow
assumes the legacy JAAS based security domains should be used for authentication/authorization and, in this case, the security domain defined in the Web application must match a security domain in the legacy security
subsystem. The presence of an application-security-domain
configuration is what enables Elytron authentication for a Web application.
For Linux: EAP7_HOME/bin/standalone.sh
For Windows: EAP7_HOME\bin\standalone.bat
mvn clean install wildfly:deploy
This will deploy target/servlet-security.war
to the running instance of the server.
The application will be running at the following URL http://localhost:8080/servlet-security/.
When you access the application, you should get a browser login challenge.
Log in using the username quickstartUser
and password quickstartPwd1!
. The browser will display the following security info:
Successfully called Secured Servlet
Principal : quickstartUser
Remote User : quickstartUser
Authentication Type : BASIC
Now close the browser. Open a new browser and log in with username guest
and password guestPwd1!
. The browser will display the following error:
Forbidden
Note: You will see the following warning in the server log. You can ignore it.
HHH000431: Unable to determine H2 database version, certain features may not work
mvn wildfly:undeploy
You can restore the original server configuration by running the restore-configuration.cli
script provided in the root directory of this quickstart or by manually restoring the back-up copy the configuration file.
For Linux: EAP7_HOME/bin/standalone.sh
For Windows: EAP7_HOME\bin\standalone.bat
For Linux: EAP7_HOME/bin/jboss-cli.sh --connect --file=restore-configuration.cli
For Windows: EAP7_HOME\bin\jboss-cli.bat --connect --file=restore-configuration.cli
This script removes the application-security-domain
configuration from the undertow
subsystem, the http-authentication-factory
, security-domain
, security-realm
and role-decoder
configuration from the elytron
subsystem and it also removes the datasource
used for this quickstart. You should see the following result when you run the script:
The batch executed successfully
process-state: reload-required
EAP7_HOME/standalone/configuration/standalone.xml
file with the back-up copy of the file.You can also start the server and deploy the quickstarts or run the Arquillian tests from Eclipse using JBoss tools. For general information about how to import a quickstart, add a JBoss EAP server, and build and deploy a quickstart, see Use JBoss Developer Studio or Eclipse to Run the Quickstarts.
If you want to debug the source code of any library in the project, run the following command to pull the source into your local repository. The IDE should then detect it.
mvn dependency:sources


--- permalink: /work ---
{% include tracking.html %}
I'm a Machine Learning Engineer!
I'm
constantly working on improving and applying my skills in the fields of Machine Learning and Deep
Learning!
Click the buttons below to know more about my work life so far!
Bloomberg
Machine Learning Engineer / Senior Software Engineer
New York, NY (Dec 2022 - Present)
Tech Stack: Python, PyTorch, PySpark, SQL
I currently work on the Bloomberg Law
Machine Learning team. My work includes:
Deutsche Bank
Senior/Lead Software Engineer (AVP) - Machine Learning Engineering
New York, NY (Apr 2022 - Dec 2022)
Associate Software Engineer (Analyst) - Machine Learning Engineering
New York, NY (Feb 2020 - Mar 2022)
Tech Stack: Python, PyTorch, Flask, OpenShift, Kafka
I worked on the Automation as a Service team in Corporate Bank Technology. I worked on the
following:
Deutsche Bank
Grad Software Engineer - Data Engineering
New York, NY (Aug 2019 - Feb 2020)
Tech Stack: Java, Spring Boot, SQL, React, OpenShift
While on the Trust & Agency Services team in Corporate Bank Technology, I worked on the
following:
Curai Health
Software Engineering Intern - Machine Learning Engineering
Palo Alto, CA (Feb 2019 - Apr 2019)
Tech Stack: Python, PyTorch, Flask, React, Google Cloud Platform
Curai Health is a
Silicon Valley startup that aims to scale the world's best
healthcare for every human being! At Curai Health, I did the
following:
Deutsche Bank
Technology Analyst Intern
New York, NY (Jun 2018 - Aug 2018)
Tech Stack: Python, Flask
In the Chief Data Office (CDO) at Deutsche Bank, I
worked on the following:
New York University
Teaching Assistant, Grading Assistant
New York, NY (Nov 2017 - May 2019)
I was a Teaching Assistant at the
NYU Tandon School of Engineering for these grad-level
courses:
I was a Grading Assistant at the NYU Center for Data Science (CDS) for these grad-level courses:
In Fall '17, I also worked at the NYU Kimmel Center for University Life as an IT and Customer Support Assistant!
Indian Institute of Technology (IIT) Madras
Summer Fellowship Intern
Chennai, India (May 2016 - Jul 2016)
Tech Stack: MATLAB
In the Visualization and Perception Lab at IIT Madras,
I implemented a Content-Based Image Retrieval (CBIR) system in
MATLAB, using Computer Vision and
Machine Learning techniques
Deep Learning Specialization
deeplearning.ai, Coursera (Sep 2018)
View Certificate
Machine Learning
Stanford, Coursera (Apr 2016)
View
Certificate
Introduction to Python for Data Science
Microsoft, edX (May 2016)
View
Certificate
Introduction to R for Data Science
Microsoft, edX (Jun 2019)
View
Certificate
Introduction to Corporate Finance
Wharton School, University of Pennsylvania, Coursera (May
2018)
View
Certificate
HTML5
W3C, edX (Jul 2015)
View
Certificate


The <cxxDefineDetail> element contain child elements to fully describe a #define preprocessor directive.
The <cxxDefineDetail> element is defined within <cxxDefine>. As well as the name and location of the #define, you can provide an example of its use with the <example>child element.
apiDesc, apiImpl, cxxDefineDefinition example, section,
(cxxDefineDefinition then apiDesc, then (example, or section, or apiImpl, (any number) ))


CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] ) [ RETURNS rettype | RETURNS TABLE ( column_name column_type [, ...] ) ] { LANGUAGE lang_name | WINDOW | IMMUTABLE | STABLE | VOLATILE | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | COST execution_cost | ROWS result_rows | SET configuration_parameter { TO value | = value | FROM CURRENT } | AS 'definition' | AS 'obj_file', 'link_symbol' } ... [ WITH ( attribute [, ...] ) ]
CREATE FUNCTION defines a new function. CREATE OR REPLACE FUNCTION will either create a new function, or replace an existing definition. To be able to define a function, the user must have the USAGE privilege on the language.
If a schema name is included, then the function is created in the specified schema. Otherwise it is created in the current schema. The name of the new function must not match any existing function with the same input argument types in the same schema. However, functions of different argument types can share a name (this is called overloading).
To replace the current definition of an existing function, use CREATE OR REPLACE FUNCTION. It is not possible to change the name or argument types of a function this way (if you tried, you would actually be creating a new, distinct function). Also, CREATE OR REPLACE FUNCTION will not let you change the return type of an existing function. To do that, you must drop and recreate the function. (When using OUT parameters, that means you cannot change the types of any OUT parameters except by dropping the function.)
When CREATE OR REPLACE FUNCTION is used to replace an existing function, the ownership and permissions of the function do not change. All other function properties are assigned the values specified or implied in the command. You must own the function to replace it (this includes being a member of the owning role).
If you drop and then recreate a function, the new function is not the same entity as the old; you will have to drop existing rules, views, triggers, etc. that refer to the old function. Use CREATE OR REPLACE FUNCTION to change a function definition without breaking objects that refer to the function. Also, ALTER FUNCTION can be used to change most of the auxiliary properties of an existing function.
The user that creates the function becomes the owner of the function.
The name (optionally schema-qualified) of the function to create.
The mode of an argument: IN, OUT, INOUT, or VARIADIC. If omitted, the default is IN. Only OUT arguments can follow a VARIADIC one. Also, OUT and INOUT arguments cannot be used together with the RETURNS TABLE notation.
The name of an argument. Some languages (currently only PL/pgSQL) let you use the name in the function body. For other languages the name of an input argument is just extra documentation, so far as the function itself is concerned; but you can use input argument names when calling a function to improve readability (see Section 4.3). In any case, the name of an output argument is significant, because it defines the column name in the result row type. (If you omit the name for an output argument, the system will choose a default column name.)
The data type(s) of the function's arguments (optionally schema-qualified), if any. The argument types can be base, composite, or domain types, or can reference the type of a table column.
Depending on the implementation language it might also be allowed to specify "pseudotypes" such as cstring. Pseudotypes indicate that the actual argument type is either incompletely specified, or outside the set of ordinary SQL data types.
The type of a column is referenced by writing table_name.column_name%TYPE. Using this feature can sometimes help make a function independent of changes to the definition of a table.
An expression to be used as default value if the parameter is not specified. The expression has to be coercible to the argument type of the parameter. Only input (including INOUT) parameters can have a default value. All input parameters following a parameter with a default value must have default values as well.
The return data type (optionally schema-qualified). The return type can be a base, composite, or domain type, or can reference the type of a table column. Depending on the implementation language it might also be allowed to specify "pseudotypes" such as cstring. If the function is not supposed to return a value, specify void as the return type.
When there are OUT or INOUT parameters, the RETURNS clause can be omitted. If present, it must agree with the result type implied by the output parameters: RECORD if there are multiple output parameters, or the same type as the single output parameter.
The SETOF modifier indicates that the function will return a set of items, rather than a single item.
The type of a column is referenced by writing table_name.column_name%TYPE.
The name of an output column in the RETURNS TABLE syntax. This is effectively another way of declaring a named OUT parameter, except that RETURNS TABLE also implies RETURNS SETOF.
The data type of an output column in the RETURNS TABLE syntax.
The name of the language that the function is implemented in. Can be SQL, C, internal, or the name of a user-defined procedural language. For backward compatibility, the name can be enclosed by single quotes.
WINDOW indicates that the function is a window function rather than a plain function. This is currently only useful for functions written in C. The WINDOW attribute cannot be changed when replacing an existing function definition.
These attributes inform the query optimizer about the behavior of the function. At most one choice can be specified. If none of these appear, VOLATILE is the default assumption.
IMMUTABLE indicates that the function cannot modify the database and always returns the same result when given the same argument values; that is, it does not do database lookups or otherwise use information not directly present in its argument list. If this option is given, any call of the function with all-constant arguments can be immediately replaced with the function value.
STABLE indicates that the function
cannot modify the database,
and that within a single table scan it will consistently
return the same result for the same argument values, but that its
result could change across SQL statements. This is the appropriate
selection for functions whose results depend on database lookups,
parameter variables (such as the current time zone), etc. (It is
inappropriate for AFTER triggers that wish to
query rows modified by the current command.) Also note
that the current_timestamp
family of functions qualify
as stable, since their values do not change within a transaction.
VOLATILE indicates that the function value can change even within a single table scan, so no optimizations can be made. Relatively few database functions are volatile in this sense; some examples are random(), currval(), timeofday(). But note that any function that has side-effects must be classified volatile, even if its result is quite predictable, to prevent calls from being optimized away; an example is setval().
For additional details see Section 35.6.
CALLED ON NULL INPUT (the default) indicates that the function will be called normally when some of its arguments are null. It is then the function author's responsibility to check for null values if necessary and respond appropriately.
RETURNS NULL ON NULL INPUT or STRICT indicates that the function always returns null whenever any of its arguments are null. If this parameter is specified, the function is not executed when there are null arguments; instead a null result is assumed automatically.
SECURITY INVOKER indicates that the function is to be executed with the privileges of the user that calls it. That is the default. SECURITY DEFINER specifies that the function is to be executed with the privileges of the user that created it.
The key word EXTERNAL is allowed for SQL conformance, but it is optional since, unlike in SQL, this feature applies to all functions not only external ones.
A positive number giving the estimated execution cost for the function, in units of cpu_operator_cost. If the function returns a set, this is the cost per returned row. If the cost is not specified, 1 unit is assumed for C-language and internal functions, and 100 units for functions in all other languages. Larger values cause the planner to try to avoid evaluating the function more often than necessary.
A positive number giving the estimated number of rows that the planner should expect the function to return. This is only allowed when the function is declared to return a set. The default assumption is 1000 rows.
The SET clause causes the specified configuration parameter to be set to the specified value when the function is entered, and then restored to its prior value when the function exits. SET FROM CURRENT saves the session's current value of the parameter as the value to be applied when the function is entered.
If a SET clause is attached to a function, then the effects of a SET LOCAL command executed inside the function for the same variable are restricted to the function: the configuration parameter's prior value is still restored at function exit. However, an ordinary SET command (without LOCAL) overrides the SET clause, much as it would do for a previous SET LOCAL command: the effects of such a command will persist after function exit, unless the current transaction is rolled back.
See SET and Chapter 18 for more information about allowed parameter names and values.
A string constant defining the function; the meaning depends on the language. It can be an internal function name, the path to an object file, an SQL command, or text in a procedural language.
It is often helpful to use dollar quoting (see Section <IP_ADDRESS>) to write the function definition string, rather than the normal single quote syntax. Without dollar quoting, any single quotes or backslashes in the function definition must be escaped by doubling them.
This form of the AS clause is used for dynamically loadable C language functions when the function name in the C language source code is not the same as the name of the SQL function. The string obj_file is the name of the file containing the dynamically loadable object, and link_symbol is the function's link symbol, that is, the name of the function in the C language source code. If the link symbol is omitted, it is assumed to be the same as the name of the SQL function being defined.
When repeated CREATE FUNCTION calls refer to the same object file, the file is only loaded once per session. To unload and reload the file (perhaps during development), start a new session.
The historical way to specify optional pieces of information about the function. The following attributes can appear here:
Equivalent to STRICT or RETURNS NULL ON NULL INPUT.
isCachable is an obsolete equivalent of IMMUTABLE; it's still accepted for backwards-compatibility reasons.
Attribute names are not case-sensitive.
Refer to Section 35.3 for further information on writing functions.
PostgreSQL allows function overloading; that is, the same name can be used for several different functions so long as they have distinct input argument types. However, the C names of all functions must be different, so you must give overloaded C functions different C names (for example, use the argument types as part of the C names).
Two functions are considered the same if they have the same names and input argument types, ignoring any OUT parameters. Thus for example these declarations conflict:
CREATE FUNCTION foo(int) ... CREATE FUNCTION foo(int, out text) ...
Functions that have different argument type lists will not be considered to conflict at creation time, but if defaults are provided they might conflict in use. For example, consider
CREATE FUNCTION foo(int) ... CREATE FUNCTION foo(int, int default 42) ...
A call foo(10) will fail due to the ambiguity about which function should be called.
The full SQL type syntax is allowed for input arguments and return value. However, some details of the type specification (e.g., the precision field for type numeric) are the responsibility of the underlying function implementation and are silently swallowed (i.e., not recognized or enforced) by the CREATE FUNCTION command.
When replacing an existing function with CREATE OR REPLACE FUNCTION, there are restrictions on changing parameter names. You cannot change the name already assigned to any input parameter (although you can add names to parameters that had none before). If there is more than one output parameter, you cannot change the names of the output parameters, because that would change the column names of the anonymous composite type that describes the function's result. These restrictions are made to ensure that existing calls of the function do not stop working when it is replaced.
If a function is declared STRICT with a VARIADIC argument, the strictness check tests that the variadic array as a whole is non-null. The function will still be called if the array has null elements.
Here are some trivial examples to help you get started. For more information and examples, see Section 35.3.
CREATE FUNCTION add(integer, integer) RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
Increment an integer, making use of an argument name, in PL/pgSQL:
CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS $$ BEGIN RETURN i + 1; END; $$ LANGUAGE plpgsql;
Return a record containing multiple output parameters:
CREATE FUNCTION dup(in int, out f1 int, out f2 text) AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$ LANGUAGE SQL; SELECT * FROM dup(42);
You can do the same thing more verbosely with an explicitly named composite type:
CREATE TYPE dup_result AS (f1 int, f2 text); CREATE FUNCTION dup(int) RETURNS dup_result AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$ LANGUAGE SQL; SELECT * FROM dup(42);
Another way to return multiple columns is to use a TABLE function:
CREATE FUNCTION dup(int) RETURNS TABLE(f1 int, f2 text) AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$ LANGUAGE SQL; SELECT * FROM dup(42);
However, a TABLE function is different from the preceding examples, because it actually returns a set of records, not just one record.
Because a SECURITY DEFINER function is executed with the privileges of the user that created it, care is needed to ensure that the function cannot be misused. For security, search_path should be set to exclude any schemas writable by untrusted users. This prevents malicious users from creating objects that mask objects used by the function. Particularly important in this regard is the temporary-table schema, which is searched first by default, and is normally writable by anyone. A secure arrangement can be had by forcing the temporary schema to be searched last. To do this, write pg_temp as the last entry in search_path. This function illustrates safe usage:
CREATE FUNCTION check_password(uname TEXT, pass TEXT) RETURNS BOOLEAN AS $$ DECLARE passed BOOLEAN; BEGIN SELECT (pwd = $2) INTO passed FROM pwds WHERE username = $1; RETURN passed; END; $$ LANGUAGE plpgsql SECURITY DEFINER -- Set a secure search_path: trusted schema(s), then 'pg_temp'. SET search_path = admin, pg_temp;
Before PostgreSQL version 8.3, the SET option was not available, and so older functions may contain rather complicated logic to save, set, and restore search_path. The SET option is far easier to use for this purpose.
Another point to keep in mind is that by default, execute privilege is granted to PUBLIC for newly created functions (see GRANT for more information). Frequently you will wish to restrict use of a security definer function to only some users. To do that, you must revoke the default PUBLIC privileges and then grant execute privilege selectively. To avoid having a window where the new function is accessible to all, create it and set the privileges within a single transaction. For example:
BEGIN; CREATE FUNCTION check_password(uname TEXT, pass TEXT) ... SECURITY DEFINER; REVOKE ALL ON FUNCTION check_password(uname TEXT, pass TEXT) FROM PUBLIC; GRANT EXECUTE ON FUNCTION check_password(uname TEXT, pass TEXT) TO admins; COMMIT;
A CREATE FUNCTION command is defined in SQL:1999 and later. The PostgreSQL version is similar but not fully compatible. The attributes are not portable, neither are the different available languages.
For compatibility with some other database systems, argmode can be written either before or after argname. But only the first way is standard-compliant.
The SQL standard does not specify parameter defaults. The syntax with the DEFAULT key word is from Oracle, and it is somewhat in the spirit of the standard: SQL/PSM uses it for variable default values. The syntax with = is used in T-SQL and Firebird.


Overview
0
Connections
0
Channels
0
Consumers
0
Exchanges
0
Queues
0s
Uptime
Queued messages
Data rates
Message rates
Upload definitions
Virtual host
File
Upload
Export definitions
Virtual host
Download


These projects are augmented reality enabled, download the free Artivive app for iOS or Android and point the camera at each artwork to see it come to life!
Danny Girten
Tyler Lanphear
Tristan Ikeda
Jack Hurd
Pierce Hovey
Jojo Hoffman
Kaitlyn Roman
Ben Harris
Cali Schwetz
Anson Feist
Andreas Muller
Nicole Leary
Bryce Spencer


In conjunction with the remote module, this daemon allows extending MAVIS (modular attribute-value interchange system) functionality over the network, using UDP packets for communication with clients and/or other MAVIS daemons.
Command line syntax is:
mavisd [ -P ] [ -d level ] configuration-file [ id ]
The path to the configuration file is the only command line argument mandatory. id defaults to tac_plus and may be used to select a non-default section of the configuration file.
The -P option enables config parse mode. Keep this one in mind; it is imperative that the configuration file supplied is syntactically correct, as the daemon won't start if there are any parsing errors at start-up.
The -d switch enables debugging. You most likely don't want to use this. Read the source if you need to.
Several level-triggered event mechanisms are supported. By default, the one best suited for your operating system will be used. However, you may set the environment variable IO_POLL_MECHANISM to select a specific one.
The following event mechanisms are supported (in order of preference):
port (Sun Solaris 10 and higher only, IO_POLL_MECHANISM=32)
kqueue (*BSD and Darwin only, IO_POLL_MECHANISM=1)
/dev/poll (Sun Solaris only, IO_POLL_MECHANISM=2)
epoll (Linux only, IO_POLL_MECHANISM=4)
poll (IO_POLL_MECHANISM=8)
select (IO_POLL_MECHANISM=16)
A typical mavisd configuration file consists of a single id section:
section = mavisd { ... }
Default section ID is mavisd, but that a different ID may be selected via the command line.
Configuration directives are:
( permit | deny ) [ not] CIDR
Accept or reject requests from specific IP address ranges. This directive may appear multiple times. Matches are tried in order. IPv6 ACLs are supported. Default is to accept everything.
Example:
permit <IP_ADDRESS>/8 permit accept ::1 deny not <IP_ADDRESS>/16 permit <IP_ADDRESS>/32
background = ( yes | no )
If set, the daemon will release its controlling terminal on startup and fork itself to the background (default: no).
listen = { ... }
The listen directive specifies where to listen for incoming queries. Acceptable connection endpoints are both IPv4/IPv6 based UDP and UNIX datagram sockets.
For IP sockets, the following options are available:
port = UDPPort
Specifies an UDP port to listen for incoming queries.
address = IPAddress
Specifiy an IP address to bind to (optional, default: all local IP addresses).
UNIX sockets support these directives:
path = UnixPath
Path to an UNIX domain socket.
userid = UserID
User ID for socket creation.
groupid = GroupID
Group ID for socket creation
mode = Mode
Permissions for socket creation.
Communication via PF_UNIX sockets may only work if the host system supports anonymous binds for that protocol family. This works for Linux, which supports an abstract namespace which is independent of the file system, but, e.g., not for Sun Solaris.
Options common to both variants are:
blowfish key = Key
Specifies a key for over-the-wire encryption (optional).
blowfish keyfile = KeyFile
Specifies a file to read the a key from (optional).
The listen directive may be used multiple times and is mandatory.
mavis module = module { ... }
Load MAVIS module module. See the MAVIS documentation for configuration guidance.
mavis path = path
Add path to the search-path for MAVIS modules.
Magic cookie substitution applies. The available conversions are:
%o ‐ run-time OS type
%O ‐ compile-time OS type
pidfile = file
The daemons process id will be written to file (default: unset).
stat period = seconds
This enables periodic statistics logging to syslogd (default: disabled). The logged line starts with STAT: and is followed by a series of key=value pairs:
Q=count ‐ number of queries since start-up
A=count ‐ number of queries answered since start-up
R=count ‐ number of queries rejected since start-up
X=count ‐ number of queries expired since start-up
E=count ‐ number of queries failed since start-up
T=seconds ‐ number of seconds since start-up
q=count ‐ number of queries in last period
a=count ‐ number of queries answered in last period
r=count ‐ number of queries rejected in last period
x=count ‐ number of queries expired in last period
e=count ‐ number of queries failed in last period
t=seconds ‐ length of last period
B=count ‐ maximum number of queries in backlog since start-up
b=count ‐ maximum number of queries in backlog in last period
Modules may log additional information, e.g.:
F=count ‐ number of childs forked since start-up
I=count ‐ number of answers received since start-up
O=count ‐ number of queries sent since start-up
f=count ‐ number of childs forked in last period
i=count ‐ number of answers received in last period
o=count ‐ number of queries sent in last period
syslog ( ( ident = Ident) | ( level = Level ) | ( facility = Facility))
Selects syslog ident, level and facility. Defaults to:
syslog ident = program-name
syslog facility = UUCP
syslog level = INFO
transmit password = ( yes | no )
Allow transmission of cleartext password in responses (default: no).
module-path /some/where/lib/mavis module-add log module-add limit module-conf limit blacklist count 5 time 60 module-conf limit ipreg time 60 module-add auth module-add cache module-conf cache expire * 60 module-add external id whatever module-conf ext1 program /where/ever/script.pl bind address <IP_ADDRESS> port 9001
Please see the source for copyright and licensing information of individual files.
The Blowfish algorithm:
This software uses Bruce Schneier's Blowfish algorithm.
Portions of the parsing code are taken from Cisco's tac_plus developers kit which is distributed under the following license:
Copyright (c) 1995-1998 by Cisco systems, Inc.
Permission to use, copy, modify, and distribute this software for any purpose and without fee is hereby granted, provided that this copyright and permission notice appear on all copies of the software and supporting documentation, the name of Cisco Systems, Inc. not be used in advertising or publicity pertaining to distribution of the program without specific prior permission, and notice be given in supporting documentation that modification, copying and distribution is by permission of Cisco Systems, Inc.
Cisco Systems, Inc. makes no representations about the suitability of this software for any purpose.
The code written by Marc Huber is distributed under the following license:
Copyright (C) 1999-2015 Marc Huber<EMAIL_ADDRESS>). All
rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
The end-user documentation included with the redistribution, if any, must include the following acknowledgment:
This product includes software developed by Marc Huber (
<EMAIL_ADDRESS>).
Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear.


Mr. Holland's Opus A Film Review By Michael Redman Copyright 1996 By Michael Redman
**** (out of ****)
For the first several minutes of this film, it seems as if it's going to be another "Stand And Deliver" or "Up The Down Staircase" or "To Sir With Love" or any one of the other zillions of `teacher turns on disillusioned students" movies. And for the first few minutes it is, but then it turns into something else.
Richard Dreyfuss is playing the Holiday Inn circuit, but decides to teach high school because the monetary rewards of musicianship leave something to be desired. His lack of enthusiasm for his teaching career just about equals the kids' level of excitement for music appreciation. No one wants to be there.
Dreyfuss connects with the students by finding the common interest of popular music. Then he helps a girl transcend her horrible playing. Slowly it dawns on him that there may be something to teaching besides the bucks. He also discovers that his idea of composing in his spare time is a dream as the demands of his job and caring for his deaf son overwhelm any possibility of time that is spare.
There are a few cliches in the movie. When the teacher's marriage grows tedious, his relationship with the talented young high school honey is inevitable. The students' instant recognition that the subject matter is cool is in every teacher movie ever made. But the scenes, familiar as they are to the audience, ring true.
The film spans several decades as Dreyfuss changes the lives of his students but can't do his own work or relate to his son. The make-up job is so convincing that it's hard to remember what age the actor truly is. The story is real enough to allow you to vicariously experience the teacher's agony and ecstasy.
This may be the first time that I've reviewed three films (this, "Nixon" and "12 Monkeys") in a row and given them all four stars. There's some good stuff out there and you owe it to yourself to catch them. ("Nixon" is already gone.) The other two appeal to a narrower audience, but if you aren't touched by "Mr. Holland's Opus", go home and check for a pulse.
(Michael Redman, having written this column week in and week out for almost half of his life, sometimes spends the early morning hours sitting in front of a Mac trying to find the right words for this italicized section.)
[This appeared in the 1/24/96 "Bloomington Voice", Bloomington, Indiana. Michael Redman can be contacted at<EMAIL_ADDRESS>--<EMAIL_ADDRESS>This week's film review at http://www.bvoice.com/ Film reviews archive at http://us.imdb.com/M/reviews_by?Michael%20Redman
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{{ .Site.Title }}
This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. You’re allowed to copy and redistribute the material in any medium or format, and to remix, transform, and build upon the material. When you do so, you must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. You may not use the material for commercial purposes. You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Click here to view a copy of this license
Copyright © {{ now.Format "2006" }} {{ .Site.Params.Name }} · Contact {{ .Site.Params.name }}


Exhibit highlights Korean aesthetics
by Manila Standard LifestyleAn exhibition is currently mounted at the Metropolitan Museum of Manila in celebration of the 70th anniversary of the Philippine-Korean bilateral relations.
Art enthusiasts from the local scene, along with select VIPs and guests filled the MET’s lobby on Nov. 14 for the Korean Life Aesthetics exhibition.
The simple yet tasteful exhibit is organized by the Korean Cultural Center (KCC) in the Philippines with renowned artist group, Korea Craft and Design Foundation (KCDF).
The event began with a commemorative fan dance performance from the traditional Korean dance group, Nara Team. MET president Tina Colayco formally opened the night with a speech highlighting the creativity of the artists, followed by KCDF president Choi Bong-hyun and KCC director Lee Jin-cheol, who both congratulated the artists for their passion and commitment to their crafts.
Set in a hanok
, the Korean traditional house, the exhibit features contemporary design and crafts in the form of furniture and household objects that mirror Korean aesthetics.
Exhibit director Jin Hyo-Seung toured the guests to the exhibition hall, expertly explaining the inspiration and hard work behind all four areas of it, namely, Elegant Boudoir, Simple Study, Table Set of Accommodation, and Naturalistic Rest.
Several participants got to have a more in-depth knowledge about the exhibit and the artist’s artworks during the educational program on Nov. 16.
Artists Kim Wankyu, Lee Hun-chung, Kang Shin-jae, and Kin In-ja ably talked about their crafts and shared some history about wood work, ceramics, and the famous Korean national costume, Hanbok.
Korean Life Aesthetics will run until Jan. 31, 2020 at the Metropolitan Museum of Manila.


-
How to Start a Startup
startupclass.samaltman.com
CS183B is a class we’re teaching at Stanford. It’s designed to be a sort of one-class business course for people who want to start startups.
-
On ‘Dark Talent’, MOOCs, Universities, and Startups: An Interview with the ...
a16z.com
We’re bringing together a great group of computer science professors from around the U.S. for talks and discussion as part of our second annual ...
-
Early stages of long bull market in tech: Pro
video.cnbc.com
Scott Kupor, Andreessen Horowitz, shares his outlook on the tech space.
-
OpenGov: The Startup Analyzing $50B in Spending | Andreessen Horowitz
a16z.com
“A billion here, a billion there, and pretty soon you’re talking real money!” — attributed to Fmr. Sen. Everett Dirksen
-
Venture Capitalist Sounds Alarm on Startup Investing
online.wsj.com
Silicon Valley may have taken on more risk than it can handle, according to prominent venture capitalist Bill Gurley, who cited potential cracks in ...
-
The Coin Center – AVC
avc.com
We have found that the best way to deal with policy makers and regulators when something new and threatening and dangerous looking comes around is to ...
-
At Google, Larry Page’s Dreams Keep Getting Bigger - The Information
www.theinformation.com
A little over a year ago, Google CEO Larry Page convened his direct reports, the company’s dozen or so senior vice presidents, for a project that ...
-
Requests for Startups
www.ycombinator.com
You shouldn't start a company just because it's on this list. 1. It’s mostly here to help stimulate you to think about ideas.
-
A Long, Ugly Year of Depression That's Finally Fading - Rand's Blog
moz.com
Yesterday morning I woke up early to speak at the Business of Software conference in Boston. It was my first time there, and it’s an exceptional ...
-
The Coinbase Blog — Introducing Toshi - An Open Source Bitcoin Node For ...
blog.coinbase.com
Introducing Toshi - An Open Source Bitcoin Node For Developers
-
A16z Podcast: Secrets, Power Laws, and Technology — The Ideas of “Zero to ...
a16z.com
Have we as a culture become expert at globalizing industries, but are we failing when it comes to truly world-changing technological breakthroughs? ...
-
Scott Kupor: How to Stay on the Winning Side of Valuation
blogs.wsj.com
Scott Kupor, managing partner at Andreessen Horowitz: As a venture-capital firm, we spend a great deal of time analyzing private company valuations ...
-
Discourse
www.discourse.org
Why break conversations into awkward and arbitrary pages, where you have to constantly find the Next Page button?
-
Andreessen Horowitz
a16z.com
Many of the most successful companies that a16z has been associated with have their foundations in academia — from routers to data science to the web ...
-
Apple Gets Intimate
medium.com
There was plenty to process at Flint Center in Cupertino, California, today. It was Apple’s self-described stab at makin…
-
Entrepreneurs anonymous
www.economist.com
SEVEN years ago Joe Jones (not his real name) left his job with a big NASDAQ-listed company to strike out on his own. He was sick of corporate life ...
-
a16z Podcast: For Buzzfeed Sharing is the Metric that Matters
soundcloud.com
Jonah Peretti is building BuzzFeed to “inform, inspire and entertain” in a world where news and entertainment is increasingly passed around on social ...
-
BitBeat: United Way Adds Bitcoin as Conduit for Donations
blogs.wsj.com
As bitcoin get more enmeshed in the financial world, the Digital Currency Council is opening its door as a place for professionals to learn about the ...
-
What Apple's New Products Say About the Future
www.theatlantic.com
Along with new software and hardware, the company revealed their vision for an entirely new way of interacting with devices.
-
Peter Thiel disagrees with you
fortune.com
The tech financier and intellectual provocateur has some ideas that may turn you off. But there's no arguing with his commercial achievements. That's ...
-
Why it’s hard to find Android developers | Alessandro Crugnola
blog.sephiroth.it
I’m an Android developer (at Aviary ) and a New Yorker since late 2010. I’ve been also an actionscript and python developer for more than 10 years.
-
In Tech We Trust? A Debate with Peter Thiel and Marc Andreessen
www.youtube.com
Updated version can be found here - http://www.youtube.com/watch?v=-SJ-zvsALgo Peter Thiel and Marc Andreessen are Silicon Valley luminaries, epic ...
-
Burn Baby Burn – AVC
avc.com
Andy sent me a WSJ piece with Bill Gurley yesterday. I don’t like to link to paid content so here’s a good Business Insider summary of the article ...
-
Help Us Strike Out ALS - We’ll Match Your Donations!
www.tilt.com
Right now in the US, about 30,000 people suffer from ALS (Amyotrophic Lateral Sclerosis aka Lou Gehrig's Disease), and there is no known cure or way ...


Join
Help
Discuss
Find your question in bangla
or english language quickly
Search now
Results
My Question
Add Question
Question
Tags
Send
Cancel
Problem faces
Internet connection error!
Close


Psalms 35:17
Lord, how long wilt thou look on? rescue my soul from their destructions, my darling from the lions.


The Horse Whisperer (1998) Robert Redford, Kristin Scott Thomas, Scarlett Johansson, Sam Neill, Dianne Wiest, Chris Cooper, Cherry Jones, Ty Hillman. Directed by Robert Redford. 168 minutes. PG-13, 4 stars (out of five stars)
Review by Ed Johnson-Ott, NUVO Newsweekly www.nuvo-online.com/film/ Archive reviews at http://us.imdb.com/M/reviews_by?Edward+Johnson-ott
During one of "The Horse Whisperer's" most lyrical scenes, a horse panics and runs away. Tom Booker, assigned the task of calming the troubled animal, does not chase him. Instead, he walks into the field and waits. Minutes turn to hours as Tom continues to wait for the animal in silence. Finally, after waiting all day, Tom's patience is rewarded as the horse quiets and returns to him on its own accord. "The Horse Whisperer" is filled with understated moments like that. Poetic, dignified and deeply humane, the film is a rarity, a rich character-driven tale with brains, heart and integrity.
Based on Nicholas Evans' best-selling novel, the story focuses on 14-year- old Grace MacLean, emotionally and physically crippled following a tragic riding accident. Grace isn't the only traumatized party. Her beloved horse Pilgrim turns wild, and several handlers tell the family that the horribly wounded creature will never recover and should be "put down." But Grace's mother Annie, sensing that her daughter's recovery is somehow linked to the horse, refuses and seeks another solution. After reading an article about horse whisperers, people with an almost mystical ability for reaching troubled horses, she seeks out the legendary Tom Booker and asks for help. Ignoring his brusque refusal, Annie takes a leave of absence from her job as a high-powered New York magazine editor, packs up both horse and daughter and heads for Tom's Montana ranch.
Much like another print sensation, "The Bridges of Madison County," "The Horse Whisperer" was derided by some as mawkish and melodramatic. And, just as Clint Eastwood did with James Waller's book, Robert Redford has taken Evans' words and transformed them into a beautifully crafted film that draws a strong emotional reaction honestly, with well-drawn characters and intelligent dialogue.
"The Horse Whisperer" is a long movie, just under three hours, but the length is justifiable. As the story moves from Manhattan to Montana, Redford changes the rhythm, placing the audience in a setting where things move with a more deliberate, thoughtful pace. Although the Montana setting is idyllic, Redford doesn't take cheap shots at those who live in the city. Instead, he presents two approaches to navigating through life, contrasting those who push for quick answers with those who take the time to observe, listen and thing things through.
That's the secret behind a horse whisperer's "mystical" ability. Tom Booker, as played by director Redford, is a man whose magic comes from paying attention. He learns about Pilgrim by watching the horse and the people who love it. Along the way, he also learns what Grace needs, giving her space when she demands it and structure when she requires it. And, much to his surprise, he learns what Annie needs as well.
Stories about young people trying to recover from traumatic incidents are nothing new, of course. "Ordinary People," the first film Redford directed, dealt with a tortured youth and the strained relationship between him and his mother. Redford handles this sort of thing well because he doesn't take the easy route. There are no villains in "The Horse Whisperer." People make mistakes, but they learn from them. People are faced with difficult choices and they make reasoned decisions. Redford creates the kind of world that could be, if only all of us would try harder, care more and take responsibility for our own actions and the effect those actions might have on others. You don't see that in movies very often anymore.
The acting in"The Horse Whisperer" is as good as its script. The always dependable Dianne Wiest and Chris Cooper are strong as Tom's brother and sister-in-law, and Sam Neill is sturdy as Grace's father, shining in a beautifully written speech towards the end of the film. Scarlett Johansson strikes just the right notes as Grace, capturing the pain the young woman suffers without ever overplaying the angst. As Annie, "The English Patient's" Kristin Scott Thomas takes risks, displaying the abrasive, brittle side of her character along with her many sympathetic qualities.
Redford is excellent as Tom Booker. He could easily have made the character a noble icon, or overplayed the down-home, "Aw shucks" cowboy business. Instead, Redford creates an erudite, well-spoken man who has loved, lost and learned from the experience. It's an strong, nuanced, honest performance. About the only area where Redford cheats a little is in the lighting. Throughout the film, the sun mostly shines on Redford from the back or side, minimizing the wrinkles on the aging actor's face. Good for him! In a film as benign and forgiving as "The Horse Whisperer," it's only fair to forgive Redford for showing a little bit of vanity. He deserves it.
© 1998, Ed Johnson-Ott
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Story title should be at most {{ MAX_CHARS_IN_STORY_TITLE }} characters.
Story description should be at most
{{ MAX_CHARS_IN_STORY_DESCRIPTION }} characters.
What does this story contain?
The story URL fragment is used to uniquely access the story viewer page. It should consist of one or more hyphen-separated words, all in lowercase, with at most {{ MAX_CHARS_IN_STORY_URL_FRAGMENT }} characters in total and must be unique across the topic. Please use meaningful keywords, and avoid using words like "and", "of", or "the".
This story can be accessed at the following URL:
{{ hostname }}/learn/{{ getClassroomUrlFragment() }}/{{ getTopicUrlFragment() }}/story/{{ editableUrlFragment }}
{{ hostname }}/learn/{{ getClassroomUrlFragment() }}/{{ getTopicUrlFragment() }}/story/{{ editableUrlFragment }}
This story URL fragment already exists.
4000" class="story-length-validation-error">
The notes length is too long. Please make it under 4000 characters.


As simple as that: generally the start of the array is the first state, where there's no ability to go backwards, and the tip of the array is the present.
var historyIndex = 0;
var history = [Immutable.Map({ name: 'Tom' })];
// history doesn't need to be immutable!


Hello!
Here you can find the CSS library called "lil.css", it's a simple styling library that I've developped to do more quickly my tiny projects. It features a positioning system and stylized HTML components.
You can use it freely and customize it all according to your preferences.
How do I get it ?
You can download the source file here (normal & minified) : Get lil.css Get lil.min.css
Next you just have to link it in your HTML file head tag :
Positioning
Thanks to a custom grid and some custom HTML/CSS classes, lil.css can help you to organise your elements.
Left, Right, Center :
You can use the left, right and center classes to position your elements. Do not forget to include the lil-clear element when it is needed to end the float property.
PS: left and right use floats but center use margin and display so you will need the lil-clear element to isolate them.
Text align :
If you need to change your text align you can use the text-(insert-your-align) class.
Center :
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint accusantium esse deserunt corrupti eum quae? Magni consectetur debitis est quos? Ratione nulla amet mollitia eos, fugiat cupiditate rem. Ducimus, accusantium.
Left :
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint accusantium esse deserunt corrupti eum quae? Magni consectetur debitis est quos? Ratione nulla amet mollitia eos, fugiat cupiditate rem. Ducimus, accusantium.
Right :
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint accusantium esse deserunt corrupti eum quae? Magni consectetur debitis est quos? Ratione nulla amet mollitia eos, fugiat cupiditate rem. Ducimus, accusantium.
Justify :
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint accusantium esse deserunt corrupti eum quae? Magni consectetur debitis est quos? Ratione nulla amet mollitia eos, fugiat cupiditate rem. Ducimus, accusantium.
This is a centered paragraph.
This is a left paragraph.
This is a right paragraph.
This is a justified paragraph.
Block, Inline :
By using the block and inline classes you can change the display property without looking at the CSS.
Block :
Simply use the block class to add the display: block property to an element.
Inline :
You can also use the inline class to add the display: inline property to an element.
Inline-block :
By adding both the block and inline classes you can add the display: inline-block property to an element.
The grid :
lil.css comes with a custom grid (inspired by Grd) to help with the layout of your project(s). The grid is very light and simple to use.
I'm a column!
I another column!
Create rows and columns using lil-row and lil-col.
Classes you can use on a lil-row :
| Class | Property |
|---|---|
| top | Pull your columns to the top of the row. |
| middle | Pull your columns to the middle of the row. |
| bottom | Pull your columns to the bottom of the row. |
| stretch | Stretch the columns. |
| baseline | Pull columns content to baseline. |
| left | Pull your columns to the left of the row. |
| center | Pull your columns to the center of the row. |
| right | Pull your columns to the right of the row. |
| between | Add spaces between your columns. |
| around | Add spaces around your columns. |
Classes you can use on a lil-col :
| Class | Property |
|---|---|
| n-12 | Replacing "n" by the a integer (1-12) you can change the size of the column. |
| fill | Set the column width to left. |
Here is a little exemple of what you can do with the grid:
1-12
11-12
2-12
10-12
3-12
9-12
4-12
8-12
5-12
7-12
6-12
6-12
7-12
5-12
8-12
4-12
9-12
3-12
10-12
2-12
11-12
1-12
Sizing
You can quickly change the width of your elements by adding the class width-25/33/50/75/100.
 You can use different colors, sizes, and styles by adding simple classes.
Just use the lil-btn class to use them.
Regular Buttons :
You can change the color of a button simply by adding the corresponding color class.
Outline buttons :
You can make an outline button by adding the outline class to an element with the lil-btn class.
Inputs
You can use custom inputs along with the grid to make nice forms.
You can make simple inputs using the lil-input class on your inputs.
Fonts & Typography
The font lil.css uses is "Heebo" provided by Google Fonts.
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Paragraph with bold, underline and Italic
Cards
Lilcss includes cards that can help you contain your content:
This is my card body title
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quisquam architecto ipsa illum dolorum quibusdam dolorem.
This is my card body title
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quisquam architecto ipsa illum dolorum quibusdam dolorem.
This is my card body title
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quisquam architecto ipsa illum dolorum quibusdam dolorem.
It is as easy to use as the rest, just use lil-card to create your card and lil-card-header, lil-card-body, lil-card-footer to structure your card.
You can also add a body title to your card by using the lil-card-title class in the body of your card.
If you want to add images just use the lil-card-img class.
Navigation
You can make navigation containing links, lil-btn elements and lil-input elements.