text:
Q: Datagridviews checkbox cells are always null. How can I fix it? I have a datagridview. Its first cell has a CheckBox column. I want to find the selected CheckBox row. "cells[0].value = null" always.
foreach (DataGridViewRow row in dataGridView1.Rows)
{

   if ((Convert.ToBoolean(row.Cells[0].Value) == true ))
    {
        SqlCommand komut = new SqlCommand("insert into üreticiFirma (firma_ismi,konum,hammadde_isim,alıs_maliyeti,stok)values(@param2,@param3,@param4,@param5,@param6)", baglanti);

        komut.Parameters.AddWithValue("@param2", lblFirma.Text);
        komut.Parameters.AddWithValue("@param3", lblKonum.Text);
        komut.Parameters.AddWithValue("@param4", Convert.ToString(txtHammadde.Text));
        komut.Parameters.AddWithValue("@param5", Convert.ToInt32(row.Cells[7].Value));
        komut.Parameters.AddWithValue("@param6", txtMiktar.Text);
        komut.ExecuteNonQuery();
    }
}

A:             baglanti.Open();
            SqlCommand komut = new SqlCommand("Select * from hammaddeler",
                               baglanti);
            SqlDataAdapter ad = new SqlDataAdapter(komut);
            DataTable dt = new DataTable();
            ad.Fill(dt);
            dataGridView1.DataSource = dt;
            baglanti.Close();

            private System.Windows.Forms.DataGridView dataGridView1;
            private System.Windows.Forms.DataGridViewCheckBoxColumn Column1;


Speed, power and agility. Short track speed skating is a spectacular sport in every respects. But also a sport where you wish to offer the skaters safety. The organisation (KSNB and TIG Sports) of the ISU Short Track Speed Skating World Cup in Dordrecht asked us for a padding system that offers safety and is simple to install.
The World Cup matches took place in the ice hockey arena. There was already an existing boarding around this rink. Because we did not want to remove the entire boarding , but wanted to guarantee optimal safety, this was the place to bring a novelty into practice: a hybrid padding system.
The idea is simple. On the straight sections we applied a fixed padding against the existing ice hockey boarding. But in the corners we temporarily replaced the existing boarding for freestanding padding. The corners in particular are a risk zone: the short track speed skaters enter them at top speed and this is when the risk of a crash is highest.


text:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">

    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>1.3.0</version>
    </skin>

    <custom>
        <fluidoSkin>
            <searchEnabled>true</searchEnabled>
        </fluidoSkin>
    </custom>

    <bannerLeft>
        <name>BRAP</name>
        <href>index.html</href>
    </bannerLeft>

    <body>
        <head/>
        <menu name="Overview">
            <item name="Introduction" href="/index.html"/>
            <item name="Documentation" href="/documentation.html"/>
            <item name="Getting BRAP" href="/getting-brap.html"/>
            <item name="API Docs" href="/apidocs"/>
            <item name="Source" href="/source.html"/>
            <item name="Screencasts" href="/screencasts.html"/>
            <item name="Changelog" href="/changes-report.html"/>
            <item name="FAQ" href="/faq.html"/>
            <item name="License" href="/license.html"/>
            <item name="The team" href="/team-list.html"/>
        </menu>

    </body>
</project>

redpajama_set_name: RedPajamaGithub


text:
The Nunda, Eater of People is an abridged version of a Swahili fairy tale titled "Sultan Majnun" (), collected by Edward Steere (1828–1882) in Swahili Tales, as told by natives of Zanzibar (1870). Andrew Lang included it in The Violet Fairy Book (1901).

It is Aarne-Thompson type 550, the quest for the golden bird/firebird.

Synopsis
A Sultan was very proud of his garden and of six of his seven sons, but he scorned the youngest son as weak.  One day, he saw that his date tree was ready to fruit; he sent his oldest sons to watch it, or the slaves would steal the fruit and he would have none for many a year.  The son had his slaves beat drums to keep him awake, but when it grew light they slept and a bird ate all the dates.  Every year after that, he set a different son and finally two sons but for five years the bird ate the dates.  The sixth year, he sent a man of his. His youngest son asked why he did not send him.  Finally the father agreed. The youngest went, sent his slaves home and slept until early. Then he sat with corn in one hand and sand in the other.  He chewed on the corn until he grew sleepy and then he put sand in his mouth, which kept him awake.

The bird arrived.  He grabbed it.  It flew off with him, but he did not let go, even when it threatened him. In return for its freedom, the bird gave him a feather and said if the son put it in a fire, the bird would come wherever he was. The son returned, and the dates were still there. There was much rejoicing.

One day, the sultan's cat caught a calf and the sultan refused compensation on the grounds that technically he owned both. The next day it caught a cow, and then a donkey, a horse, and a child and then a man. Finally it lived in a thicket and ate whatever went by but the sultan would still not entertain any complaints. One day, the sultan went out to see the harvest with his six sons and the cat sprang out and killed three. The sultan demanded its death, admitting it was a demon.

Against his desperate parent's wishes, the youngest son set out after the cat, which was called "The Nunda (Eater of People)" and could not find it for many days. Finally, he and his slaves tracked it over a mountain, through a great forest. The prince and slaves threw spears into it and ran away. The next day they carried it back to the town. The people and Sultan rejoiced because they had been delivered from the bondage of fear.

Versions
The tale was also collected in Zanzibar, with the name Mkaaah Jeechonee, the Boy Hunter: his father is Sultan Maaj'noon and the huge cat is called Noondah. This version skips the episode with the bird and focuses on the hunt for the king's giant feline.

Another translation of the tale was Nunda the Slayer and the origin of the One-Eyed, whose source is reportedly from the Swahili language. This version lacks the introductory part with the bird and begins with the Sultan feeding his pet cat until he grows large enough.

Analysis
Professor Alice Werner suggested the first part of the tale might have been a foreign importation. In regards to the Nunda (es), she compared it to a series of stories from other African peoples about "The Swallowing Monster" that grows larger with each thing it devours and/or is capable of eating entire villages. The word nunda is also said to mean 'fierce animal', 'cruel man' or 'something heavy'.

The Nunda is also known as , from the Swahili  ('strange one') . It appears to be a creature of large size, possibly a giant cat.

The second part of the tale sometimes exists as an independent story, such as the version Hadisi ya nunda, collected and published by German linguist .

Edward Steere noted the resemblance of the hero's name, Sit-in-the-kitchen, with Cinderella, another folktale character that sits in the ashes.

See also
Tsarevitch Ivan, the Fire Bird and the Gray Wolf
The Nine Peahens and the Golden Apples
The Golden Mermaid
The Golden Bird
Simurgh

References

External links

Nunda, Eater of People, Audio Version''

Nunda, Eater of People
Fictional birds
ATU 500-559
Edward Steere

redpajama_set_name: RedPajamaWikipedia


The Richest Person at YOUR Age!
Have you ever wondered how wealthy the richest person your age is? You aren't the only one. That's why Wealth-X compiled a report of the richest people at every age from 21 to 100. The collective net worth of everyone on the list is a mind blowing 1.7 trillion dollars.
Frances Bean Cobain represents the 26 year-old bracket.
Warren Buffett owns the 88-year-old position.
Amazon mogul Jeff Bezos is the man in the 57-year-old slot.
The Chief Strategy Officer of Airbnb is 35 and his name is Nate Blecharczyk.
Justin Bieber is worth a cool 300 million and owns his 24-year-old age bracket.
Kylie Jenner, at 21, represents her age group with 850-million bucks in the bank.
By the way, a lot of these people are considered self made, so there's still time! For the full list check here.


text:
package awslabs.lab22;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import awslabs.labutility.LabUtility;

import com.amazonaws.auth.ClasspathPropertiesFileCredentialsProvider;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.AttributeValue;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.QueryResult;
import com.amazonaws.services.dynamodbv2.model.TableDescription;

/**
 * Project: Lab2.2
 */
public class Lab22 {

	private static Region region = Region.getRegion(Regions.US_EAST_1);

	// BEGIN NON-STUDENT_CODE
	private static ILabCode labCode = new StudentCode();
	private static IOptionalLabCode optionalLabCode = new StudentCode();
	private static String tableName = "Accounts";

	/**
	 * Controls the flow of the lab code execution.
	 */
	public static void main(String[] args) {
		try {
			// Create DynamoDB client and set the region to US East (Virginia)
			AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(new ClasspathPropertiesFileCredentialsProvider());
			ddbClient.setRegion(region);

			List<Account> accounts = new ArrayList<Account>();
			accounts.add(new Account().withCompany("Amazon.com").withEmail("johndoe@amazon.com").withFirst("John")
					.withLast("Doe").withAge("33"));
			accounts.add(new Account().withCompany("Asperatus Tech").withEmail("janedoe@amazon.com").withFirst("Jane")
					.withLast("Doe").withAge("24"));
			accounts.add(new Account().withCompany("Amazon.com").withEmail("jimjohnson@amazon.com").withFirst("Jim")
					.withLast("Johnson"));

			// Verify that the table schema is as we expect, and correct any
			// problems we find.
			if (!confirmTableSchema(ddbClient, tableName)) {
				System.out.print("Deleting. ");
				optionalLabCode.deleteTable(ddbClient, tableName);
				System.out.print("Rebuilding. ");
				optionalLabCode.buildTable(ddbClient, tableName);
				System.out.println("Done.");
			}

			System.out.println("Adding items to table.");
			// Create the accounts
			for (Account account : accounts) {
				labCode.createAccountItem(ddbClient, tableName, account);
				System.out.println("Added item: " + account.getCompany() + "/" + account.getEmail());
			}

			System.out.println("Requesting matches for Company == Amazon.com");
			QueryResult queryResult = labCode.lookupByHashKey(ddbClient, tableName, "Amazon.com");
			if (queryResult != null && queryResult.getCount() > 0) {
				// Record was found
				for (Map<String, AttributeValue> item : queryResult.getItems()) {
					System.out.println("Item Found-");

					for (Entry<String, AttributeValue> attribute : item.entrySet()) {
						System.out.print("    " + attribute.getKey() + ":");
						if (attribute.getKey().equals("Age")) {
							System.out.println(attribute.getValue().getN());
						} else {
							System.out.println(attribute.getValue().getS());
						}
					}
				}
			} else {
				System.out.println("No matches found.");
			}

			// Conditionally update a record
			System.out.print("Attempting update. ");
			labCode.updateIfMatch(ddbClient, tableName, "jimjohnson@amazon.com", "Amazon.com", "James", "Jim");
			System.out.println("Done.");
		} catch (Exception ex) {
			LabUtility.dumpError(ex);
		}
	}

	/**
	 * Validate the table matches the expected schema for the lab. Since it's built by hand, there's a decent chance
	 * that it may not be what's expected.
	 *
	 * @param ddbClient The DynamoDB client object.
	 * @param tableName The name of the table to validate.
	 *
	 * @return True if the schema of the table is correct. False if a problem is found.
	 */
	private static Boolean confirmTableSchema(AmazonDynamoDBClient ddbClient, String tableName) {
		System.out.println("Confirming table schema.");
		TableDescription tableDescription = optionalLabCode.getTableDescription(ddbClient, tableName);
		if (tableDescription == null) {
			System.out.println("Table does not exist.");
			// Can't match the schema if the table isn't there.
			return false;
		}
		if (!tableDescription.getTableStatus().equals("ACTIVE")) {
			System.out.println("Table is not active.");
			return false;
		}

		if (tableDescription.getAttributeDefinitions() == null || tableDescription.getKeySchema() == null) {
			System.out.println("Schema doesn't match.");
			return false;
		}
		for (AttributeDefinition attributeDefinition : tableDescription.getAttributeDefinitions()) {
			String attributeName = attributeDefinition.getAttributeName();
			if (attributeName.equals("Company") || attributeName.equals("Email") || attributeName.equals("First")
					|| attributeName.equals("Last")) {
				if (!attributeDefinition.getAttributeType().equals("S")) {
					// We have a matching attribute, but the type is wrong.
					System.out.println(attributeDefinition.getAttributeName()
							+ " attribute is wrong type in attribute definition.");
					return false;
				}
			} else if (attributeName.equals("Age")) {
				if (!attributeDefinition.getAttributeType().equals("N")) {
					System.out.println("Age attribute is wrong type in attribute definition.");
					// We have a matching attribute, but the type is wrong.
					return false;
				}
			}
		}
		// If we've gotten here, the attributes are good. Now check the key
		// schema.
		if (tableDescription.getKeySchema().size() != 2) {
			System.out.println("Wrong number of elements in the key schema.");
			return false;
		}
		for (KeySchemaElement keySchemaElement : tableDescription.getKeySchema()) {
			String attributeName = keySchemaElement.getAttributeName();
			if (attributeName.equals("Company")) {
				if (!keySchemaElement.getKeyType().equals("HASH")) {
					// We have a matching attribute, but the type is wrong.
					System.out.println("Company attribute is wrong type in key schema.");
					return false;
				}
			} else if (attributeName.equals("Email")) {
				if (!keySchemaElement.getKeyType().equals("RANGE")) {
					// We have a matching attribute, but the type is wrong.
					System.out.println("Email attribute is wrong type in key schema.");
					return false;
				}
			} else {
				System.out.println("Unexpected attribute (" + keySchemaElement.getAttributeName()
						+ ") in the key schema.");
			}
		}
		System.out.println("Table schema is as expected.");
		// We've passed our checks.
		return true;

	}
	// END NON-STUDENT CODE
}


This high-quality durable mat folds into three sections for easy transport and storage.
Constructed of closed-cell foam for maximum comfort, the mat comes in navy blue & is latex free.
For orders of 5 or more, please call us on 020 7636 8900 to get your volume discount!


text:
La Secretaría de Guerra fue uno de los organismos político administrativos creados por el general Franco tras su nombramiento como jefe de gobierno del bando rebelde durante la Guerra Civil Española. Fue creada por Decreto de 6 de octubre de 1936. Su misión era proporcionar apoyo a las fuerzas armadas rebeldes. Fue suprimida el 31 de enero de 1938 al crear Franco su primer gobierno propiamente dicho.

Contexto

El 30 de septiembre de 1936 se publicó en el Boletín Oficial de la Junta de Defensa Nacional de España el nombramiento del general Franco como generalísimo de los ejércitos y como jefe del gobierno del Estado. Al día siguiente, Franco tomó posesión oficialmente de sus cargos. Aunque solo había sido nombrado jefe de gobierno, todos los medios oficiales hablaron desde el principio de «jefe del Estado». De inmediato creó una Junta Técnica del Estado para que le ayudase a gestionar las labores de gobierno. En aquel momento, la toma de Madrid parecía inminente y, con ella, la victoria definitiva. El Boletín Oficial del Estado publicó el 2 de octubre la ley que creaba este y otros organismos. La nueva Junta no era un auténtico gobierno sino que parecía más bien un instrumento de apoyo civil a los militares hasta el final de la guerra, que entonces se preveía próximo.

Franco estableció su cuartel general en Salamanca, ciudad situada lejos del frente y que se convirtió en el centro del poder nacionalista. Se estableció en el palacio episcopal que le cedió su titular,  Enrique Plá y Deniel. Aunque ningún otro general podía rivalizar con él, El poder de Franco no estaba todavía consolidado y solo confiaba en un reducido número de personas, entre las que destacaba su hermano Nicolás.

Creación

Unos días más tarde de la creación de la Junta Técnica, el 6 de octubre, se publicó un Decreto que creaba la Secretaría de Guerra. Su misión era «atender al desenvolvimiento de las necesidades orgánicas y administrativas de las fuerzas armadas de todos los órdenes». El elegido para desempeñar el cargo fue el general de división Gil Yuste.

Relaciones con la Iglesia

La sublevación de julio no había tenido naturaleza religiosa. Sin embargo, la persecución anticatólica desatada en la zona republicana hizo que el apoyo religioso a la rebelión creciera exponencialmente. El 6 de diciembre de 1936 se institucionalizó la presencia —ya previamente existente— de los capellanes castrenses en el ejército franquista.

El 31 de diciembre Gil Yuste decidió restablecer provisionalmente las tenencias de vicaría de la Vicaría General Castrense, lo que creó un problema con la jerarquía católica. Tres días más tarde, el cardenal Gomá pasó una nota a Franco indicando que el tema estaba siendo estudiado en Roma y que no convenía tomar decisiones apresuradas. Simultáneamente, encargó a Gregorio Modrego que se hiciese cargo de la Vicaría. Una entrevista con el Caudillo el 25 de febrero pareció solventar las diferencias, pero tanto la Junta Técnica como Lorenzo Martínez Fuset —asesor jurídico de Franco— volvieron a poner dificultades. Tan solo el 6 de mayo de 1937 se admitiría finalmente el nombramiento de Modrego y el principio de que los capellanes castrenses serían elegidos entre las personas propuestas por el Vicario.

La creación del primer Gobierno

Tras el traslado del Cuartel General de Franco a Burgos, Serrano Suñer redactó la Ley de Administración Central del Estado, auténtica «Carta institucional» del Gobierno que fue aprobada el 30 de enero de 1938. Esta dio paso a un ejecutivo con once carteras ministeriales que sustituyó a la dispersa y poco eficaz administración precedente, Secretaría de Guerra incluida.

Véase también

 Junta Técnica del Estado
 Secretaría General del Jefe del Estado
 Gobierno General
 Secretaría de Relaciones Exteriores

Referencias

Bibliografía

Enlaces externos

Estado campamental
España en 1936
España en 1937
España en 1938
Política, instituciones y leyes del franquismo
Política en 1936
Política en 1937
Política en 1938


Abstract : The last years of the 20 th century and the beginning of the 21 th mark the facilitation trend of our real life due to the big development and progress of the computers and other intelligent devices. Algorithms based on artificial intelligence are basically a part of the software. The transmitted information by Internet or LAN arises continuously and it is expected that the protection of the data has been ensured. The aim of the present paper is to reveal false names of users' accounts as a result of hackers' attacks. The probability a given account to be either false or actual is calculated using a novel approach combining machine learning analysis (especially clusters' analysis) with chaos theory. The suspected account will be used as a pattern and by classification techniques clusters will be formed with a respective probability this name to be false. This investigation puts two main purposes: First, to determine if there exists a trend of appearance of the similar usernames, which arises during the creation of new accounts. Second, to detect the false usernames and to discriminate those from the real ones, independently of that if two types of accounts are generated with the same speed. These security systems are applied in different areas, where the security of the data in users' accounts is strictly required. For example, they can be used in on-line voting for balloting, in studying the social opinion by inquiries, in protection of the information in different user accounts of given system etc.


The PDC have taken great strides to ensure that markers are available at floor tournaments. Despite this there is still the requirement for players to mark at some tournaments as directed by the Tournament Director. It is essential for the smooth running of the tournament that players mark as directed, the problem of players failing to mark remains. The DRA have considered this and although the overwhelming majority of darts players take their marking duties very seriously, the minority who do not will face the penalties outlined below.


text:
Vote Count Continues in District 4 Commissioners Race
Posted by Scott D. Yost | Nov 11, 2020 | News
On Thursday, Nov. 12, the Guilford County Board of Elections is going to be counting a lot of votes, and one race that will be of particular interest that day is the race between District 4 Guilford County Commissioner Alan Branson and Mary Beth Murphy, who finished 18 votes ahead of Branson at the end of counting on Election Day.
In North Carolina, the election doesn't end on Election Day. Ballots postmarked by Tuesday, Nov. 3, that arrive at the Board of Elections office by November 12, will be counted along with provisional ballots – ballots cast with some question whether legally they should count or not. The Board of Elections will have to determine which provisional ballots to count and which ones to toss out based on the circumstances they're presented with.
On Tuesday, Nov. 10, Guilford County Board of Elections Director Charlie Collicutt said there are about 250 absentee ballots that include the District 4 race that came in after Election Day. There are also some provisional ballots to be considered that will affect that race. Collicutt said the Board of Elections is expected to count the remaining ballots starting at 10 a.m. Thursday, Nov. 12, and it's hoped that the winners in races can be certified by Friday, Nov. 13.
After the vote counting in the District 4 race is complete, however, there will be more drama. Branson has already requested a recount.
Branson said on Tuesday that he is still hopeful he'll be able to retain the seat he has held since 2012. However, he acknowledged that, since the board will be controlled by Democrats starting in December, he would have less say in any actions the board takes.
Branson said, in very colorful language, that he expects Democratic Guilford County Commissioner Skip Alston to be the next chairman of the board and said that the county's taxpayers are in a great deal of trouble if that happens. Branson said that's especially true if there isn't sufficient resistance on the board to counterbalance the coming destructive actions of Alston.
PreviousCooper Nixes Indoor Mass Gatherings
NextSheriff's Department Becomes A Safety School
Just Sayin on November 11, 2020 at 1:25 PM
With the narrow margin already shown Branson may this off and "school" the teacher on how our electoral process works. There may be hope for other races yet as many votes have to be counted and certified. I'm sure Al Gore can explain how that works better than anyone.
brian gann on November 11, 2020 at 4:12 PM
Now that's down right funny, Mr Branson needs to check his memory He voted to raise the fire tax on a select few of the people of the people that voted him in in a back room deal raising the property tax. Then when asked what the xtra money was going to be used for he either had no clue or refused to tell us. Reality check Mr Branson you forgot who you work for the citizens of district 4 we have spoken you lost give it up
Da on November 11, 2020 at 6:07 PM
Can't wait for the explosion of new investment, growth and helpful non-profits that are about to be funded with my taxpayer dollars! Guilford county and Greensboro are becoming the beacon of hope for a Portland-like utopia on the East Coast.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Pular para section após selecionar option O que eu quero fazer é o seguinte: eu tenho um select com 5 options, quero que quando eu selecione, por exemplo, option1, vá para primeira section, quando eu clicar em option2 vá para segunda section.
<select>
    <option class="primeiraOpcao">Brazil JS</option>
    <option class="segundaOpcao">Meetup CSSSP</option>
    <option class="terceiraOpcao">Freecodecamp SP</option>
    <option class="quartaOpcao">Front in Sampa</option>
    <option class="quintaOpcao">Front in BH</option>
</select>

E tenho as sections definidas assim

E tambem tenho meu codigo no JS, ainda apenas selecionei as options..
var primeiraOpcao = document.querySelector(".primeiraOpcao");
primeiraOpcao.textContent = "Brazil JS";

var segundaOpcao = document.querySelector(".segundaOpcao");
segundaOpcao.textContent = "Meetup CSSSP";

var terceiraOpcao = document.querySelector(".terceiraOpcao");
terceiraOpcao.textContent = "Freeecodecamp SP";

var quartaOpcao = document.querySelector(".quartaOpcao");
quartaOpcao.textContent = "Front in Sampa";

 var quintaOpcao = document.querySelector(".quintaOpcao");
 quintaOpcao.textContent = "Front in BH";

Estudo JS a alguns dias e queria conseguir fazer isso, mas to com duvida de como fazer..

A: Primeiro, aconselho você modificar um pouco o seu select e adicionar um atributo em options referente a qual section você quer visualizar. Para atributos personalizados, utilize o prefixo data-. Por exemplo, podemos definir um atributo data-anchor em option para especificar para qual section deve ser movido:
<select id="choice">
    <option data-anchor="braziljs">Brazil JS</option>
    <option data-anchor="meetup">Meetup CSSSP</option>
    <option data-anchor="freecodecamp">Freecodecamp SP</option>
    <option data-anchor="frontinsampa">Front in Sampa</option>
    <option data-anchor="frontinbh">Front in BH</option>
</select>

Perceba que o valor de data-anchor é exatamente o id da section para qual quer visualizar e é muito importante que seja assim, caso contrário não funcionará.
Com o JavaScript, você pode tratar o evento onchange do select, obtendo o valor de data-anchor da option selecionada e definindo o valor de location.hash para este valor. Desta forma, na sua URL aparecerá a parte #brasiljs, por exemplo, movendo a página para o elemento cujo id é brasiljs.
const select = document.getElementById("choice");

// Executa quando uma opção for selecionada:
select.onchange = function (event) {
  // Obtém a opção selecionada:
  let option = select.options[select.selectedIndex];
  // Obtém o valor do atributo data-anchor:
  let anchor = option.getAttribute("data-anchor");
  // Move a página para o elemento desejado:
  location.hash = "#" + anchor;
}

Veja um exemplo: ao selecionar uma nova opção, você automaticamente será movido para a respectiva section:

const select = document.getElementById("choice");

select.onchange = function(event) {
  let option = select.options[select.selectedIndex];
  let anchor = option.getAttribute("data-anchor");
  location.hash = "#" + anchor;
}
.alinhamento {
  border: 1px solid black;
  margin-bottom: 10px;
  height: 300px;
}
<select id="choice">
  <option data-anchor="braziljs">Brazil JS</option>
  <option data-anchor="meetup">Meetup CSSSP</option>
  <option data-anchor="freecodecamp">Freecodecamp SP</option>
  <option data-anchor="frontinsampa">Front in Sampa</option>
  <option data-anchor="frontinbh">Front in BH</option>
</select>

Brasil JS

Meet Up

Free Code Camp

Front in Sampa

Front in BH

redpajama_set_name: RedPajamaStackExchange


text:
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ui/frame/caption_buttons/frame_caption_button_container_view.h"

#include <cmath>
#include <map>

#include "base/cxx17_backports.h"
#include "base/ignore_result.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
#include "chromeos/ui/base/tablet_state.h"
#include "chromeos/ui/frame/caption_buttons/caption_button_model.h"
#include "chromeos/ui/frame/caption_buttons/frame_size_button.h"
#include "chromeos/ui/frame/caption_buttons/snap_controller.h"
#include "ui/aura/window_tree_host.h"
#include "ui/base/hit_test.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/compositor/scoped_animation_duration_scale_mode.h"
#include "ui/events/event_sink.h"
#include "ui/gfx/animation/slide_animation.h"
#include "ui/gfx/animation/tween.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/vector_icon_types.h"
#include "ui/strings/grit/ui_strings.h"  // Accessibility names
#include "ui/views/background.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
#include "ui/views/window/frame_caption_button.h"

namespace chromeos {

namespace {

// Duration of the animation of the position of buttons to the left of
// |size_button_|.
constexpr auto kPositionAnimationDuration = base::Milliseconds(500);

// Duration of the animation of the alpha of |size_button_|.
constexpr auto kAlphaAnimationDuration = base::Milliseconds(250);

// Delay during |tablet_mode_animation_| hide to wait before beginning to
// animate the position of buttons to the left of |size_button_|.
constexpr auto kHidePositionDelay = base::Milliseconds(100);

// Duration of |tablet_mode_animation_| hiding.
// Hiding size button 250
// |------------------------|
// Delay 100      Slide other buttons 500
// |---------|-------------------------------------------------|
constexpr auto kHideAnimationDuration =
    kHidePositionDelay + kPositionAnimationDuration;

// Delay during |tablet_mode_animation_| show to wait before beginning to
// animate the alpha of |size_button_|.
constexpr auto kShowAnimationAlphaDelay = base::Milliseconds(100);

// Duration of |tablet_mode_animation_| showing.
// Slide other buttons 500
// |-------------------------------------------------|
// Delay 100   Show size button 250
// |---------|-----------------------|
constexpr auto kShowAnimationDuration = kPositionAnimationDuration;

// Value of |tablet_mode_animation_| showing to begin animating alpha of
// |size_button_|.
float SizeButtonShowStartValue() {
  return kShowAnimationAlphaDelay / kShowAnimationDuration;
}

// Amount of |tablet_mode_animation_| showing to animate the alpha of
// |size_button_|.
float SizeButtonShowDuration() {
  return kAlphaAnimationDuration / kShowAnimationDuration;
}

// Amount of |tablet_mode_animation_| hiding to animate the alpha of
// |size_button_|.
float SizeButtonHideDuration() {
  return kAlphaAnimationDuration / kHideAnimationDuration;
}

// Value of |tablet_mode_animation_| hiding to begin animating the position of
// buttons to the left of |size_button_|.
float HidePositionStartValue() {
  return 1.0f - kHidePositionDelay / kHideAnimationDuration;
}

// Bounds animation values to the range 0.0 - 1.0. Allows for mapping of offset
// animations to the expected range so that gfx::Tween::CalculateValue() can be
// used.
double CapAnimationValue(double value) {
  return base::clamp(value, 0.0, 1.0);
}

// A default CaptionButtonModel that uses the widget delegate's state
// to determine if each button should be visible and enabled.
class DefaultCaptionButtonModel : public CaptionButtonModel {
 public:
  explicit DefaultCaptionButtonModel(views::Widget* frame) : frame_(frame) {}
  DefaultCaptionButtonModel(const DefaultCaptionButtonModel&) = delete;
  DefaultCaptionButtonModel& operator=(const DefaultCaptionButtonModel&) =
      delete;
  ~DefaultCaptionButtonModel() override {}

  // CaptionButtonModel:
  bool IsVisible(views::CaptionButtonIcon type) const override {
    switch (type) {
      case views::CAPTION_BUTTON_ICON_MINIMIZE:
        return frame_->widget_delegate()->CanMinimize();
      case views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE:
        return frame_->widget_delegate()->CanMaximize();
      // Resizable widget can be snapped.
      case views::CAPTION_BUTTON_ICON_LEFT_TOP_SNAPPED:
      case views::CAPTION_BUTTON_ICON_RIGHT_BOTTOM_SNAPPED:
        return frame_->widget_delegate()->CanResize();
      case views::CAPTION_BUTTON_ICON_CLOSE:
        return frame_->widget_delegate()->ShouldShowCloseButton();
      case views::CAPTION_BUTTON_ICON_CUSTOM:
        return true;
      // No back or menu button by default.
      case views::CAPTION_BUTTON_ICON_BACK:
      case views::CAPTION_BUTTON_ICON_MENU:
      case views::CAPTION_BUTTON_ICON_ZOOM:
      case views::CAPTION_BUTTON_ICON_CENTER:
        return false;
      case views::CAPTION_BUTTON_ICON_LOCATION:
        // not used
        return false;
      case views::CAPTION_BUTTON_ICON_COUNT:
        break;
    }
    NOTREACHED();
    return false;
  }
  bool IsEnabled(views::CaptionButtonIcon type) const override { return true; }
  bool InZoomMode() const override { return false; }

 private:
  views::Widget* frame_;
};

}  // namespace

FrameCaptionButtonContainerView::FrameCaptionButtonContainerView(
    views::Widget* frame,
    std::unique_ptr<views::FrameCaptionButton> custom_button)
    : views::AnimationDelegateViews(frame->GetRootView()),
      frame_(frame),
      model_(std::make_unique<DefaultCaptionButtonModel>(frame)) {
  SetOrientation(views::BoxLayout::Orientation::kHorizontal);
  SetCrossAxisAlignment(views::BoxLayout::CrossAxisAlignment::kCenter);
  SetMainAxisAlignment(views::BoxLayout::MainAxisAlignment::kEnd);
  tablet_mode_animation_ = std::make_unique<gfx::SlideAnimation>(this);
  tablet_mode_animation_->SetTweenType(gfx::Tween::LINEAR);

  // Ensure animation tracks visibility of size button.
  if (model_->IsVisible(views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE) ||
      model_->InZoomMode()) {
    tablet_mode_animation_->Reset(1.0f);
  }

  // Insert the buttons left to right.
  if (custom_button)
    custom_button_ = AddChildView(std::move(custom_button));

  menu_button_ = new views::FrameCaptionButton(
      base::BindRepeating(&FrameCaptionButtonContainerView::MenuButtonPressed,
                          base::Unretained(this)),
      views::CAPTION_BUTTON_ICON_MENU, HTMENU);
  menu_button_->SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MENU));
  AddChildView(menu_button_);

  minimize_button_ = new views::FrameCaptionButton(
      base::BindRepeating(
          &FrameCaptionButtonContainerView::MinimizeButtonPressed,
          base::Unretained(this)),
      views::CAPTION_BUTTON_ICON_MINIMIZE, HTMINBUTTON);
  minimize_button_->SetTooltipText(
      l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MINIMIZE));
  AddChildView(minimize_button_);

  size_button_ = new FrameSizeButton(
      base::BindRepeating(&FrameCaptionButtonContainerView::SizeButtonPressed,
                          base::Unretained(this)),
      this);
  size_button_->SetTooltipText(
      l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MAXIMIZE));
  AddChildView(size_button_);

  close_button_ = new views::FrameCaptionButton(
      base::BindRepeating(&FrameCaptionButtonContainerView::CloseButtonPressed,
                          base::Unretained(this)),
      views::CAPTION_BUTTON_ICON_CLOSE, HTCLOSE);
  close_button_->SetTooltipText(
      l10n_util::GetStringUTF16(IDS_APP_ACCNAME_CLOSE));
  AddChildView(close_button_);

  UpdateCaptionButtonState(false /* animate */);
}

FrameCaptionButtonContainerView::~FrameCaptionButtonContainerView() = default;

void FrameCaptionButtonContainerView::TestApi::EndAnimations() {
  container_view_->tablet_mode_animation_->End();
}

void FrameCaptionButtonContainerView::SetButtonImage(
    views::CaptionButtonIcon icon,
    const gfx::VectorIcon& icon_definition) {
  button_icon_map_[icon] = &icon_definition;

  views::FrameCaptionButton* buttons[] = {menu_button_, minimize_button_,
                                          size_button_, close_button_};
  for (size_t i = 0; i < base::size(buttons); ++i) {
    if (buttons[i]->GetIcon() == icon)
      buttons[i]->SetImage(icon, views::FrameCaptionButton::Animate::kNo,
                           icon_definition);
  }
}

void FrameCaptionButtonContainerView::SetPaintAsActive(bool paint_as_active) {
  if (custom_button_)
    custom_button_->SetPaintAsActive(paint_as_active);
  menu_button_->SetPaintAsActive(paint_as_active);
  minimize_button_->SetPaintAsActive(paint_as_active);
  size_button_->SetPaintAsActive(paint_as_active);
  close_button_->SetPaintAsActive(paint_as_active);
  SchedulePaint();
}

void FrameCaptionButtonContainerView::SetBackgroundColor(
    SkColor background_color) {
  if (custom_button_)
    custom_button_->SetBackgroundColor(background_color);
  menu_button_->SetBackgroundColor(background_color);
  minimize_button_->SetBackgroundColor(background_color);
  size_button_->SetBackgroundColor(background_color);
  close_button_->SetBackgroundColor(background_color);

  // When buttons' background color changes, the entire view's background color
  // changes if WCO is enabled.
  if (window_controls_overlay_enabled_) {
    SetBackground(views::CreateSolidBackground(background_color));
  }
}

void FrameCaptionButtonContainerView::ResetWindowControls() {
  SetButtonsToNormal(Animate::kNo);
}

void FrameCaptionButtonContainerView::OnWindowControlsOverlayEnabledChanged(
    bool enabled,
    SkColor background_color) {
  window_controls_overlay_enabled_ = enabled;
  if (enabled) {
    SetBackground(views::CreateSolidBackground(background_color));
    // The view needs to paint to a layer so that it is painted on top of the
    // web content.
    SetPaintToLayer();
  } else {
    SetBackground(nullptr);
    DestroyLayer();
  }
}

void FrameCaptionButtonContainerView::UpdateCaptionButtonState(bool animate) {
  bool size_button_visible =
      (model_->IsVisible(views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE) ||
       model_->InZoomMode());
  if (size_button_visible) {
    size_button_->SetVisible(true);
    if (animate) {
      tablet_mode_animation_->SetSlideDuration(kShowAnimationDuration);
      tablet_mode_animation_->Show();
    }
  } else {
    if (animate) {
      tablet_mode_animation_->SetSlideDuration(kHideAnimationDuration);
      tablet_mode_animation_->Hide();
    } else {
      size_button_->SetVisible(false);
    }
  }
  if (custom_button_) {
    custom_button_->SetEnabled(
        model_->IsEnabled(views::CAPTION_BUTTON_ICON_CUSTOM));
    custom_button_->SetVisible(
        model_->IsVisible(views::CAPTION_BUTTON_ICON_CUSTOM));
  }
  size_button_->SetEnabled(
      (model_->IsEnabled(views::CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE) ||
       model_->InZoomMode()));
  minimize_button_->SetVisible(
      model_->IsVisible(views::CAPTION_BUTTON_ICON_MINIMIZE));
  minimize_button_->SetEnabled(
      model_->IsEnabled(views::CAPTION_BUTTON_ICON_MINIMIZE));
  menu_button_->SetVisible(model_->IsVisible(views::CAPTION_BUTTON_ICON_MENU));
  menu_button_->SetEnabled(model_->IsEnabled(views::CAPTION_BUTTON_ICON_MENU));
  close_button_->SetVisible(
      model_->IsVisible(views::CAPTION_BUTTON_ICON_CLOSE));
}

void FrameCaptionButtonContainerView::UpdateSizeButtonTooltip(
    bool use_restore_frame) {
  size_button_->SetTooltipText(
      use_restore_frame ? l10n_util::GetStringUTF16(IDS_APP_ACCNAME_MAXIMIZE)
                        : l10n_util::GetStringUTF16(IDS_APP_ACCNAME_RESTORE));
}

void FrameCaptionButtonContainerView::SetButtonSize(const gfx::Size& size) {
  if (custom_button_)
    custom_button_->SetPreferredSize(size);
  menu_button_->SetPreferredSize(size);
  minimize_button_->SetPreferredSize(size);
  size_button_->SetPreferredSize(size);
  close_button_->SetPreferredSize(size);

  SetMinimumCrossAxisSize(size.height());
}

void FrameCaptionButtonContainerView::SetModel(
    std::unique_ptr<CaptionButtonModel> model) {
  model_ = std::move(model);
}

void FrameCaptionButtonContainerView::SetOnSizeButtonPressedCallback(
    base::RepeatingCallback<bool()> callback) {
  on_size_button_pressed_callback_ = std::move(callback);
}

void FrameCaptionButtonContainerView::ClearOnSizeButtonPressedCallback() {
  on_size_button_pressed_callback_.Reset();
}

void FrameCaptionButtonContainerView::Layout() {
  views::View::Layout();

  // This ensures that the first frame of the animation to show the size button
  // pushes the buttons to the left of the size button into the center.
  if (tablet_mode_animation_->is_animating())
    AnimationProgressed(tablet_mode_animation_.get());

#if DCHECK_IS_ON()
  if (close_button_->GetVisible()) {
    // The top right corner must be occupied by the close button for easy mouse
    // access. This check is agnostic to RTL layout.
    DCHECK_EQ(close_button_->y(), 0);
    DCHECK_EQ(close_button_->bounds().right(), width());
  }
#endif  // DCHECK_IS_ON()
}

void FrameCaptionButtonContainerView::ChildPreferredSizeChanged(View* child) {
  PreferredSizeChanged();
}

void FrameCaptionButtonContainerView::ChildVisibilityChanged(View* child) {
  PreferredSizeChanged();
}

void FrameCaptionButtonContainerView::AnimationEnded(
    const gfx::Animation* animation) {
  // Ensure that position is calculated at least once.
  AnimationProgressed(animation);

  double current_value = tablet_mode_animation_->GetCurrentValue();
  if (current_value == 0.0)
    size_button_->SetVisible(false);
}

void FrameCaptionButtonContainerView::AnimationProgressed(
    const gfx::Animation* animation) {
  double current_value = animation->GetCurrentValue();
  int size_alpha = 0;
  int x_slide = 0;
  if (tablet_mode_animation_->IsShowing()) {
    double scaled_value_alpha =
        CapAnimationValue((current_value - SizeButtonShowStartValue()) /
                          SizeButtonShowDuration());
    double tweened_value_alpha =
        gfx::Tween::CalculateValue(gfx::Tween::EASE_OUT, scaled_value_alpha);
    size_alpha = gfx::Tween::LinearIntValueBetween(tweened_value_alpha, 0, 255);

    double tweened_value_slide =
        gfx::Tween::CalculateValue(gfx::Tween::EASE_OUT, current_value);
    x_slide = gfx::Tween::LinearIntValueBetween(tweened_value_slide,
                                                size_button_->width(), 0);
  } else {
    double scaled_value_alpha =
        CapAnimationValue((1.0f - current_value) / SizeButtonHideDuration());
    double tweened_value_alpha =
        gfx::Tween::CalculateValue(gfx::Tween::EASE_IN, scaled_value_alpha);
    size_alpha = gfx::Tween::LinearIntValueBetween(tweened_value_alpha, 255, 0);

    double scaled_value_position = CapAnimationValue(
        (HidePositionStartValue() - current_value) / HidePositionStartValue());
    double tweened_value_slide =
        gfx::Tween::CalculateValue(gfx::Tween::EASE_OUT, scaled_value_position);
    x_slide = gfx::Tween::LinearIntValueBetween(tweened_value_slide, 0,
                                                size_button_->width());
  }
  size_button_->SetAlpha(size_alpha);

  // Slide all buttons to the left of the size button. Usually this is just the
  // minimize button but it can also include a PWA menu button.
  int previous_x = 0;
  for (auto* button : children()) {
    if (button == size_button_)
      break;
    button->SetX(previous_x + x_slide);
    previous_x += button->width();
  }
}

void FrameCaptionButtonContainerView::SetButtonIcon(
    views::FrameCaptionButton* button,
    views::CaptionButtonIcon icon,
    Animate animate) {
  // The early return is dependent on |animate| because callers use
  // SetButtonIcon() with Animate::kNo to progress |button|'s crossfade
  // animation to the end.
  if (button->GetIcon() == icon &&
      (animate == Animate::kYes || !button->IsAnimatingImageSwap())) {
    return;
  }

  views::FrameCaptionButton::Animate fcb_animate =
      (animate == Animate::kYes) ? views::FrameCaptionButton::Animate::kYes
                                 : views::FrameCaptionButton::Animate::kNo;
  auto it = button_icon_map_.find(icon);
  if (it != button_icon_map_.end())
    button->SetImage(icon, fcb_animate, *it->second);
}

void FrameCaptionButtonContainerView::MinimizeButtonPressed() {
  // Abort any animations of the button icons.
  SetButtonsToNormal(Animate::kNo);

  frame_->Minimize();
  base::RecordAction(base::UserMetricsAction("MinButton_Clk"));
}

void FrameCaptionButtonContainerView::SizeButtonPressed() {
  // Abort any animations of the button icons.
  SetButtonsToNormal(Animate::kNo);

  if (on_size_button_pressed_callback_ &&
      on_size_button_pressed_callback_.Run()) {
    // no-op if the override callback returned true.
  } else if (frame_->IsFullscreen()) {
    // Can be clicked in immersive fullscreen.
    frame_->Restore();
    base::RecordAction(base::UserMetricsAction("MaxButton_Clk_ExitFS"));
  } else if (frame_->IsMaximized()) {
    frame_->Restore();
    base::RecordAction(base::UserMetricsAction("MaxButton_Clk_Restore"));
  } else {
    frame_->Maximize();
    base::RecordAction(base::UserMetricsAction("MaxButton_Clk_Maximize"));
  }
}

void FrameCaptionButtonContainerView::CloseButtonPressed() {
  // Abort any animations of the button icons.
  SetButtonsToNormal(Animate::kNo);

  frame_->Close();
  if (chromeos::TabletState::Get()->InTabletMode()) {
    base::RecordAction(
        base::UserMetricsAction("Tablet_WindowCloseFromCaptionButton"));
  } else {
    base::RecordAction(base::UserMetricsAction("CloseButton_Clk"));
  }
}

void FrameCaptionButtonContainerView::MenuButtonPressed() {
  // Abort any animations of the button icons.
  SetButtonsToNormal(Animate::kNo);

  // Send up event as well as down event as ARC++ clients expect this sequence.
  aura::Window* root_window = GetWidget()->GetNativeWindow()->GetRootWindow();
  ui::KeyEvent press_key_event(ui::ET_KEY_PRESSED, ui::VKEY_APPS, ui::EF_NONE);
  ignore_result(root_window->GetHost()->GetEventSink()->OnEventFromSource(
      &press_key_event));
  ui::KeyEvent release_key_event(ui::ET_KEY_RELEASED, ui::VKEY_APPS,
                                 ui::EF_NONE);
  ignore_result(root_window->GetHost()->GetEventSink()->OnEventFromSource(
      &release_key_event));
  // TODO(oshima): Add metrics
}

bool FrameCaptionButtonContainerView::IsMinimizeButtonVisible() const {
  return minimize_button_->GetVisible();
}

void FrameCaptionButtonContainerView::SetButtonsToNormal(Animate animate) {
  SetButtonIcons(views::CAPTION_BUTTON_ICON_MINIMIZE,
                 views::CAPTION_BUTTON_ICON_CLOSE, animate);
  if (custom_button_)
    custom_button_->SetState(views::Button::STATE_NORMAL);
  menu_button_->SetState(views::Button::STATE_NORMAL);
  minimize_button_->SetState(views::Button::STATE_NORMAL);
  size_button_->SetState(views::Button::STATE_NORMAL);
  close_button_->SetState(views::Button::STATE_NORMAL);
}

void FrameCaptionButtonContainerView::SetButtonIcons(
    views::CaptionButtonIcon minimize_button_icon,
    views::CaptionButtonIcon close_button_icon,
    Animate animate) {
  SetButtonIcon(minimize_button_, minimize_button_icon, animate);
  SetButtonIcon(close_button_, close_button_icon, animate);
}

const views::FrameCaptionButton*
FrameCaptionButtonContainerView::GetButtonClosestTo(
    const gfx::Point& position_in_screen) const {
  // Since the buttons all have the same size, the closest button is the button
  // with the center point closest to |position_in_screen|.
  // TODO(pkotwicz): Make the caption buttons not overlap.
  gfx::Point position(position_in_screen);
  views::View::ConvertPointFromScreen(this, &position);

  views::FrameCaptionButton* buttons[] = {custom_button_, menu_button_,
                                          minimize_button_, size_button_,
                                          close_button_};
  int min_squared_distance = INT_MAX;
  views::FrameCaptionButton* closest_button = nullptr;
  for (size_t i = 0; i < base::size(buttons); ++i) {
    views::FrameCaptionButton* button = buttons[i];
    if (!button || !button->GetVisible())
      continue;

    gfx::Point center_point = button->GetLocalBounds().CenterPoint();
    views::View::ConvertPointToTarget(button, this, &center_point);
    int squared_distance = static_cast<int>(
        pow(static_cast<double>(position.x() - center_point.x()), 2) +
        pow(static_cast<double>(position.y() - center_point.y()), 2));
    if (squared_distance < min_squared_distance) {
      min_squared_distance = squared_distance;
      closest_button = button;
    }
  }
  return closest_button;
}

void FrameCaptionButtonContainerView::SetHoveredAndPressedButtons(
    const views::FrameCaptionButton* to_hover,
    const views::FrameCaptionButton* to_press) {
  views::FrameCaptionButton* buttons[] = {custom_button_, menu_button_,
                                          minimize_button_, size_button_,
                                          close_button_};
  for (size_t i = 0; i < base::size(buttons); ++i) {
    views::FrameCaptionButton* button = buttons[i];
    if (!button)
      continue;
    views::Button::ButtonState new_state = views::Button::STATE_NORMAL;
    if (button == to_hover)
      new_state = views::Button::STATE_HOVERED;
    else if (button == to_press)
      new_state = views::Button::STATE_PRESSED;
    button->SetState(new_state);
  }
}

bool FrameCaptionButtonContainerView::CanSnap() {
  return SnapController::Get()->CanSnap(frame_->GetNativeWindow());
}

void FrameCaptionButtonContainerView::ShowSnapPreview(
    SnapDirection snap,
    bool allow_haptic_feedback) {
  SnapController::Get()->ShowSnapPreview(frame_->GetNativeWindow(), snap,
                                         allow_haptic_feedback);
}

void FrameCaptionButtonContainerView::CommitSnap(SnapDirection snap) {
  SnapController::Get()->CommitSnap(frame_->GetNativeWindow(), snap);
}

BEGIN_METADATA(FrameCaptionButtonContainerView, views::View)
END_METADATA

}  // namespace chromeos


Marran, Christine L.: Ecology without Culture. Aesthetics for a Toxic World. Minneapolis: University of Minnesota Press, 2017. 160 pages, 25 USD. ISBN: 978-1-5179-0159-2.
In her monograph Ecology without Culture – Aesthetics for a Toxic World, literary scholar Christine Marran calls for a reconsideration of the role that culture can play in the current ecological crisis – both through cementing ethno-nationalist imaginations of the natural world and their subversion. Through an analysis of mostly Japanese literature and film, the author shows how certain biotropes (images and metaphors that point toward the natural world) and aestheticizing of non-human scales and perspectives can lead to a more environmentally engaged form of culture. Marran imagines literary studies that are attuned to the challenges of the more-than-human material world and throughout her book develops exemplary multi-layered analyses of primary texts.
When Timothy Morton published his seminal Ecology Without Nature ten years ago, he was writing against an ecocritical mainstream in many ways still concerned with a romantic notion of Nature as a pristine Other to culture. He famously stated: "Strange as it may sound, the idea of nature is getting in the way of properly ecological forms of culture, philosophy, politics, and art." (Timothy Morton: Ecology Without Nature – Rethinking Environmental Aesthetics. Cambridge, Mass. 2007, p.1). One could assume that the monograph by Christine L. Marran, Ecology without Culture – Aesthetics for a toxic World (2017) is a critique of Morton's approach. Instead, Marran argues that he isn't going far enough. Now that feminist science studies has introduced concepts such as nature-culture (Donna Haraway) to theorize how biological and ecological discourses are entangled with imperialist, racist or sexist projects, it is now time to turn towards culture. What if "culture" is as much a part of the problem as "Nature" is? Much of our cultural work, Marran argues, uses the material world as a metaphor for all kinds of identity-related, anthropocentric projects and thus itself impedes proper ecological thinking.
Marran sets out to offer an analysis of literature and film that does pay attention to the agency of the material world. A scholar of Japanese art and culture, the author focusses mostly on Japanese work (much of it in her own translation), e.g. the literary texts of Michiko Ishimure and experimental documentary films by Noriaki Tsuchimoto. Marran makes explicit that although the primary sources are mainly Japanese, the arguments are not limited to Japanese ecocriticism – much like the dominant discourses of Anglophone ecocriticism are relevant in other parts of the world. Marran successfully develops concepts that plug into global academic debates on materiality in literature and film.
Two central concepts guide the way through a tour de force of theoretical discussions and close readings: First, Marran coins the term of the "biotrope." In Japan, for example, the notorious image of the cherry-blossom was widely employed as a national promise of recovery after the 2011 Tsunami. How can such a trope give hope to people who lost their homes to a disastrous wave or radioactive pollution? Doesn't it instead call upon a nostalgic dream of ecological nationhood that cannot hold true in a world where the "toxic drift of industrial modernity" defies any border, corporeal or national (p. 23)? Culture can silently perform the work of ethno-nationalism under industrial capitalism (p. 8). It is for this central role of biotropes in identity formation, the author claims, that they also carry the subversive potential to shift our gaze away from human exceptionalism. Secondly, Marran argues that scale, as theorized by Timothy Clark, is a central tool of environmentally engaged writing and film. It can allow us to see "things smaller or greater than the selective humanist 'we'" (p. 25) – thus, for example, accounting for the agency of toxins in both human/non-human environments.
In her first chapter, Marran develops the concept of "obligate storytelling" as a way of accounting for the matter that any story needs to exist; she argues that explicitly obligate storytelling can foreground the material relations as vital to its narrative. The work of Japanese writer Michiko Ishimure, with its refusal of nationalist and humanist writing traditions both in form and content, is read as exemplary in its critical use of biotropes and rejection of a nature-culture divide.
Chapter two is concerned with the "cinema of slow violence" (in reference to Rob Nixon's Slow Violence and the Environmentalism of the Poor. Cambridge, MA 2013). Against Nixon's claim that cinema, with its drift towards sensationalism and speed, is not suited to representing the "invisible mutagenic theatre" (p. 58) of toxic environmental violence, Marran argues that through its ability to play with both micro- and macroscopic vision, film can overcome these "representational obstacles" (p. 58). Through analyzing Noriaki Tsuchimoto's slow-paced documentary films on the Minamata mercury poisoning, she develops a grammar of cinema that works towards representing the vibrancy of the material world.
In chapter three, Marran argues that the collapse of an urban/rural dichotomy of classic nature writing through, for example, the building of nuclear reactors or chemical factories in rural spaces has led to a domestic turn in environmental literature. It engages the domestic space, and specifically the kitchen, in lively exchange with a toxic biotic world. Marran reads Rachel Carson's "Silent Spring" and Ariyoshi Sawako's "Cumulative Pollution" as texts that use the biotrope of cumulative pollution to emphasize the material agencies of industrial technologies and account for the "trans-corporeality" (Stacy Alaimo) of the (non)human body.
The concluding chapter asks what obligation the humanities, and specifically literary studies, have in an age of ecological crisis. Against both an atomizing identity politics and the totalizing gesture of the Anthropocene, Marran calls for a planetary perspective that helps us form community with the non-human world. Literary studies, the author states, must orient itself towards unfamiliar scales and elevate biotropes which "contribute to a broader view of who 'our own kind' is" (p. 126). It must critically engage with the role that culture can play in the production of cultural identity and the ecological crisis.
Marran's book switches with formidable speed between different levels of analysis. It feels at times as if each proposed concept or chapter would be worth a full monograph to reach an in–depth analysis; therefore, the three main chapters feel slightly unconnected. Nonetheless, her text is an enriching read for students and scholars of environmentally engaged literary and cultural studies and adds a playful perspective both from Japanese and material ecocriticism.
In ihrer Monographie Ecology without Culture. Aesthetics for a Toxic World untersucht die Literaturwissenschaftlerin Christine Marran die zweifache Rolle, die der Kultur in der gegenwärtigen ökologischen Krise zukommen kann – sowohl durch die Stärkung ethnonationalistischer Vorstellungen von der Natur und als auch durch deren Subversion. Durch die Analyse von überwiegend japanischer Literatur und Filmen zeigt die Autorin, wie gewisse "Biotropen" (Bilder und Metaphern, die auf die Natur hindeuten) oder der Einsatz nichtmenschlicher Blickwinkel und Maßstäbe eine "ökologische" Form von Kultur befördern können. Marran wünscht sich Literaturwissenschaften, die sich den Herausforderungen der nicht-menschlichen Welt stellen und präsentiert in ihrem Buch exemplarische Analysen von Primärtexten.
Copyright 2018, HANNAH KLAUBERT. Licensed to the public under Creative Commons Attribution 4.0 International (CC BY 4.0).


text:
Q: PatternSyntaxException Функция возвращает строку данного вида, и с помощью регулярного выражения я ее привожу к нужному виду, в NetBeans код работает без проблем, но в Android Studio такая ошибка, в чем может быть проблема?
String s = "№;Задача;T;O;P\n"
+ ";2016-01-18\n"
+ "1. ;task1;03:00;.; \n"
+ ";2016-01-18\n"
+ "2. ;task2;03:00;.; \n"
+ ";2016-01-18\n"
+ "3. ;task3;03:00;.; \n"
+ ";2016-01-19\n"
+ "7. ;33333;03:00;.; \n"
+ ";2016-01-19\n"
+ "8. ;d;03:00;.; \n"
+ ";2016-01-19\n"
+ "9. ;00;03:00;.; \n"
+ ";2016-01-20\n"
+ "21. ;task1;03:00;.; \n"
+ ";2016-01-20\n"
+ "22. ;task2;03:00;.; \n"
+ ";2016-01-21\n"
+ "25. ;testtime;03:00;.; \n"
+ ";2016-01-21\n"
+ "26. ;fgghgfh;23:45;.;, new t.\n";

String regex = "(?<=(;\\d{4}-\\d\\d-\\d\\d\n).{0,30})\\1";
String result = Pattern.compile(regex, Pattern.DOTALL).matcher(s).replaceAll("");

System.out.println( result );

вот ошибка
01-22 00:51:10.072 12001-12001/com.jaloveast1k.topbook E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     Process: com.jaloveast1k.topbook, PID: 12001
                                                                     java.util.regex.PatternSyntaxException: Look-behind pattern matches must have a bounded maximum length near index 9:
                                                                     (?<=(;\d{4}-\d\d-\d\d
                                                                     ).{0,30})\1
                                                                              ^
                                                                         at java.util.regex.Pattern.compileImpl(Native Method)
                                                                         at java.util.regex.Pattern.compile(Pattern.java:411)
                                                                         at java.util.regex.Pattern.<init>(Pattern.java:394)
                                                                         at java.util.regex.Pattern.compile(Pattern.java:374)
                                                                         at com.jaloveast1k.topbook.MainActivity.sendTasks(MainActivity.java:1669)
                                                                         at com.jaloveast1k.topbook.MainActivity.send(MainActivity.java:1600)
                                                                         at com.jaloveast1k.topbook.MainActivity.access$700(MainActivity.java:51)
                                                                         at com.jaloveast1k.topbook.MainActivity$9.onClick(MainActivity.java:224)
                                                                         at android.view.View.performClick(View.java:4438)
                                                                         at android.view.View$PerformClick.run(View.java:18422)
                                                                         at android.os.Handler.handleCallback(Handler.java:733)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                         at android.os.Looper.loop(Looper.java:136)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                         at java.lang.reflect.Method.invokeNative(Native Method)
                                                                         at java.lang.reflect.Method.invoke(Method.java:515)
                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                         at dalvik.system.NativeStart.main(Native Method)

если меняю интервал с {0,30} на {0,9}, то ошибка пропадает, но тогда не срабатывает регулярное выражение

A: Почему так:
Это баг в ICU (#40103 в AOSP, #10024 в ICU trac, изменения), поправлен в ICU 52, до андроида исправление добралось только вместе с ICU 53 в API 21 (Lollipop).
Баг не позволяет использовать квантификаторы с большой верхней границей внутри look-behind (конструкция .{0,10} у меня на эмуляторе проблем не вызывает, но я слишком слабо понимаю код ICU, чтобы объяснить, почему).
Что делать:

*

*Переписать регулярное выражение.

*Не использовать регулярное выражение.

*Заменить .{0,30} на три .{0,10} (с потерей производительности, видимо)

*Сделать пирамидку из (.|..|...|....) и т.п.

A: Решил проблему по другому вот тут объяснение
StringTokenizer tok = new StringTokenizer( s, "\n" );
StringBuilder newString = new StringBuilder( s.length()*2/3 );

String prevDate = "";
newString.append( tok.nextToken() ).append( '\n' ); // заголовок
while( tok.hasMoreTokens() ) {
String date = tok.nextToken();                  // дата
if ( !prevDate.equals( date ) ) {
    prevDate = date;
    newString.append( prevDate ).append( '\n' );
}
newString.append( tok.nextToken() ).append( '\n' ); // данные
}

System.out.println( newString.toString() );


I'm hustling to go get my Dynamic Effort Lower Body Training Session in but first I wanted to provide you with my latest articles, Strength Lessons, and weekly good reads. There's tons of great info this week so, if you find yourself bored over the weekend, there's plenty of reading material here.
Monday's Strength Lesson: Box Squats for the Raw lifter?
Box Squats are unquestionably one of my favorite training tools for *all* lifters. They help teach proper technique, re-enforce appropriate depth, and build starting and explosive strength.
In that sense, Box Squats are great for all lifters.
Just as anything, though, too much of one thing at the expense of others can lead to negative outcomes. For example, only Box Squatting while neglecting Free Squatting (especially for raw lifters) will negatively impact the competition Squat.
Case In Point: Box Squats are useful for the Raw lifter but should by not make up the entirety of their Squat training.
Tuesday's Strength Lesson: The most successful lifters are the ones who understand (and often appreciate) that strength gain is rarely linear.
The first 6 months to 1 year of strength training aside, you will never again progress at such a rapid pace. Some lifters find this discouraging and quit when they don't see immediate results. Others thrive on the struggle and use it as motivation; they see it as a challenge and are willing to do whatever it takes to improve.
There's a reason why there are so few *truly* strong lifters – strength training isn't easy.
Which type of person are you? Will you rise to the challenge or quit when the going gets tough? The choice is yours and yours alone.
One of the most common mistakes I see made during the kettlebell swing is hinging the hips backwards too early. Instead of being patient and waiting for the kettlebell to get close to the body, the trainee will prematurely hinge the hips which forces the kettlebell further away from the body and makes for an inefficient swing.
The Cue: Be patient and *wait as long as possible!* Don't hinge backwards until the bell is about to hit you in the balls.
For those without testicles, just imagine that you do have them and wait as long as you can to hinge before the kettlebell would hit them.
Thursday's Strength Lesson: The mind will give up long before the body ever needs to.
The mind is often our biggest limiting factor.
Mental fortitude, the ability to see through the smokescreen of discomfort and realize that we have more in us but we just need to dig deep to find it, is a learned skill that must be practiced time and time again. Recognize that fatigue is often magnified by our own thoughts and perceptions. Learn to subdue these thoughts and fight through them to unlock your true physical capacity.
The mind will give up long before the body ever needs to. Fight through.


Just days after TechCrunch first reported that Apple was close to acquiring music-identification app Shazam, the companies have confirmed the deal (a somewhat unusual move for Apple). No terms have been disclosed but it was reportedly for about $400 million, according to several outlets.
Why it matters: Shazam's technology is a natural fit to continue driving downloads to iTunes, subscriptions to Apple Music, and to help with music (and voice) recognition as part of Siri and Apple's upcoming HomePod home speaker.
We are excited to announce that Shazam has entered into an agreement to become part of Apple. Shazam is one of the highest rated apps in the world and loved by hundreds of millions of users and we can't imagine a better home for Shazam to enable us to continue innovating and delivering magic for our users.


The Traditional Shopfront Improvement Scheme is an important part of Inverness Townscape Heritage Project (TH) for Academy Street, Inverness. The grant investment aims to help make Academy Street a more attractive place to live, work, and visit through improving the appearance of shop fronts in the area by restoring them to their original design and by creating new sympathetic shopfronts and signage where no evidence of the original design exists.
The TH project is able to offer grant funding for up to 70% of eligible works towards shopfront improvements. Owners and tenants of all traditional shopfronts within Academy Street are eligible to apply for grant funding. The maximum grant awarded will be determined by the priority category assigned to the property and the nature of the works.
Grant funding will not be available for inappropriate alterations such as: fitting a standard 'off the shelf' shop front system; installing solid roller shutters; conjectural restoration; or any works using non-traditional low quality or artificial materials like uPVC, plastic or aluminium.
A more comprehensive Shop Front Design Guide has been produced by The Highland Council and is available to applicants for information.
• Sundry costs including planning fees, surveys, necessary prelims, and any VAT that cannot be recovered.
It has long been accepted that there is a clear link between the quality of the built environment and the economic success of a place.
Shopfronts play an important role in defining the character of an area. Because they are situated at ground level, shopfronts are highly visible and the image they project has a huge impact on the quality of the built environment and the way people who live, work and visit feel about an area.
Well-designed shopfronts, constructed from high quality materials with appropriate signage, interesting window displays and an inviting entrance, fulfil their commercial purpose to display goods for sale and attract customers. They also make for more attractive streets and encourage people to visit or spend more time in an area, thus increasing business for traders.
The opposite is also true. Rundown, unattractive and out of character shopfronts can have a negative impact, detracting from the area they are situated in and discouraging shoppers.
Properly maintained traditional shopfronts add interest and variety to a street, help to foster local distinctiveness and define a unique 'sense of place'. This attractiveness is increasingly important today when shoppers can choose to shop on the internet or in out of town retail parks. In order to remain competitive, local shopping areas need to offer a different experience – such as a nice environment to spend time in and interesting places to interact with the community and meet people. So it makes sense to make the most of heritage features and foster local distinctiveness in order to attract more visitors and shoppers to Academy Street and the wider Inverness City Centre.
• Increasing footfall to the shopping area, leading to new opportunities for businesses and jobs.
Shopfront improvement schemes elsewhere in the UK have been successful in returning a sense of quality to an area, and subsequently increasing economic activity.


Meagan's Creations: Sneak Peek, Chance to Win, and a Blogger Call!
Sneak Peek, Chance to Win, and a Blogger Call!
Hello Scrappers! I hope you are having a great day and that you are not stressing out about the approaching Thanksgiving Day! I am having family over and my house is kinda tiny so not sure how it will work but it should be cozy!
Wanted to share a sneak peek with you!!! So excited for this!! A totally BRAND NEW COLLECTION that will be available as an amazing grab bag deal this coming weekend! $16 value, this collection includes kit, word art clusters, quick pages and clusters! And YOU will be able to get it for only $5 this weekend!!
For your chance to win this grab bag, post a comment in the ScrapMatters forum in THIS THREAD.
I also wanted to let you know that ScrapMatters has a great sale lined up for Black Friday/Manic Monday!! So make sure you're following my Facebook page for the most up-to-date information about it!
And lastly, I wanted to let you know I am in need of a new blogger! If you would like to get access to all my store in exchange for making 3 posts a week, please email me at meagan2t@gmail.com!
I would love to win your lovely grab bag! Thank you so much for the chance!
New Release: A Christmas To Remember!
Sneak Peek to WIN at the ScrapMatters forums!
Meagan's intro and her ScrapMatters Challenge!
Featured Designer Chat with Meagan's Creations!


text:
Local expert offers tips on dealing with holiday stress
Anxiety, stress related to holidays very common
By: Ruta Ulcinaite
GRAND RAPIDS, Mich. — The holidays can be an exciting time, but it can also be very stressful. Priority Health director of behavioral health Jeff Greshak offers tips for a calmer holiday experience.
"I think being stressed during the holidays is common and it has to do with a variety of reasons," Greshak said.
The stressors can be caused from holiday shopping and finances, or wrapping up a semester at school or work for the year. Then of course, there is COVID-19 and the continuous fears that you might infect yourself or others.
"It's certainly not a typical Christmas or holiday season and I think last year individuals thought maybe the 2021 holiday season would be different," Greshak said.
However, things aren't too different this year with COVID cases ticking up again and concerns about the different variants growing. Whatever the stressors may be, Greshak says giving yourself some room to breathe is important.
"It's really important that people take a moment of calm and engage in breathing activities to slow themselves down a little bit," he said.
Organizing your days and writing down your tasks can also help, but if that doesn't work, seeking out medical help may be the best thing to do.
"We need to reduce the stigma associated with people reaching out for help," Greshak said. "We all experience stress, depression, anxiety at different times."


Order Steve's brand-new CD, "Mushroom World," by sending a $15 check or money order (includes S&H) per CD.
Steve's 2001 debut CD, "The Old Wooden Fence," is available by sending an $8 check or money order (includes S&H).
If you prefer digital downloads, Click HERE. You can listen to free samples of each song and download singles or the entire albums.
Credit Card orders (including International orders) for the Mushroom World CD can be placed at amazon.com or cdbaby.com for $15 plus shipping. Credit card orders through PayPal are also possible for domestic and international orders. Email requests directly to Steve to work out details.


Software and apps are designed to help users explore the world in own unique ways. In fact, they use the latest technologies to complement the day-to-day lives of users. So, do users really benefit from these programs or software in the intended way?
No, because virus and malware are so prevalent on the internet that they restrict the usages and access of those well-intentioned software and apps. The highly unsafe internet stops anyone from fully leveraging on the potential of the latest technological offerings.
What is the solution then? How should users be benefitted without infecting their system with risky and unwanted guests?
Aptaps brings the solution - a fast-growing software platform that allows accessing and exploration of programs and apps for different devices and operating systems. It's an ideal destination for high quality software, apps and games that are 100% safe and secure.
Aptaps allows access and downloading of latest software, games and apps from across the globe. Our platform has a vast directory of latest version software, apps and games for all devices and operating systems.
We bring to users updated versions of products and programs to enrich their day-to-day lives. Software listed on Aptaps download portal are accompanied with expert reviews and perspectives to help in selection and usages.
We only provide a quality resource to users and that makes our reliability and popularity soar among users. Our platform never lists harmful software, and if we list, it comes with correct info to warn and caution users.
More so, our directory never follows the search engine in terms of listing, as we list what we find suitable and helpful for users, not and never on the basis of search engine listing.
Virus and malware testing of software is our forte, and we ensure to only provide high quality products to users.
We aim to enrich users by giving them access to safe, trusted and high quality software. We strive to add value to users' daily lives with our virus-free and secure downloading of software, apps and games.


The baseline analysis "Enhancing the National Legal Framework in Ukraine for Protecting the Human Rights of IDPs" was prepared in the framework of the Council of Europe Project "Strengthening the Human Rights Protection of Internally Displaced Persons in Ukraine". The paper was produced as a comprehensive analysis of 21 themes on internal displacement covering relevant international, Council of Europe and Ukrainian standards.
This study was prepared by the Council of Europe international and national experts, including Ms Erin Mooney, an international expert on internal displacement, who led and coordinated the research team; Mr Yevgen Gerasymenko, Ms Olga Morkova, and Mr Sergiy Zayets, Ukrainian legal experts who drafted the analysis of national legislation; while the analysis of Council of Europe standards was drafted by Barbara McCallin as well as researchers and experts from the Advocacy Centre on Council of Europe Standards (ACCESS): Filip Chraska, Evgenia Giakoumopoulou and Costas Paraskevas.
Find out more and download the study in English or Ukrainian here.


text:
Past political, religious leaders plotting to forcefully remove Buhari – Presidency
The Presidency has said there is evidence showing that some disruptive elements are now recruiting the leadership of some ethnic groups and politicians around the country, to forcefully remove President Muhammadu Buhari from office.
The Presidency in a statement made available to newsmen by Garba Shehu, the Presidential Spokesman, said the individuals are "convening some sort of conference, where a vote of no confidence would be passed on the President, thus throwing the land into further turmoil."
The Presidency was responding to an earlier claim by the Department of State Services (DSS), which on Sunday alerted on sinister moves by those it called misguided elements to wreak havoc on the government, sovereignty and corporate existence of the country.
The move is "Championed by some disgruntled religious and past political leaders, the intention is to eventually throw the country into a tailspin, which would compel a forceful and undemocratic change of leadership," the Presidency claimed.
"The caterwauling, in recent times, by these elements, is to prepare the grounds adequately for their ignoble intentions, which are designed to cause further grief for the country.
"The agent provocateurs hope to achieve through artifice and sleight of hands, what they failed to do through the ballot box in the 2019 elections.
"Nigerians have opted for democratic rule and the only accepted way to change a democratically elected government is through elections, which hold at prescribed times in the country. Any other way is patently illegal and even treasonable. Of course, such would attract the necessary consequences.
"These discredited individuals and groups are also in cahoots with external forces to cause maximum damage in their own country. But the Presidency, already vested with mandate and authority by Nigerians till 2023, pledges to keep the country together, even if some unruly feathers would be ruffled in the process."
Published May 4, 2021 By MaaziTV
Search Teams Recover Seats, Wheels From Indonesia Jet Crash Site
Rivers Will Not Join Secession, Wike Warns


No.2 seed Roger Federer defeated Australian Bernard Tomic in straight sets 6-4 7-6 (5) 6-1 to reach the fourth round of Australian Open 2013.
With this win, Federer improved the head to head against the Australian to 4-0, booking a next round clash against Canadian Milos Raonic, who overcame German Philipp Kohlschreiber 7-6 (4) 6-3 6-4.
The key moment of the first set came in the opening game when the 4 time Aussie Open champion Federer pounced to take Tomic's serve. Despite the Swiss falling 15-30 behind on when serving for the set at 5-4, he got himself out of trouble to take a lead in the match.
Federer earned himself quite a few break points in set two, but was unable to convert any of them. With both players holding serve, a tiebreak was inevitable. It was Tomic who got the first mini break, getting to a 5-3 lead just before the Fed Express fought back to take the next four points, eventually earning himself a two sets lead.
This seemed to have given some extra boost to Federer's game and after taking Tomic's serve for the second time in the match to go 2-0 up in the third set, nothing could stop him anymore from advancing to the next round.
The Swiss is trying to become the first player to win this Grand Slam tournament for the 5th time.


Copyright J Hanna. All rights reserved.
J Hanna is a screenwriter, cinematographer, and director. "I Was A Teenage Superhero Sidekick" is the first of Mr. Hanna's five feature-length screenplays to be produced. He has also since written and directed three short films, all three, "Transport," "Deal?" and "Rumblings" have already screened in film festivals around the country, in Canada, the UK, Germany and New Zealand. J shadowed producing director Tom Verica on ABC Disney's "Scandal" in 2015 and was a finalist in the 2014 Disney ABC Directing Program.
Born on Long Island, New York, Hanna landed in Los Angeles after graduating with his Bachelor of Science from Hofstra University's Film and Television Program. J lives surrounded by his Lego collection, Power Rangers defenses and a selection of wall-mounted light sabers.


In my journey to health and well being I have made many smoothies over this past year. I have progressed from my humble little nutribullet to a full blown vitamix during that time. With experience I learned what combinations work and what does not.
For example, you never want to blend a grapefruit and vegetables with a cheap blender, unless you like it chunky and bitter. This was one of the first smoothies I ever made and it almost made me never want to do smoothies again, but I decided I would try again with the nutribullet.
With a 600 watt motor it was a step in the right direction. Here is my review on youtube which surprisingly climbed up to 46,000 hits at the time of this posting. My favorite comment: "Blow me dry with dat music ugh !" hahahahaha.
I have selected my personal favorites from the hundreds of smoothies I made over the year. They include uncommon ingredients like maca root powder or coconut oil, although these are becoming more common and can be found at most local health food stores.
The reason I like to include superfoods in my smoothies is for the amazing health benefits. Maca for example is a powerful adaptogen that makes it easier for your body to adapt to stress, balances hormones (normalizes testosterone/estrogen levels), and increases stamina for workouts. I don't use it every day but it's great right before a workout, exam, presentation because of its ability to manage stress levels so well.
My goal was to create smoothies that not only tasted good, but provided incredible nutrition. I'm excited to share the results of my year long journey into smoothies and hope it inspires you to make creations of your own. With that said, enjoy!
Simple yet divine. Goji berries contain 18 amino acids, including all eight essential amino acids. Amino acids are the building blocks of proteins and have many functions in the body.
Maca and ashwaghanda are both a root vegetable in powder form. Excellent for workouts, boosts testosterone levels. Ashwaghanda is similar to maca but it comes from India.
Great summertime smoothie. The aloe helps with digestion and aids in developing healthy intestinal flora.
Great morning drink. It's suggested to drink wheatgrass juice on an empty stomach and the lemon/ginger/honey is a great addition to get your digestive fire working for the rest of the day. It encourages the liver to produce bile which is an acid that is required for digestion. Click here for more info on wheatgrass.
Blend honey, ginger, and lemon together with water and add to wheatgrass juice.
MSM (Methyl-Sulfonyl-Methane) is an organic form of sulfur that appears in all living organisms. It's found in high concentrations in pine needles, aloe vera, noni fruit, and wild grasses. Helps to grow thick hair, clear acne, reduces soreness in muscles even after vigorous excercise, more elasticity for yoga, better brain function and more.
There are several powerful antioxidants that appear in berries, including anthocyanins, quercetin, and vitamin C. Eating a diet rich in antioxidants can help improve your health, protect your skin and hair, and prevent certain diseases. Dandelion greens are also loaded with antioxidants and are a great liver/kidney cleanser.
You could probably tell I'm running out of smoothie names.
If you want to get fancy, try including tinctures in your smoothies. The Reishi and astragalus tincture is a powerful adaptogen (supports ability to adapt to stress), combined with maca and ashwaghanda, you're looking at a powerful smoothie to help boost the effectiveness of your workouts.
This isn't my recipe but I wanted to include it because it's so good. FullyRawKristina on youtube is a great resource for smoothies and raw food recipes and highly recommend it if you wish to explore more smoothie ideas. For full recipe and directions on how to make this frozen treat, click here.


WATERVILLE, Maine -- The 23rd-ranked Colby College women's squash team fell 9-0 to 18th-ranked Bates College in the home opener Thursday at the Dunaway Courts.
The Mules will head to Amherst College for matches Friday and Saturday. Sunday's competition has been called off due to the impending snowstorm that will hit New England late Saturday into Sunday.


I really love mixing prints and a mix of floral and stripe add a fun and unique look to an outfit. The floral print on the skirt makes it easy to be styled with a plain colored top or print top. For this post, I styled with a print off shoulder top and I completed the look with pumps that have a hint of blue to complement.
Shopbop is having a 'surprise sale' - 25% off all designer sale merchandise using the code DESIGNER25 at checkout.
Amazon Prime deals includes 30% off clothing, shoes and accessories, and 35% off luxury beauty.
Such a beautiful look. I just love the way you mix prints!
Love the way you mixed the prints. And the fit is amazing!
Choi! See me saying if only Stella were my sister...! You dunno what my head is thinking.
I gbadun the skirt abeg!


Turn It Up to Burn It Off™!
Country Heat Challenge Pack!Country Heat Base Kit!
How does Country Heat work?
The Country Heat program, featuring 6 workouts on 3 DVDs, a set of 7 portion-control containers, a Shakeology shaker cup, and the Country Heat Eating Plan to help you achieve your weight-loss goals.
Now there's a workout that's so effective—and such a blast—you actually can't wait to do it! With Country Heat, trainer Autumn Calabrese combines simple dance moves with the hottest country music to create high-energy 30-minute workouts that are so amazingly fun, you'll barely notice you're torching tons of calories and toning your entire body.
For 30 days, you'll turn up the heat to burn off the fat with 6 blazing-hot workouts, while fueling your body with Shakeology, Your Daily Dose of Dense Nutrition®. With the Country Heat and Shakeology Challenge Pack, you'll finally have the tools—the fun, simple, cardio-based workouts and the ultimate nutrition—to melt off the weight and get the results you're looking for.
The container system is also included in Country Heat.


Newly renovated, three hundred year old farmhouse in Chamonix seeks ten outdoor craving, spa loving, view-seeking fun individuals. This is a chalet with a big heart and a lot of love to give.
Nestled into the forested exclusivity of Les Bois, this lovingly restored farmhouse is the perfect place to call home after a hard day on the slopes. Chalet Uno would be delighted to offer you a movie in the home cinema, complete with authentic cinema seats or a glass of something bubbly in the hot tub. If you would prefer to sink into one of the sumptuous sofas with one of the chef's homemade cakes and a cup of tea, Uno will pull the footstool up for you.
This is one of those chalets where you can kick off your shoes and you don't need to feel guilty about not dressing up for supper. Of course, if you would like to dress up in your finest, your evening four-course dinners sound like the perfect excuse. Chalet Uno wants you to feel completely at ease this week. This is your home from home. Well, maybe with a few extra luxuries dotted around that you have naturally come to expect from a SkiBoutique chalet.
It's time to drag yourself out of your freestanding roll top bath. If you want to make an exaggerated sigh at how tough life is, then we'll allow you. There's a pile of extra fluffy towels for you to stumble out of your en-suite bathroom in. Perhaps we can tempt you upstairs with a pre dinner aperitif around the fire?
The dining table at Chalet Uno was built for regaling stories of today's latest adventure. After all, you are a true adventure seeker. You have come to Chamonix to not only ski but to try your hand at the legendary off-piste, ski touring and ice climbing. After four courses, all served with the finest selection of house wine, it will seem like an excellent idea to come back for two weeks next season.
We are glad that in Chalet Uno, you have found a new friend in high places.
If you're looking for charm, Chalet Uno has it in bucket loads. This renovated 300 year old farmhouse is warm, comfortable and the perfect mountain retreat. I love it.


today we have the sweet becky from sugar plum invitations with a great interview, answering some basic letterpress questions. be sure to stop by her lovely blog as well!
Please explain letterpress: Letterpress printing is a relief print, where an inked image is pressed into a sheet of paper. It's the same type of printing that Gutenberg used in the mid-15th century. It was the common form of printing for centuries and used up until about 60 years ago. Letterpress printing gives a great textual impression, especially if combined with heavy cotton rag paper. It's a unique look and feel that other forms of printing can't match. Each one of our pieces is hand fed through one of our vintage Chandler & Price Craftsman Presses.
How did you get started in letterpress? My husband Troy was intrigued by the idea of vintage printing. We saw a few in action and then the beautiful results and we were hooked. It feels like a very personal way to print, each piece of paper is hand feel through the press for each color. There is lots of human touch involved. We're happy to produce something that requires a lot of skill and care.. much more personal than a laser printer! ( It's nostalgic, comforting and made at home with love.) I love mixing and using color when printing.. it's rather magical to watch an old greasy machine print something colorful and crisp!
How does letterpress printing work? We have a custom plate made (think of it as a stamp) for every design and text used. We ink the press with one color.. say green. We then place the plate (with only the parts we want in green ink) into the press and align it with our paper. (Making sure registration and alignment are correct can take a long time sometimes an hour to get it perfect.) We then hand feed the paper through press, one sheet at a time. The ink dries. We tear down the press, clean it, and then re-ink and put in another plate to print the next color. Repeat. How do you say "time consuming?"
Why is letterpress printing considered a "vintage" form of printing? It's a vintage form of printing since we're using the same methods used for centuries. Just about everything is done by hand. Letterpress presses stopped being manufactured 40 years ago, and the printers that knew how to use them are dying along with this form of art. It's exciting to see a new generation of printers carry on this unique and beautiful form of printing. It takes a lot of time, patience and skill, but it's oh-so worth it. Especially in our fast pace lives of e-mail and texting , letterpress notes and invitations feels so elegant, special, hand crafted. It reminds me of when friends give me a jar of homemade jam. I appreciate all the work that went into it and cherish it all the more. Letterpress printing is a beautiful form of art, we love preserving.
How long does it take to print? It depends on how many colors we're doing, and how complex the designs are. A large wedding invitation set 2 colors with custom cutting can take all day.. 6-8 hours.
What press do you print on? We have two full size Chandler and Price Craftman presses, 60 and 90 years old!
Thanks so much for interviewing us Danni, I love the features this week! It's great to show how much talent is out there in letterpress! hugs!


We would love add recipes that use our products in new ways! Please use the form below to submit your information.
Note that we need at least one photo of your prepared dish. Everyone loves pictures!
Enter your name in the way that you'd like to see it published -- initials, full name, or whatever you are comfortable with.
Please fill in the details of your recipe.
I give permission for AGS to publish my recipe, credit it to me by name and use the attached photo of my prepared dish.
but Mariam's dish was exceptional. I am accustomed to eating just plain rice but the tender meat together with the rice and other ingredients flavored with her sauce was a real taste treat.