text:
Una **expresión regular** o **regex** es un **patrón** que se compara con una **cadena objetivo** de izquierda a derecha, carácter a carácter. La biblioteca [PCRE (Perl Compatible Regular Expressions)](http://php.net/manual/es/book.pcre.php) es una extensión incorporada en PHP que permite utilizar **expresiones regulares** en funciones para **buscar, comparar y sustituir strings en PHP**.

**Indice de contenido**

| | |
| -------- | -------- |
| 1. Introducción | 6. Modificadores |
| 2. Encontrar extremos de un string | 7. Declaraciones |
| 3. Metacaracteres : []   \    .    *    +    ?    {} `|`  () | 8. Greedy y lazy |
| 4. Subpatrones | 9. Funciones PCRE |
| 5. Secuencias especiales ||

### 1. Introducción

Las **expresiones regulares** van encerradas en **delimitadores**, que son cualquier par de caracteres no alfanuméricos (excepto la barra invertida \ y el espacio en blanco). Los delimitadores más utilizados son las **barras oblícuas** (**/**), aunque también se pueden utilizar **almohadillas #**, **virgulillas ~**... Además de **()**, **[]**, **{}**, o **<>**.

```
/([A-Z])\w+/
+expresión+
#[a-zA-Z]#
```

Para **escapar valores** se utiliza la **barra invertida \**.

Si el **delimitador** aparece frecuentemente dentro del patrón, se suele utilizar otro delimitador para que sea más legible:

```
/http:\/\//
#http://#
```

Podemos ver un ejemplo con una de las funciones más básicas, _**preg_match()**_, que devuelve 1 si encuentra el patrón, y 0 si no lo encuentra:

```
$abecedario = "abcdefghijklmnñopqrstuvwz";
echo preg_match("/abc/", $abecedario); // Devuelve 1
```

*Para el ejemplo anterior sería más recomendable utilizar _strpos()_ y _strstr()_, que son mucho más rápidas.

### 2. Encontrar extremos de un string

#### **Encontrar un patrón al principio de un string**

Si queremos **comprobar si un string empieza con unos caracteres concretos**, podemos hacerlo de la siguiente forma:

```
$direccion = "Calle Cuéllar";
if(preg_match("/^Calle/", $direccion))
{
 echo "Es una calle";
} else {
    echo "No es una calle";
}
```

Hemos comprobado que la dirección es una calle. La **regex** está delimitada por dos **barras oblícuas (/)** y comienzan con un **signo de intercalación** o **caret** **^**, un **metacarácter** que sirve para indicar el comienzo que queremos que tenga el string buscado.

Coinciden porque ambas tienen C mayúscula, no lo harían si la **regex** o el _string_ _$direccion_ fueran en minúscula. Por defecto, las búsquedas son **sensibles a mayúsculas y minúsculas**, para cambiar esto se puede añadir una **i** de **insensitive** al final. Esto es lo que se llama un **modificador de patrón**:

```
...// Alteramos esta línea en el código anterior:
if(preg_match("/^calle/i", $direccion))
... // Daría igual que fuera CALle, cAllE, callE...
```

#### **Encontrar un patrón al final de un string**

Se hace de forma similar a encontrar un patrón al principio de un string. En lugar de usar **^** se usa el **símbolo de dólar $** al final:

```
$cadena = "Esto es un saludo: hola";
echo preg_match("/hola$/", $cadena); // Devuelve: 1
```

#### **Usar ^ y $ o \A y \Z para indicar el inicio y final de un string**

Si se trabaja con un **string con múltiples líneas** (primera línea\nsegunda línea) y se quiere saber si el patrón coincide en el principio y el final de éstas, se pueden utilizar los símbolos **^** y **$** para indicar, respectivamente, el **principio y el final de cada línea de un string**. Para ello es necesario utilizar también el **modificador de patrón** _m_:

```
$direccion = "Calle Cuéllar\nCalle Augusta";
// preg_match_all devuelve el número de matches
// Hemos incluido dos modificadores de patrón, i y m:
echo preg_match_all("/^calle/im", $direccion); // Devuelve: 2
```

Si no importan las líneas dentro de un string y se quiere saber exactamente el principio y el final de un string sin importar saltos de línea se usan **\A** y **\Z:**

```
$texto = "esto\nes\ntexto\nmultilinea\nlinea";
// Da igual que se incluya el modificador multilínea con \A y \Z:
echo preg_match_all('/linea\Z/im', $texto); // Devuelve: 1
echo preg_match_all('/linea$/im', $texto); // Devuelve: 2
echo preg_match_all('/\Aes/im', $texto); // Devuelve: 1
echo preg_match_all('/^es/im', $texto); // Devuelve: 2

```

### 3. Metacaracteres

El símbolo caret ^ y el de dólar $ son **metacaracteres**. El poder de las expresiones regulares viene dado por la capacidad de incluir alternativas y repeticiones en el patrón. Éstas están codificadas en el patrón por el uso de **metacaracteres**, que no tienen una representación en el _string_, sino que modifican la interpretación del patrón.

Se pueden dividir en dos: los que se interpretan fuera de los corchetes y los que se interpretan dentro:

1.  **Metacaracteres fuera de los corchetes:**

| | |
| -------- | -------- |
| **Metacarácter** | **Descripción** |
| \ | escape |
| ^ | inicio de string o línea |
| $ | final de string o línea |
| . | coincide con cualquier carácter excepto nueva línea |
| [ | inicio de la definición de clase carácter |
| ] | fin de la definición de clase carácter |
| `|`| inicio de la rama alternativa |
| ( | inicio de subpatrón |
| ) | fin de subpatrón |
| ? | amplía el significado del subpatrón, cuantificador 0 ó 1, y hace **lazy** los cuantificadores **greedy** |
| * | cuantificador 0 o más |
| + | cuantificador 1 o más |
| { | inicio de cuantificador mín/máx |
| } | fin de cuantificador mín/máx |

2.  **Metacaracteres dentro de los corchetes:**

| | |
| -------- | -------- |
| Metacarácter | Descripción |
| \ | carácter de escape general |
| ^ | niega la clase, pero sólo si es el primer carácter |
| - | indica el rango de caracteres |

Si queremos escapar cualquiera de los metacaracteres anteriores tan sólo hay que utilizar el **backslash \**:

```
// Ejemplo de una multiplicación con el metacarácter *
$string = '3*4';
echo preg_match('/^3\*4/', $string); // Devuelve 1
```

Debido a las interpretaciones especiales del entrecomillado en PHP, si se quiere comparar \ mediante la expresión regular \\, se ha de usar "\\\\" ó '\\\\'.

### Metacarácter []

Ya hemos visto el funcionamiento de ^ y $. Vamos a ver ahora el de los **corchetes []**, que representan una **clase carácter**, esto es un conjunto de caracteres que queremos hacer coincidir, y puede ser literalmente _[hola]_, o en forma de agrupación como _[a-z]_:

```
$string = "hola";
echo preg_match("/h[aeiou]la/", $string); // Devuelve 1
// También coincidiría con hala, hela, hila y hula
```

Si en la **clase carácter** se presenta un rango, como a-z, significa que puede coincidir con cualquier carácter del abecedario en minúsculas. En mayúsculas el rango es A-Z.

Si se incluye un metacarácter dentro de una clase carácter se interpreta literalmente (salvo las excepciones ya nombradas \, ^ y -). Ejemplo: [abc$] podría coincidir con cualquiera de los 4 caracteres: a, b, c o $.

Un **caret ^** al principio de una clase carácter se interpreta como negación, y encontrará cualquier carácter salvo los incluídos dentro de la clase carácter:

```
$string = '123456789';
// Si se añade un tercer elemento a preg_match_all devuelve un array con lo encontrado
preg_match_all("/[^2468]/", $string, $matches);
var_dump($matches); // Devuelve array con 1, 3, 5, 7 y 9
```

El caret sólo es interpretado de esa forma si se coloca al principio, después se interpreta de forma literal. Podemos **filtrar** por ejemplo **las vocales, espacios de un string** o **mayúsculas**:

```
// Filtrar vocales:
$string = 'No coger vocales';
echo preg_match_all("/[^aeiou]/", $string, $matches); // 10
// Filtrar vocales y espacios:
echo preg_match_all("/[^ aeiou]/", $string, $matches); // 8
// Filtrar consonantes:
$string = "NO coger MAYUSCULAS solo minusculas"; // 23
echo preg_match_all("/[^A-Z]/", $string, $matches);
```

### Metacarácter \

Se utiliza como **escape de metacaracteres**:

```
$string = '[]';
// Interpreta los corchetes como corchetes
echo preg_match("/\[\]/", $string, $matches);
// Interpreta los corchetes como corchetes dentro de una clase carácter
echo preg_match("/[\[\]]/", $string, $matches);
```

O para el uso de secuencias especiales (explicadas después).

### Metacarácter .

El **punto** coincide una vez con cualquier carácter excepto los **saltos de línea** como **\r** y **\n**:

```
$string = "6\nf^R\nL";
echo preg_match_all("/./", $string); // Devuelve 5: 6, f, ^, R y L
echo preg_match_all("//", $string); // Devuelve 8 (todos)
// Con la secuencia especial \s se muestra el número de líneas/espacios:
echo preg_match_all("/\s/", $string); // Devuelve 2 (sólo las líneas)
```

### Metacarácter *

Encuentra **cero o más ocurrencias** del carácter que le precede:

```
$string1 = "hla";
$string2 = "hola";
$string3 = "hoooooooola";
echo preg_match("/ho*la/", $string1); // Devuelve 1
echo preg_match("/ho*la/", $string2); // Devuelve 1
echo preg_match("/ho*la/", $string3); // Devuelve 1
```

### Metacarácter +

Encuentra **una o más ocurrencias** del caracter que le precede:

```
$string1 = "hla";
$string2 = "hola";
$string3 = "hoooooooola";
echo preg_match("/ho+la/", $string1); // Devuelve 0
echo preg_match("/ho+la/", $string2); // Devuelve 1
echo preg_match("/ho+la/", $string3); // Devuelve 1
```

### Metacarácter ?

Encuentra **0 o 1 ocurrencias** del carácter o expresión regular que le precede. Se utiliza para hacer algún carácter opcional:

```
$string1 = "hla";
$string2 = "hola";
$string3 = "hoooooooola";
echo preg_match("/ho?la/", $string1); // Devuelve 1
echo preg_match("/ho?la/", $string2); // Devuelve 1
echo preg_match("/ho?la/", $string3); // Devuelve 0
```

### Metacarácter {}

Las llaves indican el número exacto de matches del carácter o grupo de caracteres que le preceden:

```
$string1 = "hooola";
$string2 = "hooooola";
$string2 = "hoola";
$string4 = "houiela";
$string5 = "hla";
echo preg_match("/ho{3}la/", $string1); // Devuelve 1
// Si se indica {n,} quiere decir que al menos n elementos
echo preg_match("/ho{3,}la/", $string2); // Devuelve 1
// Si se indica {n, m} quiere decir un número entre n y m
echo preg_match("/ho{2,3}la/", $string3); // Devuelve 1
echo preg_match("/h[aeiou]{4}la/", $string4); // Devuelve 1
echo preg_match("/ho{0}la/", $string5); // Devuelve 1
```

### Metacarácter |

El operador de **barra vertical |** permite alternar entre posibles coincidencias:

```
$string = "Este es un Estado de Estados Unidos";
echo preg_match_all("/este|esto|esta/i", $string); // Devuelve 3
```

### Metacarácter ()

Los paréntesis en las expresiones regulares permiten **crear subpatrones**, como pequeños patrones dentro del patrón principal:

```
$string1 = "Llegaré pronto que voy volando";
$string2 = "Llegaré tarde que voy andando";
echo preg_match_all("/(and|vol)ando/i", $string1); // Devuelve 1
echo preg_match_all("/(and|vol)ando/i", $string2); // Devuelve 1
```

_preg_match()_ captura tanto los **patrones** como los **subpatrones** en un array:

```
$string = "Llegaré pronto que voy volando";
preg_match_all("/(and|vol)ando/i", $string, $matches);
var_dump($matches);
/*
array (size=2)
  0 =>
    array (size=1)
      0 => string 'volando' (length=7)
  1 =>
    array (size=1)
      0 => string 'vol' (length=3)
*/
```

### 4. Subpatrones

Los subpatrones, creados mediante los **metacaracteres ()**, se pueden **anidar** para **ser referenciados**. Los subpatrones son **capturados**, es decir, se almacena la porción en paréntesis del string que coincide con el subpatrón:

```
$string = "marrón";
preg_match("/ma(r{2}ó)n/", $string, $matches);
var_dump($matches);
/*
array (size=2)
  0 => string 'marrón' (length=7)
  1 => string 'rró' (length=4)
*/
```

Las capturas se pueden referenciar después mediante un **backlash** y un **número**, dependiendo de la posición de la referencia: \1, \2, \3... hasta \9\. Estas referencias se pueden hacer dentro de la misma **expresión regular**, aunque nunca dentro de las **clases carácter**:

```
$string = "hola y hola";
preg_match('/(hola) y \1/', $string, $matches);
var_dump($matches);
/*
array (size=2)
  0 => string 'hola y hola' (length=11)
  1 => string 'hola' (length=4)
*/
```

El metacarácter **?**  modifica el comportamiento del subpatrón, las tres posibilidades más básicas son las siguientes:

*   (?:). Hace que el subpatrón no sea capturable.

*   (?=). Encuentra el subpatrón después de la expresión principal sin incluirlo en el resultado.

*   (?!). Opuesto del anterior, especifica el subpatrón que no puede ir después de la expresión principal. El subpatrón tampoco aparece en el resultado.

### 5. Secuencias especiales

Las secuencias especiales utilizan el **backslash \** y son **conjuntos predefinidos de caracteres** que permiten reducir el tamaño de las **expresiones regulares**:

| | | |
| -------- | -------- |
| **Secuencia** | **Coincidencia** | **Equivalencia** |
| \d | Cualquier carácter numérico | [0-9] |
| \D | Cualquier carácter **no** numérico | [^0-9] |
| \s | Cualquier espacio | [\t\n\r\f\v] |
| \S | Cualquiera que **no** sea espacio | [^ \t\n\r\f\v] |
| \w | Cualquier carácter alfanumérico | [a-zA-Z0-9_] |
| \W | Cualquier carácter **no** alfanumérico | [^a-zA-Z0-9_] |

**Algunos ejemplos**:

```
$string = 'abc123^+*<>?';
// Encontrar sólo caracteres alfanuméricos:
echo preg_match_all("/[\w]/", $string, $matches); // Devuelve 6
// Cualquier carácter:
echo preg_match_all("//", $string, $matches); // Devuelve 13
// Encuentra todo menos caracteres alfanuméricos:
echo preg_match_all("/[\W]/", $string, $matches); // Devuelve 6
// Encuentra todo string que comienza con número:
$string = '4 pares de zapatos';
echo preg_match_all("/^\d/", $string); // Devuelve 1
// Encuentra los espacios
$string = "Esto es un\nejemplo con espacios\n y salto de linea";
echo preg_match_all("/\s/", $string); // Devuelve 10
```

### 6. Modificadores

Se utilizar para modificar la forma en que se evalúan las **expresiones regulares**. Se incluyen justo después del **delimitador de la expresión regular** y se pueden utilizar varios a la vez. Algunos de ellos son:

| | |
| -------- | -------- |
| **Modificador** | **Significado** |
| i | Insensible a mayúsculas y minúsculas |
| m | Múltiples líneas |
| x | Se pueden añadir comentarios |
| u | Strings de patrones y objetivos son tratados como UTF-8 |

**Algunos ejemplos**:

```
// Ejemplo de insensibilidad a mayúsculas y minúsculas:
$string = "AaBb";
echo preg_match_all("/[ab]/i", $string); // Devuelve 4
// Ejemplo múltiples líneas, detecta un número al principio de cada una:
$string = "1Esto\n2son\n3varias\n4lineas";
echo preg_match_all("/^[0-9]/m", $string); // Devuelve 4
// Ejemplo de comentarios en expresión regular:
$string = "123 son\n3 números";
$regex = "/
^ # buscar al principio de línea
[0-9] # cualquier número del 1 al 9
/mx";
echo preg_match_all($regex, $string); // Devuelve 2
```

### 7. Declaraciones

Las **declaraciones** son comprobaciones de los caracteres anteriores o siguientes al punto de coincidencia actual (no consumen ningún carácter). Se incluyen dentro de la **expresión regular**.

| | |
| -------- | -------- |
| **Declaración** | **Significado** |
| \b | Límite de palabra |
| \B | NO límite de palabra |
| \A | Comienzo de string |
| \Z | Final de string o de línea |
| \z | Final de string |
| \G | Primer match en el string |

**Algunos ejemplos**:

```
// Ejemplo para encontrar palabra exacta
$string1 = "Es ahora";
$string2 = "Es la hora";
echo preg_match("/\bhora\b/", $string1); // Devuelve 0
echo preg_match("/\bhora\b/", $string2); // Devuelve 1
// *Si se utiliza \b dentro de una clase carácter no hace de límite sino de backspace

// Ejemplo de límite y no límite:
$string = "Es ahora";
// La palabra debe acabar en hora, pero debe tener al menos algún carácter antes:
echo preg_match("/\Bhora\b/", $string); // Devuelve 1
$string = "Es la hora";
// Ahora vemos como no coincide, pues no tiene un carácter antes:
echo preg_match("/\Bhora\b/", $string); // Devuelve 0
```

### 8. Greedy y lazy

Por defecto PCRE es **greedy**, esto significa que va a intentar **coincidir con el mayor número de caracteres** que pueda a no ser que indiquemos lo contrario, que sea **lazy**, y que intente **coincidir con el menor número posible de caracteres**.

Para hacer un **patrón lazy** se usa el interrogante ?. Esto le dice a **Perl** que encuentre el menor número posible de los caracteres anteriores antes de continuar con la siguiente parte del patrón. También se puede hacer con el **modificador /U**.

Cuando un **regex es lazy** se produce **backtracking**, esto es, comprueba con más repeticiones el string, lo que hace que le cueste más comprobar el patrón. A no ser que se manejen bien las **expresiones regulares**, no es recomendable cambiar el **comportamiento por defecto greedy**.

```
// Ejemplo usando laziness con "?"
$string = "hla hola hoola hooola";
preg_match("/h(.*?)la/", $string, $matches);
var_dump($matches); // hla
// Ejemplo usando laziness con el modificador /U
$string = "hola hoola hooola";
preg_match("/h(.*)la/U", $string, $matches);
var_dump($matches); // hola
```

### 9. Funciones PCRE

*  preg_replace

La función _**preg_replace**_ realiza una **búsqueda** y una **sustitución de una expresión regular**.
```
mixed preg_replace (mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count ]] )
```

Busca en _$subject_ coincidencias con el patrón _$pattern_ y las sustituye por _$replacement_. Se puede indicar el límite de sustituciones con _$limit_ que por defecto son infinitas, y se puede pedir el número de veces que se ha reemplazado el patrón con _$count_.

```
$string = 'Vamos a reemplazar la palabra coche';
$cambio = preg_replace("/coche/", 'moto', $string);
echo $cambio; // Devuelve: Vamos a reemplazar la palabra moto
```

Con este ejemplo anterior sería más rápido emplear _**str_replace()**_, pero [_preg_replace()_](http://php.net/manual/es/function.preg-replace.php) permite hacer cosas más complejas mediante expresiones regulares, además de aceptar arrays también:

```
$string = 'Vamos a cambiar el animal perro de color verde';
$patrones = array();
$patrones[0] = '/perro/';
$patrones[1] = '/verde/';
$sustituciones = array();
$sustituciones[0] = 'gato';
$sustituciones[1] = 'azul';
echo preg_replace($patrones, $sustituciones, $string);
// Devuelve: Vamos a cambiar el animal gato de color azul
```

*  preg_filter
```
mixed preg_filter (mixed $pattern, mixed $replacement, mixed $subject [, int $limit = -1 [, int &$count ]])
```

Es igual que _pre_replace()_, pero _preg_filter()_ sólo devuelve los resultados donde hay una coincidencia.

```
$array = ["1 perro", "gato", "avestruz", "1 cerdo"];
$cambio = preg_filter('/\d/', "un", $array);
var_dump($cambio);
/*
array (size=2)
  0 => string 'un perro' (length=8)
  3 => string 'un cerdo' (length=8)
*/
```

*  preg_grep
```
array preg_grep (string_ $pattern, array $input [, int $flags = 0 ])
```

Devuelve un nuevo array con los elementos de _$input_ que coinciden con _$pattern_.

Se puede establecer el flag **PREG_GREP_INVERT**, para devolver un array con los elementos que **no** coinciden con _$pattern_.

```
$array = ["1 perro", "gato", "avestruz", "1 cerdo"];
$otro = preg_grep('/\d/', $array);
var_dump($otro);
/*
array (size=2)
  0 => string '1 perro' (length=7)
  3 => string '1 cerdo' (length=7)
*/
```

*  preg_match
```
int preg_match (string $pattern, string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]])
```

Hace una comparación en _$subject_ con una expresión regular _$pattern_.

Si se proporciona _$matches_, se crea este array con los resultados de la búsqueda. _$matches[0]_ contiene el texto que coincidió con el patrón completo, _$matches[1]_ el texto que coincició con el primer subpatrón, y así sucesivamente.

Si se indica el flag **PREG_OFFSET_CAPTURE**, por cada coincidencia la posición del string también se devolverá.

Devuelve 1 si _$pattern_ coincide con _$subject_, 0 si no y false si ocurrió un error.

```
$string = "1Esto 2es 3un 4string";
preg_match('/\d\w{2} /', $string, $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);
/*
array (size=1)
  0 =>
    array (size=2)
      0 => string '2es ' (length=4)
      1 => int 6
*/
```

*  preg_match_all
```
int preg_match_all (string $pattern, string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]])
```

Busca en _$subject_ todas las coincidencias de la expresión regular _$pattern_ y las introduce en _$matches_ en el orden especificado por _$flags_.

Con PREG_PATTERN ORDER los resultados se ordenan de forma que $matches[0] es un array de coincidencias del patrón completo, $matches[1] es un array de coincidencias del primer subpatrón, etc.

Con PREG_SET_ORDER $matches[0] es un array del primer conjunto de coincidencias, $matches[1] es un array del segundo conjunto, etc.

PREG_OFFSET_CAPTURE añade un elemento por cada coincidencia con la posición del string.

```
$string = "1Esto 2es 3un 4string";
preg_match_all('/\d\w{2} /', $string, $matches, PREG_SET_ORDER);
var_dump($matches);
/*
array (size=2)
  0 =>
    array (size=1)
      0 => string '2es ' (length=4)
  1 =>
    array (size=1)
      0 => string '3un ' (length=4)
*/
```

*  preg_replace_callback
```
mixed preg_replace_callback (mixed $pattern, callable $callback, mixed $subject [, int $limit = -1 [, int &$count ]])
```

Funciona de la misma forma que _preg_replace()_, pero en lugar de un string _$replacement_ se especifica un _$callback_.

```
$miEdad = "Tengo 26 años\n";
// El callback:
function cumpleaños($edad)
{
    return $edad[0] + 1;
}
$miCumpleaños = preg_replace_callback('/(\d{2})/', "cumpleaños", $miEdad);
echo $miCumpleaños; // Tengo 27 años
```

*  preg_split
```
array preg_split (string $pattern, string $subject [, int $limit = -1 [, int $flags = 0 ]])
```

Divide un string mediante una expresión regular. Se pueden especificar los siguientes flags:

PREG_SPLIT_NO_EMPTY. Sólo se devolverán los elementos que no están vacíos.

PREG_SPLIT_DELIM_CAPTURE. Las expresiones entre paréntesis en el patrón delimitador serán capturadas y devueltas.

PREG_SPLIT_OFFSET_CAPTURE. Por cada coincidencia, la posición del string también será añadida.

```
$frase = "Esto es PHP";
$palabras = preg_split('/\s/', $frase, null, PREG_SPLIT_OFFSET_CAPTURE);
var_dump($palabras);
/*
array (size=3)
  0 =>
    array (size=2)
      0 => string 'Esto' (length=4)
      1 => int 0
  1 =>
    array (size=2)
      0 => string 'es' (length=2)
      1 => int 5
  2 =>
    array (size=2)
      0 => string 'PHP' (length=3)
      1 => int 8
*/
```

Si no se necesita la precisión de las expresiones regulares es mejor emplear las funciones _explode()_ o _str_split()_.


Industrial Valves and Gasket Sheets - RUML s.r.o.
Armstrong is a global leaders in energy management with intelligent solutions in steam, air and hot water.
W. L. GORE is the world's leading supplier of expanded PTFE (ePTFE) gaskets, seals and packings.
We focus on the delivery of quality industrial products and technologies from reputable manufacturers. We provide services related to planning, delivery and assembly. We provide energy audits of industrial distribution systems complemented by design and implementation of their insulation. We provide monitoring of steam traps.
RUML Company Ltd. was founded in 1992 by Vladimir Ruml in order to create a dealership of Klinger products in the Czech Republic.
With the development of a stable customer network also began expanding the range of products of other major companies such as Armstrong International, W.L.GORE, Posi-flat and more.
In 2011 the company began to expand its team. The two older sons, David Ruml and Filip Ruml, took up the management of the company.
Since 2013 the company has a steady annual increase in turnover of 14%. Since 2015, the company began offering services in the field of industrial energy audits, monitoring of steam traps and thermal insulation of industrial distribution systems.
RUML Company Ltd. is an important and trusted supplier of gaskets and valves for numerous czech and multinational industrial concerns.
RUML Company Ltd. is a reliable partner and supplier in its field since 1992.
Články Odrazují zařízení pro energetické využití odpadů (ZEVO) od recyklace odpadů?
Články Jak uniknout z pasti EU ETS?


text:
package fr.paug.droidcon.util;

import java.util.Locale;

public class HashUtils {
    public static String computeWeakHash(String string) {
        return String.format(Locale.US, "%08x%08x", string.hashCode(), string.length());
    }
}

redpajama_set_name: RedPajamaGithub


The annual Refugee Week is taking place this year from 18 – 24 June. It provides a great opportunity for children to think more deeply about the plight of refugees and the experiences of those from other cultures. We've put together a book list of lots of brilliant titles about refugees for all ages – why not see if you can pick up some of these from your local library?
This moving tale follows the lives of one family torn apart by circumstances. A man leaves behind his wife and daughter to board a ship to cross the ocean. It is the most painful but most important journey of his life, as he leaves home to build a better future for his family. Shaun Tan tells the tale purely through beautiful images, helping the reader to become immersed in the man's emotions and the challenges faced by immigrants across the world.
A young boy is about to go on a long journey with his mother. She explains to him that they will leave their home and will have to say goodbye to their family and friends, and tells him that it will be exciting but also frightening and that they will have to walk for miles on end. She prepares her son for a long journey of endurance. This book invites the reader in and prompts discussions about how we would make decisions and cope with the experience of being a refugee if we found ourselves in their shoes.
Illegal is a powerful graphic novel that introduces the reader to Ebo and his brother Kwame, who flee from their home in Ghana. With engaging text and illustration, the book follows their journey across Africa, being smuggled across the Mediterranean Sea and searching for safety n Europe. The book does not shy away from the brutality of the refugee experience but also shows Ebo's hope for a brighter future and a reunion with his sister.
Gill Lewis's story is short but definitely memorable. A boy finds himself stranded on a small dinghy with a group of people, all of whom are fleeing a war and have paid a lot of money to make this journey. They know it is not going to be a safe or easy ride. The boy realises that he cannot share the food because he has nothing to offer in return. His only possession is a violin and he is encouraged to share music. He plays a song that tells a mesmerising story and it is so beautiful that his fellow passengers re-find their bravery and hope. The book gives insights into the refugee experiences still happening today and is a wonderful book to share together with young readers.
Pitch Invasion unites different boys with different stories but are united in their passion for football. Seth is nervously awaiting news of his mother, who has been ill, and is haunted by visions and worst case scenarios. He then meets two football-mad brothers from Aleppo, who share their refugee stories with him and offer Seth a new sense of courage. They come together and learn about different experiences and hardships. This is a powerful book and a good choice to engage a wide audience with issues of migration and refugees.
A shortlisted book for the 2018 Rebel Awards, Tender Earth follows the story of Laila and her anger at the injustice in the world around her. One of her friends, Pari, faces racist abuse on the small housing estate she lives on, having fled to England with her mother. Her other friend, Kez, also faces bullying because of her family's Jewish beliefs and the fact they are refugees. The book shows that being a refugee means many different things through a gripping plot and a celebration of friendship and fighting for equality.
Subhi is born in a refugee camp and his world does not move beyond the fences that surround the tents. At night, he dreams that the sea finds its way to his tent, bringing with it unusual treasures. One day, the sea brings him Jimmie. Carrying a notebook that she's unable to read and wearing a sparrow made out of bone around her neck, which are her keepsakes of her late mother and her past life, Jimmie and Subhi develop a friendship on either side of the fence. Subhi reads aloud the tale of Jimmie's family, taking both children on a journey of discovery.
Kerr's semi-autobiographical novel is a hugely popular story that depicts the challenges of being a Jew at the time when Hitler was in power. The book follows the dangerous journey of Anna and her family, who must leave everything behind and set off in search of a new life.
The story is narrated by 12-year-old Omar, who lived in the beautiful and bustling city of Bosra, Syria until war changed everything. Omar didn't care about politics; he wanted is to grow up to become a successful businessman. Soon, however, his world changes. Bombs are falling, people are dying, and Omar and his family have to flee their home with only what they can carry. It doesn't help that his brother Musa gets caught up in the dangerous world of politics. They have no choice, after already facing challenging experiences, than to attempt the dangerous journey escaping their homeland altogether.
This is a fantastic book that gives a child's understanding of what being a refugee means and also shows how influential young people can be in challenging inequality and making their voices heard. When 9-year-old Ahmet joins the narrator's class, she is determined to become his friend, help him find his family and not let the bullies win.
Sade and her brother suffer the most awful tragedy; they watch their mother get murdered. They are forced to leave their father and flee from their home in Nigeria to London and must navigate this unfamiliar country alone. The narrative is emotionally powerful and shows the dangers of speaking the truth in South Africa during the apartheid and shows how frightening and lonely the experience of being a refugee can be.
This book is based on the author's real life experience and is a great book to read as a family. It's 1941. Esther Rudomin is ten years old when she finds herself and her family arrested by the Russians for being capitalists and transported to Siberia. They spend the next five years in exile, experiencing illness, suffering and hardship. They survive, barefoot and hungry, until the end of the Second World War. Despite the difficulties of their experience, Esther's story is full of optimism and shows how resilient the human spirit can be and the power of family.
This helps young readers understand big issues in the world today. The authors explore the history of refugees and migration around the world and the effects of continuous wars and conflicts on communities and individuals. It celebrates diversity and multi-culturalism and includes a range of views from people with personal experience of migration, including the campaigners Meltem Avcil and Muzoon Almellehan, the comedian Omid Djalili and the poet Benjamin Zephaniah. It is aimed at children aged 10 and upwards and encourages readers to take an active role in building knowledge.
This is a beautifully written book and a great way to provide young readers with a wider context about what migration means. The book follows the journeys of all sorts of animals, who trek through all seasons and weathers on their own migrations. It teaches young readers about migration with a focus on other species that undergo these challenging experiences. With stunning illustrations and clear descriptions, the book is a brilliant way to increase children's understanding of the world around them.
Malala's Magic Pencil is a wonderful 2017 picture book, which outlines Malala's experience growing up in Pakistan, and her desire for a magic pencil to solve her problems. This is a symbol for her increasing awareness that she can actively fight for change; Malala learns that she can campaign for change, such as the importance of equality and the rights of women to have an education.


text:
Culture | By Nicole Cruz - Aug 20, 2020
Here's Everything We Know So Far About "Do Do Sol Sol La La Sol," Netflix's New K-Drama
It stars Lee Jae Wook and Go Ara!
IMAGE INSTAGRAM @ara_go_0211
If you've ticked off everything on your K-drama bucket list so far and you're looking for a new series to try out, make sure you mark your calendars for the premiere of Do Do Sol Sol La La Sol, the latest K-drama coming to Netflix. And yeah, we know, that title's a mouthful, but it's indicative of the show's cheery plot, quirky characters, and good vibes. Everything you're looking for in a feel-good K-drama! Interested? Keep reading to check out everything we know about it:
1. It stars Lee Jae Wook and Go Ara.
The male lead, Sunwoo Jun, is played by Lee Jae Wook, who you might recognize from the shows Memories of the Alhambra (2018) and Extraordinary You (2019). A relatively new face in the industry, Jae Wook has already garnered a Best Actor award for his work in Extraordinary You.
As for the show's female lead, Gu Ra Ra, she'll be played by fresh-faced beauty Go Ara. She has starred in shows like Reply 1994 (2013), You're All Surrounded (2014), and Hwarang: The Poet Warrior Youth (2016–17). If you're a fan of Hospital Playlist (2020), you'll recognize her as Ik Jun's ex-girlfriend in Episodes 5 and 6!
Oh, and if you watched It's Okay to Not Be Okay, you'll be excited to know that Kim Joo Heon is also in the show. He played Lee Sang a.k.a. the CEO of Sangsangyisang Publishing Company, which publishes Ko Mun-yeong's children's books!
PHOTO BY COURTESY OF NETFLIX
2. The show tells the story of a penniless pianist who crosses paths with a mysterious freelancer.
Gu Ra Ra (Go Ara) is a pianist whose luck changes when her family's finances collapse. Later on, she ends up at a piano academy called La La Land, where she meets an intriguing person called Sun Woo Joon (Lee Jae Wook). Gruff and uptight, Woo Joon is the total opposite of Ra Ra's lovable, easygoing personality.
In true character, Ra Ra ends up borrowing money from Woo Joon, who makes his bones doing part-time jobs. Unlike other debtors, Ra Ra doesn't hesitate to ask Woo Joon for more money, much to his exasperation. These two very different people eventually develop a relationship filled with laughter, tears, and love.
3. The show is directed by Kim Min Kyung and written by Oh Ji Young.
The series is helmed by director Kim Min Kyung, who was responsible for the 2018 series Matrimonial Chaos, which included seasoned actors like Bae Doo Na (Kingdom) and Lee El (Goblin). The show's screenwriter is Oh Ji Young, who also wrote the hit MBC romantic comedy series Shopping King Louie (2016).
4. The official trailer highlights the hilarious banter between the two lead characters.
Netflix just released the show's official trailer earlier today, and if it's any indication, it looks like we're in for a lot of laughs! The trailer shows a scene where hospitalized Gu Ra Ra doesn't seem to be affected by her injuries and even pretends to play the piano with her broken arms. To which, Woo Joon tells her to stop because she "looks possessed." LOL!
What's funny is how Ra Ra has "no shame" relying on Woo Joon for her finances, and she even ends up urging him to "hurry up and make a lot of money." It also looks like Woo Joon is tired of her crazy antics, but you can also tell how pretty smitten he is with her bubbly personality. So cute! We can't wait to see how these two will fall for each other.
Watch the trailer here:
5. It will premiere on August 26 only on Netflix.
Surprise! You'll be able to watch this show much sooner than you think, as it will be released in a few days. The series, created by South Korean network KBS, will be streamed worldwide only on Netflix.
New episodes will be aired every Wednesday and Thursday at 10 p.m., Philippine Standard Time. Something to look forward to whenever you're stressed from work or school!
Check it out on Netflix here and stay tuned.
netflix, korean celebrities, k-drama, k-drama actress, k-drama actor, k-drama culture, k-culture fan, lee jae wook, go a-ra,
Big Al's Famous Chocolate Cake Is Available Again For A Limited Time Only
Here's Where You Can Score Wooden Plates And Bowls For As Low As P55

redpajama_set_name: RedPajamaCommonCrawl


You're stuck in traffic. There's nowhere else to look but at the back of the giant minivan in front of you with their whole family—in stick figure form—plastered across the back window. Mom. Dad. Two kids. Cat. Dog. Do we care? Not really. But hey, congratulations on your ability to reproduce. If you must let the world know every member of your family, at least give us something fun to look at. For 10 bucks, StickerPunx on Etsy will outfit your car with your family members—in punk rock form—all the way down to your badass fish.
A new season of Food Network's Chopped is underway and on Feb. 24 at 8 p.m. and Feb. 26 at 10 p.m., former New Yorker Maureen Sanchez will compete and talk about her sister, Judith Erin O'Donnell, the subject of the 2011 Press cover story, "Still Looking for Judy." Judy has been missing for more than 30 years and Maureen has been waiting for more than a year for DNA analysis to be completed to determine if an unidentified murder victim found in a block of concrete in NYC in 2003 is her sister.
In an attempt to curb trash—and inevitably boost profits—Starbucks has debuted a reusable plastic cup, a replica of the paper one, for only $1. Each time the cup is used the coffee giant will give you a 10-cent discount. So after 10 refills, the cup pays for itself. Sweet.
Designed by the neuroscientists at Lumosity, Brain Trainer has eight exercises targeted at improving your brain's health, performance and overall intelligence. Match the dots, figure out which way the bird is flying and flex your mental muscles. It's fun and only takes a few minutes per day.
Sydney's famous harbor was turned into a giant bathtub during January's Sydney Festival, a month-long arts and music celebration, for a five-story, yellow duck created by Dutch artist Florentijn Hofman, who said his PVC creation, titled "Rubber Duck," has healing properties. We're not sure about healing, but watching this thing move slowly down the harbor is pretty awesome.
With its first Long Island location recently opened in Carle Place and two more coming to Commack and Huntington, Cups brings its insane line of low-fat frozen yogurts to our shores. Run by quirky "cast members" with club music pumping and a lounge-type design, Cups serves up heavenly creations like their Low-Fat Chocolate Chip Cheesecake frozen yogurt.
The 12-inch Dammit Doll (DammitDolls.com) is so sturdily sewn that it stands up to an onslaught of slams on tables, desks, floors and walls while its owner attempts to ease life's stressful moments. Keep one in the glove compartment for annoying occasions like traffic jams on the Long Island Expressway—the Dammit Doll offers a surprisingly satisfying catharsis when banged on the dashboard (not while driving, of course).
For those of us whose most anticipated part of Super Bowl Sunday is Beyonce's half-time performance, and the Puppy Bowl, here's something else to get you in the mood. In Port Washington, the United Methodist Church hosts a delicious football alternative on Feb. 2nd, from noon-3 p.m. where local restaurants vie for the chance to be voted the 2013 SOUPer Bowl Champ. Everyone is invited to buy a spoon and become a taster.
This smartphone game seems like a joke, but once you start playing it's not only addicting, but pretty damn hard. You literally have a split second to decide if the creature on your screen is a llama or duck. Sounds simple, but…give it a try.
Because nothing says love like sliders and chicken rings. Call 718-899-8404, Ext. 304 for reservations.


Worldviews, values and belief systems determine how we see and describe "reality"
Can we learn to see the world differently?
Part One: An Introduction to Innovation.
Historical, technological, economic, psychological frameworks and other anthropological investigations.
Part Two: Innovation prior to Disruptive Innovation Theory (1995).
The revolutions, transformations and paradigm shifts spurred by invention and innovation: The Agrarian, Industrial, Technological, Information and Digital Revolutions.
Part Three: Disruptive Innovation Theory 1.0 (1995-2007).
A Harvard Professor's shocking realization that "less is more" launched a whole new approach to innovation.
Copyright © 2010, Tribeca Disruptive Innovation Awards. All rights reserved.


PGA TOUR: 22. Major Medical Extension: If granted by the Commissioner, if not otherwise eligible, and if needed to fill the field, Special Medical Extension.
Web.com Tour: PGA TOUR members who are not eligible for the PGA TOUR event occurring simultaneously with this event.
Smylie is a family name, not a nickname (grandmother's cousin, 1971 Georgia Tech All-American defensive end, Smylie Gebhart).
Grandfather (Alan Kaufman) is a former golf coach at University of Alabama-Birmingham and one-time coach of Graeme McDowell.
Was point guard on his state championship basketball team in 2009, his junior year.
Started Kids vs. Cancer with his younger brother, Luckie, a charity that helps combat cancer in children.
Helped raise awareness and money, along with other LSU graduates, in support of those affected by the Louisiana floods in the summer of 2016.
Was a freshman on LSU golf team when John Peterson and Andrew Loupe were seniors and followed their lead in terms of commitment and work ethic. "I learned what hard work really was, from those two guys."
Made the cut in three of 22 starts during the season, highlighted by a T4 at the Sanderson Farms Championship, to finish No. 200 in the FedExCup standings (74 points). Withdrew from A Military Tribute at The Greenbrier with an inflamed left elbow and did not make another start. Entered the 2018-19 season playing out of the Minor Medical Extension category with five available starts to earn 303 FedExCup points and match No. 125 Seamus Power's 377 from the 2018 standings.
Sanderson Farms Championship: Closed with a 4-under 68 in the final round, including three birdies on the back nine, to claim a share of fourth place in the Sanderson Farms Championship. Fired a first-round 5-under 67 to position himself one shot off the 18-hole lead.
Claimed three top-25 finishes in 26 starts, highlighted by a T5 at the Wells Fargo Championship. Unable to advance to the FedExCup Playoffs, ended his season after the Wyndham Championship at No. 141 in the FedExCup standings.
Wells Fargo Championship: After seven missed cuts in his last eight starts, finished T5 at the Wells Fargo Championship, three shots behind winner Brian Harman. Closed with a 68 at Eagle Point Golf Club for his only top-10 of the season.
In his rookie season, was one of seven rookies to qualify for the FedExCup Playoffs with four top-10 finishes in 25 regular season starts, including a victory in the second event of season at the Shriners Hospitals for Children Open. Was No. 33 heading into third FedExCup Playoffs event but T56 at BMW Championship contributed to missing the TOUR Championship, ending the season at No. 43 in the standings.
BMW Championship: T56 at BMW Championship contributed to missing the TOUR Championship.
The Open Championship: Missed the cut at Royal Troon in The Open Championship.
Quicken Loans National: Following a missed cut in his third major appearance at the U.S. Open, notched his fourth top-10 of the season the following week at the Quicken Loans National. Earned his first trip to The Open Championship based on his FedExCup ranking at the conclusion of the Quicken Loans National.
World Golf Championships-Cadillac Championship: In his first start in a World Golf Championships event, finished T8 at the World Golf Championships-Cadillac Championship, marking his third top-10 of the season.
Shriners Hospitals for Children Open: Carded a final-round 10-under 61 (which came 2½ hours before the final group holed out) to finish the Shriners Hospitals for Children Open at 16-under 268, winning on the PGA TOUR for the first time by one stroke over six players. In the process, he became the 10th player since 2000 to post his first career victory at the Shriners Hospitals for Children Open, joining Phil Tataurangi (2002), Andre Stolz (2004), Wes Short, Jr. (2005), Troy Matteson (2006), George McNeill (2007), Marc Turnesa (2008), Martin Laird (2009), Kevin Na (2011) and Ben Martin (2014-15). His closing-61 (equaling the best final round ever in Las Vegas) marked the lowest finish on TOUR by a winner since Tommy Gainey closed the 2012 McGladrey Classic with a 10-under 60. His final-round, seven-stroke, come-from-behind victory marked the largest in Las Vegas and the largest on TOUR since Gainey came from the same number back to win in Sea Island in 2012. Joined Emiliano Grillo (Frys.com Open) as rookie winners to start the season, marking the first back-to-back rookie winners on TOUR since 2011 when Charl Schwartzel won the Masters and Brendan Steele won the Valero Texas Open. The victory came in his fifth career PGA TOUR start (second as a member) at age 23 years, 10 months, 25 days, making him the fifth consecutive winner under age 30 to win the Shriners Hospitals for Children Open. Since the Shriners Hospitals for Children Open moved to a 72-hole event in 2004 (12 events), he became the first champion who failed to record all four rounds in the 60s, carding scores of 67-72-68-61 for the week.
Frys.com Open: Claimed his first top-10 finish, a T10, in his first start as a PGA TOUR member at the Frys.com Open. Opened and closed with 4-under 68s to finish at 11-under 277 in the season's first event.
Finished the Web.com Tour season with 20 starts, one win, a runner-up, five top-10s, seven top-25s and 10 cuts made. Led the Tour in Birdie or Better Conversion Percentage (37.2 percent). Was 13th in the final priority-ranking order. Missed the cut in his first three starts as a member to open the season, then recorded back-to-back T4s. Finished the Regular Season sixth on the money list to secure his PGA TOUR card for the first time.
Small Business Connection Championship at River Run: Made one more Finals cut, a T43 at the Small Business Connection Championship at River Run.
Hotel Fitness Championship: In the first of four Web.com Tour Finals events, finished T10 at the Hotel Fitness Championship, highlighted by a third-round 65, where he made 11 birdies, one short of tying the Web.com Tour all-time record.
Price Cutter Charity Championship presented by Dr Pepper: In August, solidified his standing on the money list with a runner up at the Price Cutter Charity Championship. Positioned himself for a Sunday run with a bogey-free 65 Saturday that assured him a spot in the final pairing. Started the final round birdie-birdie and cut Dawie van der Walt's lead in half. Turned up the heat on the inward nine with an eagle on the par-5 11th hole. Bogeyed two of the next three but responded with a birdie at the last hole to break out of a four-way tie and grab solo second.
Barbasol Championship: Played the Barbasol Championship in July as a sponsor exemption. Finished T66.
United Leasing Championship Presented by PTI: Earned his first career title in only his sixth start with a five-shot win at the United Leasing Championship in early May. Matched the Victoria National GC course record with an 8-under 64 in Saturday's third round and grabbed a four-shot lead after 54 holes. Chalked up three consecutive birdies starting at the second hole Sunday to increase his lead to eight shots over his nearest challenger. Was never in serious danger of losing the lead the rest of the day. Stumbled on the back nine with double bogeys at Nos. 12 and 16 and saw his lead drop to four strokes briefly. Late bogeys by others resulted in his winning margin. Picked up a check for $108,000 and moved from No. 28 to No. 4 on the money list through eight of 21 regular-season events. Became the third rookie winner and sixth first-time winner on Tour this season.
El Bosque Mexico Championship: Finished T4 at the and El Bosque Mexico Championship. Was four off the lead after 54 holes lead. Made three final-round bogeys that derailed his run at victory.
Shell Houston Open: The next day, he successfully Monday-qualified for the PGA TOUR's Shell Houston Open. Shot rounds of 73-72 at the GC of Houston later that week to miss the cut.
Chitimacha Louisiana Open presented by NACHER: Finished T4 at the Chitimacha Louisiana Open. Opened with 71-68 in Louisiana and was T43 after 36 holes. Had an eagle-birdie-birdie run on Nos. 7-9 on Saturday, leading to a 66. Added another 66 on Sunday that included a second eagle in as many days on the par-5 7th hole.
Won one event on the Hopkins Tour (Crystal Lakes Classic).
Web.com Tour Q-School: Finished T67 at Web.com Tour Qualifying Tournament in December.
U.S. Open: Qualified for the U.S. Open. Missed the cut in his first PGA TOUR start at Pinehurst.
Named to the SEC Academic Honor Roll team each year between 2011-14.
In 2008, won the USGA-AJGA Presidents' Youth Leadership Award.
Was the 2011 Alabama State Amateur champion.


text:
746 Marlu (prov. designation:  or ) is a dark and large background asteroid from the outer regions of the asteroid belt, approximately  in diameter. It was discovered on 1 March 1913, by German astronomer Franz Kaiser at the Heidelberg Observatory in southwest Germany. The primitive P-type asteroid has a rotation period of 7.8 hours. It was named after the discoverer's daughter, Marie-Louise Kaiser.

Orbit and classification

Marlu is a non-family asteroid of the main belt's background population when applying the hierarchical clustering method to its proper orbital elements. It orbits the Sun in the outer asteroid belt at a distance of 2.4–3.8 AU once every 5 years and 6 months (2,003 days; semi-major axis of 3.11 AU). Its orbit has an eccentricity of 0.24 and an inclination of 17° with respect to the ecliptic. The body's observation arc begins at Heidelberg on 12 September 1915, more than two years after its official discovery observation.

Naming

Franz Kaiser named this minor planet after his daughter, the physician Marie-Louise Kaiser. The discoverer also named another asteroid, 743 Eugenisis, in honor of his daughter. The  was mentioned in The Names of the Minor Planets by Paul Herget in 1955 ().

Physical characteristics

In the Tholen classification, Marlu is a dark and primitive P-type asteroid, while it is an X-type and P-type asteroid, in the Tholen- and SMASS-like taxonomic variant of the Small Solar System Objects Spectroscopic Survey (S3OS2), respectively. P-type asteroids are common in the outer asteroid belt and among the Jupiter trojan population. In the Moving Object Catalog (MOC) of the Sloan Digital Sky Survey, however, Marlu is a common carbonaceous C-type asteroid.

Rotation period and poles

In September 1981, a rotational lightcurve of Marlu was obtained from photometric observations by American astronomer Alan W. Harris. Lightcurve analysis gave a rotation period of  hours with a brightness variation of  magnitude (). In October 2014, Daniel A. Klinglesmith confirmed the exact same period of () hours with an amplitude of () magnitude ().

In 2016, a modeled lightcurve gave a concurring sidereal period of  hours using data from a large collaboration of individual observers. The study also determined two spin axes of (202.0°, −66.0°) and (64.0°, −27.0°) in ecliptic coordinates (λ, β).

Diameter and albedo

According to the surveys carried out by the Infrared Astronomical Satellite IRAS, the Japanese Akari satellite, and the NEOWISE mission of NASA's Wide-field Infrared Survey Explorer (WISE), Marlu measures (), () and () kilometers in diameter and its surface has a low albedo of ), () and (), respectively.

The Collaborative Asteroid Lightcurve Link adopts an albedo of 0.0431 and derives a diameter of 69.87 kilometers based on an absolute magnitude of 9.81. The WISE-team also published two alternative mean-diameters of () and () with a corresponding albedo of () and (). An asteroid occultation on 1 May 1985, gave a best-fit ellipse dimension of () with an intermediate quality rating of 2. These timed observations are taken when the asteroid passes in front of a distant star.

References

External links
 Lightcurve Database Query (LCDB), at www.minorplanet.info
 Dictionary of Minor Planet Names, Google books
 Discovery Circumstances: Numbered Minor Planets (1)-(5000) – Minor Planet Center

000746
Discoveries by Franz Kaiser
Named minor planets
000746
19130301

redpajama_set_name: RedPajamaWikipedia


why would one warm up an engine by pulsing the gas? Its fuel injected and controlled by ecu, not like the old carbs with distributors. Now those, during cold morning starts, you need to blip the gas several times to get the engine running.
For most fuel injected cars - this is not necessary. But for a tuned track car - possible that the cams, ECU will not allow the car to idle well. Also you have a larger capacity cooling system, oil coolers, plugs that don't self clean very well, etc. Carbs are the same way - you don't really have to pulse the gas to get them to warm up - even on a drag or road track car - they will just idle high until you get them to temps. I'm guessing this is both a idle issue (keep it from stalling) and to show off to the crowd/journalists a bit.
Even the stock BMW M3 itself is known to be a grouch from a cold start. One could only imagine how something like the GTR would act when started from a dead cold - probably be very much like this vid.
Maybe because it will not idle until warmed up?
Seems like they are just trying to keep it running and the guy at the gas or the linkage itself is too sensitive.
It may not have a cold cycle on the engine.


text:
Top Five World's Longest Flights by Distance In 2021
Kerwin McKenzie October 26, 2021 Airlines 2 Comments
Top Five World's Longest Flights by Distance
It's October 2021 and travel is starting to pick up again. Yeah! That means, it's time to revise the list of the world's longest flights by distance. I've been fortunate to take many long flights in my time on this planet. Yes, I'm a glutton for punishment, but on long flights, I get to think and plan a lot. Plus I love people watching and its interesting how each of us handle these flights differently.
With Australia and Auckland closed to visitors at the moment, some fo the longest flights like Doha to Auckland and Dubai to Auckland, Houston to Sydney and Dallas to Sydney are no longer operating. Thus other routes have moved up in the line up.
In January 2020, I was able to take Singapore Airline's A350-900ULR from Newark (EWR) to Singapore (SIN). It was an amazing flight in a two-cabin configuration, Business Class and Economy Class; Premium Economy Class I guess. I was able to use my five year saved miles to take the trip.
Business Class on Singapore Airlines
I also wrote a piece about the 16 world's longest flights on Cruisinaltitude.com so you can take a look there, for reference as to how far we've come once more. But here I wanted to tell you where to find the top five.
It is interesting that the Airbus A350 is at the forefront of the aircraft being used since the Airbus A380s and the Boeing 747-400s are no longer flying for most airlines.
Singapore Airlines (SQ) Airbus A380 Taking off from London-Heathrow (LHR)
Here are the top five:
1. Singapore (SIN) to New York-JFK (JFK) [SQ23/24]
Airline: Singapore Airlines (SQ)
Aircraft: Airbus A350-900 (359)
Distance: 9,542 miles/15,356 kilometers
Duration: 18:50 [JFK to SIN) and 18:40 [SIN to JFK]
Frequency: Daily
Singapore Airlines (SQ) A350-900ULR Business Class Cabin
Singapore Airlines (SQ) A350-900ULR Premium Economy Class Cabin
2. Singapore (SIN) to Los Angeles, CA USA (LAX) [SQ37/38]
Duration: 17:10 [LAX to SIN) and 15:55 [SIN to LAX]
Singapore Airlines Airbus A250-900ULR in Newark Airport (EWR)
3. Darwin, Australia (DRW) to London-Heathrow, United Kingdom (LHR) [QF109/110 | QF1/2]
Airline: Qantas (QF)
Aircraft: Boeing 787-9 (789)
Duration: 17:25 [DRW to LHR) and 16:25 [LHR to DRW]
Frequency: Two to Three Times Weekly
Qantas Boeing 787-8 (compliments of Qantas.com)
4. Manila, Philippines (MNL) to New York-JFK, NY USA (JFK) [PR127/126]
Airline: Philippine Airlines (PR)
Aircraft: Airbus 350-900 (350)
Duration: 15:15 [MNL to JFK) and 17:00 [JFK to MNL]
Frequency: Twice Weekly
Philippine Airlines Airbus A350-900 (compliments of Philippine Airlines)
5. Singapore (SIN) to San Francisco, CA USA (SFO) [SQ33/34]
Duration: 17:35 [SFO to SIN) and 14:40 [SIN to SFO]
Premium Economy Class on Singapore Airlines
5. Atlanta, GA USA (ATL) to Johannesburg, South Africa (JNB) [DL201/200]
Airline: Delta Air Lines (DL)
Duration: 16:20 [JNB to ATL) and 15:00 [ATL to JNB]
Frequency: Three Times Weekly
Have you taken any of these top five flights? Or any other long flights for that matter. Any tips for sustaining these flights? Leave a comment below and share with your fellow passriders.
AircraftAirlinesLongest Flight
Alex Keleman
I was able to take Singapore Airline's A350-900ULR from Newark (EWR) to Singapore (SIN) back in Sept 2019 and was in Premium Economy. I think I paid a extra $100 and got a single widow seat . Rows 40, 41 and 42 are single seats and are worth the upgrade. I think going over was about 18 hours 45 minutes. The flight was outstanding, the food, the seat, and the crew. Plan on doing it again in 2022 EWR-SIN-BKK if COVID calms down.
Kerwin McKenzie
Sounds good Alex.
I've added a photo of those seats you mentioned. I want to do it again and take the Premium Economy this time. They have some really good fares now.
Kerwin.


text:
Aptar CSP Technologies Earns ISO 13485 Certification
Recognition comes as the company prepares to commercialize a new medical device using its proprietary 3-Phase Activ-Polymer platform technology.
Hermetic Solutions Group
Simbex
DDL Inc.
Hobson & Motzer Inc.
Aptar CSP Technologies 06.14.21
Aptar CSP Technologies, a leader in material science and active packaging solutions (part of AptarGroup, Inc.), earned the International Organization for Standardization ISO 13485:2016 certification for both its U.S. and France-based plants. These internationally recognized standards set the requirements for a quality management system specific to the medical device industry.
An ISO 13485-approved site ensures consistent design, development, production, installation, and delivery of medical devices that are safe for their intended purpose. The ISO certifications come at a critical time as the company is currently preparing for commercialization of a new medical device using its proprietary 3-Phase Activ-Polymer platform technology.
In addition to this imminent medical device commercialization, the company's patented Activ-Film technology is currently integrated into implantable medical devices to control the microclimate of the device, extending use life and improving performance. The technology can also be engineered as a critical component of the overall delivery system.
"With this ISO certification, we are well-positioned to serve our current and future medical device partners," said Badre Hammond, vice president of Commercial Operations for Aptar CSP Technologies. "As we broaden our portfolio of offerings, we continue to invest in our quality systems and operational excellence to support continued growth."
Nissha Medical Technologies
Anjon Medical Technologies
Accu-Tube Appoints Matthew Haddle as CEO
Turner Imaging Systems Announces International Expansion


text:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ddd"
    >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="44dp"
        android:background="#888"
        android:gravity="center_vertical"
        >

        <View
            android:layout_marginLeft="10dp"
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:background="@drawable/message"
            />

        <TextView android:id="@+id/textview_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="@string/send_message"
            android:textColor="#fff"
            android:textSize="18dp"
            />

    </LinearLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="#ada"
        >

        <TextView android:id="@+id/textview_receive_account"
            android:layout_width="wrap_content"
            android:layout_height="36dp"
            android:text="@string/receive_account"
            android:textColor="#000"
            android:textSize="18dp"
            android:layout_marginTop="4dp"
            />

        <Button android:id="@+id/btn_choose_des"
            android:layout_width="80dp"
            android:layout_height="40dp"
            android:textSize="15dp"
            android:gravity="center"
            android:text="@string/choose"
            android:layout_alignParentRight="true"
            />

        <EditText android:id="@+id/edittext_receive_account"
            android:layout_marginTop="3dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"
            android:textSize="16dp"
            android:layout_below="@+id/textview_receive_account"
            />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="44dp"
            android:gravity="center"
            android:text="@string/message"
            android:textColor="#000"
            android:textSize="18dp"
            android:layout_marginTop="2dp"
            />

        <View
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="44dp"
            />

        <CheckBox
            android:id="@+id/check_encrypt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:gravity="center_vertical"
            android:textColor="#f00"
            android:textSize="14dp"
            android:text="@string/encrypt_message"
            />

    </LinearLayout>

    <EditText android:id="@+id/edittext_message"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="5dp"
        android:textSize="16dp"
        android:hint="@string/message"
        android:inputType="textMultiLine"
        />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:background="#daa"
        >

        <TextView android:id="@+id/textview_send_account"
            android:layout_width="wrap_content"
            android:layout_height="36dp"
            android:text="@string/send_account"
            android:textColor="#000"
            android:textSize="18dp"
            android:layout_marginTop="4dp"
            />

        <Button android:id="@+id/btn_choose_src"
            android:layout_width="80dp"
            android:layout_height="40dp"
            android:textSize="15dp"
            android:gravity="center"
            android:text="@string/choose"
            android:layout_alignParentRight="true"
            />

        <EditText android:id="@+id/edittext_send_account"
            android:layout_marginTop="3dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine"
            android:textSize="16dp"
            android:layout_below="@+id/textview_send_account"
            />

        <TextView android:id="@+id/textview_secret_input"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/secret_phrase"
            android:textColor="#000"
            android:textSize="18dp"
            android:layout_marginTop="5dp"
            android:layout_below="@+id/edittext_send_account"
            />

        <EditText android:id="@+id/edittext_secret_input"
            android:layout_marginTop="5dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textMultiLine|textPassword"
            android:textSize="16dp"
            android:layout_below="@+id/textview_secret_input"
            />

        <CheckBox
            android:id="@+id/check_visable"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="#000"
            android:textSize="14dp"
            android:text="@string/visable"
            android:layout_below="@+id/edittext_secret_input"
            />

    </RelativeLayout>

    <Button android:id="@+id/btn_send"
        android:layout_marginTop="5dp"
        android:layout_width="160dp"
        android:layout_height="44dp"
        android:textSize="16dp"
        android:text="@string/send"
        />

</LinearLayout>

</ScrollView>


text:
[Case Brief] The court can review the Arbitral award only in cases of fraud, bias by the arbitrator or in violation of natural justice.
Aditya Gor
Alternative Dispute Resolution / Arbitration
[tabgroup_vertical title=""]
[tab title="Brief Facts and Procedural History"]
On 20.3.1991, respondent invited tender for the execution of certain work in connection with new goods terminal yard of South-Eastern Railway in Howrah District. The appellant submitted his application which was successfully accepted by the issuance of a letter of acceptance. In this connection, an agreement was entered into between both the parties. This agreement entered into contained 'General Conditions of the Contract' clause in it. The GCC, governing the contract between both the parties contained a clause which prohibited the payment of interest. (Para 4, 5 and 16)
Certain disputes arose between both the parties and the respondent demanded the termination of the contract. Subsequently, the appellant demanded that the dispute should be referred to the arbitral tribunal. An application was filed under section 11(6) of the 1996 Act to appoint an arbitrator. The General Manager of South-eastern Railway was appointed as an arbitrator and on 20.09.2006 he passed an appropriate award. This award was challenged by the respondent under section 34 of the Arbitration and Conciliation act, 1996, before the learned single judge of the High Court. The Learned single judge dismissed the application. Further, an appeal was preferred before the Division bench wherein the respondent contended that the appellant had issued "No claims certificate" and therefore forfeited his right for any claim against him. The Division bench thus set aside the order of the learned single bench. The present appeal is before the Supreme Court of India. (Para 1, 6 & 7)
[tab title="Issue before the court"]
Issues before the Court:
Whether the Division Bench was justified in considering the arbitrability of the dispute for the first time in the appeal?
Whether the Arbitral Tribunal was justified in awarding interest on the delayed payments in favour of the appellant?
[tab title="Arguments advanced by the counsel"]
Arguments of the appellant:
The issue relating to "No Claims Certificate" was earlier never raised before the arbitral tribunal or before the learned single judge. It was for the first time raised before the division bench of the high court which is not acceptable since such issues are to be raised during the prior proceedings only.
The award passed by the tribunal is worth appreciating. The tribunal had correctly granted pre-award and pendent lite interest till the realization of the award amount.
Arguments of the respondent:
Since there exist "No Claims Certificate" the appellant as not right to make any claim except for the security deposit.
There was no arbitral dispute between the parties and thus the claim is not maintainable.
The appellant was not entitled to any interest.
[tab title="Ratio of the judgement"]
Ratio of the author of the judgement:
With regards to the first issue the court held that the courts can review the arbitral award only in cases of fraud or bias by the arbitrators or in violation of natural justice, etc. and not otherwise. In the present case, since no such occurrence was depicted, the division bench was not justified in considering the arbitrability of the dispute particularly when no such claim was raised in the earlier proceedings. (Para 10 to 14)
With regards to the second question, a reference has been made to section 31(7)(a) of the 1996 act which provides for payment of interest. According to this section, if the agreement prohibits an award of interest then the arbitrator cannot award interest for the said period. Since in the present case, such agreement was present such an award was held not maintainable. (Para 15 to 22)
[tab title="Decision Held"]
The appeal was partly allowed and disposed of in the aforesaid terms.
[/tabgroup_vertical]
Tags: arbitation act, arbitral tribunal, arbitration, arbitrator, award, challenge, conciliation act, contract, dispute, general clauses, section 11(6), section 34, section 37, tender
Previous PostSanjay Khanderao Wadane v/s State of Maharashtra, 2017
Next Post[Case Brief] State of Himachal Pradesh v/s Raj Kumar, 2018
Even though there was a pending criminal proceeding, it would cause no prejudice to the parties if the matter were referred to arbitration.
[Case Brief] Swiss Timing Limited v/s Organising Committee, Commonwealth Games
World Sports Group (Mauritius) Ltd vs MSM Satellite(Singapore) Pte., (2014) 11 SCC 639
A procedural order needs to be differentiated from an interim award as only the latter can be challenged in the court of law.


Your iPhone's value is about to tank. Make the most out of it today at Swappa!
On today's Pocketnow Daily, Samsung's pre-order numbers for the Galaxy Note 9 seem to be a big upgrade from the S9, S9+ and the Note 8. We get word of six variants for the Apple Watch Series 4 on the way. It looks like Huawei is going to release new color options for their P20 line-up this IFA. Then we talk about the Google Pixel 2's lag issues which could mean exchanges for some customers. We end today's show with Flash Deals from Sprint on iPhones and Galaxies.


There is a high number or artist that play music professionally. The number is expected to grow given the fact on how easy technology allows one to make music now in real time. There are many apps that you can use to make beats and instruments in the market. It is paramount to learn more about this.
Note that an example you can use is the garage band. What you should note is that this is one of the most popular software. This was something that was past computer program and if this is the case, then you should note that you can have it at the palm of your hand. Some of the pointers you should note is that with the product, then you will find that the making of the music is something easy.
Should this be the case, then you should note that you can be able to make use of the DJ 5 studio. Some of the pointers that you should note is that in case you are contemplating of making groove music then you should note that you should familiarize yourself with this app. By using it, then you should note that this is something which can be used in making any beat.
The thing that you should note is that when you are dealing with this, then it is possible for you to use the music maker jam. Some of the things that you should note is that in case you are starting your music career, then you should note that this is something easy to use. Some of the things to discover more is that it can be used to offer solid vocals within no time. What you should note is that this is something that will offer you with the freedom to be creative.
The other program that you can use is the hip-hop pads. The best part about it is that this is an app which is easy to use. if this is the case, then you will find that you will have fun using it.
The thing that you should note is that there are many apps which you can use to make the beat. What you should note is that most of them are simple to use. If this is the case, then you are bound to get the best.


text:
Ross County may host anti-drug pilot program
Caitlin Turner
cturner3@chillicothegazette.com
CHILLICOTHE – A plan to reform the approach to Ross County's drug abuse issues may become a pilot program for the state.
Mayor Jack Everson presented the Drug Abuse Reduction Task Force's plan to representatives from Gov. John Kasich's administration this week asking the state for a pooling of available resources in an attempt to deal with drug issues in Ross County and possibly apply the DART initiative to other areas of Ohio.
"I think it went really well," Everson said. "But this is still very preliminary."
The task force believes the traditional 12-step program for recovering addicts fails to address all types of addictions and deliver the best treatment options for them.
"The programs that we have in place for the 12-step program can work," Everson said. "They just need to be enhanced."
Instead of trying to apply the 12-step program to all addicts, DART asks for programming centered around each level of addiction. Those levels were broken down into seven stages, including medical exposure, pre-experimentation, experimentation, functional addicts, people who are initiated into drug use, commitment and dysfunction.
"We want resources from the state to help break down treatment options and find out when they are applicable for a certain person," Everson said.
With the classification of the seven levels of addiction, DART hopes to help the court system sentence offenders with a focus on treatment instead of punishment. Possible impact of those already in prison could result from the plan as well.
While the task force admits the plan is not totally developed, it asks for a "pooling of state resources to re-direct the collective effort toward something new and something that can work better for the people we so desperately need to recover back into mainstream society."
Everson said Kasich's office was receptive to the task force's preliminary plan, but the "devil is in the details" when it comes to coming up with resources and possible funding.
"This is a constant moving target," Everson said. "It could one day be not just a model for the state, but a model for the nation."


Much like last week, as we reach the closing stages of the project progress is solid in a number of key areas. The cooling system has again taken great strides towards completion, and many rack enclosures are now in the data hall ready for building out the first pods.
@Tom We are a little behind on posts at the moment, as it takes a while to process all the photos and write up as appropriate. We will have something new up by the end of the week.


text:
Q: How to use fsockopen (or compatible) with SOCKS proxies in PHP? I've coded a non-evil, non-spammy IRC bot in PHP, using fsockopen and related functions. It works. However, the problem is that I need to support proxies (preferably SOCKS5, but HTTP is also OK if that is somehow easier, which I doubt). This is not supported by fsockopen.
I've gone through all search results for "PHP fsockopen proxy" and related queries. I know of all the things that don't work, so please don't link to one of them.
The PHP manual page for fsockopen mentions the function stream_socket_client() as

similar but provides a richer set of options, including non-blocking connection and the ability to provide a stream context.

This sounded promising at first, supposedly allowing me to just replace the fsockopen call with stream_socket_client and specify a proxy, maybe via a "stream context"... but it doesn't. Or does it? I'm very confused by the manual.
Please note that it must be a PHP code solution; I cannot pay for "Proxifier" or use any other external software to "wrap around" this.
All the things I've tried seem to always result in me getting a bunch of empty output from the server, and then the socket is forcefully closed. Note that the proxy I'm trying with works when I use HexChat (a normal IRC client), with the same network, so it's not the proxies themselves that are at fault.

A: As far as I know there is no default option to set a SOCKS or HTTP proxy for fsockopen or stream_socket_client (we could create a context and set a proxy in HTTP options, but that doesn't apply to stream_socket_client). However we can establish a connection manually.
Connecting to HTTP proxies is quite simple:

*

*The client connects to the proxy server and submits a CONNECT request.

*The server responds 200 if the request is accepted.

*The server then proxies all requests between the client and destination host.

<!- -!>
function connect_to_http_proxy($host, $port, $destination) {
    $fp = fsockopen($host, $port, $errno, $errstr);
    if ($errno == 0) {
        $connect = "CONNECT $destination HTTP/1.1\r\n\r\n";
        fwrite($fp, $connect);
        $rsp = fread($fp, 1024);
        if (preg_match('/^HTTP\/\d\.\d 200/', $rsp) == 1) {
            return $fp;
        }
        echo "Request denied, $rsp\n";
        return false;
    }
    echo "Connection failed, $errno, $errstr\n";
    return false;
}

This function returns a file pointer resource if the connection is successful, else FALSE. We can use that resource to communicate with the destination host.
$proxy = "138.204.48.233";
$port = 8080;
$destination = "api.ipify.org:80";
$fp = connect_to_http_proxy($proxy, $port, $destination);
if ($fp) {
    fwrite($fp, "GET /?format=json HTTP/1.1\r\nHost: $destination\r\n\r\n");
    echo fread($fp, 1024);
    fclose($fp);
}

The communication protocol for SOCKS5 proxies is a little more complex:

*

*The client connects to the proxy server and sends (at least) three bytes: The first byte is the SOCKS version,   the second is the number of authentication methods, the next byte(s) is the authentication method(s).

*The server responds with two bytes, the SOCKS version and the selected authentication method.

*The client requests a connection to the destination host. The request contains the SOCKS version, followed by the command (CONNECT in this case), followed by a null byte. The fourth byte specifies the address type, and is followed by the address and port.

*The server finally sends ten bytes (or seven or twenty-two, depending on the destination address type). The second byte contains the status and it should be zero, if the request is successful.

*The server proxies all requests.

<!- -!>
More details: SOCKS Protocol Version 5.
function connect_to_socks5_proxy($host, $port, $destination) {
    $fp = fsockopen($host, $port, $errno, $errstr);
    if ($errno == 0) {
        fwrite($fp, "\05\01\00");
        $rsp = fread($fp, 2);
        if ($rsp === "\05\00" ) {
            list($host, $port) = explode(":", $destination);
            $host = gethostbyname($host); //not required if $host is an IP
            $req = "\05\01\00\01" . inet_pton($host) . pack("n", $port);
            fwrite($fp, $req);
            $rsp = fread($fp, 10);
            if ($rsp[1] === "\00") {
                return $fp;
            }
            echo "Request denied, status: " . ord($rsp[1]) . "\n";
            return false;
        }
        echo "Request denied\n";
        return false;
    }
    echo "Connection failed, $errno, $errstr\n";
    return false;
}

This function works the same way as connect_to_http_proxy. Although both functions are tested, it would be best to use a library; the code is provided mostly for educational purposes.

SSL support and authentication.
We can't create an SSL connection with fsockopen using the ssl:// or tls:// protocol, because that would attempt to create an SSL connection with the proxy server, not the destination host. But it is possible to enable SSL with stream_socket_enable_crypto and create a secure communication channel with the destination, after the connenection with the proxy server has been established. This requires to disable peer verification, which can be done with stream_socket_client using a custom context. Note that disabling peer verification may be a security issue.
For HTTP proxies we can add authentication with the Proxy-Authenticate header. The value of this header is the authentication type, followed by the username and password, base64 encoded (Basic Authentication).
For SOCKS5 proxies the authentication process is - again - more complex. It seems we have to change the authentication code fron 0x00 (NO AUTHENTICATION REQUIRED) to 0x02 (USERNAME/PASSWORD authentication). It is not clear to me how to create a request with the authentication values, so I can not provide an example.
function connect_to_http_proxy($host, $port, $destination, $creds=null) {
    $context = stream_context_create(
        ['ssl'=> ['verify_peer'=> false, 'verify_peer_name'=> false]]
    );
    $soc = stream_socket_client(
        "tcp://$host:$port", $errno, $errstr, 20,
        STREAM_CLIENT_CONNECT, $context
    );
    if ($errno == 0) {
        $auth = $creds ? "Proxy-Authorization: Basic ".base64_encode($creds)."\r\n": "";
        $connect = "CONNECT $destination HTTP/1.1\r\n$auth\r\n";
        fwrite($soc, $connect);
        $rsp = fread($soc, 1024);
        if (preg_match('/^HTTP\/\d\.\d 200/', $rsp) == 1) {
            return $soc;
        }
        echo "Request denied, $rsp\n";
        return false;
    }
    echo "Connection failed, $errno, $errstr\n";
    return false;
}

$host = "proxy IP";
$port = "proxy port";
$destination = "chat.freenode.net:6697";
$credentials = "user:pass";
$soc = connect_to_http_proxy($host, $port, $destination, $credentials);
if ($soc) {
    stream_socket_enable_crypto($soc, true, STREAM_CRYPTO_METHOD_ANY_CLIENT);
    fwrite($soc,"USER test\nNICK test\n");
    echo fread($soc, 1024);
    fclose($soc);
}

redpajama_set_name: RedPajamaStackExchange


text:
Calmeilles – miejscowość i gmina we Francji, w regionie Oksytania, w departamencie Pireneje Wschodnie.

Według danych na rok 1990 gminę zamieszkiwało 41 osób, a gęstość zaludnienia wynosiła 3 osoby/km² (wśród 1545 gmin Langwedocji-Roussillon Calmeilles plasuje się na 859. miejscu pod względem liczby ludności, natomiast pod względem powierzchni na miejscu 580.).

Zabytki
Zabytki na terenie gminy posiadające status monument historique:
 kościół św. Feliksa (Église Saint-Félix de Calmeilles)

Przypisy

Bibliografia

Miejscowości w departamencie Pireneje Wschodnie


text:
Хижняково (), село,
Резниковский сельский совет,
Волчанский район,
Харьковская область.

Код КОАТУУ — 6321686808. Население по переписи 2001 года составляет 0 человек.

Географическое положение
Село Хижняково находится в верховьях балки Бударский Яр, по которой протекает пересыхающий ручей, этот ручей через 11 км впадает в реку Волчья, на расстоянии в 2 км расположены сёла Лошаково, Лукашово, Резниково.

История
 1694 - дата основания.

Экономика
 В селе есть молочно-товарная ферма.

Ссылки
 Сайт Верховной рады Украины

Населённые пункты Волчанского района


text:
Süß, Süss oder Suess steht für:
 Süß (Familienname) (Süss, Suess)
 Süß (Einheit), altes Salzmaß
 Suess-Effekt, siehe Radiokarbonmethode

süß steht für:
 süß, Beschreibung für ein Erdöl mit einem Schwefelgehalt unter 0,5 %
 süß, Geschmacksangabe bei Wein, siehe Geschmacksangabe (Wein)#Wein
 süß, Grundqualität des Geschmacks, siehe Gustatorische Wahrnehmung und Süßkraft
 süß; umgangssprachlich die Bewertung "niedlich", siehe Kindchenschema

Süß, Sueß oder Suess ist der Name folgender

Orte:
 Süß (Hahnbach), Gemeindeteil von Markt Hahnbach in Landkreis Amberg-Sulzbach, Bayern
 Süß (Nentershausen), Gemeindeteil von Nentershausen in Hessen, Deutschland
 Sueß (Gemeinde Bad Ischl), Siedlung in der Gemeinde Bad Ischl, Oberösterreich

astronomischer Objekte:
 Suess (Marskrater)
 Suess (Mondkrater)
 (12002) Suess, Asteroid

geografischer Objekte:
 Suessgletscher, Gletscher im Viktorialand, Antarktika
 Suess Land, Halbinsel in Nordostgrönland
 Mount Suess, Berg im Viktorialand, Antarktika

Siehe auch:

 Jud Süß
 Süs
 Süße
 Süsser
 Villa Suess


Companies are increasingly expected to reach out beyond their traditional constituencies of shareholders, employees, and regulators to make a positive social and environmental impact.
From Scottish Power's work with local high schools to improve job prospects of low academic achievers to Shell's global partnership with environmental non-profit Living Earth, there are many great examples of community engagement from which to draw inspiration.
greater attractiveness as a potential employer.
Truly effective community engagement involves complex decisions about who to work with (or through), how to engage, and what likely result to achieve. NBS has reviewed more than 200 academic and practitioner sources to arrive at the following suggestions for success.
1. First define your community.
Assess geography, interaction, and/or identity.
Identity and issues – people who might share your beliefs, values and experiences, such as environmental activists or cancer survivors.
Managers should also try to identify who in the community has formal or informal authority, and whether the community has the skills or resources to participate in engagement. It may be a good idea to start with someone who has expressed concern, but it is also important to think about those whose voices are not usually heard. Whoever you eventually choose to engage with, a transparent community identification process can help to build goodwill and trust.
2. Decide how to engage.
Give back, build bridges, and/or change society.
Our study revealed three main strategies for community engagement.
Transformational – or "changing society" through deep interactions and integration with strategic community partners and joint projects (e.g. joint project management, conflict resolution and strategic partnerships).
The first two approaches – though less ambitious than the third – can be highly effective and are the most common. Our key conclusion is that companies should use the right method to fit with their own strategic objectives, mixing and matching types of activity as appropriate.
Common pitfalls include attempting to cultivate too many different transformational partnerships (which could lead to overload in your community engagement team) or talking a "changing society" talk while only pushing out one-way corporate communications (which might lead to justifiable community frustration).
Balance quantitative and qualitative indicators.
Evaluation tools should consist of a balanced mix of quantitative and qualitative indicators capturing the input, output and outcomes of engagement – aligned with the firm's objectives. The process should measure benefits to the community (e.g. money donated, time given by employee volunteers, number of schools visited, skills developed and practical help with addressing social problems), as well as benefits to the firm.
Sometimes the very act of gathering data and reporting can bring benefits, such as employee awareness of social issues and stakeholder awareness of the company and its engagement. However, only truly transformational engagement will maximise benefits for both parties – in the form of shared ownership of problems and solutions, shared accountability and rich relationships.
Whatever the outcome and the benefits, evaluation should serve as the basis for transparent communication, improvements to existing activities, and guidance for future action. Only long-term engagement will bring long-term benefit.
This briefing is designed to help executives, directors, and leaders in community relations, public relations, and strategic partnerships. It presents a useful guide for identifying stakeholders, planning how and why to engage them, and ultimately developing community engagement strategy.
The briefing is an extension of the Network for Business Sustainability's systematic review of the body of research on stakeholder engagement.


I have been absent from 99D for couple of years busy with running a print and web design studio. Recently I decided to start competing here. I like the concept and I like the suspense while waiting to see how is your design competing with the others. Another interest for my presence here is if possible to find a clients to establish long term business relationship. So be free to contact me if you like my work. What I promise is fast response, high quality service, diligence and responsibility.
"Great work - as usual!"
"Nice work! Very good communication"
"Excellent design, with timely completion. Thanks!"
"As always, quick and fast delivery, hardworking person. Creative and have many great suggestions on details. Very proactive, and most of all awesome work ethic and fantastic warm-hearted personality. For sure will work with him again. "
"All are good! Superb! :)"
"Excellent work as usual. Would recommend 100%. Very responsive and reliable. "
"I cannot recommend working with RasterGraphics highly enough. I had a design contest for a logo and website. RasterGraphics had excellent submissions and would respond immediately when I asked for revisions and alternate versions. On several occasions, ..."
"Excellent attention to detail and great communication. "
"great design work - project was completed on time!"
"Excellent designer with very high standards!"
"Worked with him for multiple projects. He's my go-to guy on 99Designs."
"Sehr schnell auch im Verständnis trotz der Herkunft aus unterschiedlichen Ländern, sehr flexibel, sehr service orientiert. Können wir nur wärmstens weiterempfehlen. Very flexibel, very customer oriented, fast and a great understanding of what we need..."
"I am very happy with the work that was done. It was very easy to work with the designer, he responded well to my feedback along the way and the result was very good. I can easily recommend RasterGraphics."
"Rasteg is very creative and have different ideas through out the process, nice and smart guy, very professional and knowledgable at his field. For sure we will work again in the future.Highly recommended!"


text:
define(['./createWrapper', './replaceHolders', '../function/restParam'], function(createWrapper, replaceHolders, restParam) {

  /**
   * Creates a `_.partial` or `_.partialRight` function.
   *
   * @private
   * @param {boolean} flag The partial bit flag.
   * @returns {Function} Returns the new partial function.
   */
  function createPartial(flag) {
    var partialFunc = restParam(function(func, partials) {
      var holders = replaceHolders(partials, partialFunc.placeholder);
      return createWrapper(func, flag, null, partials, holders);
    });
    return partialFunc;
  }

  return createPartial;
});


3/25/2004 / By Dylan / In: Rough Drafts / Comments Off on Digital camera test suite.
More than you probably ever wanted to know about how to test digital cameras.
And still more about digital imaging tests, from Edmund Optics.


text:
Q: ThreeJS exportGLTF(scene) | GLB textures broken after export | Collada I am trying to export a collada scene with threejs using GLTFexporter from the browser, the scene renders perfectly with threejs in collada format but when I try to export a GLB file with GLTFExporter the textures look messed up and I think some maybe even missing.
I am working with a test file from the examples folder...
elf.dae and textures:
https://github.com/mrdoob/three.js/tree/38bf5f47a8c01a1d12d16a41b4097dc9ee31daad/examples/models/collada/elf
gltfExporter.parse(
    input,
    function ( result ) {

        if ( result instanceof ArrayBuffer ) {

            saveArrayBuffer( result, 'scene.glb' );

        } else {

            const output = JSON.stringify( result, null, 2 );
            console.log( output );
            saveString( output, 'scene.gltf' );

        }

    },
    function ( error ) {

        console.log( 'An error happened during parsing', error );

    },
    options
);

My application creates blobs for each file and texture in localStorage by name and then when it asks for the file URLModifier first checks if file exists in localStorage object and then redirects if file exists to the blobs URL.
Everything appears to work fine until I open the GLB file and view the export... You can see here that the file is rendered correctly in collada format...

But if I open the exported file in model-viewer this is the result...

Where am I going wrong? I think maybe I am not setting the correct inputs on gltfExporter, hoping someone can point me in the right direction.

A: Have you tried inverting the texture in the y-axis? I think this is set to true by default, but GLTF needs it to be false.
texture.flipY = false;
https://threejs.org/docs/?q=texture#api/en/textures/Texture.flipY