text:
https://soundcity.tv/category/shows/africa-rox/ 30% Weekly 2018-09-12 00:31
https://soundcity.tv/category/new-song/ben/ 30% Weekly 2017-03-07 17:28
https://soundcity.tv/category/shows/city-divas/ 30% Weekly 2017-08-11 01:51
https://soundcity.tv/category/daily-feature/ 30% Weekly 2017-05-17 14:08
https://soundcity.tv/category/exclusive/ 30% Weekly 2020-01-16 19:23
https://soundcity.tv/category/new-song/gh/ 30% Weekly 2019-11-02 01:35
https://soundcity.tv/category/news/ghana/ 30% Weekly 2019-05-14 01:54
https://soundcity.tv/category/new-song/ke/ 30% Weekly 2020-01-16 15:27
https://soundcity.tv/category/news/ken/ 30% Weekly 2019-11-15 18:54
https://soundcity.tv/category/lifestyle/ 30% Weekly 2019-11-15 18:48
https://soundcity.tv/category/lifestyle/movies/ 30% Weekly 2019-04-30 17:04
https://soundcity.tv/category/new-song/ 30% Weekly 2020-01-16 18:45
https://soundcity.tv/category/shows/my-music-i/ 30% Weekly 2019-09-15 11:01
https://soundcity.tv/category/new-song/mz/ 30% Weekly 2018-05-03 18:55
https://soundcity.tv/category/new-song/nam/ 30% Weekly 2018-07-24 15:41
https://soundcity.tv/category/news/ 30% Weekly 2020-01-20 11:38
https://soundcity.tv/category/opinion/ 30% Weekly 2020-01-16 15:45
https://soundcity.tv/category/podcast/ 30% Weekly 2019-11-15 10:15
https://soundcity.tv/category/radio/ 30% Weekly 2019-10-13 13:42
https://soundcity.tv/category/radio-schedule/ 30% Weekly 2018-03-10 03:38
https://soundcity.tv/category/shows/right-on-track/ 30% Weekly 2016-10-14 20:36
https://soundcity.tv/category/news/s-africa/ 30% Weekly 2019-06-20 16:03
https://soundcity.tv/category/new-song/sa/ 30% Weekly 2019-07-12 21:12
https://soundcity.tv/category/shows/ 30% Weekly 2019-09-22 18:41
https://soundcity.tv/category/new-song/sl/ 30% Weekly 2019-01-21 14:55
https://soundcity.tv/category/shows/soundcity-radio/ 30% Weekly 2019-04-10 16:34
https://soundcity.tv/category/shows/star-host/ 30% Weekly 2019-07-10 22:53
https://soundcity.tv/category/new-song/tg/ 30% Weekly 2018-07-16 18:06
https://soundcity.tv/category/themvps/ 30% Weekly 2020-01-20 11:38
https://soundcity.tv/category/shows/top-ten-east/ 30% Weekly 2017-05-03 22:21
https://soundcity.tv/category/shows/top-ten-nigeria/ 30% Weekly 2019-07-10 23:13
https://soundcity.tv/category/shows/top-ten-south/ 30% Weekly 2019-05-29 00:50
https://soundcity.tv/category/shows/top-ten-uk/ 30% Weekly 2017-05-18 12:52
https://soundcity.tv/category/shows/top-ten-us/ 30% Weekly 2017-10-04 02:31
https://soundcity.tv/category/shows/top-ten-west/ 30% Weekly 2018-10-04 01:37
https://soundcity.tv/category/tv-schedule/ 30% Weekly 2016-12-11 07:58
https://soundcity.tv/category/new-song/tz/ 30% Weekly 2020-01-16 15:05
https://soundcity.tv/category/news/tz-news/ 30% Weekly 2019-11-15 18:22
https://soundcity.tv/category/new-song/ug/ 30% Weekly 2019-04-14 18:20
https://soundcity.tv/category/news/uganda/ 30% Weekly 2020-01-16 15:11
https://soundcity.tv/category/underground/ 30% Weekly 2018-02-05 20:58
https://soundcity.tv/category/new-song/video/ 30% Weekly 2019-12-30 00:53
https://soundcity.tv/category/win/ 30% Weekly 2017-11-21 23:00
https://soundcity.tv/category/new-song/zim/ 30% Weekly 2018-04-02 01:21


text:
Myst's syntax is largely inspired by both Ruby and Elixir. The two primary goals of the syntax are minimal ambiguity and minimal punctuation. The meaning of a Myst expression should always be immediately clear, and the syntax should flow like the thought behind it.

Unlike Python, however, Myst does not aim to have a minimalistic _set_ of syntax. High-level constructs are provided to simplify the expression of complex thoughts.

## Comments

Comments in Myst are the same as pretty much every other modern language, using a hash character (`#`) to comment out everything until the next newline character.

```ruby
# This is a comment
#
# Blank comment lines are respected.
some_expression # now a comment
```

The comment syntax `#=>` should be used to show the expected result of an expression. For example:

```ruby
1+1 #=> 2
```

Note that this is purely convention, and is not enforced by the language in any way.

## Keywords

The following words are reserved in Myst for use by the language. Usage of a keyword outside of an expected location will result in a `KeywordError`. The meaning of these keywords is covered by sections later in this document.

```
and
begin
break
continue
def
else
end
ensure
if
or
require
rescue
return
unless
until
while
with
```

## Literals

Literals are representations of values that never change. Myst has literals for various primitive types, as well as a few literal constructs for collection types (lists, maps, etc.).

```ruby
# Integers
1
# Decimals (interpreted as floats)
1.0
# Strings are character sequences wrapped in double quotes. Every string
# literal represents a unique object.
"hi"
# Single quotes around a character are interpreted as a single character.
# Every character literal represents a unique object.
'hi'
# Symbols are prefixed with a colon. Symbols with the same name
# represent the same object.
:hi
# Boolean literals are always written in lowercase.
true
false
# The nil literal represents a single object with no value.
nil
```

Any character sequence that does not match a keyword or a literal structure is considered an identifier. Identifiers name variables, data types, and the casing of identifiers is used to show their intended usage. Identifiers must start with an alphabetic character or an underscore, and can be followed by any number of alphanumeric characters or underscores.

```ruby
# variables and functions should be written using snake_case.
x
var
multi_word_variable
_private_var
# acronyms and initialisms should be consolidated into a single group.
http_request
ssn

# type names should be written in UpperCamelCase.
Map
List
CustomDataType
# acronyms and initialisms should be written in all-caps.
HTTPServer
XMLElement

# non-type constants should be written in SCREAMING_CASE
CONFIG
WEBSITE_DOMAIN
API_VERSION
```

Identifiers that start with an uppercase letter are enforced to be constant. That is, they can only be assigned once. Attempting to re-assign a constant will result in a `ConstantReassignmentError`.

Identifiers can also be prefixed with modifiers that affect their meaning in some contexts. These will be covered later on in this document, but the naming rule for variables and functions should be applied for them.

## Collection Literals

Collection literals are used to build collection objects without having to name the type of the collection. Elements in a collection are separated by commas, and can be distributed across multiple lines as long as each line ends with a comma.

```ruby
# Lists are created by listing expressions in square brackets.
[1, 2, 3]
# Lists can be arbitrarily nested, and contain values of any type.
[1, "hello", [:nested, true], nil]
# Insert an existing list into another using a splat.
list1 = [1, 2, 3]
list2 = [0, *list1, 4] #=> [0, 1, 2, 3, 4]

# Maps are created by specifying keys-value pairs in curly brackets.
# By default, keys are symbols, with the prefix colon becoming a suffix.
{key: value, another: "hello"}
# To use a key with a different type, or to interpret the key name from
# an expression, wrap the key with angle brackets:
a = :variable
{
  normal:     true,   # the key is the symbol `:normal`
  <"hello">:  'h',    # the key is the string "hello"
  <2*3>:      6,      # the key is the integer `6`
  <[1, 2]>:   :list,  # the key is the list [1, 2]
  <a>:        :var,   # the key is the symbol `:variable`
}
```

General convention for collection literals is to insert spaces between elements, but leave the outer elements directly touching the surrounding punctuation. This particularly helps disambiguate Map literals from blocks, which can also use the curly bracket syntax. For multi-line collection literals, every element should be on its own line, and every line should be indented from the surrounding punctuation by one indentation level.

Multi-line Map literals with multiple keys should left-align their values for easier mental scanning.

## Operations

Operations are expressions that with one or two operands and an operator. The operands are then evaluated together using the operator to create a result. The precedence and semantics of operations follow [C-style operator precedence](https://en.wikipedia.org/wiki/Order_of_operations#Programming_languages) and standard mathematic precedence, however, only the subset of operations listed here are supported. Notably, these lack the bitwise operations. Assignment operations are covered later on.

```ruby
# Logical operations
true && false #=> false
true || false #=> true
# Comparison operations
1 <  2        #=> true
1 >  2        #=> false
1 == 2        #=> false
1 != 2        #=> true
2 <= 2        #=> true
2 >= 2        #=> true
# Arithmetic operations
1 + 1         #=> 2
2 - 1         #=> 1
# Multiplicative operations
2 * 2         #=> 4
2 / 2         #=> 1
# Unary operations
+1            #=> 1
-1            #=> -1
!true         #=> false
```

Note that logical operations (`&&` and `||`) are short-circuiting, meaning if the result is determined by the first operand, the second operand will not be evaluated. To avoid this behavior, use the textual alternatives `and` and `or`, respectively.

Also note that the result of logical operations is not a boolean `true` or `false`, but rather the value that determined the result. For example, the expression `1 && 1` returns the integer `1`, and the expression `nil || "hello"` returns the string "hello", because integers and strings are truthy values.

## Assignments

Assignments in Myst come in two forms: simple assignment and pattern-matched assignment.

### Simple assignment

The first is simple assignment as it appears most common languages today, using a single equals sign (`=`) to assign the right-hand-side expression's value to the left-hand-side. Myst also supports conditional assignment, multiple assignment, and decompositional assignment, as shown in the examples below.

```ruby
# normal assignment
x = 2
array = [1, 2, 3]

# conditional assignment
# ||= only assigns if the left-hand-side is nil
x = nil
x ||= 5 #=> `x` is now 5.
x ||= 8 #=> `x` is still 5.
# &&= only assigns if the left-hand-side is NOT nil
x = nil
x &&= 5 #=> `x` is still nil.
x = 5
x &&= 2 #=> `x` is now 2.

# multiple assignment: assign multiple variables in one statement
a, b, c = 1, 2, 3

# decompositional assignment: assign list elements to separate variables
# this is equivalent to the multiple assignment above
a, b, c = *array
# to ignore unwanted elements, use an underscore
a, _, c = array

# variadic decomposition: collect multiple elements into one variable
head, *rest = [1, 2, 3] #=> `head` is 1, `rest` is [2, 3]
a, *_, c, d = [1, 2, 3, 4, 5] #=> `a` is 1, `c` is 4, `d` is 5
```

### Pattern-matched assignment

The second form of assignment is akin to the [match operator in Elixir](https://elixir-lang.org/getting-started/pattern-matching.html#the-match-operator), enabling structured decomposition and pattern-matching on arbitrary expressions.

Elixir _only_ implements pattern-matched assignment, and so its use of the single equal sign as the operator is straightforward, though not intuitive for many newcomers. Because of this, and because Myst supports both simple _and_ pattern-matched assignment, it distinguishes them by using a distinct "matching" operator (`=:`) to designate pattern-matched assignment.

Pattern-matched assignment creates an expectation that the value on the right-hand-side will conform to the structure expressed on the left-hand-side. If the structure is not matched, a `MatchFailure` is raised.

In some ways, pattern-matched assignment could be considered a misnomer, as an assignment is not actually required. In fact, pattern-matching is often useful for simply expecting a value out of an expression.

```ruby
# Pattern matching without assignment
a = 1
1 =: a #=> success, and execution continues
2 =: a #=> failure, so a `MatchFailure` is raised.
```

The above is essentially shorthand for the following:

```ruby
a = 1
raise MatchFailure.new(1, a) unless 1 == a
raise MatchFailure.new(2, 1) unless 2 == a
```

The more common use case of pattern matching, however, is destructuring collections into various parts. This is similar to multiple assignment, but also supports destructuring maps, and interpolation of values to match against.

```ruby
# Destructuring lists
array = [1, 2, 3]
[1, a, 3] =: array #=> success, `a` is set to 2
[*a, 3]   =: array #=> success, `a` is set to [1, 2]
[a, *_]   =: array #=> success, `a` is set to 1
[1, 2]    =: array #=> failure, array is not fully matched
# elements can be interpolated similar to map interpolation
x = 1
[<x>, *_] =: array #=> success, x is not assigned

# Destructuring maps
map = {a: 1, b: 3, <3>: "hello"}
# matching is not exhaustive, not all keys have to be matched
{a: a, b: b}  =: map #=> success
{c: 2}        =: map #=> failure, `c` is not a key in `map`
# key interpolation works like normal
x = 3
{<x>: a} =: map
# values can also be interpolated. Without the brackets, `x` would capture any
# value, rather than interpolating the value of `x` as the expected structure.
{b: <x>} =: map #=> equivalent to `{b: 3} =: map`
```

## Flow control

Myst's flow control structures are almost directly taken from Ruby. However, there are no discrete iteration constructs (e.g., `for..in` or `foreach`).

```ruby
# conditions as blocks
if a
  # only if `a` is truthy
else
  # only if the above does not run
end
unless b
  # only if `b` is falsey
end
# looping as a block
while a
  # do until `a` is falsey
end
until a
  # do as long as `a` is falsey
end
# conditions/looping as suffixes
a = 1 if 2 == 2
a = 1 unless 1 == 2
a += 1 while a < 10
a -= 1 until a < 10
# Jumping dispatch
case x
when y
  # do when y =: x
else
  # do when no `when` runs
end
# return immediately with optional arguments
return
return a, b
# break from the current scope with an optional value
break
break a, b
# skip the rest of the current scope, where the scope may execute again
next
next a, b
```

## Functions

Functions in Myst are an amalgamation of Ruby's parameter layout syntax with Elixir's pattern matching semantics and guard clauses mixed in. The general format of a parameter looks like this:

```ruby
# For normal positional parameters, use and equals sign after `name`.
pattern =: name = default : Type|guard_expression
# For named parameters a colon is used in place of the equals sign, with no
# space after the name.
pattern =: name: default : Type|guard_expression
```

By default, `name` is the only required field in a parameter definition. However, if `pattern` is given, `name` becomes optional. With that, all of the following are valid parameter formats:

```ruby
a
a=1
a: 1| > 0
1
[1, 2] =: numbers
{field: value} : Map
person|.age > 10
[head, *rest] =: list|.length > 2
```

Note that in order to use a guard expression, the parameter must include a `name` field. That is, a parameter definition like `1| > 0` is invalid, and will raise a `ParameterFormatException`

### Parameter layout
In general, parameters for a function are defined in the following order:

1. Required positional parameters
2. Optional positional parameters
3. Optional capture of remaining position parameters
4. Named parameters (optional and required)
5. Optional named parameters
6. Optional capture of remaining named parameters
7. Optional explicit block parameter

In code, using all of these argument types together would look like this:

```ruby
def func(positional, b=1, *args, named: 2, d:, **kwargs, &block); end
```

In the above function head, `args` will be a zero-or-more element list, collecting any remaining positional arguments after the first 2 have matched (`a` and `b`). `kwargs` will similarly be a Map of any named arguments that are not matched to any of the preceding parameters (`named` and `d`).

Additionally, `b` is an optional parameter. If it is not assigned a value by the function call, it will default to the value `1`. `named:` is also an optional parameter. If it is not assigned a value, it will default to `2`. Notice that the order of named parameters is not important; named parameters with default values may appear before required named parameters.

### Pattern matching

Function parameters also support the destructuring syntax used in pattern-matching assignment. In fact, all parameters in all functions are given their values using the matching operator, for functions that only name parameters and default values, this makes no real difference, as the left-hand-side is a catch-all variable expression. However, destructuring parameters in function heads can be extremely powerful.

```ruby
def func(0, [1, b], {a: a, <"hello">: 2}); end
```

This function matches a call with three positional arguments. The first element must be equal to `0`. The second must be a two-element list whose first element is equal to `1`, and the third must be a map with the keys `:a` and `"hello"`. The value of `:a` in the third argument is captured into the variable `a`, and the value of `"hello"` in the third argument must be equal to 2.

If any of these constraints are not met, the function call will raise a `FunctionMatchFailure`.

Pattern-matched arguments can also be explicitly pattern matched and captured as a whole using a matching operator in the function head:

```ruby
def func(0, [1, b], {a: a, <"hello">: 2} =: map); end
```

In this case, all of the constraints of the previous function head must be met, but the original value of the second argument will also be captured into `map`. The match operator (`=:`) is used to distinguish a pattern constraint from a default value, which uses a single equals sign (`=`). The semantics of the expression also match normal pattern-matching semantics, where any pattern is accepted and captured into the left-hand-side.

Note that because of this syntax, pattern-matching is only supported for positional arguments. However, this is only because a clean, unambiguous syntax for matching named arguments has not been found. If one arises, it will likely be accepted.

### Guard clauses

A unique syntax feature of Myst is infixed guard clauses. These are arbitrary expressions that constrain the values of parameters inside of the function. These clauses are expressed using a pipe character (`|`) between the parameter name and the expression. The parameter name will be syntactically copied to the beginning of the expression, so any binary expression or function call is a valid guard clause. For example:

```ruby
def func(a, b| < 1, c=1|.truthy?, d:|.not_nil?); end
```

This function head has three guard clauses. For the function to match, the second positional argument, `b`, must make the expression `b < 1` be truthy; the third, `c`, must make the expression `c.truthy?` evaluate as truthy, and the named argument `d` must make the expression `d.not_nil?` be truthy.

### Type restriction

A shorthand for type restriction on parameters is also available:

```ruby
def func(a=1 : Integer, b: "hello" : String|.length > 3); end
```

This shorthand essentially acts as a guard clause of `.is_a?(T)`, where `T` is the type that is given in the restriction. The function head above matches when the first argument (`a`) is an Integer value and `b` is a String value whose length is greater than 3. Both parameters also have default values that will be used only if the parameters are not provided. If a value is provided for the parameter, but does not meet the type restriction, a `FunctionMatchFailure` is still raised, rather than using the default parameter.

### Procs

A `Proc` is an anonymous function that can be defined anywhere, and called like a normal function with `()`. Proc definitions use a stab-arrow (`->`) operator to start their definition, followed by parameter declarations in parenthesis, then by a code block (`do...end` or `{...}`).

```ruby
proc1 = ->(a=1 : Integer| > 0, b : Integer) do; end
proc1(1, 2)
# Procs with no arguments still include the parenthesis
proc2 = ->() {}
proc2()
```

Note that this is nearly equivalent to defining a function with the standard `def` structure. The only difference is that the newly-defined function is not added to the current scope (when assigned to a variable, that variable will be assigned, but the function itself will not persist past that variable).

### Blocks as arguments

While a `Proc` can be assigned to a variable via simple assignment, a block is only allowed as a function argument. A function that accepts a block argument must explicitly declare the block parameter as the last argument using an ampersand (`&`).

```ruby
def func(a, b, &block)
  # The given block is captured as a Proc.
  block(a)
end
```

Unlike Ruby or Crystal, implicitly capturing blocks is not allowed. This is a purposeful decision, outlined somewhat in [this issue](https://github.com/myst-lang/myst/issues/10). The primary rationale is that implicit blocks mixed with multiple functor clauses can easily lead to unexpected or unintuitive behavior, as having a clause that explicitly captures a block below one that doesn't would _not_ be matched, as the one defined earlier would be matched with the block being captured implicitly.

### Call syntax

Now that we've seen all of the ways a function can be defined, we can fully cover how functions are called. In general, calls match the syntax of function heads, but do not include any of the guard clause or type restriction syntax. Consider this function definition:

```ruby
def func(positional, b=1, *args, named: 2, d:, **kwargs); end
```

A call to this function could take multiple forms:

```ruby
# only providing the required arguments
func(1, d: 2)
# providing all explicit arguments
func(1, 2, named: 3, d: 4)
# providing extra arguments, collected in `args` and `kwargs`.
func(1, 2, 3, 4, a: 5, named: 7, d: 8, e: 9)
#=> `args` is [3, 4], `kwargs` is {a: 5, e: 9}
```

Function calls can also use key interpolation for named arguments:

```ruby
def func(symbol: 1, <"string">: 2); end

x = "string"
y = :symbol
func(<x>: 3, <y>: 4)
```

To provide a block directly to a function, use either the `{}` or `do...end` block syntax immediately following the call:

```ruby
func(with, arguments) do |some, parameters: 1|
end
```

To pass an existing Proc to a function, or to convert an Object to a Proc, use an ampersand (`&`).

```ruby
proc1 = ->(some, parameters: 1) {}
func(with, arguments, &proc1)
```

Unlike most other languages with blocks, the two syntaxes for blocks are semantically identically. In languages like Ruby and Crystal, blocks specified with `{}` are implicitly _right_ associative, while blocks specified with `do...end` are _left_ associative, which can lead to confusion when parenthesis are omitted, so Myst always enforces _left associativity_ to simplify mental overhead.

Providing too many or too few arguments to a function will raise a `FunctionMatchFailure`. This also applies to block arguments. A function that _explicitly_ accepts a block argument will not match if a block is not provided.

### Overloading

Because functions in Myst allow for constraints on the values that are passed to a function, the language also allows functions to be defined multiple times. There are no cases where defining a function a second time will cause an error. In fact, redefining a function with the same constraints will still create a second version of the function.

When determining which function to use for a function call, Myst will attempt to match function heads in the order that they are defined in the source code. Once a function head is matched, that function is called, and matching stops. This makes it easy to create cascading restrictions on arguments, a good example of which is the [Recursive Fibonnaci implementation](examples/fibonnaci.mt).

## Exception handling

As you may have noticed from the previous sections, Myst has the concept of Exceptions, which means that they need to be handled in some way. The way that Myst allows developers to handle exceptions is most similar to Crystal, which is almost identical to Ruby in this regard.

### Raising

To start, exceptions in Myst are created using the `raise` keyword with an argument that is used as the exception object. For example, in the Pattern matching section, an example of a match operator equivalent was shown:

```ruby
raise MatchFailure.new(a, b) unless a == b
```

### Capturing

Once an exception has been raised, developers can capture it using a `begin...rescue...end` block. The default case catches all exceptions:

```ruby
begin
  # try this code
rescue
  # if an exception occurs, capture it and run this code.
end
```

This can be useful if the type of exception is not important and any error should be captured, though this is often not a good solution, as it makes attempting to solve the exception more difficult.

To help with that, `rescue` can define a parameter to capture an argument. This is a pattern-matched parameter, meaning that all of the pattern-matched parameter syntax from functions is supported:

```ruby
begin
  # try this code
rescue {callstack: callstack} =: ex : NoMethodError
  # deal with a `NoMethodError` exception
rescue ex : FunctionMatchFailure
  # deal with a FunctionMatchFailure
rescue
  # deal with any other error
end
```

If an Exception is not captured by any of the `rescue` clauses in the block, it is propogated up the callstack until it is captured. If it is captured, execution of the containing block continues with the next expression after the block.

Myst also supports two other clause types in `begin` blocks: `else` and `ensure`. These are only allowed to appear after all of the `rescue` clauses in a block, and if both are present, `else` must appear before `ensure`.

```ruby
begin
  # try this code
rescue
  # deal with any exceptions
else
  # if an exception was _not_ raised, run this code
ensure
  # run this code no matter what, even if the exception was not caught
end
```

## Code loading

Myst adopts the code loading system used in Ruby, but simplifies it even further. While this system is definitively less powerful than the loading systems in languages like JavaScript and Go, for example, it's simplicity makes it a good fit in Myst, as it avoids [drawn out debates over necessary features](https://github.com/crystal-lang/crystal/issues/4439).

In Myst, there is only one way to load code from another file: `require`. By default, Myst tracks files that have been loaded into a program and ensures that each file is only ever loaded once. This behavior can be bypassed by adding `, force_reload: true` after the name of the file being loaded:

```ruby
# load code from `other_source.mt`.
require "other_source.mt"
# code is already loaded, so this has no effect.
require "other_source.mt"
# unloads code from `other_source.mt`, then reloads it back into the program.
require "other_source.mt", force_reload: true
```

redpajama_set_name: RedPajamaGithub


For planning your next special occasion, Meadowbrook Estate offers each of your guests an elegant and unforgettable experience. Whether you are holding a wedding party weekend or hosting a retreat, your event will be specially tailored to your individual needs and wishes.
The Estate's 8,000-sq ft elegant venue space, with 18 rooms, warmly welcomes your guests with spacious, Italian-inspired details around every corner.
Truly enjoyed our stay - very pretty decor, welcoming host and warm environment. Would definitely stay again when I am in the area.
AMAZING house! Marybeth's guest house is not only super spacious, but the set up is so perfect for larger groups. Each room had it's own bathroom and she had extra EVERYTHING available so there was never a shortage for our large group. Marybeth is super responsive and very easy to communicate with so I never had issues getting a hold of her during our stay. She sent a great welcome message with every detail needed so check in/out were very easy. The house has great amenities including a beautiful kitchen and the entertainment room was awesome! Perfect for movie watching and relaxing at the end of your stay. And if you're the type of person that wants peace and quiet, Marybeth's is your kind of place. Wonderful to wake up in the morning to birds and sunshine, really a top notch place!! Wouldn't hesitate to stay there again.
Marybeth has done an amazing job with this estate. Everything is well done and clean and absolutely beautiful. My in-laws came with me and we stayed here for a wedding. We had enough rooms for everyone and so much space to get ready. Marybeth even let us check out the special occasion suite which was perfect for doing our hair and makeup before the wedding. The place was a huge part of why we enjoyed our weekend and I think we've converted the in-laws to Airbnb users!
had a nice stay at Marybeth's place! I was in town for a wedding so it was only a one night stay but still a great experience. Marybeth was very responsive if I had any questions. I would stay here again.
I can't say enough good things about Marybeth and Meadowbrook Estate. My band Modern Luxe was in the area for a wedding in CT on Saturday, and we had a corporate event in NY on Monday, so Meadowbrook Estate was exactly what we needed so we didn't have to drive all the way back to Philly on Sunday. Marybeth was extremely kind, and even gave us a chance despite our slightly less than stellar review from our only other AirBNB stay due to a misunderstanding. Marybeth allowed us to check in late after our wedding on Saturday, and gave us tips on where to go for breakfast and dinner. Both suggestions we took up, and we loved! She also gave us free passes to the local beach / lake. The house was amazing in every way....I hope to come back some day. You can't go wrong with Marybeth and Meadowbrook Estate. Thanks, Marybeth for everything!
This estate was more than we could have dreamed of! I happened to stumble upon it when looking for venues to host my wedding rehearsal dinner as well as a place to get ready with my bridesmaids the day of our wedding and the Meadowbrook Estate could not have been more perfect and appropriate! Marybeth was very attentive and responsive from the very beginning, and helped me to set up my rehearsal dinner, suggested an amazing caterer and made sure everything was in order for our wedding weekend. The estate is INCREDIBLE in person, literally jaw dropping, and such a beautiful setting to have family and friends gather as well as for me and my bridesmaids to enjoy each other's company the morning of the wedding. The bridal suite was a dream and so perfect for photos! Thank you Marybeth for such an amazing experience!
How many guests can you accommodate overnight?
What Special Event Rooms do you have?
Gathering Room - Has a kitchen/dining/sitting area that can host up to 16 for sit down/plated affair.
Bridal Preparation Room - Can host bridal party with makeup and hair stations.
How many people can the Grand Dining Room accommodate?
Capacity for up to 50 for sit down/plated affair with full service caterers kitchen.


"Your life is the sum result of all the choices you make, both consciously and unconsciously.
If you can control the process of choosing, you can take control of all aspects of your life.
After nearly 20 amazing years, I have decided to enjoy an early retirement at the end of August, 2018. I am no longer seeing any new clients, and am slowly finishing up with my wonderful final few clients over the coming weeks.
With plans to spend winters in the South, and the other seven months of the year in our home on Mt. Hood, my husband and I will be driving across our beautiful country twice a year.
I have no words to say what a rewarding experience this has been, and how grateful I am for all of my strong, brave, creative clients. I wish you all the very best.


For all your playhouse needs contact us by telephone on 01896 823717 in business hours or by filling in the contact form below.
View our pictures below of our own brand and bespoke Kids Playhouses. Also check out our new Palmako Range of Playhouses.


Well there's "self-inflicting wound" idiocy, then there's classical idiocy. Clearly you and I are of the self-inflicting breed.
I can't believe these unlisted vid "blogs" which I don't even link to on my YT page do better than my blog write-ups, which I shamelessly pimped on YT.


For many, many years, Barbara's mantra has always been "Wherever your eyes can go, there's a picture!" To her, virtually everything has beauty in its own way, if we just LOOK for it - without preconceived notions and with a search for purity and truth. Therefore, artistic and other opportunities are as unlimited as the universe itself. This endless gift of curiosity is so incredibly joyful and invigorating that she doesn't think that she'll have time to die.


text:
Q: Ruby on Rails Polymorphic - Controller and View solution I have been trying to wrap my mind on a polymorphic structure for my app for a while now, but I can't get it, and I don't know how to solve it.
I have a Supplier model, and a supplier's profile can by a Company OR a Person as listed below.
Supplier Model
class Supplier < ActiveRecord::Base
    belongs_to :profile, :polymorphic => true
    accepts_nested_attributes_for :personable, :allow_destroy => true, :reject_if => :all_blank
end

Company Model
class Company < ActiveRecord::Base
    has_one :supplier, as: :profile
end

Person Model
class Person < ActiveRecord::Base
    has_one :supplier, as: :profile
end

On the Model level (on console) my associations works fine, but I have to those between the two model up front (supplier.profile = Company.new, for example).
What I want is, when a user get to the NEW Supplier action he can select on the form if the Supplier is a Person or a Company, and then something must be done to show the correct fields for. And back on the Create action, handle everything.
I have read many stackoverflow questions and watch Ryan Bates cast #197 and #394.
I'm a Rails enthusiastic, not a programmer.
If someone can point me out to the right direction, I would be thankful.
Regards,
David

A: This largely depends on the variety of fields you need, and how much data is shared. But if they are very different, I would actually have two separate divs or section on the page that a radio button toggles showing one & hiding the other with javascript. Can do this pretty easily with jquery at the bottom of the view, given it's a default in rails:
 <input type="radio" name="supplier_type" value="person" />
 <input type="radio" name="supplier_type" value="company" />

 <script>
   $('input[name="supplier_type"]').on('change', function () {
      if ($(this).val() === "person") {
        $('.person-form').show();
        $('.company-form').hide();
      }
      else {
        $('.person-form').hide();
        $('.company-form').show();
      }
   });
 </script>

Then inside each of those divs have an entirely separate form that post to different actions. If the data is different enough to require two forms, then it's worth having two different controllers for this.
Now if it's just a couple fields different, or an additional field for one or something. I would have the radio button same as above inside the form_for. Again attach some javascript to show or hide the values. In the controller, use a check against the radio button value to get the params you need:
 supplier_params = params.slice :list, :of, :generic, :params

 if params[:supplier_type] == "company"
   supplier_params.merge! params.slice :company_name
 elsif params[:supplier_type] == "person"
   supplier_params.merge! params.slice :person_name
 end

 Supplier.new supplier_params

redpajama_set_name: RedPajamaStackExchange


text:
Anton Lap, slovenski vrtnar, * 7. avgust 1894, Kamnik, † 29. januar 1971, Ljubljana.

Ljudsko šolo je obiskoval v Kamniku, se izučil vrtnarskega poklica, nadaljeval šolanje in diplomiral na višji sadjarski in vrtnarski šoli v Lednicah na Moravskem. Po končanem študiju je bil suplent na raznih kmetijskih šolah v Sloveniji ter služboval kot kmetijski referent, nazadnje v Mestni vrtnariji v Ljubljani. Leta 1929 je bil imenovan za nadzornika te vrtnarije, pozneje je bil nadzornik Mestnega gozdarstva in Centralnega šolskega vrta v Ljubljani ter predavatelj v Mladiki, od 1933 pa ravnatelj ljubljanske Mestne vrtnarije. Z Jožetom Plečnikom je sodeloval pri urejanju
Tivolija, Rožnika, Golovca, grajskega griča, Kongresnega trga in Miklošičevega parka, pri zasajanju mestnih drevoredov in nasadov ter pri urejanju zasebnih vrtov. Od leta 1948 je sodeloval tudi z arhitektom Edvardom Ravnikarjem pri krajinskem urejanju letoviških in turističnih krajev. Njegova hčerka, arhitektka Janja Lap (1929-2004) je bila znana oblikovalka stekla.

Viri

Rojeni leta 1894
Umrli leta 1971
Slovenski vrtnarji
kamničani

redpajama_set_name: RedPajamaWikipedia


If you're looking for a hassle free motorcycle vacation we might have the right location for you, the Spanish city of Barcelona. It's an ultimate destination for riders; Barcelona is one of the European cities with an abundance of motorcycle heritage. It's also famous for its Montmelo Race Track.
If above is not enough to convince you check out the feature of the day, every aspect of this scrambler screams of the Spanish custom scene. This brilliantly modified Honda NX650 Dominator scrambler is the creation of Octopus Soul bikes from Barcelona Spain.
Jordi Ciscar, head of OSB Soul Bikes, is the third generation dedicated to the motorcycle world. Ex-pilot, mechanic and designer, who joined in 2013 with his father Joan, a mechanical active with more than 40 years of experience, to embark on a new adventure; the creation of Octopus Soul Bikes (OSB). Their workshop specializes in the processing and customization of motorcycles.
Jordi tells us "OSB was born with the intention of offering a very unique product aimed at that group of people who don't see their needs or expectations covered in the current market. For those who don't only value bikes for their power. In short, for those who want to share our love for them. Love, passion and professionalism are our premises to tackle any project.
With this declaration of intent comes to the scene OSB/1. On the basis of a 1991 Honda NX650 Dominator, we have created this compact, agile and reliable scrambler.
It has a trimmed frame and rebuilt subframe. The wheels have been replaced with an 18″ in the front and a 17″ in the back from an Aprilia Motó 6.5 and assembled with Michelin T63. The gas tank comes from a 1987 Honda NSR 75cc and the rear shock absorber belongs to a Suzuki GSX and serves to reduce the height a part of winning benefits.
Hiding the electrical installation as well as all its components and the battery was a particular challenge. Thus the CDI was mounted in the toolbox. Underneath the seat a case was built to accommodate the battery and the starter circuit, whilst the fuse box is hidden inside the main tube of the frame.
The front and the rear fenders are hand fabricated of sheet metal and the new seat was built in-house. The finished custom Honda NX 650 Dominator is much lighter and more agile than the stock bike. A scrambler that moves seamlessly through the city and also lets you enjoy any road.


text:
View thum list
Culture & Peoplefeatured
SK hynix Spreads the Holiday Cheer
Every December, our colleagues at SK hynix gather together in offices around the world for…
SK hynix– Wishing you a Happy New Year
Every January, at the tick of midnight, one year ends and another begins. Another tour…
Sam Lee's Ask Me Anything @ SK hynix America
Meet HyThanks, Our Way of Saying 'Thank You' at SK hynix
In this season of gratitude, SK hynix has a lot to be thankful for. First…
Interview with Young-Han Kim, CEO of Gauss Labs: "To Overcome Challenges in Manufacturing Industry through AI"
Artificial intelligence (AI), which has been compared to the "electricity of the 21st century", is…
"Dreaming of the Best DRAM", Toward the No.1 in Technology: Head of DRAM Development Seon Yong Cha
"Toward the best DRAM", the Architect for the Future to Lead the Growth of SK…
Halloween Around the World: How Our Offices Celebrated This Year
With ongoing health concerns and continuing social distance restrictions around the world, this year's Halloween…
Head of DRAM PE Joohwan Cho, Key Person of the Development of the World's First 40nm-class 2Gb Graphic DDR5
A New Attempt for the High-Speed One day in 2008, the performance test for the…
The Innovator – Viktar Zaitsau, Leader of Design Verification Team

redpajama_set_name: RedPajamaCommonCrawl


text:
Frost & Sullivan Recognizes GreenShift Corporation for Innovation in the Field of Electronic Waste Recycling
WEBWIRE – Wednesday, June 7, 2006
Palo Alto, Calif. — Frost & Sullivan has recognized GreenShift Corporation with the 2006 Product Innovation Award in the field of electronic waste recycling.
GreenShift receives this Award for developing an innovative and advanced electronic waste recycling solution called the Tornado GeneratorTM. Based on the principle of the tornado, the Tornado GeneratorTM is capable of drastically reducing the volume of waste materials (segregated stream of metals and plastics in case of electronics recycling). What makes this innovation truly noteworthy is that the product can effectively reduce the volume of the input waste material stream to about 90 percent by pulverizing it into micrometer-sized particles.
With directives such as waste electrical and electronic equipment (WEEE) and Restriction of Hazardous Substances (RoHS) coming into effect from 2006 in Europe, electronic waste recycling is increasingly receiving a major thrust. European nations and countries such as Japan, United States and China are also adopting a number of initiatives to recycle electronic waste. The prime intention of such directives is to not only bring about the efficient recovery of useful components, but to also safeguard the environment from harmful toxic substances such as lead, arsenic, hexavalent chromium, and other flame-retardants that are present in electronic waste.
"The process of electronic waste recycling involves a continuous chain of different operations such as conventional grinding and separation into plastic and metal streams, removal of hazardous components from these streams, pulverizing the plastic and metal streams, selective separation of high-value metals and plastics, and finally energy conversion of residual organics," notes Frost & Sullivan Research Analyst Hari Ramamoorthy. "In this regard, the Tornado Generator™ represents a notable accomplishment as it can be employed in the critical step of pulverization of plastic and metal streams, enabling the increased availability of high-value metals in the process flow and also facilitates efficient reaction of the qualified plastics into energy and/or clean fuels such as ethanol or synthetic diesel."
The operation of the Tornado Generator™ is simple yet elegant. It employs a stream of compressed air that is accelerated to high supersonic speeds in a closed cyclonic chamber, resulting in the formation of a powerful air vortex or a 'tornado'. This tornado grinds materials that are fed into it to micrometer-sized particles. Air is introduced at the bottom of the system and proceeds upwards, while the material, after grinding, is collected at the bottom of the system.
Significantly, the Tornado GeneratorTM incorporates the ability to dehydrate and atomize both solid as well as liquid wastes. The generator is robust in operation and appears to be able to provide cost-effective processing of a wide variety of wastes. Considering all this, such a solution could help meet the electronics recycling industry's need for an effective grinding solution for high fracture materials such as glass, coal, concrete, aluminum, and hard plastics. Moreover, the solution is flexible and can be adapted to a variety of industrial applications such as desalination, food processing, treatment of waste such as sludge, municipal solid waste, poultry waste, consumer waste, and so on.
"GreenShift plans to use its Tornado Generator™ along with other proprietary technologies such as the company's patented plastics separation process, which was developed by Argonne National Laboratory under a contract with the U.S. Department of Energy,to screen out chlorinated and brominated plastics and to fine-tune the overall electronic recycling process," says Ramamoorthy.
Kevin Kreisler, GreenShift's chairman and chief executive officer added that "Smaller particles equate to better reaction kinetics. This helps to make downstream processes that are designed to extract the highest value out of the commodities in electronic waste streams much more efficient. We believe that the Tornado Generator™ technology will provide a significant contribution to the electronic waste recycling industry and we are proud and excited to have received this Award."
Each year Frost & Sullivan presents this Award to a company that has demonstrated excellence in new products and technologies within their industry. The recipient company has shown innovation by launching a broad line of emerging products and technologies.
Frost & Sullivan Best Practices Awards recognize companies in a variety of regional and global markets for demonstrating outstanding achievement and superior performance in areas such as leadership, technological innovation, customer service, and strategic product development. Industry analysts compare market participants and measure performance through in-depth interviews, analysis, and extensive secondary research in order to identify best practices in the industry.
About GreenShift Corporation
GreenShift's (OTC Bulletin Board: GSHF) mission is to develop and support clean technologies and companies that facilitate the efficient use of natural resources and catalyze transformational environmental gains. Additional information regarding GreenShift is available online at www.greenshift.com.
The exclusive rights to the Tornado Generator™ technology for this and many other applications are held by GreenShift's majority-owned clean technology subsidiary, Veridium Corporation (OTC Bulletin Board: VRDM). Veridium provides applied engineering and industrial design services based on clean technology and process innovations that enhance manufacturing efficiencies, improve resource utilization and minimize waste.
Frost & Sullivan, a global growth consulting company, has been partnering with clients to support the development of innovative strategies for more than 40 years. The company's industry expertise integrates growth consulting, growth partnership services and corporate management training to identify and develop opportunities. Frost & Sullivan serves an extensive clientele that includes Global 1000 companies, emerging companies, and the investment community, by providing comprehensive industry coverage that reflects a unique global perspective and combines ongoing analysis of markets, technologies, econometrics, and demographics. For more information, visit http://www.awards.frost.com or http://www.electronics.frost.com.
Stacie Jones
Stacie.jones@frost.com
WebWireID14963
This news content was configured by WebWire editorial staff. Linking is permitted.


The Better Business Bureau is warning of a Georgia roofing business officials said is operating without a license or insurance.
According to a press release from the BBB, the agency was notified Dec. 16 that the business JMS Roofing & Construction operates without a business license and without insurance. On Dec. 17, the agency sent a letter to the business at the address supplied by the informant asking the business owner to clarify these matters. The letter was returned to the BBB by the United States Postal Service as "Not deliverable as addressed, unable to forward.
The business operates a Facebook page under the name "JMS Roofing & Construction," and lists a phone number. However, BBB officials said when they called the number, a man answering stated that it was not JMS Roofing & Construction. He said this despite the fact that there is a Facebook posting of this information, various other classified ads giving this number, and the last name of "Speight" in connection with JMS Roofing & Construction.
The company operates in the Adel area, yet the BBB could not verify a business license in any surrounding cities or counties. Based on these facts, Better Business Bureau officials strongly suggested that consumers exercise extreme caution when dealing with this company.
• Ask the contractor to give you a written quote. Obtain bids from several firms, making sure that the specifications of each bid are identical. Don't immediately accept the lowest bid. Check on the quality of the materials and if they clean up after working on the job site as well.
• Ask for a business card. Check to see if the company is locally owned. Ask questions like: Where is the headquarters location? How long have they been in business? Are they financially stable?
• Ask for credentials. Also, ask what training or skill levels are demanded of workers. Make sure that the contractor is licensed and insured. Obtain a business review of the firm by calling the Better Business Bureau at 706-324-0712 or look it up at www.bbb.org/columbus-ga.
• Ask for and check references. Try to talk to previous customers, and if possible, look at a similar job that has been completed recently and one that has been done for several years.
• Make sure that the contractor has good communication skills. Do they return calls? Do they give you all necessary documentation? Do they follow through?
• Make sure to get a detailed written contract specifying the work to be done and any stipulations and warranty offers. Any additions or changes to the agreed upon work should be added to the contract and initialed by both parties.
• Ask if the contractor would be willing to submit a dispute concerning workmanship or service to a third party arbitration program, and get that commitment in writing.
• Beware of fly by night repair businesses soliciting work in unmarked trucks and requiring advance payment, and do not succumb to high pressure techniques such as the price is "good only for today." Do not pay in full until the work is complete; and pay by check or credit card; make the check out to the company not the person; don't pay cash to a contractor or a sales person.
The Better Business Bureau of East Alabama, West and Southwest Georgia may be reached at 706-324-0712.


text:
IT Current Affairs, GK & News
Govt extends deadline for filing income tax returns till September 30
The government has extended the deadline for filing income tax returns for the fiscal year 2018-19 by two months till September 30. Reason The Central Board of Direct Taxes has announced this in view of the pandemic situation in the country and to ease the compliance aspect for the taxpayers in the country. The earlier ..
Topics: CBDT • Central Board of Direct Taxes • Deadline • Income Tax • IT
IT Department to Undertake Drive to Improve Return Filings for FY19
The Central Board of Direct Taxes has announced that it is going to start a campaign from July 20 till the end of the month in order to increase the number of tax filings for the Financial Year 2019-2020. It is a voluntary e-campaign to ensure compliance on the part of the taxpayers who have ..
Topics: CBDT • Central Board of Direct Taxes • direct tax • Income Tax • IT
TCS gives largest Corporate Donation to US University for Research Facility
The Indian IT sector behemoth, TCS (Tata Consultancy Services) has agreed to provide a sum of USD 35 million to the prestigious US educational institute, the Carnegie Mellon University. What has happened? The IT firm TCS which gets a major portion of its business from American clients has decided to fund the construction of a ..
Topics: Education • IT • Philanthropy • services • TCS • United States
Union Cabinet approves MoU between India and Vietnam on Cooperation in IT
The Union Cabinet has approved Memorandum of Understanding (MoU) between India and Vietnam on Cooperation in the field of Information Technology. The MoU aims to develop sustainable and a long-term cooperation between both countries on the basis of equality and mutual interest in the areas of IT. Key Facts The MoU will be implemented by ..
Month: Current Affairs - December, 2016
Topics: Cabinet Deicisons • India-Vietnam • IT • National
Sikkim becomes India's first State to launch open government data portal
Sikkim became the first state in India to have an open government data portal linked 'sikkim.data.gov.in'. The portal was launched by Lok Sabha MP, P D Rai and also launched Open Government Data Platform (Sikkim). Key facts The portal has been developed by Government of Sikkim's Information Technology Department and NIC team from Delhi. The ..
Topics: Governance • IT • Sikkim • States
1 / 30123>>>


Here are five places in Amsterdam where you can enjoy a delicious meal whilst helping to fight the issue of food waste.
Food waste is a pressing issue of our time. Can you believe that between 30 and 50 percent of all food production is being wasted, as we speak? The numbers are nothing short of overwhelming. In The Netherlands alone, one single person throws out on average 47kg of food per year.
But why? Well on the one hand, the appearance of our edibles has gained overstated importance over time, which makes for tons of it that does not even reach the supermarket shelves. On the other, the whole supply chain in the developed world is geared towards surplus. The natural consequence of producing too much is – you've guessed it – waste. Waste means not only the loss of valuable comestibles that could be otherwise feeding people, but also that we are using up our natural resources while at the same time taxing our environment.
Now, to make up for that depressing news, here are five initiatives in Amsterdam which you can get involved with to help fight this problem. My selection includes a restaurant, community dinners, and super-handy apps which enable you to order full meals and help you save both money and delicious food. Let's do this!
Ana V. Martins is an actress turned content creative & social media wizard. With a background in theatre and journalism, Ana writes about culture, art, sustainability and creative living.


Taro and Kratos should have had this training already. Due to Jordan's health issues and the amount of emotional involvement, it made more sense for me to wait until I was able to focus and train the boys with consistency and patience.
I know they are a little behind, but at least I was able to solidify their commands in and around the house before entering the world of distraction training!
The boys are able to perform a "stay" at home for up to five (5) minutes. We practice several times a day, the reward is either a handful of food (from their daily ration) or a favorite toy/chew bone. We practice "down/stay" simply because I think it's more comfortable and I seem to get more success with a "down/stay" than a "sit/stay". I often find the puppies lowering themselves into a down position by the time I return from another room. We will work on "sit/stay" more later. Right now my focus is on the "stay" in general.
I don't expect the boys to be able to "stay" for five (5) minutes in the middle of the dog park with their friends running around, so right now we are practicing about twenty - thirty (20 -30) seconds, with no leash attached. The reward here is playtime! I release them to continue playing - sometimes I toss them a couple of kibbles. If for some reason they move, I simply correct them, place them back in the "down/stay" position and retry. Once they have give me a solid "stay" they are then released to continue playing. So far this is working well, and the boys are getting better daily. I will increase the "stay" time weekly - eventually they will be able to stay for five (5) minutes, I have no doubt!


text:
Q: How to handle hooked WSARecv I'm working on a project that involves hooking WSARecv. I know how to hook this function, I mean its just the same as hooking another function. Anyway the hard part is when WSARecv is used to perform overlapped operations. The idea is that when an application receives data to intercept that and be possible to modify this, I'm using pipes for this. The native DLL tunnels all data to a managed 'server'. This processes the input etc and returns it back to the native DLL. This works great for WSASend, send and recv. However the hard part is when an application uses overlapped sockets.
So I need the received data first before I can process it, this is the hard part. How would I do something like this? I thought of this, but they both seem like a mess:
When WSARecv is called using the WSAOverlapped:
Create a new thread, use WaitForSingleObject and pass the hEvent of the WSAOverlapped structure. When the event is signaled process the data to the managed server and pass the data to the program.
When WSARecv is called using the completion routine:
Create a new thread, modify the call to the original function with lpOperationCompleted to a new function. Use SleepEx to put the thread in an alertable state. When the OperationCompleted is called process the data and pass data back to the program.
I could post my code but I didn't write because it seems like a bad solution.. So there is not really a point for that.
I cannot think of a better solution and this seems horrible because when an application calls WSARecv a lot (for example a large server using overlapped sockets to handle lots of clients) it creates a new thread for every call and that just seems like a bad idea.
So how can I do such thing?

A: There's no need to create a thread for each overlapped IO call.
When overlapped operations are used, they either have an associated event (which you can safely ignore), a completion routine, or are associated with an I/O Completion port.
To handle the first two cases you should hook both WSARecv() and WSAGetOverlappedResult().
If you need to handle the last, you'll also need to hook GetQueuedCompletionStatus()
Now, when you get a call to WSARecv(), for the event case, you do nothing special there (except possibly save some information in relation to the lpOverlapped, eg. the buffer), and process the data in WSAGetOverlappedResult() (which the application must call to get the success/error and bytes transferred.)
If a completion routine is present, save the lpOverlapped and lpCompletionRoutine, and pass your own completion routine to the real WSARecv().
Your routine should process the data and call the original completion routine.
To handle the I/O completion port case, have WSARecv() save lpOverlapped and buffers etc., in GetQueuedCompletionStatus(), call the original, and if the returned overlapped structure matches, handle the data.
You should also note that overlapped operations may complete immediately, in which case the event isn't signaled, the completion routine isn't called, and (IIRC) no completion is queued on the IOCP.


"What I am always puzzled about is that in the history of software development, during which the Waterfall type approaches have been taken as THE way to develop systems, I have seen little, if any, real evidence of the effectiveness and efficiency of using them. I have also seen little demand for such evidence. The industry has adopted these approaches, and that's that! What I have seen is a vast amount of evidence that these approaches do NOT ensure successful outcomes." Why was the waterfall adopted without appropriate rigor? Very simple, you don't need a statistic or a study to understand something that you already know!
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. This is one of the 12 Principles of the Agile M Agile Manifesto. A recurring theme in many Scrum discussion groups is that virtual meetings and web based tools are a poor substitute for a physical task boards.
I just stumbled upon the prize money table at Wimbledon. The winner gets one million pounds sterling. The runner up gets 1/2 million. The 64 first round losers get £11'250 each and the 32 second round losers get £18'750 each. In total, those 96 losers earn £1.32 million. So the two finalists earn more than the 96 losers competitors in the first rounds together. Furthermore, the increase over 2009 was 17.6% for the top 16 players, but only 4.7% to 6.8% for losers of the first three rounds.
Are there any similarities to pay scales withing companies? Actually, I think I know the answer to this one. More interestingly, given that corporate pay scales do look like tennis tournament prize winnings, what effects does this have on cooperation and teamwork within the company, especially at the levels of top management or between the departments of the "Quarter-finalists"?


text:
Risk for Pericarditis
By Afsaneh Khetrapal, BSc
Pericarditis is the swelling or inflammation that occurs in the pericardium. Pericardium is the lining membrane that is found surrounding the human heart. This inflammation causes mild to severe chest pain and pericardial effusion (fluid accumulation in the heart). The pericardial effusion is the process by which the extension of pericardium occurs to accommodate the excess fluid.
Pericarditis is a common heart condition that is found all over the world. It has been reported that almost 5% of overall admissions that occur due to accidents and emergency (A&E) are identified with pericarditis.
As it is a common condition, both men and women are victims. But compared to women, men are more likely to get affected with pericarditis. Young men in the adult category are more likely to be affected than older people and, in general, men between 20 and 40 years of age are more visible victims of the condition.
Additionally, about 20–30% of people who undergo treatment for pericarditis have the chance of developing the condition again, among which a minimum number have a tendency to land up in a chronic pericarditis stage.
Who Gets Affected?
As pericarditis is a common condition, it does not necessarily have specific causes. Infection plays a vital role in causing pericarditis. People who are prone to some viral, bacterial, or fungal infection have a huge chance of having pericarditis. Other people who develop this condition might have experienced the following situations:
Heart attack: People who had heart attacks have a high chance of developing pericarditis. This kind of pericarditis falls under two categories—early pericarditis and late pericarditis.
Early pericarditis is the condition that occurs in just one to four days after a person suffers a heart attack. In this case, the swelling or inflammation is considered to develop to clean up the disease tissue that arose in the heart. In contrast, late pericarditis is known to develop after a few weeks or months after a heart attack. It occurs when the heart tissue is unintentionally attacked by the immune system.
Late pericarditis is known by several names such as the Dressler syndrome or postcardiotomy pericarditis or the post-cardiac injury syndrome.
COVID-19: What the illness looks like
Aspirin to be tested as a potential COVID-19 treatment as part of RECOVERY trial
Heart surgery: It has not been proved that all people who have a heart surgery develop pericarditis, but there are reports that some people who had surgeries developed this condition at a later stage in their lives.
Kidney failure: People who have end-stage renal disease (ESRD) are prone to develop pericarditis. There are chances for them to develop even chronic constrictive pericarditis. The two forms of pericarditis that occur as a result of renal failure are as follows:
Uremic pericarditis is the result of swelling of the visceral membrane that occurs in the pericardial sac. The systemic immune disorders such as scleroderma and lupus erythematosus are considered to be the cause of this pericarditis.
Pericarditis that is related to dialysis: This category of pericarditis is eventually observed in patients during dialysis (peritoneal dialysis and hemodialysis). Inadequate dialysis and excess of fluids are determined as the factors that contribute to the cause of this pericarditis.
Cancer: The extension of cancer cells to the neighboring structures can affect the pericardium and cause pericarditis. The cancer cells can also be carried through the bloodstream by the hematogenous method. The other cancers that cause pericarditis are breast cancer, lung cancer, leukemia, non-Hodgkin lymphoma and Hodgkin's lymphoma.
Tuberculosis: Pericardial tuberculosis occurs as a complication of tuberculosis. It is difficult to diagnose this pericarditis and is often left unnoticed during the diagnosis of TB, but this has the capability to result in constrictive pericarditis.
Common Risk Factors
People under the following categories are said to be under the risk of pericarditis.
A person who has rapid and heavy breathing.
A person who suffers from breathlessness.
A person who frequently suffers from dry cough.
A person who has abnormality in his/her body temperature or falls sick often.
A person whose blood vessels are broken in the mucous membrane lining the lungs and the eyes.
A person who has immunity disorders.
A person found with AIDS or HIV.
A person who has undergone radiation therapy on the chest.
A person who has rheumatic fever or has had rheumatic fever in the past.
A person who has hypothyroidism or under-active thyroid glands.
In common cases, pericarditis is more likely to be mild and vanishes within days. When it occurs frequently and is left untreated, it can lead to chronic pericarditis or other serious problems that can affect the functioning of the heart. Usually, it takes about a week to recover from pericarditis; however, for complete recovery, patients are advised to take complete rest and continue follow-up treatment. These methods help patients reduce the risk of acquiring the condition again.
http://www.nhs.uk/Conditions/Pericarditis/Pages/Introduction.aspx
https://medlineplus.gov/ency/article/000182.htm
https://my.clevelandclinic.org/health/articles/pericarditis
www.encyclopedia.com/.../pericarditis
www.heart.org/.../...-Treatment-of-Pericarditis_UCM_444933_Article.jsp
http://www.pericarditispain.info/pericardial-tuberculosis/
www.mayoclinic.org/.../dxc-20209105
All Pericarditis Content
Treatment Options for Pericarditis
Complications of Pericarditis
How do Doctors Test for Pericarditis?
Pericarditis Types
Afsaneh Khetrapal
Afsaneh graduated from Warwick University with a First class honours degree in Biomedical science. During her time here her love for neuroscience and scientific journalism only grew and have now steered her into a career with the journal, Scientific Reports under Springer Nature. Of course, she isn't always immersed in all things science and literary; her free time involves a lot of oil painting and beach-side walks too.
Khetrapal, Afsaneh. (2018, August 23). Risk for Pericarditis. News-Medical. Retrieved on January 20, 2021 from https://www.news-medical.net/health/Risk-for-Pericarditis.aspx.
Khetrapal, Afsaneh. "Risk for Pericarditis". News-Medical. 20 January 2021. <https://www.news-medical.net/health/Risk-for-Pericarditis.aspx>.
Khetrapal, Afsaneh. "Risk for Pericarditis". News-Medical. https://www.news-medical.net/health/Risk-for-Pericarditis.aspx. (accessed January 20, 2021).
Khetrapal, Afsaneh. 2018. Risk for Pericarditis. News-Medical, viewed 20 January 2021, https://www.news-medical.net/health/Risk-for-Pericarditis.aspx.
Age is a key factor in sex-related outcomes after heart attack, indicates study
Study: Menopause symptoms are worse for women with premature ovarian insufficiency


text:
North Charleston presents Summer Children's Theatre performances on June 29
Cutright and Ike Hill (Provided)
The City of North Charleston's Cultural Arts Department is pleased to offer the first of two Summer Children's Theatre presentations on Friday, June 29, 2018, featuring R.A.P. – Realize Anything's Possible performed by Cutright and Ike Hill. The motivational music program is for all ages and features two showings at two different locations. Daycares, community groups, families, and individuals are welcome to attend the 10:00am showing at Northwoods Park and Recreation Center at 8348 Greenridge Road and/or the 2:00pm showing at Danny Jones Recreation Center at 1455 Monitor Street in North Charleston. Tickets are $2 per child with accompanying adults admitted at no charge. Parking is free.
Cutright and Ike Hill, members of JustHIS League Music Group (JHLMG), deliver an entertaining and energetic presentation using humor, crowd engagement, and hip-hop to help youth realize that anything is possible when you have the right perspective. Rap music is arguably one of the most popular and influential music genres among today's youth, and when it's paired with a positive message it can make a lasting impression that could impact them for the rest of their lives. By way of a full production rap concert, Cutright and Ike Hill connect with youth through positive music while delivering an encouraging message, hitting on topics like literacy, respecting one another's differences, persevering through obstacles, having an optimistic attitude, reaching goals through self-discipline, and discovering potential.
JHLMG is based in Charlotte, NC, and consists of musicians, minsters, and artistically minded individuals from different denominations that travel the nation spreading positive messages that encourage people of all ages and backgrounds. Their artists have shared the stage with Grammy Award-winning and nominated musicians such as Lecrae, Israel Houghton, Mali Music, and Tye Tribbett. Aside from making great, clean, positive music, JHLMG also runs the non-profit organization Shake the City, which focuses on caring for the less fortunate, mentoring youth through creative arts, and encouraging incarcerated juveniles and adults throughout North and South Carolina. More info at jhlmg.com.
R.A.P. – Realize Anything's Possible is presented as part of a Summer Children's Theatre Series, which also includes performances by the Pantasia Steel Band on Friday, July 13, at 10:00am and 2:00pm. Groups of 10 or more are asked to reserve space in advance. Seats fill up fast, so reserve early by calling the City of North Charleston Cultural Arts Department office at 843.740.5854. For reservation forms, directions, or information on additional programs and events, visit the Arts & Culture section of the City's website, www.northcharleston.org.
Related Topics:Cutright and Ike HillNorth Charleston Cultural Arts DepartmentSummer Children's Theatre
Bay Street Biergarten is Charleston's World Cup Headquarters
Beach Movie Night Is Back at the Tides Folly Beach


Congratulations to Glen Hansard, Marketa Irglova and John Carney (the director of Once) on winning the Academy Award for Best Original Song and having the number one selling album on amazon.com. As Drake said, let's hope it translates into some Billboard action too.
Though as a host he was so-so again, Jon Stewart gets high marks for letting Marketa Irglova make her Oscar acceptance speech last night after being played off by Bill Conti.


text:
UCT's new Fellows
18 October 2017 | Story Pete van der Woude. Photos Robyn Walker.
From left: Prof Peter Dunsby, Prof Lucy Gilson, Prof Graeme Meintjes, DVC Prof Mamokgethi Phakeng, Prof Bruce Hewitson, Prof Michael Lambert, VC Dr Max Price, Prof Malcolm Collins, Prof Chuma Himonga and Prof Chris Reason.
Eleven new Fellows were inducted into UCT's prestigious College of Fellows this year at a ceremony and dinner held on Wednesday, 11 October.
In her welcome address, Professor Mamokgethi Phakeng, Deputy Vice-Chancellor for Research and Internationalisation, said that the evening was a celebration intended to "recognise academic staff whose distinguished work deserves special recognition".
She went on to thank the new Fellows "for the work you do because it's the work that you do that gives us a good name. It's the work that you do that makes people look at us. It's the work that you do that makes the world say that we are number one in Africa."
Commenting on the "bumper crop" of new Fellows elected this year, Vice-Chancellor Dr Max Price said, "These were not contested at all ... for every candidate the question was asked 'How come we didn't appoint them before?' "
Dr Price continued: "The research business of the university has continued to do incredibly well, and that's thanks to all of you. To the Fellows and your colleagues, the distinguished scientists, the researchers, your students, your PhD students and your postdoc fellows, and your teams."
The new UCT Fellows for 2017 are:
Professor Bruce Hewitson, Department of Environmental and Geographical Science
Professor Chris Reason, Department of Oceanography
Professor Chuma Himonga, Department of Private Law
Professor Crick Lund, Department of Psychiatry and Mental Health (in absentia)
Professor Graeme Meintjes, Institute of Infectious Disease and Molecular Medicine
Professor Karen Barnes, Division of Clinical Pharmacology (in absentia)
Professor Lucy Gilson, School of Public Health and Family Medicine
Professor Malcolm Collins, Department of Human Biology
Professor Michael Lambert, Department of Human Biology
Professor Peter Dunsby, Department of Mathematics and Applied Mathematics
Professor Peter Ryan, Percy FitzPatrick Institute of African Ornithology (in absentia).
This year's recipients of the annual Young Researcher Awards: (from left) Dr Sudesh Sivarasu, DVC Prof Mamokgethi Phakeng, Dr Alvaro de la Cruz-Dombriz, VC Dr Max Price, Dr Juana Sanchez-Ortega, Dr Shannon Morreira and Dr Ross Hofmeyr.
The evening also saw the presentation of the annual Young Researcher Awards, which honour the significant contributions that UCT's young researchers have made to research in their particular fields. This year's recipients were:
Dr Alvaro de la Cruz-Dombriz, Department of Mathematics and Applied Mathematics
Dr Amit Mishra, Department of Electrical Engineering (in absentia)
Dr Juana Sanchez-Ortega, Department of Mathematics and Applied Mathematics
Dr Ross Hofmeyr, Department of Anaesthesia
Dr Shannon Morreira, Education Development Unit
Dr Sudesh Sivarasu, Department of Human Biology.
UCT's College of Fellows was established by the UCT Council to recognise distinguished academic work by permanent academic staff.
Read the full citations...
New fellows honoured for distinguished work 09 Dec 2016
Up-and-coming researchers recognised by College of Fellows 08 Dec 2016
UCT honours student leaders 06 Jan 2022
SALDRU releases preliminary COVID-19 Vaccine Survey results 21 Dec 2021
<!-- University of Cape Town News embed article --> <script src="https://www.news.uct.ac.za/article/embed/js/-2017-10-18-ucts-new-fellows"></script>
<!-- University of Cape Town News embed article --> <script src="https://www.news.uct.ac.za/article/embed/js/-2017-10-18-ucts-new-fellows?notitle"></script>


These are important milestones in any relationship and should be celebrated accordingly. This section contains information and articles on everything from anniversary ideas to unique gifts to give your spouse. You can also share your own creative and unique anniversary ideas with us.
An anniversary is a special occasion for a couple. Anniversaries are celebrated by married couples on the date they were married. Likewise, many unmarried couples also celebrate anniversaries, often on the date of their first date or another significant milestone in their relationship. Regardless of the type of relationship, anniversaries are a celebration of the love you have for one another. It is important to make the event significant and make special efforts to show the person you love how happy you are to be with them.
It is customary to exchange anniversary gifts on your set day. Anniversary gift ideas can range from flowers to jewelry and everything in between. What is important about an anniversary gift is the thought that goes into the present not necessarily the present itself. You want the gift to mean something and show how much you care. While grand gestures of jewels or romantic vacations are wonderful and sure to be appreciated, don't discount the little, more meaningful anniversary ideas. If you are on a budget, there are plenty of anniversary ideas you can consider that won't cost much but will mean a lot. Consider what the other person likes or what they may need to make their life easier. Do you have particular inside jokes or symbols you can build an anniversary gift around? Be creative and thoughtful and don't concern yourself too much with expense. The one you love won't care how much you spent if the intention comes through.
It is also traditional on anniversaries to have a date. One of the most romantic ways to accomplish this is to recreate your first one. Did you do something special or go to a particular restaurant? Retrace your steps and let your partner know you would do it all over again. You could also splurge on a fine dining restaurant you've wanted to try. Or, if you are working on a budget, nothing requires you to actually go out on a date. Instead, bring the date home. Make a romantic dinner together, flirting while cooking. Set the table with your best china and flatware and light the candles. Put on some romantic music and voila you have a romantic date night at home without spending too much. Recreating your first date can be the best anniversary gift of all.
Regardless of where you go or what you do, make sure you talk. Tell each other how much you love one another and discuss your dreams and goals for the future. If you are not normally overly romantic, your anniversary is the time to step up to the plate. Talk, express your feelings and let the other know how much you love and appreciate them.
Anniversary Vacations and Getaways - WithLuv offers advice and ideas on anniversary vacations including spots for getaways, etc.
Anniversary Gifts and Presents - WithLuv offers advice and ideas on giving anniversary presents to women and men including anniversary gifts baskets, etc.


text:
Authorities investigating two kidnappings
Stephanie Taylor, Staff Writer
TUSCALOOSA | Authorities are investigating two kidnappings that were reported over the weekend.
In the first case, a 17-year-old female told officers that her 19-year-old boyfriend assaulted her and held her against her will for several hours Saturday, said Capt. Loyd Baker, commander of the Tuscaloosa County Metro Homicide Unit.
He went to her home in the 3400 block of University Boulevard East at 1 p.m. Saturday, grabbed her by the hair and forced her into his vehicle, Baker said.
The man then drove to a nearby field where he beat her and stole money from her, he said. He returned to her home and would not let her exit the vehicle until 3 a.m. Sunday, he said.
She was treated at DCH Regional Medical Center for injuries. Investigators are looking for the man, he said.
In the second case, a 34-year-old woman said that she was walking in the 1800 block of Skyland Boulevard East at 6 a.m. Saturday when a man in a white truck stopped. He physically forced her into the truck, Baker said. As he got back into the driver�s seat, she was able to jump and roll out of the truck before running to a store and calling 911, he said. The man continued driving west on Skyland Boulevard. She was treated for minor injuries at DCH.


text:
Q: Read a file by strings in Python Hi im newbie with python and i want to read a file by strings.
The file has the following structure:

semilla
n_galleria t_espera t_llegada
p_ticket t_servicio
n_colosso min_colosso max_colosso
n_prisionero m_prisionero miu_prisionero sigma_prisionero
n_david
p_decision n_orcagna miu_orcagna sigma_orcagna
n_libreria p_libreria min_libreria max_libreria

until now i just have this:
f = open("/tmp/entrada.txt")
g = open("/tmp/salida.txt", "w+")

 for linea in f.readlines():
    line = linea.split(' ')

f.close()
g.close()

btw, every field at the file structure is the name of the variable. I mean, first, want to save a variable called "semilla" with the value that will be there at entrada.txt

A: This is a naive solution.. but easy to follow:
tokens = []
for linea in f.readlines():
    line_content = linea.split(' ')
    for token in line_content:
        tokens.append(token)
print(tokens)

A: If by "word" you mean you want to be able to iterate through every single substring delimited from the rest of the text by two spaces, you can do this:
for word in f.read().split(' '):
    do_something_to_string

There's no need to read the file by line if you don't actually need to parse it by line.

A: For word tokenization, it is best to use the nltk module which will handle word separators of any kind. So you can do this:
import nltk

f = open("/tmp/entrada.txt").read()

# return the list of words
words = nltk.word_tokenize(f)

And this should be more robust for any kind of text that you have.


Yes, we are brewing beer now as well! Our beers are currently being served on tap at our restaurant alongside beer from some of our favorite breweries. Each beer we make is brewed in very small batches, which means they are rotating often and some of our most popular beers are not always available... but we're working on expanding our production capacity, so check back often and you'll start seeing more and more of our fresh beers on tap as well as in bottles.
For tour and tasting experience please check on the winery site for more info.


text:
Slamdance Interview with Juan Pablo González
December 30, 2014 · by Sean L. Malin	· in Festivals, Filmmakers, Interviews, Travel, Writers.	·
Juan Pablo González is a Mexican film director, writer and cinematographer whose work includes documentary, fiction, and advertising. His most recent short film, The Solitude of Memory, was an Official Selection of the International Documentary Film Festival Amsterdam (IDFA) and the Morelia International Film Festival in 2014. The film will also play as an Official Selection of the 2015 Slamdance Film Festival and continues to tour the international festival circuit. Mr. González spoke with Sean Malin of CineMalin: Film Commentary and Criticism about returning to his childhood home, the traumatic subject of The Solitude of Memory, and his upcoming projects from around the world. This interview has been transcribed, edited, and condensed from audio for publication.
Sean Malin: The subject of The Solitude of Memory is something that actually happened in your life. When did you get the idea to make it into this documentary?
Juan Pablo González: The film is about a Mexican farmer, José, who had a son and who had worked with that son since he was six or seven years old…
SM: At the professional level, they worked together? Like they were farmers together?
JPG: Well, yes, they farmed together but their main job was to take care of horses. In Mexico – especially in small or rural towns – children work; that's just what happens. That's beginning to change now as people with a little more money are choosing to send their children to school, but that's just how it was a few years ago. So José and his son Fernando had worked together since Nando was very young. I had met the whole family when I was about ten because I used to ride horses into their town, Milpillas. And then José started working for my father when I was twelve or so.
SM: So José, the main character in your film, used to wrangle and train horses for your father.
JPG: Yes. Me and my brother became quite close with another of his sons, José. And when he was about fourteen, that José went to cross the border.
SM: How did that impact your family's relationship with their family? Was there support for the boy's decision to head to America, or was this a betrayal of trust?
JPG: I was very young at the time, so in my mind he was a friend that I was going to miss. I didn't understand the danger that he would be exposed to. I don't think that for his father or mine it ever felt like a betrayal. I'm sure that everyone understood what he was after. They must have been very worried about him. A trip like that is always dangerous, so just imagine making it when you're fourteen. In fact, José's father didn't want him to go [across the border.] It's not something that I think would happen easily now, but at the time, it didn't seem so dangerous…not that it seems safe or acceptable now for a fourteen-year-old to cross the border, but he lived alone in a border town for four months trying to cross.
SM: And of course, no one thought to check in with you or your brother about this event even though you were José's friend and he was your age. No one asked you if it was traumatic or intense.
JPG: No, of course not, I was just told, "José's gone." In that time, José's father and Fernando continued working until Nando was old enough to work officially. Then he went off to a factory in Atotonilco where they made tequila, so I would see him every weekend and I got very close with him. And then Nando committed suicide, just out of the blue.
SM: You had known this person for more than a decade by that point. You know the family's situation – I don't know them and I don't want to call it poverty, but they were obviously not well off, they had kids working with them wrangling horses, and one of the sons had already fled Mexico for the border. Yet even given this kind of trauma, no one expected what happened with Nando?
JPG: Mexico is a very different country from the U.S. in many ways –
SM: I know what you're saying. In our social relationships to psychology, for example.
JPG: Exactly, and in the relationship to death. Some of my friends from Mexico, people I know well, people my age and people younger, have died. I'm not saying that it hurts any less – it hurts awfully, just as it does for Americans and for people of other cultures – but when Nando's suicide happened, it was unexpected but not as if people said, "How could this have happened? It seemed impossible."
It was more like, for me at least, "This is a horrible, terrible tragedy, but he had his problems." And I could understand why this happened to him because I can understand how it might have happened to me, you know? His wife had left him, taken his child, and gone to the U.S. Even years before that, when he was only seventeen, he had tried to cross the border in order to come work with his brother. But he was incarcerated for a month or two in Calexico. Well, actually, not incarcerated but held in a youth facility.
SM: So was he extradited to Milpillas immediately after he turned eighteen?
JPG: He was sent back after a couple months, which was terrible for him. Being in Mexico when things aren't going well gives you a very deep feeling of desperation. So I understand how he must have felt when his wife had left – he wasn't making enough money at that time really to provide for her and the child – and said that if Nando didn't come to the U.S., she was not coming back. Crossing the border by that time was very, very dangerous; he'd already been incarcerated once; and he was much shyer than his brother. It was a real mess. In a situation like his, it's impossible to make sense of what's going on.
SM: What were you doing around this time? Had you already begun making films?
JPG: This was 2010. I was doing advertising and photography. I remember that two years before that, a close friend that I had really loved had been killed in Mexico. So by the time of [Nando's suicide] I think I had suffered so much already in that first tragedy that the suffering over it didn't seem unreal to me. That first tragedy felt like I was in a bad dream trying to wake up. But because the second situation felt more real to me, I had thought over the years about going back to [Milpillas] for a few reasons. I wasn't able to go to Nando's funeral. I hadn't gone back to visit, I hadn't kept in touch with the family, and I'd kind of blocked the event from my head. I hadn't really known what to do but I knew I wanted to go back.
SM: So you wanted to return to that spot but you didn't know if you wanted to make a film. You knew that returning to that place might make a good concept. Basically, you had the impulse to get back in touch with the family, not necessarily to make a fiction or documentary about a person committing suicide.
JPG: That's right – more than anything, I just wanted to see them and see how they were. Then I came to Austin and for the first year I was here, I just kept thinking about calling the younger José.
SM: You were planning to call him without any sort of plan except to reconnect. Had you started moving towards filmmaking when you got in touch?
JPG: I made a couple of short films for the University of Texas in that first year, but I never made that call. He had not gone back for his brother's funeral, either, because the border had become so dangerous and militarized by then and he couldn't imagine trying to go to the funeral and getting back. And he'd had two children as well.
In the summer of 2013, I started writing a script for a film that I was hoping to make this year. After three months of work on it, however, the funding dropped out and I had a short amount of time to find another project [the previous project, however, will begin production in February 2015.] I went to shoot a film in Minnesota and on the plane home, the idea for The Solitude of Memory just came to me. I landed in the Denver airport on my way back to Austin and called the older José – the main character of the film – right there. I called his cell phone. He answered even though I hadn't talked to him in three years or so, and he knew it was me immediately. We talked for a while and I asked him how the younger José was. It turns out that two years after Nando's suicide – and after fourteen years living and doing construction work in the U.S. – José had been deported for driving with an expired license plate, and he was living in Milpillas. Two months in prison, after which he and four other guys had been literally dropped off on the border. His two daughters still in the U.S.…It's crazy.
SM: After you heard that both Josés were in Milpillas, did you tell them from the Denver airport that you wanted to make your film about them? Did they start getting emotional over the phone? It had been so many years since you'd talked to them.
JPG: As you can tell from watching the film, older José is not an outwardly emotional person. My original interest was in making a film about immigration more than just making a film about this father and son. I wanted to talk about immigration in a human way from the perspective of the family; usually when you hear about immigration, it's in these broad strokes, about the economy or politics or bureaucracy or jobs. But immigration is not about that – it's very complex, and every single person has a different story.
SM: You knew already when you made that call that you only had two weeks to start getting the film together. If someone had asked you in Denver, would you have said your idea at the time was an immigration story from the perspective of the younger José?
JPG: I wrote an ambitious treatment for a documentary about a family of three men. There was the father who had come to the U.S. in the 1950s with the bracero program, which lent an important historical context to the idea. Then his son comes to the U.S. in another iconic moment: the northward exodus in the middle of the 1990s of people who had worked the land in Mexico.
SM: I grew up in that period in Southern California. NAFTA, the Tortilla Curtain, and the growth of the Minutemen had people pretty freaked out. I remember hearing discussions on the news about immigration quotas and the changes being made to Mex-American border states. There was a kind of ethnic terror that became an integral part of my own experience as a Californian in the '90s.
JPG: As crazy as that [period] was, the youngest son came in yet another historical moment: post-9/11 immigration. The post-9/11 period has been by far the deadliest, most dangerous time for immigrants, thousands of them dying every year. And sure enough, the youngest son was unable to cross because it was so treacherous and expensive. So that was my film: a story about three men each caught in an iconic moment in immigration and racial history.
SM: You sought to make that film when you went into production?
JPG: Yes, that's the film I shot, but not the film I edited.
SM: When did you get the interviews with the family and the footage?
JPG: I shot the footage in December of 2013. I asked a lot of questions. I was alone with them for three days, then with one cinematographer for a few days and another for the next three days. I interviewed the younger José, the mother, and the father about everything: immigration, Nando, José. But as I was editing, I just found the older José's thoughts about his son very powerful and right for a short.
SM: Give me a run-down of how you chose to make the film at the formal level.
JPG: My cinematographers, Jim Hickox and Adrian S. Bara, and I had some strict rules about how we worked. The camera was completely static throughout shooting. There are almost no close-ups, one or two in the entire thing; the rest are medium or wide shots.
SM: The editing is unique to a short film: you have divided the film into three "chapters." What inspired that choice?
JPG: That comes from the lack of a traditional narrative in the Aristotelian sense. I felt in the end that I needed to define that structure in a certain way. I don't want to call it "artificial," exactly…
SM: Artificial normally has a bad connotation, like false or dishonest, but I think it describes your process well. It represents your presence and your authorship in the film's narrative even though you never appear onscreen. Your editorial hand is evidence of your character within the story, I think, and audiences can feel that because it isn't typical for contemporary documentarians to be so intimately related to their subjects.
JPG: That's true.
SM: It's a significant departure from alleged "realism" or "naturalism" in the way most popular documentaries.
JPG: Exactly. It's easy to give in to the notion that documentaries need to be made a certain way. The rules of Hollywood-centered documentary filmmaking feel arbitrary to me. I'm more interested in other forms.
SM: I imagine that you didn't collect this footage with the expectation that something so personal and shot so quickly would be seen by wide audiences. But here you are showing the film at major international festivals. Does the film's acceptance surprise you at all?
JPG: When I first started making films, I thought my work would only get attention if they got into a select few festivals. But then I started seeing how many Mexican filmmakers that I really respect had started by getting their films into festivals in Mexico and going on a different trajectory.
SM: Documentary filmmakers, exclusively?
JPG: Documentary filmmakers, yes, and Mexican filmmakers in general. Some of them made the jump to international film festivals early on, but they started by exhibiting widely at Mexican film festivals. So that led me to submit to [the Festival Internacional de Cine en] Morelia and to have it [World] Premiere there after I had completed the film. I finished color-correcting it on a Thursday, did the sound mix on a Friday, and put everything together for a Blu-ray package that weekend. Morelia accepts Blu-ray submissions, which is really great for filmmakers – if you shoot a film in HD, it simply looks better on Blu-ray.
I had never imagined just how important it was for us to get into Morelia. People have been so excited since then because of how important that festival is for Mexico and Latin America in general. My film [played] with a lot of films by people I admire greatly.
SM: Since getting into Morelia, your film has had the opportunity to play in venues around the world. The Solitude of Memory is really about the elder José's trauma and his emotional state when you made the film. Now that the film is gaining audiences and acclaim, how does your subject feel about being involved with it?
JPG: I think he's happy with it. I went to see his family in the summer of 2014 – we had a big lunch together, them and me and my wife [executive producer Ana Isabel Fernandez.] They had seen the film and seemed to really like it. It's a very personal film, just like you're saying, and they are happy about that.
SM: I saw the film at an early screening at the University of Texas at Austin [where Mr. González is a Master's student in the Department of Radio-Television-Film], and there were complete strangers crying. What's profound about the project is that it's one of those films where the incredible personal specificity becomes universal.
JPG: This particular story is very specific, and for me that kind of lens for this story is perfect. If I had thought in advance about what would have best served the story, or if it had to get into the biggest film festivals, it would inevitably have been a ten or fifteen minute short. But it ended up being around twenty minutes, and I think that is exactly the length that it should have been.
Tags: Amsterdam Documentary, Docudrama, Documentary, Film Festivals, IDFA, Indie Film, Juan Gonzalez Sean Malin, Juan Pablo Gonzalez, Juan Pablo Gonzalez Interview, Mexican Documentary, Mexican Film, Morelia Film Festival, Nonfiction, Radio-Television-Film, RTF, Short Film, Slamdance, Sundance Film Festival, The Solitude of Memory, University of Texas at Austin, UT, UT Austin
← In Conversation With: Kyle Henry
Interview with Lauren Wolkstein →
One response to "Slamdance Interview with Juan Pablo González"
Pingback: UT MFA student Juan Pablo González wins at Slamdance | Austin Movie Blog·
Quibi is the new United Artists twitter.com/TwitterMovies/… 15 hours ago
Tv these days is bqsically cinema twitter.com/TwitterMovies/… 15 hours ago
Follow @cinemalins