text:
Could a weakening US economy imperil Trump's trade war against China?
President Donald Trump's trade war with China is based on two basic and complementary assumptions: the U.S. economy is strong and, perhaps more importantly, stronger than the Chinese economy.
Last summer when the war began heating up, both assumptions were certainly true. The American economy was booming, while China's was slowing. Hence, the U.S. was in a better position to withstand any pain in a tariff war of attrition.
But the first of those assumptions, at least, is beginning to falter as signs grow of economic weakness in the U.S.
As an economist who conducts research in international trade, I believe that a weaker U.S. economy would likely affect Trump's ability to engage in a prolonged trade war with China - no matter how much he might want to.
Signs of weakness
The U.S. economy has been expanding for a decade now, and no economy can continue to grow indefinitely. The May jobs report was the latest indicator that the party may be coming to an end.
The report showed that the U.S. economy added only 75,000 jobs that month, a significantly lower number than the 224,000 jobs added in April. Even though the unemployment rate stayed at the extremely low figure of 3.6%, worryingly, there was virtually no wage growth. In addition, another key metric, the so-called ISM Manufacturing Index, fell to its lowest level in Trump's presidency in May.
And while GDP growth has remained fairly robust, there have been other harbingers of underlying weakness in recent months, including a bond market signal that a recession may be on the horizon and a broad measure of the health of the U.S. economy that recorded its slowest increase in more than two years.
Putting this all together, it suggests a key premise behind Trump's trade war with China may not hold up for much longer.
Trade war's role
One of the reasons to blame for economic sluggishness is the trade war itself and specifically Trump's use of tariffs to prosecute it.
Contrary to what he has said in the past, elementary trade theory shows that tariffs not only hurt the intended target but the tariff-imposing nation as well. This fundamental theoretical prediction is now being borne out in practice.
For instance, a recent and ongoing study by a group of economists shows that the higher prices resulting from Trump's tariffs on China have been paid largely by U.S. retailers, and some of them may soon be passed on to consumers. A separate study focused on washing machines found that tariffs resulted in an average 12% increase in the price of the appliance, whether it was imported or made domestically.
Then there's the impact of the retaliatory tariffs. Studies show that the U.S. coal, crude oil and agricultural sectors have all been detrimentally affected by Chinese tariffs imposed in response. In addition, there is reason to believe that the slowdown in American job growth is being felt most acutely in the sectors that are most susceptible to trade tensions such as manufacturing, construction, mining and logging.
In other words, if the deleterious impacts of Trump's trade war with China continue to be felt in an economy that is weakening, it is certainly likely that there will be much greater opposition to these tariffs from industry groups and lawmakers.
These possibilities cast serious doubt on Trump's ability to continue - let alone achieve the concessions he might need to win - a protracted trade war with China.
Fed to the rescue?
Trump may end up having an unexpected ally in the Federal Reserve, however.
Evidence of weakness has already ended the U.S. central bank's policy of monetary tightening by raising interest rates. The latest data will no doubt put considerable pressure on the Fed to actually cut rates to avoid a more sustained slowdown.
If it does, then the Fed-driven stimulation will mitigate some of the pain felt by Americans as a result of Trump's trade war with China and continue to prosecute his trade war.
That being said, it is still too early to say definitively that the U.S. economy is cooling.
And, given Trump's unpredictability, it's impossible to forecast what may happen no matter what. At least for now, the president appears to have no intention of backing down.
But for me, a weakening economy adds to the reasons why this trade war is not only futile but harmful. For one thing, I believe tariffs alone cannot address the underlying structural problems that afflict U.S.-China trade.
And let's not forget that the trade war has global repercussions. The Organization for Economic Cooperation and Development recently warned that an escalation of this trade war - as Trump has repeatedly threatened - will damage the rest of the world, trimming 0.7% off global growth by 2021. That may not sound like much, but this trimming amounts to a whopping US$600 billion in lost economic activity.
It's a reminder that the stakes of this war are enormous.
Author: Amitrajeet A. Batabyal - Arthur J. Gosnell Professor of Economics, Rochester Institute of Technology


text:
Q: mongoDB aggregation: how to use value as key Hi I've got some records like:
{_id:xxx, user:1, item:A, count: 1}
{_id:xxx, user:1, item:B, count: 3}
{_id:xxx, user:2, item:A, count: 5}
{_id:xxx, user:2, item:B, count: 2}

can I get the dict below by using aggregate?
{user:1,{A:1,B:3}, user:2,{A:5,B:2}}

A: You can use this $group $arrayToObject
db.col.aggregate([
   {"$group" : {"_id" : "$user","data" : {"$push" : {"k" : "$item","v" : "$count"}}}},
   { "$project" : {"user" : "$_id","_id" : 0, "data" : { "$arrayToObject" : "$data" }}}

])

redpajama_set_name: RedPajamaStackExchange


text:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      <meta name="keywords" content="W3C SVG 1.1 2nd Edition Test Suite"/>
      <meta name="description" content="W3C SVG 1.1 2nd Edition SVGWeb Test Suite"/>
      <title>
SVG 1.1 2nd Edition Test (svgweb): coords-transformattr-05-f.svg
      </title>

      <link rel="prev" href="coords-transformattr-04-f.html" />
      <link rel="index" href="index.html" />
      <link rel="next" href="coords-units-01-b.html" />

Specification link:

    coords-transformattr-04-f ←
    index
    → coords-units-01-b

    Tests that contain the draft-watermark are under development and may be incorrectly testing a feature.

coords-transformattr-05-f.svg

            SVG Image

            PNG Image

              <object data="../../svg/coords-transformattr-05-f.svg" width="480" height="360" type="image/svg+xml">
FAIL

              </object>

      Operator Script

Run the test. No interaction required.

    Pass Criteria

        Test passes if there is no red visible on the page.

    Test Description

        If 'cx' and 'cy' are not specified for a 'rotate' transform, the rotation is about the origin of the current user coordinate system and thus corresponds to the matrix [cos(a) sin(a) -sin(a) cos(a) 0 0].

        Specify a series of various black graphics elements inside a 'g' element with 'transform' set to a 'rotate' value with unspecified 'cx'
        and 'cy' parameters (i.e., 'rotate(15)'). Specify an equivalent series of red graphics elements inside a 'g' element with 'transform' set
        to a 'matrix' value which would rotate the elements 15 degrees about the point (0,0) of the current user coordinate system. If the 'g' element containing the black elements correctly rotates its content by 15 degrees around the origin of the current user coordinate system, there will be no red on the page.

    coords-transformattr-04-f ←
    index
    → coords-units-01-b

redpajama_set_name: RedPajamaGithub


This image gallery named as How To Clean Soap Scum And Stains In A Bathtub might be ideal solution for your decoration. As the author has insert this image into Best Thing To Clean Shower Tile post section, would ease you to find the perfect match of you decor desire.
how to clean soap scum and stains in a bathtub should show that the futuristic nuance. This sort of design is very popular nowadays specially in lodge and modern shower houses. In the event you wish to construct the modern theory for your shower, below are some measure to generating your wish be realized.
If you want simple and weatherproof shower storage, then it is possible to purchase inexpensive crates and paint from a craft shop to create a storage option which is both functional and decorative. You might also use it out of materials close to you as a broken table or door. You may cut it, form it into your liking, and then paint it white to produce the shower feel minimalist or spacious, and maybe vintage. Hang it around the wall to conserve area or store them on hand of dressing. how to clean soap scum and stains in a bathtub offer you additional storage suggestions and do the job well in varied spaces and motifs — this may display your trinkets superbly and fit the decor of your shower.
These are how to clean soap scum and stains in a bathtub that might make your shower looks lovely and tranquil and also have been advocated by most designers. In the event you would like to improve your room appearing more broad, delicate neutral shades are the ones you are on the lookout for. Combine pastel wall colors with light pinks, blues and greens artwork hues to highlight tranquility in your shower.
how to clean soap scum and stains in a bathtub is actually a primary shower from the house. Some people makes the look of learn shower appears really so glory and luxury since they believe the learn shower will reflect their very own personality. If folks prefer touse the shower and also see that a superior design of master shower, then the user is going to feel convenient and amaze too! Therefore, here are some design suggestions to earn your master shower looks much more magnificent.
If we come to a single furniture retailer, rather much, the shopkeeper would ask us away about what we need. With just a tiny grief in our T One, the shopkeeper will feel that likely we haven't understood yet that which we desire; yet we do know, but do not understand which the excellent ones are all. Preventing this scenario will function easier. We are supposed to know our needs ; it comprises exactly the variety, the stuff, or even the layouts. What should we perform? On-line survey would be far easier. Have a look on a few tips on the next paragraph and then list the criteria we demand for a very good how to clean soap scum and stains in a bathtub.
When you have pure concept for the shower, you simply have to get a really good Japanese wall or space separation. You really do not need to have the entire wall finished together with those japanese-style. You can just have 1 side around the tub in one other part of your shower wall. Besides it can be amazing how to clean soap scum and stains in a bathtub, this particular wall will make your shower more shinny and clear.
It's possible for you to secure the look of pure stones such as granite and granite walnut having a minimal priced using laminate shower counter-tops. Laminate shower countertops include a great deal of styles. To acquire yourself a traditional appearance on your shower, you can possess laminate shower counter-tops with wooden look. Blend it with an antique and unique shower sinks.


If average speed of your car will be standard for this route between Lujing Road, Guangzhou, Guangdong, China and Zhongshan, Guangdong, China 510660 and road conditions will be as usual, time that you will need to arrive to Zhongshan, Guangdong, China 510660 will be 1 hour.
Driving distance between Lujing Road, Guangzhou, Guangdong, China and Zhongshan, Guangdong, China 510660 is calculated by google maps and it is 99 mi.
You need 2 hour to reach Zhongshan, Guangdong, China 510660 from Lujing Road, Guangzhou, Guangdong, China , if you are travelling by car.
Average amount of gas with an average car when travelling from Lujing Road, Guangzhou, Guangdong, China to Zhongshan, Guangdong, China 510660 will be 7 gallons gallons which costs 10 $.


text:
package zfs

// #include <stdlib.h>
// #include <libzfs.h>
// #include "zpool.h"
// #include "zfs.h"
import "C"

import (
	"errors"
	"fmt"
	"strconv"
	"time"
	"unsafe"
)

const (
	msgPoolIsNil = "Pool handle not initialized or its closed"
)

// PoolProperties type is map of pool properties name -> value
type PoolProperties map[Prop]string

/*
 * ZIO types.  Needed to interpret vdev statistics below.
 */
const (
	ZIOTypeNull = iota
	ZIOTypeRead
	ZIOTypeWrite
	ZIOTypeFree
	ZIOTypeClaim
	ZIOTypeIOCtl
	ZIOTypes
)

// Scan states
const (
	DSSNone      = iota // No scan
	DSSScanning         // Scanning
	DSSFinished         // Scan finished
	DSSCanceled         // Scan canceled
	DSSNumStates        // Total number of scan states
)

// Scan functions
const (
	PoolScanNone     = iota // No scan function
	PoolScanScrub           // Pools is checked against errors
	PoolScanResilver        // Pool is resilvering
	PoolScanFuncs           // Number of scan functions
)

// VDevStat - Vdev statistics.  Note: all fields should be 64-bit because this
// is passed between kernel and userland as an nvlist uint64 array.
type VDevStat struct {
	Timestamp      time.Duration    /* time since vdev load	(nanoseconds)*/
	State          VDevState        /* vdev state		*/
	Aux            VDevAux          /* see vdev_aux_t	*/
	Alloc          uint64           /* space allocated	*/
	Space          uint64           /* total capacity	*/
	DSpace         uint64           /* deflated capacity	*/
	RSize          uint64           /* replaceable dev size */
	ESize          uint64           /* expandable dev size */
	Ops            [ZIOTypes]uint64 /* operation count	*/
	Bytes          [ZIOTypes]uint64 /* bytes read/written	*/
	ReadErrors     uint64           /* read errors		*/
	WriteErrors    uint64           /* write errors		*/
	ChecksumErrors uint64           /* checksum errors	*/
	SelfHealed     uint64           /* self-healed bytes	*/
	ScanRemoving   uint64           /* removing?	*/
	ScanProcessed  uint64           /* scan processed bytes	*/
	Fragmentation  uint64           /* device fragmentation */
}

// PoolScanStat - Pool scan statistics
type PoolScanStat struct {
	// Values stored on disk
	Func      uint64 // Current scan function e.g. none, scrub ...
	State     uint64 // Current scan state e.g. scanning, finished ...
	StartTime uint64 // Scan start time
	EndTime   uint64 // Scan end time
	ToExamine uint64 // Total bytes to scan
	Examined  uint64 // Total bytes scaned
	ToProcess uint64 // Total bytes to processed
	Processed uint64 // Total bytes processed
	Errors    uint64 // Scan errors
	// Values not stored on disk
	PassExam  uint64 // Examined bytes per scan pass
	PassStart uint64 // Start time of scan pass
}

// VDevTree ZFS virtual device tree
type VDevTree struct {
	Type     VDevType
	Devices  []VDevTree // groups other devices (e.g. mirror)
	Parity   uint
	Path     string
	Id       uint64
	Name     string
	Stat     VDevStat
	ScanStat PoolScanStat
}

// ExportedPool is type representing ZFS pool available for import
type ExportedPool struct {
	VDevs   VDevTree
	Name    string
	Comment string
	GUID    uint64
	State   PoolState
	Status  PoolStatus
}

// Pool object represents handler to single ZFS pool
//
/* Pool.Properties map[string]Property
 */
// Map of all ZFS pool properties, changing any of this will not affect ZFS
// pool, for that use SetProperty( name, value string) method of the pool
// object. This map is initial loaded when ever you open or create pool to
// give easy access to listing all available properties. It can be refreshed
// with up to date values with call to (*Pool) ReloadProperties
type Pool struct {
	list       *C.zpool_list_t
	Properties []Property
	Features   map[string]string
}

// PoolOpen open ZFS pool handler by name.
// Returns Pool object, requires Pool.Close() to be called explicitly
// for memory cleanup after object is not needed anymore.
func PoolOpen(name string) (pool Pool, err error) {
	csName := C.CString(name)
	defer C.free(unsafe.Pointer(csName))
	pool.list = C.zpool_list_open(libzfsHandle, csName)

	if pool.list != nil {
		err = pool.ReloadProperties()
		return
	}
	err = LastError()
	return
}

func poolGetConfig(name string, nv *C.nvlist_t) (vdevs VDevTree, err error) {
	var dtype *C.char
	var c, children C.uint_t
	var notpresent C.uint64_t
	var id C.uint64_t
	var vs *C.vdev_stat_t
	var ps *C.pool_scan_stat_t
	var child **C.nvlist_t
	if 0 != C.nvlist_lookup_string(nv, C.sZPOOL_CONFIG_TYPE, &dtype) {
		err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_TYPE)
		return
	}
	vdevs.Name = name
	vdevs.Type = VDevType(C.GoString(dtype))
	if vdevs.Type == VDevTypeMissing || vdevs.Type == VDevTypeHole {
		return
	}

	if C.nvlist_lookup_uint64(nv, C.sZPOOL_CONFIG_ID, &id) != 0 {
		return
	}
	vdevs.Id = uint64(id)

	// Fetch vdev state
	if 0 != C.nvlist_lookup_uint64_array_vds(nv, C.sZPOOL_CONFIG_VDEV_STATS,
		&vs, &c) {
		err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_VDEV_STATS)
		return
	}
	vdevs.Stat.Timestamp = time.Duration(vs.vs_timestamp)
	vdevs.Stat.State = VDevState(vs.vs_state)
	vdevs.Stat.Aux = VDevAux(vs.vs_aux)
	vdevs.Stat.Alloc = uint64(vs.vs_alloc)
	vdevs.Stat.Space = uint64(vs.vs_space)
	vdevs.Stat.DSpace = uint64(vs.vs_dspace)
	vdevs.Stat.RSize = uint64(vs.vs_rsize)
	vdevs.Stat.ESize = uint64(vs.vs_esize)
	for z := 0; z < ZIOTypes; z++ {
		vdevs.Stat.Ops[z] = uint64(vs.vs_ops[z])
		vdevs.Stat.Bytes[z] = uint64(vs.vs_bytes[z])
	}
	vdevs.Stat.ReadErrors = uint64(vs.vs_read_errors)
	vdevs.Stat.WriteErrors = uint64(vs.vs_write_errors)
	vdevs.Stat.ChecksumErrors = uint64(vs.vs_checksum_errors)
	vdevs.Stat.SelfHealed = uint64(vs.vs_self_healed)
	vdevs.Stat.ScanRemoving = uint64(vs.vs_scan_removing)
	vdevs.Stat.ScanProcessed = uint64(vs.vs_scan_processed)
	vdevs.Stat.Fragmentation = uint64(vs.vs_fragmentation)

	// Fetch vdev scan stats
	if 0 == C.nvlist_lookup_uint64_array_ps(nv, C.sZPOOL_CONFIG_SCAN_STATS,
		&ps, &c) {
		vdevs.ScanStat.Func = uint64(ps.pss_func)
		vdevs.ScanStat.State = uint64(ps.pss_state)
		vdevs.ScanStat.StartTime = uint64(ps.pss_start_time)
		vdevs.ScanStat.EndTime = uint64(ps.pss_end_time)
		vdevs.ScanStat.ToExamine = uint64(ps.pss_to_examine)
		vdevs.ScanStat.Examined = uint64(ps.pss_examined)
		vdevs.ScanStat.ToProcess = uint64(ps.pss_to_process)
		vdevs.ScanStat.Processed = uint64(ps.pss_processed)
		vdevs.ScanStat.Errors = uint64(ps.pss_errors)
		vdevs.ScanStat.PassExam = uint64(ps.pss_pass_exam)
		vdevs.ScanStat.PassStart = uint64(ps.pss_pass_start)
	}

	// Fetch the children
	if C.nvlist_lookup_nvlist_array(nv, C.sZPOOL_CONFIG_CHILDREN,
		&child, &children) != 0 {
		return
	}
	if children > 0 {
		vdevs.Devices = make([]VDevTree, 0, children)
	}
	if C.nvlist_lookup_uint64(nv, C.sZPOOL_CONFIG_NOT_PRESENT,
		&notpresent) == 0 {
		var path *C.char
		if 0 != C.nvlist_lookup_string(nv, C.sZPOOL_CONFIG_PATH, &path) {
			err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_PATH)
			return
		}
		vdevs.Path = C.GoString(path)
	}
	for c = 0; c < children; c++ {
		var islog = C.uint64_t(C.B_FALSE)

		C.nvlist_lookup_uint64(C.nvlist_array_at(child, c),
			C.sZPOOL_CONFIG_IS_LOG, &islog)
		if islog != C.B_FALSE {
			continue
		}
		vname := C.zpool_vdev_name(libzfsHandle, nil, C.nvlist_array_at(child, c),
			C.B_TRUE)
		var vdev VDevTree
		vdev, err = poolGetConfig(C.GoString(vname),
			C.nvlist_array_at(child, c))
		C.free(unsafe.Pointer(vname))
		if err != nil {
			return
		}
		vdevs.Devices = append(vdevs.Devices, vdev)
	}
	return
}

// PoolImportSearch - Search pools available to import but not imported.
// Returns array of found pools.
func PoolImportSearch(searchpaths []string) (epools []ExportedPool, err error) {
	var config, nvroot *C.nvlist_t
	var cname, msgid, comment *C.char
	var poolState, guid C.uint64_t
	var reason C.zpool_status_t
	var errata C.zpool_errata_t
	config = nil
	var elem *C.nvpair_t
	numofp := len(searchpaths)
	cpaths := C.alloc_cstrings(C.int(numofp))
	defer C.free(unsafe.Pointer(cpaths))
	for i, path := range searchpaths {
		csPath := C.CString(path)
		defer C.free(unsafe.Pointer(csPath))
		C.strings_setat(cpaths, C.int(i), csPath)
	}

	pools := C.zpool_find_import(libzfsHandle, C.int(numofp), cpaths)
	defer C.nvlist_free(pools)
	elem = C.nvlist_next_nvpair(pools, elem)
	epools = make([]ExportedPool, 0, 1)
	for ; elem != nil; elem = C.nvlist_next_nvpair(pools, elem) {
		ep := ExportedPool{}
		if C.nvpair_value_nvlist(elem, &config) != 0 {
			err = LastError()
			return
		}
		if C.nvlist_lookup_uint64(config, C.sZPOOL_CONFIG_POOL_STATE,
			&poolState) != 0 {
			err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_POOL_STATE)
			return
		}
		ep.State = PoolState(poolState)
		if C.nvlist_lookup_string(config, C.sZPOOL_CONFIG_POOL_NAME, &cname) != 0 {
			err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_POOL_NAME)
			return
		}
		ep.Name = C.GoString(cname)
		if C.nvlist_lookup_uint64(config, C.sZPOOL_CONFIG_POOL_GUID, &guid) != 0 {
			err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_POOL_GUID)
			return
		}
		ep.GUID = uint64(guid)
		reason = C.zpool_import_status(config, &msgid, &errata)
		ep.Status = PoolStatus(reason)

		if C.nvlist_lookup_string(config, C.sZPOOL_CONFIG_COMMENT, &comment) == 0 {
			ep.Comment = C.GoString(comment)
		}

		if C.nvlist_lookup_nvlist(config, C.sZPOOL_CONFIG_VDEV_TREE,
			&nvroot) != 0 {
			err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_VDEV_TREE)
			return
		}
		ep.VDevs, err = poolGetConfig(ep.Name, nvroot)
		epools = append(epools, ep)
	}
	return
}

func poolSearchImport(q string, searchpaths []string, guid bool) (name string,
	err error) {
	var config *C.nvlist_t
	var cname *C.char
	config = nil
	errPoolList := errors.New("Failed to list pools")
	var elem *C.nvpair_t
	numofp := len(searchpaths)
	cpaths := C.alloc_cstrings(C.int(numofp))
	defer C.free(unsafe.Pointer(cpaths))
	for i, path := range searchpaths {
		csPath := C.CString(path)
		defer C.free(unsafe.Pointer(csPath))
		C.strings_setat(cpaths, C.int(i), csPath)
	}

	pools := C.zpool_find_import(libzfsHandle, C.int(numofp), cpaths)
	defer C.nvlist_free(pools)

	elem = C.nvlist_next_nvpair(pools, elem)
	for ; elem != nil; elem = C.nvlist_next_nvpair(pools, elem) {
		var cq *C.char
		var tconfig *C.nvlist_t
		retcode := C.nvpair_value_nvlist(elem, &tconfig)
		if retcode != 0 {
			err = errPoolList
			return
		}
		if guid {
			var iguid C.uint64_t
			if retcode = C.nvlist_lookup_uint64(tconfig,
				C.sZPOOL_CONFIG_POOL_GUID, &iguid); retcode != 0 {
				err = errPoolList
				return
			}
			sguid := fmt.Sprint(iguid)
			if q == sguid {
				config = tconfig
				break
			}
		} else {
			if retcode = C.nvlist_lookup_string(tconfig,
				C.sZPOOL_CONFIG_POOL_NAME, &cq); retcode != 0 {
				err = errPoolList
				return
			}
			cname = cq
			name = C.GoString(cq)
			if q == name {
				config = tconfig
				break
			}
		}
	}
	if config == nil {
		err = fmt.Errorf("No pool found %s", q)
		return
	}
	if guid {
		// We need to get name so we can open pool by name
		if retcode := C.nvlist_lookup_string(config,
			C.sZPOOL_CONFIG_POOL_NAME, &cname); retcode != 0 {
			err = errPoolList
			return
		}
		name = C.GoString(cname)
	}
	if retcode := C.zpool_import(libzfsHandle, config, cname,
		nil); retcode != 0 {
		err = LastError()
		return
	}
	return
}

// PoolImport given a list of directories to search, find and import pool with matching
// name stored on disk.
func PoolImport(name string, searchpaths []string) (pool Pool, err error) {
	_, err = poolSearchImport(name, searchpaths, false)
	if err != nil {
		return
	}
	pool, err = PoolOpen(name)
	return
}

// PoolImportByGUID given a list of directories to search, find and import pool
// with matching GUID stored on disk.
func PoolImportByGUID(guid string, searchpaths []string) (pool Pool, err error) {
	var name string
	name, err = poolSearchImport(guid, searchpaths, true)
	if err != nil {
		return
	}
	pool, err = PoolOpen(name)
	return
}

// func PoolList(paths []string, cache string) (pools []Pool, err error) {
//
// }

// PoolOpenAll open all active ZFS pools on current system.
// Returns array of Pool handlers, each have to be closed after not needed
// anymore. Call Pool.Close() method.
func PoolOpenAll() (pools []Pool, err error) {
	var pool Pool
	if libzfsHandle == nil {
		return pools, fmt.Errorf("libzfs unitialized, missing privs?")
	}
	errcode := C.zpool_list(libzfsHandle, &pool.list)
	for pool.list != nil {
		err = pool.ReloadProperties()
		if err != nil {
			return
		}
		pools = append(pools, pool)
		pool.list = C.zpool_next(pool.list)
	}
	if errcode != 0 {
		err = LastError()
	}
	return
}

// PoolCloseAll close all pools in given slice
func PoolCloseAll(pools []Pool) {
	for _, p := range pools {
		p.Close()
	}
}

// PoolPropertyToName convert property to name
// ( returns built in string representation of property name).
// This is optional, you can represent each property with string
// name of choice.
func PoolPropertyToName(p Prop) (name string) {
	if p == PoolNumProps {
		return "numofprops"
	}
	prop := C.zpool_prop_t(p)
	name = C.GoString(C.zpool_prop_to_name(prop))
	return
}

// PoolStateToName maps POOL STATE to string.
func PoolStateToName(state PoolState) (name string) {
	ps := C.pool_state_t(state)
	name = C.GoString(C.zpool_pool_state_to_name(ps))
	return
}

// RefreshStats the pool's vdev statistics, e.g. bytes read/written.
func (pool *Pool) RefreshStats() (err error) {
	if 0 != C.refresh_stats(pool.list) {
		return errors.New("error refreshing stats")
	}
	return nil
}

// ReloadProperties re-read ZFS pool properties and features, refresh
// Pool.Properties and Pool.Features map
func (pool *Pool) ReloadProperties() (err error) {
	propList := C.read_zpool_properties(pool.list.zph)
	if propList == nil {
		err = LastError()
		return
	}

	pool.Properties = make([]Property, PoolNumProps+1)
	next := propList
	for next != nil {
		pool.Properties[next.property] = Property{Value: C.GoString(&(next.value[0])), Source: C.GoString(&(next.source[0]))}
		next = C.next_property(next)
	}
	C.free_properties(propList)

	// read features
	pool.Features = map[string]string{
		"async_destroy":      "disabled",
		"empty_bpobj":        "disabled",
		"lz4_compress":       "disabled",
		"spacemap_histogram": "disabled",
		"enabled_txg":        "disabled",
		"hole_birth":         "disabled",
		"extensible_dataset": "disabled",
		"embedded_data":      "disabled",
		"bookmarks":          "disabled",
		"filesystem_limits":  "disabled",
		"large_blocks":       "disabled"}
	for name := range pool.Features {
		_, ferr := pool.GetFeature(name)
		if ferr != nil {
			// tolerate it
		}
	}
	return
}

// GetProperty reload and return single specified property. This also reloads requested
// property in Properties map.
func (pool *Pool) GetProperty(p Prop) (prop Property, err error) {
	if pool.list != nil {
		// First check if property exist at all
		if p < PoolPropName || p > PoolNumProps {
			err = errors.New(fmt.Sprint("Unknown zpool property: ",
				PoolPropertyToName(p)))
			return
		}
		var list C.property_list_t
		r := C.read_zpool_property(pool.list.zph, &list, C.int(p))
		if r != 0 {
			err = LastError()
		}
		prop.Value = C.GoString(&(list.value[0]))
		prop.Source = C.GoString(&(list.source[0]))
		pool.Properties[p] = prop
		return
	}
	return prop, errors.New(msgPoolIsNil)
}

// GetFeature reload and return single specified feature. This also reloads requested
// feature in Features map.
func (pool *Pool) GetFeature(name string) (value string, err error) {
	var fvalue [512]C.char
	csName := C.CString(fmt.Sprint("feature@", name))
	r := C.zpool_prop_get_feature(pool.list.zph, csName, &(fvalue[0]), 512)
	C.free(unsafe.Pointer(csName))
	if r != 0 {
		err = errors.New(fmt.Sprint("Unknown zpool feature: ", name))
		return
	}
	value = C.GoString(&(fvalue[0]))
	pool.Features[name] = value
	return
}

// SetProperty set ZFS pool property to value. Not all properties can be set,
// some can be set only at creation time and some are read only.
// Always check if returned error and its description.
func (pool *Pool) SetProperty(p Prop, value string) (err error) {
	if pool.list != nil {
		// First check if property exist at all
		if p < PoolPropName || p > PoolNumProps {
			err = errors.New(fmt.Sprint("Unknown zpool property: ",
				PoolPropertyToName(p)))
			return
		}
		csPropName := C.CString(PoolPropertyToName(p))
		csPropValue := C.CString(value)
		r := C.zpool_set_prop(pool.list.zph, csPropName, csPropValue)
		C.free(unsafe.Pointer(csPropName))
		C.free(unsafe.Pointer(csPropValue))
		if r != 0 {
			err = LastError()
		} else {
			// Update Properties member with change made
			if _, err = pool.GetProperty(p); err != nil {
				return
			}
		}
		return
	}
	return errors.New(msgPoolIsNil)
}

// Close ZFS pool handler and release associated memory.
// Do not use Pool object after this.
func (pool *Pool) Close() {
	C.zpool_list_close(pool.list)
	pool.list = nil
}

// Name get (re-read) ZFS pool name property
func (pool *Pool) Name() (name string, err error) {
	if pool.list == nil {
		err = errors.New(msgPoolIsNil)
	} else {
		name = C.GoString(C.zpool_get_name(pool.list.zph))
		pool.Properties[PoolPropName] = Property{Value: name, Source: "none"}
	}
	return
}

// State get ZFS pool state
// Return the state of the pool (ACTIVE or UNAVAILABLE)
func (pool *Pool) State() (state PoolState, err error) {
	if pool.list == nil {
		err = errors.New(msgPoolIsNil)
	} else {
		state = PoolState(C.zpool_read_state(pool.list.zph))
	}
	return
}

func (vdev *VDevTree) isGrouping() (grouping bool, mindevs, maxdevs int) {
	maxdevs = int(^uint(0) >> 1)
	if vdev.Type == VDevTypeRaidz {
		grouping = true
		if vdev.Parity == 0 {
			vdev.Parity = 1
		}
		if vdev.Parity > 254 {
			vdev.Parity = 254
		}
		mindevs = int(vdev.Parity) + 1
		maxdevs = 255
	} else if vdev.Type == VDevTypeMirror {
		grouping = true
		mindevs = 2
	} else if vdev.Type == VDevTypeLog || vdev.Type == VDevTypeSpare || vdev.Type == VDevTypeL2cache {
		grouping = true
		mindevs = 1
	}
	return
}

func (vdev *VDevTree) isLog() (r C.uint64_t) {
	r = 0
	if vdev.Type == VDevTypeLog {
		r = 1
	}
	return
}

func toCPoolProperties(props PoolProperties) (cprops *C.nvlist_t) {
	cprops = nil
	for prop, value := range props {
		name := C.zpool_prop_to_name(C.zpool_prop_t(prop))
		csPropValue := C.CString(value)
		r := C.add_prop_list(name, csPropValue, &cprops, C.boolean_t(1))
		C.free(unsafe.Pointer(csPropValue))
		if r != 0 {
			if cprops != nil {
				C.nvlist_free(cprops)
				cprops = nil
			}
			return
		}
	}
	return
}

func toCDatasetProperties(props DatasetProperties) (cprops *C.nvlist_t) {
	cprops = nil
	for prop, value := range props {
		name := C.zfs_prop_to_name(C.zfs_prop_t(prop))
		csPropValue := C.CString(value)
		r := C.add_prop_list(name, csPropValue, &cprops, C.boolean_t(0))
		C.free(unsafe.Pointer(csPropValue))
		if r != 0 {
			if cprops != nil {
				C.nvlist_free(cprops)
				cprops = nil
			}
			return
		}
	}
	return
}

func buildVDevTree(root *C.nvlist_t, rtype VDevType, vdevs []VDevTree,
	props PoolProperties) (err error) {
	count := len(vdevs)
	if count == 0 {
		return
	}
	childrens := C.nvlist_alloc_array(C.int(count))
	if childrens == nil {
		err = errors.New("No enough memory")
		return
	}
	defer C.nvlist_free_array(childrens)
	spares := C.nvlist_alloc_array(C.int(count))
	if childrens == nil {
		err = errors.New("No enough memory")
		return
	}
	nspares := 0
	defer C.nvlist_free_array(spares)
	l2cache := C.nvlist_alloc_array(C.int(count))
	if childrens == nil {
		err = errors.New("No enough memory")
		return
	}
	nl2cache := 0
	defer C.nvlist_free_array(l2cache)
	for i, vdev := range vdevs {
		grouping, mindevs, maxdevs := vdev.isGrouping()
		var child *C.nvlist_t
		// fmt.Println(vdev.Type)
		if r := C.nvlist_alloc(&child, C.NV_UNIQUE_NAME, 0); r != 0 {
			err = errors.New("Failed to allocate vdev")
			return
		}
		vcount := len(vdev.Devices)
		if vcount < mindevs || vcount > maxdevs {
			err = fmt.Errorf(
				"Invalid vdev specification: %s supports no less than %d or more than %d devices",
				vdev.Type, mindevs, maxdevs)
			return
		}
		csType := C.CString(string(vdev.Type))
		r := C.nvlist_add_string(child, C.sZPOOL_CONFIG_TYPE,
			csType)
		C.free(unsafe.Pointer(csType))
		if r != 0 {
			err = errors.New("Failed to set vdev type")
			return
		}
		if r := C.nvlist_add_uint64(child, C.sZPOOL_CONFIG_IS_LOG,
			vdev.isLog()); r != 0 {
			err = errors.New("Failed to allocate vdev (is_log)")
			return
		}
		if grouping {
			if vdev.Type == VDevTypeRaidz {
				r := C.nvlist_add_uint64(child,
					C.sZPOOL_CONFIG_NPARITY,
					C.uint64_t(mindevs-1))
				if r != 0 {
					err = errors.New("Failed to allocate vdev (parity)")
					return
				}
			}
			if err = buildVDevTree(child, vdev.Type, vdev.Devices,
				props); err != nil {
				return
			}
		} else {
			// if vdev.Type == VDevTypeDisk {
			if r := C.nvlist_add_uint64(child,
				C.sZPOOL_CONFIG_WHOLE_DISK, 1); r != 0 {
				err = errors.New("Failed to allocate vdev child (whdisk)")
				return
			}
			// }
			if len(vdev.Path) > 0 {
				csPath := C.CString(vdev.Path)
				r := C.nvlist_add_string(
					child, C.sZPOOL_CONFIG_PATH,
					csPath)
				C.free(unsafe.Pointer(csPath))
				if r != 0 {
					err = errors.New("Failed to allocate vdev child (type)")
					return
				}
				ashift, _ := strconv.Atoi(props[PoolPropAshift])
				if ashift > 0 {
					if r := C.nvlist_add_uint64(child,
						C.sZPOOL_CONFIG_ASHIFT,
						C.uint64_t(ashift)); r != 0 {
						err = errors.New("Failed to allocate vdev child (ashift)")
						return
					}
				}
			}
			if vdev.Type == VDevTypeSpare {
				C.nvlist_array_set(spares, C.int(nspares), child)
				nspares++
				count--
				continue
			} else if vdev.Type == VDevTypeL2cache {
				C.nvlist_array_set(l2cache, C.int(nl2cache), child)
				nl2cache++
				count--
				continue
			}
		}
		C.nvlist_array_set(childrens, C.int(i), child)
	}
	if count > 0 {
		if r := C.nvlist_add_nvlist_array(root,
			C.sZPOOL_CONFIG_CHILDREN, childrens,
			C.uint_t(count)); r != 0 {
			err = errors.New("Failed to allocate vdev children")
			return
		}
		// fmt.Println("childs", root, count, rtype)
		// debug.PrintStack()
	}
	if nl2cache > 0 {
		if r := C.nvlist_add_nvlist_array(root,
			C.sZPOOL_CONFIG_L2CACHE, l2cache,
			C.uint_t(nl2cache)); r != 0 {
			err = errors.New("Failed to allocate vdev cache")
			return
		}
	}
	if nspares > 0 {
		if r := C.nvlist_add_nvlist_array(root,
			C.sZPOOL_CONFIG_SPARES, spares,
			C.uint_t(nspares)); r != 0 {
			err = errors.New("Failed to allocate vdev spare")
			return
		}
		// fmt.Println("spares", root, count)
	}
	return
}

// PoolCreate create ZFS pool per specs, features and properties of pool and root dataset
func PoolCreate(name string, vdevs []VDevTree, features map[string]string,
	props PoolProperties, fsprops DatasetProperties) (pool Pool, err error) {
	// create root vdev nvroot
	var nvroot *C.nvlist_t
	if r := C.nvlist_alloc(&nvroot, C.NV_UNIQUE_NAME, 0); r != 0 {
		err = errors.New("Failed to allocate root vdev")
		return
	}
	csTypeRoot := C.CString(string(VDevTypeRoot))
	r := C.nvlist_add_string(nvroot, C.sZPOOL_CONFIG_TYPE,
		csTypeRoot)
	C.free(unsafe.Pointer(csTypeRoot))
	if r != 0 {
		err = errors.New("Failed to allocate root vdev")
		return
	}
	defer C.nvlist_free(nvroot)

	// Now we need to build specs (vdev hierarchy)
	if err = buildVDevTree(nvroot, VDevTypeRoot, vdevs, props); err != nil {
		return
	}

	// convert properties
	cprops := toCPoolProperties(props)
	if cprops != nil {
		defer C.nvlist_free(cprops)
	} else if len(props) > 0 {
		err = errors.New("Failed to allocate pool properties")
		return
	}
	cfsprops := toCDatasetProperties(fsprops)
	if cfsprops != nil {
		defer C.nvlist_free(cfsprops)
	} else if len(fsprops) > 0 {
		err = errors.New("Failed to allocate FS properties")
		return
	}
	for fname, fval := range features {
		csName := C.CString(fmt.Sprintf("feature@%s", fname))
		csVal := C.CString(fval)
		r := C.add_prop_list(csName, csVal, &cprops,
			C.boolean_t(1))
		C.free(unsafe.Pointer(csName))
		C.free(unsafe.Pointer(csVal))
		if r != 0 {
			if cprops != nil {
				C.nvlist_free(cprops)
				cprops = nil
			}
			return
		}
	}

	// Create actual pool then open
	csName := C.CString(name)
	defer C.free(unsafe.Pointer(csName))
	if r := C.zpool_create(libzfsHandle, csName, nvroot,
		cprops, cfsprops); r != 0 {
		err = LastError()
		err = errors.New(err.Error() + " (zpool_create)")
		return
	}

	// Open created pool and return handle
	pool, err = PoolOpen(name)
	return
}

// Status get pool status. Let you check if pool healthy.
func (pool *Pool) Status() (status PoolStatus, err error) {
	var msgid *C.char
	var reason C.zpool_status_t
	var errata C.zpool_errata_t
	if pool.list == nil {
		err = errors.New(msgPoolIsNil)
		return
	}
	reason = C.zpool_get_status(pool.list.zph, &msgid, &errata)
	status = PoolStatus(reason)
	return
}

// Destroy the pool.  It is up to the caller to ensure that there are no
// datasets left in the pool. logStr is optional if specified it is
// appended to ZFS history
func (pool *Pool) Destroy(logStr string) (err error) {
	if pool.list == nil {
		err = errors.New(msgPoolIsNil)
		return
	}
	csLog := C.CString(logStr)
	defer C.free(unsafe.Pointer(csLog))
	retcode := C.zpool_destroy(pool.list.zph, csLog)
	if retcode != 0 {
		err = LastError()
	}
	return
}

// Export exports the pool from the system.
// Before exporting the pool, all datasets within the pool are unmounted.
// A pool can not be exported if it has a shared spare that is currently
// being used.
func (pool *Pool) Export(force bool, log string) (err error) {
	var forcet C.boolean_t
	if force {
		forcet = 1
	}
	csLog := C.CString(log)
	defer C.free(unsafe.Pointer(csLog))
	if rc := C.zpool_export(pool.list.zph, forcet, csLog); rc != 0 {
		err = LastError()
	}
	return
}

// ExportForce hard force export of the pool from the system.
func (pool *Pool) ExportForce(log string) (err error) {
	csLog := C.CString(log)
	defer C.free(unsafe.Pointer(csLog))
	if rc := C.zpool_export_force(pool.list.zph, csLog); rc != 0 {
		err = LastError()
	}
	return
}

// VDevTree - Fetch pool's current vdev tree configuration, state and stats
func (pool *Pool) VDevTree() (vdevs VDevTree, err error) {
	var nvroot *C.nvlist_t
	var poolName string
	config := C.zpool_get_config(pool.list.zph, nil)
	if config == nil {
		err = fmt.Errorf("Failed zpool_get_config")
		return
	}
	if C.nvlist_lookup_nvlist(config, C.sZPOOL_CONFIG_VDEV_TREE,
		&nvroot) != 0 {
		err = fmt.Errorf("Failed to fetch %s", C.ZPOOL_CONFIG_VDEV_TREE)
		return
	}
	if poolName, err = pool.Name(); err != nil {
		return
	}
	return poolGetConfig(poolName, nvroot)
}

func (s PoolState) String() string {
	switch s {
	case PoolStateActive:
		return "ACTIVE"
	case PoolStateExported:
		return "EXPORTED"
	case PoolStateDestroyed:
		return "DESTROYED"
	case PoolStateSpare:
		return "SPARE"
	case PoolStateL2cache:
		return "L2CACHE"
	case PoolStateUninitialized:
		return "UNINITIALIZED"
	case PoolStateUnavail:
		return "UNAVAILABLE"
	case PoolStatePotentiallyActive:
		return "POTENTIALLYACTIVE"
	default:
		return "UNKNOWN"
	}
}

func (s VDevState) String() string {
	switch s {
	case VDevStateUnknown:
		return "UNINITIALIZED"
	case VDevStateClosed:
		return "CLOSED"
	case VDevStateOffline:
		return "OFFLINE"
	case VDevStateRemoved:
		return "REMOVED"
	case VDevStateCantOpen:
		return "CANT_OPEN"
	case VDevStateFaulted:
		return "FAULTED"
	case VDevStateDegraded:
		return "DEGRADED"
	case VDevStateHealthy:
		return "ONLINE"
	default:
		return "UNKNOWN"
	}
}


Every year, Mahaparinirvan Diwas (Ambedkar Punyatithi) – the Death Anniversary of Dr. Br. Ambedkar is is celebrated on 6th December. On this day, people across the nation remember Dr. B.R. Ambedkar for his contribution towards the nation and pa tribute and homage to him.
On the Death Anniversary of Dr. Babasaheb Ambedkar, lets us remember this special person by sending Mahaparinirvan Diwas Wishes & Greetings to all….
Find below latest Ambedkar Punyatithi / Mahaparinirvan Day – 6 December 2018 WhatsApp, SMS, Text Messages & Wishes to all followers of Ambedkar on Facebook, Twitter, WhatsApp, Email, etc…..
Lets remember him on his Death Anniversary …..
The Father of Indian Constitution !!!!!
Let us Dr Ambedkar on Mahaparinirvan Day and always ….
Note : Soon we will have Mahaparinirvan Din / Ambedkar Punyatithi Hindi, Marathi, Gujarati WhatsApp, SMS, Text Messages, Wishes on our website which you can send to all on Mahaparinirvan Day 2018 on 6 December 2018.


The first instrument from the Platinum line is "the Black Amber Drop #1". Rapolas Grazys wanted to create a guitar that connects the past and the future while also giving a nod to his home of Lithuania, where black amber from the Baltic sea is harvested. The construction of the guitar is a single seamless piece of Sapele wood for the body and neck with an ebony fretboard and 24-3/4" scale length. The neck has a truss rod that is reinforced by two rods of carbon fiber. The sapele has been routed out in the body to house the 4.4 pounds of Baltic black amber, with a 5mm rim around the inlaid amber rocks. Baltic amber is over 45 million years old, produced by the Pine trees which grew in Northern Europe and around the Baltic Sea. It is also considered by many to have therapeutic properties due to its high level of succinic acid, a compound said to have analgesic and anti-inflammatory properties. The fact that the Baltic amber is millions of years old is humbling to say the least when you pick this instrument up to play. The guitar as an instrument is a joy to play, with a very fast and striking response to notes and chords, from the rigidity of the amber. The neck has a rounded neck profile, with large frets that give way to fast riffing. The pickups are Lace Alumitone humbuckers, and rounding out the looks of this one of a kind guitar are gold hardware, and a 24 karat gold Lava headstock logo.
Black Amber (2kg./4.4pounds), approximately 50 million years old.
Neck-trough Sapele wood with 5 mm contour around the body.


Deadline: It is very important that the site is finished by the end of August (end of September at the latest). I need it up and running by then to meet the fall childcare demand.
We may need top nav, side nav, footer nav (the small links), and links in the top-right-hand corner of the website where users can click Register as a Caregiver, Register as a Care Seeker, Login as a Caregiver or Login as a Care Seeker.
We need big link or graphic image buttons where viewers can select to register or login on our site.
Facebook and Twitter icons so users can add us on those websites for marketing purposes.
P.S. We are not looking for a corporate design. We are looking for something family-friendly, warm and fun that will attract new parents, college students, and teenagers (our sitters and nannies). An elegant design will also do.


I have five sets of FREE multicolored 'net' Christmas lights. They can be wrapped around or placed over shrubs. If you are interested in these lights...please leave a message at 315-348-8160 and I will get back to you.
For Sale Whirlpool 4.5 cubic ft front loading washing machine white, 1 year old. Excellent condition, works fine no issues. Got a new stainless steel machine to match dryer. Paid over $800 a year ago, asking $450.
For sale 2004 Polaris snowmobile. Less than 2000 miles and great condition. Asking 2350 dollars. Please call or text 315-225-2036.
For Sale a large collection of USTA (United States Trotting Association) hardcover books, both the annual Year Books (race results, statistics, etc) and Sires and Dams (horse lineage). The collection totals around 140 books and range in date from the 1940s to the 1990s. I do not have every year, and have duplicates of some. Must come to the town of Greig to pick them up. $60 or best offer. 315.348.8047. Call evenings or weekends.
Harley Davidson pocket watch,comes with a belt holder, eagle display stand and chain. never been worn. $90.00. Bushnell spotting scope. 18-36 by 50 mm. comes with hard and soft case, tripod. has lens covers.$75.00. 315-348-8191.
For Sale: Set of 4 truck tires - size LT265-70-R17. Good condition. Approximately 30,000 miles on them. $150.00 for the set. Contact 315-493-0273.
I have for sale, a Nesco Roaster Oven. Just like New. asking Forty Dollars for it. It would make nice Christmas Gift. Call or Tex 315 405 1704. copenhagen, woodbattle RD.
For sale Schwinn 170 exercise bike.Digital display, speakers,and fan. $500 new. selling for $225. Also have childrens Head twin tip skis and bindings. Length of 107. Nice shape for $70. Also have a Thule ski rack with locks and keys. Fits standard load bars. Like new for $40. Old Forge (315)369-8708.
Text 315-225-1251 for pictures or with questions.
Or leave a message and I will return your call.
Early model Bombi mini trail groomer. For restoration. Rubber tracks . Stored inside. Located near town line in Boonville rt. 46.
I have for sale front bumper off a 1977 ford f150 . its chrome with rubber trim, fits ford f150 from 1976 through 1979.its in good shap asking $90.00 call 315 405 1704..
1998 Buick Century, 130k miles, comes with 2 studded snow tires.
i have for sale a nesco 18 Quart Roster Oven. Like new, Make a nice Christmas gift. asking forty dollars. 315 405 1704.
For sale: Christmas Touch Lamp, Large Collection of Classical and Christmas CD's and Tapes with carry case. Gospel 33 1/3 records by the Chuck Wagon Gang, Gospel Echoes among others. Please telephone 315-376-6280.
2004 Ski Doo Rev 800 HO, good shape, ready to go, 5000 miles, $2000 OBO, call 315-348- 6044 after 6 pm. thanks.
Rare hand sled made by Sheffield Mfg. Co. Burr Oak Mich. From what I can find out this sled was made over 100 years ago by this co. Runners are steel and has wooden top. Can be used by children or antique display.
I have for sale 1 pig. $2.25 a pound hanging weight, roughly 240-250 pounds. Plus you pay butcher bill.
4 GENERAL ALTIMAX ARCTIC winter tires . size 205 70R 15. ON NEW 5 BOLT STEEL WHEELS. USED LESS THAN 500 MILES DUE TO CARS DEATH.COST over 500 new. Asking 250.. call 315-767-2298 and please leave message if no answer.
For sale complete fisher plow package off my 94 chevy k1500 T handle control inside valve 7.5 foot .Plow is in good shape asking $ 650 cash or best offer ! Phone 315-240-4533 Truck is also forsale $300 cash motor very good trans recentley rebuilt frame and transfer case bad !
We have a vintage Genuine Flexible Flyer sled for sale. It's number 55H. Original owner is selling for $95.00. From the 1950s so has some wear but great patina!
Snowboard with binders, bag, helmet and goggles for $200. Snowboard length is 61 inches. It is in good condition. Snowboard brand is Avalanche. Perfect Christmas gift for a child who would like to learn the sport. Anyone interested please call 315-601-4853. Thank you.
For Sale: Perfection Fusion Hair Styler, Heated round brush. Salon styles in just 3 minutes. Brand new, never used, still in original box. Paid over $100.00, will sell for $50.00.


text:
30,000 more people freed from water fluoridation after Australian town rejects poison
Wednesday, November 27, 2013 by: Jonathan Benson, staff writer
Tags: water fluoridation, Australian town, poison
https://www.naturalnews.com/043072_water_fluoridation_Australian_town_poison.html
(NaturalNews) An outstanding ban on artificial water fluoridation has been upheld in the Australian coastal town of Byron Bay, located in New South Wales, following a heated encounter among local residents, scientists, dentists and city officials. The Fluoride Action Network reports that the Byron Shire Council ultimately ended up voting five-to-three to uphold the fluoride ban, relying on modern science which shows that fluoridation is both harmful and ineffective.
A group of fluoride-truth activists showed up to the recent meeting, which threatened to undo the ban, and made their voices heard about the outdated practice. Reports indicate that a large crowd, which included many local residents, showed up waving large signs and banners that said things like "We, the people of the Byron Bay Shire, strongly object to having our water poisoned with FLUORIDE!!!" Others brought letters signed by local doctors opposing the practice and delivered them directly to city officials.
"If Health NSW are truly concerned about dental health and not just fluoride, then they should support us in other ways to achieve better outcomes," stated Byron Mayor Simon Richardson, who received resounding applause for his defense of health freedom.
On the opposing end, in support of fluoridation, were the usual suspects, including government health officials and those with a vested interest in poisoning the water supply with fluoride. Many of these individuals offered the same tired arguments about poor children with bad teeth allegedly needing all those fluoride chemicals in the water to protect against cavities, while at the same time ignoring the scientifically proven dangers of fluoride.
Byron council stands with science, opposes toxic water fluoridation
But the pro-fluoride lobby lost the fight, thanks to the majority of the Byron city council that listened to the will of the people and rejected the pro-fluoride proposal. With the exception of a few stubborn sticklers, the council decided that it is simply not appropriate to forcibly medicate the public with chemicals derived from the waste of phosphate and fertilizer production, which have repeatedly been shown to lower IQ levels and cause hormone problems.
"We the undersigned are medical practitioners and health professionals who have concerns about the efficacy and safety of water fluoridation," read the official letter presented to the council in opposition to fluoride. It is "imprudent to initiate further fluoridation of public water supplies until such time as modern data can either substantiate or refute the alleged benefits and the safety or otherwise is established."
Additionally, the money that otherwise would have been spent on fluoridation can now be used for programs that have actually been scientifically shown to help promote dental health, such as prenatal and postnatal education and free dental clinics. Fluoridation, on the other hand, continues to be a leading cause of some of the very conditions that its proponents say it helps prevent, including dental fluorosis, tooth decay and bone loss.
"Ninety-five percent of the world's population doesn't fluoridate their water," added Merilyn Haines, a local resident opposed to water fluoridation who showed up at the meeting. "It's an aberration what we do in Australia. It's an American idea from the 1940s. Surely science has changed."
http://fluoridealert.org
http://www.theguardian.com
http://www.echo.net.au

redpajama_set_name: RedPajamaCommonCrawl


Your image file must be of gif, png, jpg, jpeg type. Your image file should not exceed 3.91 MBs. Images exceeding the maximum width of 100 will be resized. Images exceeding the maximum height of 100 will be resized.


text:
The Golden Age of Publishing
Posted on July 28 by William Kowalski
My fifth novel, THE HUNDRED HEARTS, has been nominated for the 2014 Thomas H. Raddall Atlantic Fiction Award, and I couldn't be happier. It's not just because of the warm, fuzzy feeling an award nomination gives a writer in his tummy. Nor is it because of the one-in-three chance of winning a rather large prize purse ($25,000.00, in this case). It's because the current state of publishing means that for professional writers, there is very little money to be made these days unless one wins a prize, or is at least nominated for one. The profusion of books being published commercially and autonomously means that it's getting impossible to be noticed. People are still buying books, and they're still reading them. But with so many to choose from, how is a writer supposed to stand out? It's no longer enough just to write very well. It's not enough to tell a really good story. A writer has to be internet-savvy, socially media-trained, and adept at tweeting, blogging, posting, and pinning. Otherwise, how is anyone to know of his existence?
The most successful mid-list authors today are those who understand how to make the internet work for them, or are at least smart enough to hire someone who does. An author can no longer rely on overworked publicists or publishers' tiny advertising budgets to make the world aware of his existence.
A prize nomination is doubly welcome, then, because the awarding body will do a lot of promotion of their own.
It used to be that there was a sharp division between the insulated bubble of a working writer's life and the rather more gritty world of printing and selling books. That division has largely disappeared. As with everything else in life, there are pros and cons here. On the pro side, writers have more control over how their work is promoted. On the con, they must spend a great deal of time that used to be spent writing on self-promotion instead. I worry sometimes that the quality of literature in general will be the worse for it.
I started publishing books during what I now realize were the last, dying days of the Golden Age of publishing, back in the 20th century. Like everyone else, I thought they would last forever. Now that they're gone, naturally I miss them. But I'm also practical enough to know that we must accept reality if we are to survive. Luckily for me, I love computers and the internet. I'm web-savvy and I know how to build my own websites. Otherwise, I would have to pay someone to do all these things for me, and that would severely cramp my already-straitened style.
So, a prize nomination is the best possible thing that could have happened to me right now. I won't find out until September whether or not I won, and as I said, I have only a one in three chance. But the nomination itself is something to be proud of. That and gratitude are my two primary emotions these days.
The Hundred Hearts
Thomas H. Raddall Atlantic Fiction Award
William Kowalski
Posted by Dundurn Guest on December 6, 2014
William Kowalski is the winner of the 2001 Ama-Boeke Award (South Africa) and was shortlisted for the Ontario Library Association's Golden Oak Award. He is the author of four novels, including Eddie's Bastard. His work has appeared on numerous international bestseller lists and has been translated into fifteen languages. He lives in Nova Scotia.
Read more about William Kowalski


text:
Anartodes lanuginosa är en fjärilsart som beskrevs av Smith 1900. Anartodes lanuginosa ingår i släktet Anartodes och familjen nattflyn. Inga underarter finns listade i Catalogue of Life.

Källor

Nattflyn
lanuginosa

redpajama_set_name: RedPajamaWikipedia


text:
R.e.C.  Régua e Compasso (também conhecido como C.a.R., Compass and Ruler em Inglês, ou Z.u.L., Zirkel und Lineal em Alemão) é um software de geometria dinâmica livre e de código aberto que pode realizar construções geométricas em geometrias euclidianas e não euclidianas.

O software é baseado na linguagem de programação Java. Foi escrito por R. Grothmann, da Universidade Católica de Eichstätt-Ingolstadt em 1996. Antes desta versão, o autor já havia escrito outros programas de geometria para diferentes plataformas, como o Atari ST ou o GEM, chegando a escrever uma versão para o sistema Windows em C++.

Ver também

 GeoGebra
 CaRMetal
 Kig
 Construções com régua e compasso

Referências

Ligações externas
Página oficial
CaRMetal ? programa que inclui todas as funcionalidades do R.e.C., mas que segue uma abordagem diferente do ponto de vista da interface gráfica.
Um tutorial elementar para usar applets Java gerados pelo R.e.C.
Página com exercícios sobre o programa

Programas de computador livres educativos


A young man trying to break out of his blue collar life in New Jersey finds himself snared by a web of crime and deceit in this independent drama. Just released after an 18-month stretch in prison, 20-year-old Eddie Dolan (Billy Crudup) has few prospects and nowhere to go, so he appears on the doorstep of his older brother Terry (Paul Schulze). Terry takes him in, giving him a place to stay and helping him get a job at the factory where their dad Nick (Frank Vincent) has worked nearly all his adult life. However, times are not happy around the Dolan household; money is tight, and Terry's relationship with his wife Janey (Adrienne Shelly) has been rocky since the birth of their first child six months before. Eddie starts earning some extra cash by joining up with a group of car thieves pulling insurance scams, and in time, he makes enough money to buy a muscle car, which he races in his spare time. On the night shift at the factory, Eddie spends his days working on his car, while Janey, bored with her new role as a stay-at-home mom, starts spending more and more time with him; eventually they move past friendship into an affair, which like Eddie's involvement with the carjackers becomes only more dangerous in the weeks to come. Grind marked the feature debut for writer/director Chris Kentis; Billy Crudup's appearance predated his breakthrough roles in Inventing the Abbotts and Everyone Says I Love You, though both of those films were released before Grind could find a distributor.
There are no critic reviews yet for Grind. Keep checking Rotten Tomatoes for updates!
This movie plods along and goes nowhere fast - yet you can't stop watching it. Call it morbid curiousity, but you want to know what happens next. The story is not the most exciting, but the relationship between Crudup and Shelley is solid enough to wonder where it is heading. I can't recommend this movie to everyone, but Billy Crudup is hot and does a great job.....so I would recommend this for Crudup fans, like me.


Christ Church Stockport is an AMiE (Anglican Mission in England) church plant. AMiE are a mission agency linked with global Anglicanism through their partnership with GAFCON and GAFCON UK. They "seek to promote gospel growth in England by supporting Anglican churches and individuals, both within and outside present Church of England structures." For more information click here.
Locally we belong to the North West Partnership, a group of Bible believing Evangelicals working together for the gospel in the North of England and Wales. For more information click here.


I have not posted an update regarding my photography for some time, so here is a quick one to assure you that I am indeed still working with my art. For my existing Portfolio , see the Photos section on my FaceBook Page, as I am currently re-designing my website.
I will be uploading full size images from my snowy photography outing(s) shortly, but here is a preview in the meanwhile.
Description: I was ill and bed-bound for the majority of the snowing this year, but I was able to venture outside for a short while nonetheless, and these are a few of the shots that I was able to get during this time.
Notes: I have done two snowy shoots this year, these are from my first.
Copyright Notice: Copyright Illisia Adams 2013. Please ask permission before sharing and give appropriate credit.
Description: I visited Canterbury to photograph many of the historical sites, but this backdrop seemed to perfect to resist, so I stole away Mark from his own photography for a spontaneous photoshoot, and this was one of the resulting photographs. Very happy with it.
Notes: The image is unaltered. Constructive critique and compliments are always welcome.
Copyright Notice: Copyright Illisia Adams 2012. Please ask permission before sharing and give appropriate credit.
I have been busy the last few days helping a friend, and during this period, I was not able to type, but gosh, did I click! My camera has been a busy girl, flashing some beautiful shots of nature. Nothing journalistic, of course, more just contributions to my more personal Portfolio, but it has been many weeks since I last took a snap, so I am quite please that I am "back in the game" of photography to say the least.
That excitement and happiness that I felt when I was behind that lens, I missed it very much. I have been sitting affront my computer screen for so long, typing away for hours on end about all manner of subjects, but there is just something more passionate and meaningful to capturing moments on film – allbeit digital.
I have decided that I am going to be looking for local events to attend and photograph, perhaps even report on, pairing my two passions together at last. Doing that would be a big step for me.
So, I am finishing (and Posting) the articles that I have so far on the film and television industry which are very much picture-less, but hopefully still an enjoyable read, and then I am going to try something more journalistic and factual, as apposed to opinion-based.


text:
Letter to the Editor: 'The fact that I have to write a complaint at all is ridiculous'
Editor's note: The Oakland Post regrets the decision to run the "Note to Self" comic featured on last week's "Mouthing Off" satire page. During this semester, we have covered Greek life in stories chronicling sorority bid day, Oakland's TKE fraternity's positive response to a national scandal, the Greek council's reaction to the Yik Yak app, and a "Photo of the Week" featuring a Zeta Sigma Chi fundraising event. The Post has and will continue to provide objective coverage of all campus organizations and to champion their contributions to the community.
Oakland Post,
I'm writing you today because of your recent newspaper, which became available Wednesday, October 15, 2014. The fact that I have to write a complaint at all is ridiculous. One of your interns wrote, illustrated and then was allowed to print a cartoon that was blatantly disrespectful, ridiculous and made a disgusting spectacle of a long distinguished and respected fraternity. The portrayal of this illiterate bear at a fraternity party was both confusing, lacking in any sense and wasn't understood until explained to us by a member of the Post.
The fact that a Post member approached us as said, and I quote this member, "The letters were thrown out randomly, it wasn't meant to be disrespectful. It just so happened to be this fraternity."
Firstly, the fact that Greek letters were used at all is outrageous. Secondly, how these letters "just so happened" to portray a fraternity that "just so happens" to be on OU's campus is a flimsy excuse at best and quite frankly is not believable. Thirdly, why and how did this comic become published? Perhaps you need more people on the Post who look over your articles for possible mistakes, misquotes and offensive materials.
Greek life on this campus has slowly become more respectable, larger in population and more successful in our philanthropic efforts. Furthermore, we have the highest GPA in any other OU organization, so why would we ever have illiterate members is both offensive and disrespectful on a level that I have never witnessed before on this campus.
I look forward to your apology in both the Post, which should be towards the front, if not on the front cover, of the issue. Also, a verbal apology to Greek life at the next Greek Council meeting on Sunday, October 26, promptly at 1:00 p.m. in the OC. I would reach out to Alpha Sigma Phi and go to their next meeting to offer another personal apology.
Madison Kubinski
'Dog Gone:' More than the expected dog cliché
Social media and mental health
Letter to the Editor: East Campus Development? Let's Really Talk Sustainability
ABAI finally condemns Judge Rotenberg Center
Elton John bids U.S. 'farewell' with star-studded Dodger Stadium concert
A few interesting STEM careers
Opinion: Rumored East Campus Development plans defy university values
Looking back at Alessandro Michele's time at Gucci
What to wear this winter
Letter to the editor: The trampling of Matilda Dodge Wilson's grave


text:
Weston Warden Player Profile
Weston Warden
Scoring Average: 79.8
Tiger Woods - Boys 16-18 Bonus Points Awarded: 950.00
Pars: 92 (51.11%)
Doubles: 18 (10.00%)
10/17/2020 Ambassador Series at Totteridge
Round 1:75 (+3) Totteridge Club
Totteridge Club -- 10/17/2020
Round 2:88 (+16) Totteridge Club
+2 +2 +3 +3 +3 +4 +4 +4 +6 +7 +9 +10 +11 +13 +15 +16 +16 +16 +16
9/12/2020 PGA National Fall Junior Open
Round 1:82 (+10) PGA National Resort - The Fazio
PGA National Resort -- 9/12/2020
E E E E +1 +1 +4 +6 +8 +9 +9 +9 +9 +10 +11 +11 +10 +10 +10
Round 2:74 (+2) PGA National Resort - The Fazio
E +1 +1 +1 +2 +2 +3 +3 +3 +3 +4 +3 +3 +3 +3 +4 +3 +2 +2
8/1/2020 Summer College Prep Series at Penn State #2
Points 50.00
Round 1:74 (+2) Penn State Golf Club - White
Penn State Golf Club -- 8/1/2020
E E E +1 +1 E +1 +1 +2 +2 +2 +3 +3 +4 +4 +4 +3 +3 +3
7/5/2020 Pittsburgh Mid-Summer Junior Open
Round 1:80 (+10) Hannastown Golf Club
Hannastown Golf Club -- 7/5/2020
+1 +1 +1 +2 +4 +6 +6 +6 +6 +6 +6 +6 +6 +7 +7 +7 +8 +10 +10
Round 2:77 (+7) Hannastown Golf Club
6/13/2020 Pittsburgh Junior Challenge
Total: NS
1/18/2020 Southeast Florida Junior Open
Round 1:86 (+15) Grand Palms Resort - Sabal
Grand Palms Resort - Sabal/Grand -- 1/18/2020
+2 +3 +3 +4 +4 +4 +5 +5 +7 +8 +11 +13 +13 +13 +13 +13 +14 +15 +15
+1 +2 +2 +3 +4 +5 +6 +7 +7 +10 +12 +12 +12 +14 +15 +16 +16 +16 +16


This Oxford Whole cut is one of our bestsellers, made from a single piece of Italian calfskin leather.
The shoe is totally painted by hand and made in Italy.
This is the most classic model of shoes. The style is a staple piece for the business executive who's in an out of meetings. Wear it to complete your semi-business casual look.


text:
Alejandra Matus Acuña is a Chilean journalist and writer. In 1999 she published El libro negro de la justicia chilena (lit. "The Black Book of Chilean Justice"). The available copies of the book were confiscated one day before the planned release and Matus was accused by Servando Jordán, minister of the Supreme Court of Chile, of the delict of "desacato" ("contempt") invoking the article 6-B of the Ley de Seguridad del Estado (State Security Law). This prompted Matus to apply for—and receive—political asylum in the United States. The case led to the "desacato" article to be removed from the law with the new Ley de Prensa (Press Law) that was signed on May 25 of 2001 which allowed Matus to return to Chile. Despite the new law the book continued to be banned until October 2001 when the Corte de Apelaciones (Appellate Court) removed the ban.

In 2013 she published the book Doña Lucía, a biography about Lucía Hiriart.

References

Investigative journalists
Chilean women writers
Chilean biographers
Chilean journalists
Chilean exiles
Living people
1966 births
Women biographers


This spacious semi-detached property is situated in the residential location of Shandon Park, just off the Belfast road. Ideally located, it is presented in excellent decorative order. The property has had new isualltion installed recently and a new boiler system.
Comprising main reception room and kitchen/dining area leading to a modern utility & shower room on the ground floor, 3 well proportioned bedrooms and a family bathroom it is an ideal starter home for the first time buyer. The rear garden has been decked, it is family friendly and low maintenance. The property also has the added benefit of a private driveway and garage attached.
Inviting family room tastefully decorated with solid wooden floors, oak fire place and cast iron hearth with open fire. front facing with PVC double glazed window.
Spacious kitchen diner with a range of high and low level maple style units, with tiled kitchen floor leading to family dining space with wooden floor. Electric hob, oven and extractor fan. Two large windows with views of the decking and garden area.
Utility room with space for washer & dryer, leading to a ground floor toilet and shower room.
Family bathroom fully tiled with modern white suite bath & shower over bath.


text:
Michigan's Troy Woolfolk Suffers Injury During Practice, Taken To Hospital
By Sean Yuille Aug 17, 2010, 7:45pm EDT
Share All sharing options for: Michigan's Troy Woolfolk Suffers Injury During Practice, Taken To Hospital
Last week when Justin Turner decided to leave the Michigan football program, I wrote that with depth so thin at cornerback, the Wolverines would really be in trouble if something happened to a starter like Troy Woolfolk. Well, unfortunately something has happened to Woolfolk, as this statement was released tonight by head coach Rich Rodriguez.
Troy Woolfolk suffered a lower body injury during practice this afternoon and was transported to U-M Hospital with our team physician. We can't comment further due to medical privacy rights.
The rumor from this afternoon was that Woolfolk seriously injured his ankle and could potentially be out for the season. Considering whatever he did was bad enough that a trip to the hospital was necessary, it certainly sounds like he is severely hurt.
Right now I just hope Woolfolk is able to recover from this injury and this isn't a situation like Michigan fans saw with Antonio Bass years ago (he tore his knee apart in a non-contact situation and never played football again). At the same time, it does leave me wondering what to expect out of the secondary this coming season if Woolfolk is in fact out for the year. The secondary, as previously mentioned, was in bad enough shape already with Turner leaving last week, but as bad as that was, he was only a backup. Woolfolk is a starter and a leader and losing him is an enormous blow to the secondary and the defense as a whole.
At cornerback, J.T. Floyd would be Michigan's top starter with Woolfolk out of the picture. That leaves the other spot likely to be filled by a true freshman, which by itself is scary enough. To make matters worse is that beyond Floyd and a true freshman like Cullen Christian or Courtney Avery, Michigan doesn't really have any starting-caliber players waiting in the wings if someone else were to go down.
At this point, things are looking extremely bad on paper for Michigan's secondary and the defense in general. One player certainly doesn't make or break a team, but losing Woolfolk leaves me with little hope of the defense being anything beyond average this year. Actually, I have a hard time seeing the defense be anything other than mediocre, especially going up against the pass. I hope Michigan proves me wrong, but with the way the defense is now, even a bowl game is starting to look unlikely.
Concerns about the 2010 season aside, my thoughts are with Woolfolk, because it certainly seems as though he suffered a serious injury today.
Troy Woolfolk Expected To Miss Season After Dislocating Ankle, Breaking Fibula
Troy Woolfolk's Injury Was Of Non-Contact Variety


text:
Q: custom checkbox in checkboxPreference - summaryOn & summaryOf I would like to change a default checkboxPreference layout a bit. I use answers from other similar question but still there is one thing that does not work.
I've got:
<CheckBoxPreference
 android:key="@string/pref_acceptableads"
 android:summaryOff="@string/pref_acceptableads_summary_off"
 android:summaryOn="@string/pref_acceptableads_summary_on"
 android:title="@string/pref_acceptableads_title"
 android:widgetLayout="@layout/checkbox_layout" />

and:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2006 The Android Open Source Project Licensed under the
Apache License, Version 2.0 (the "License"); you may not use this file except
in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, either express or implied. See the License for
the specific language governing permissions and limitations under the License. -->

<!-- Layout for a Preference in a PreferenceActivity. The Preference is able
to place a specific widget for its particular type in the "widget_frame"
layout. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize"
android:orientation="horizontal" >

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_marginLeft="15dip"
    android:layout_marginRight="6dip" android:layout_marginTop="6dip"
    android:layout_marginBottom="6dip" android:layout_weight="1">

    <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee" android:fadingEdge="horizontal"
        android:textColor="#FF0000" />

    <TextView android:id="@+android:id/summary"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:maxLines="4" />

</RelativeLayout>

<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
    android:layout_width="wrap_content" android:layout_height="match_parent"
    android:gravity="center_vertical" android:orientation="vertical" />

<CheckBox
        android:id="@+id/checkbox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"/>

</LinearLayout>

Unfortunately in this way my summaryOn and summaryOf does not work. Nothing happens but "tick" in checkbox appears. When I use an Image instead of checkbox it works fine - clicking image cause change of summary. Why it does not work with checkbox? And what should I do to restore default behaviour?

A: It is necessary to add lines:
android:focusable="false"
android:clickable="false"

to Checkbox item in custom layout xml file.


text:
Али́ Даеи́ (; 21 марта 1969, Ардебиль) — иранский футболист, завершивший карьеру в 2007 году. В течение 17 лет, с 2004 по 2021 год, был лучшим бомбардиром среди национальных сборных мира (109 мячей). В 2021 году рекорд Даеи был побит Криштиану Роналду. Сборную Ирана покинул после Кубка мира 2006 года в Германии. Является Послом доброй воли ЮНИСЕФ. Высказывался в поддержку протестов, начавшихся после смерти Махсы Амини.

Биография
Родился 21 марта 1969 года в городе Ардебиль на северо-западе Ирана в семье иранских азербайджанцев.

Футбольную карьеру Али начал в 14 лет в местном клубе «Эстегляль Ардебиль», а за основу впервые сыграл, когда ему было 19. Его следующим клубом стал столичный «Тахирани» (Тегеран), где он играл в течение одного сезона, а затем перешёл в другой клуб — «Банк Теджарат». Даеи пробыл в этом клубе четыре года, и упустил шанс сыграть в японской Джей-Лиге из-за призыва на военную службу. Зато Али окончил Технологический университет имени Шарифа в Тегеране, по специальности «материаловедение (металлургия)» и получил степень бакалавра наук.

В 1994 году с Даеи заключил контракт самый титулованный иранский клуб «Персеполис» из Тегерана и в первом же сезоне Али забил 15 голов в 18 матчах, а в следующем году стал с клубом чемпионом Ирана (сезон 1995/1996). В сборной Ирана он стал капитаном и в 1996—1997 гг. в 35 играх за сборную Али забил 31 гол. На Кубке Азии в декабре 1996 года в Эмиратах Даеи забивал во всех играх, сделал покер в ворота сборной Южной Кореи, не забил только Саудовской Аравии. И саудиты стали чемпионами, а Иран только бронзовым призёром. Впечатляющая продуктивность Али наконец дала результаты. Его заметил и подписал в 1996 году многократный катарский чемпион «Аль-Садд». Даеи провёл в катарском чемпионате 16 игр и забил 10 голов.

После этого в 1997 году Али пригласили играть в Европу, в бундеслигу. Тогда, кстати, в Германии высадился целый десант лучших иранских футболистов. В составе билефельдской «Арминии» стали играть Али Даеи и Карим Багери. Ходадад Азизи стал защищать красно-белые цвета «Кёльна», Мехди Махдавикия выступил в рядах «Бохума», а на следующий год Вахида Хошемяна подписал «Гамбург».

Но самым ярким из них был Даеи и на следующий сезон ему предложила контракт именитая мюнхенская «Бавария». В её составе Али стал чемпионом Германии, взял Кубок Немецкой Лиги и дошёл до финала Лиги чемпионов УЕФА. За этот блестящий сезон Даеи был признан лучшим футболистом Азии 1999 года.

Но в поисках большего игрового времени следующие три года он провёл в берлинской «Герте», с которой дважды взял Кубок немецкой лиги (2001 и 2002).

 Сборная
 Первый матч: 6.06.1993 г. Пакистан 5:0 (Тегеран)
 Последний матч: 21.06.2006 с Анголой 1:1 (Лейпциг)
 12.06.1996 года забил 5 голов сб. Шри-Ланки 7:0
 10.06.1996 года забил 4 гола сб. Непала 8:0
 16.12.1996 года забил 4 гола сб. Южной Кореи 6:2
 24.11.2000 года забил 4 гола сб. Гуама 19:0
 17.11.2004 года забил 4 гола сб. Лаоса 7:0

Достижения

Командные

В качестве игрока
 Персеполис
 Чемпион Ирана: 1995/96

 Бавария
 Чемпион Германии: 1998/99
 Обладатель Кубка немецкой лиги: 1998/99
 Финалист Лиги чемпионов УЕФА: 1998/99

 Герта
 Обладатель Кубка немецкой лиги: 2000/01, 2001/02

 Саба Ком
 Обладатель Кубка Ирана: 2004/05
 Обладатель Суперкубка Ирана: 2005

 Сайпа
 Чемпион Ирана: 2006/07

 Сборная Ирана
 Победитель Азиатских игр: 1998
 Обладатель Кубка вызова АФК/ОФК: 2003
 Обладатель Кубка Федерации футбола Западной Азии: 2004
 Бронзовый призёр Кубка Азии: 1996, 2004

В качестве тренера
 Сайпа
 Чемпион Ирана: 2006/07

 Сборная Ирана
 Обладатель Кубка Федерации футбола Западной Азии: 2008

 Персеполис
 Обладатель Кубка Ирана: 2009/10, 2010/11

Личные

В качестве игрока
 Обладатель мирового рекорда по количеству голов, забитых за национальную сборную — 109 (23.06.2021 Криштиану Роналду повторил рекорд на Евро 2020 в матче Португалия - Франция и сравнялся с Али по этому показателю, а 01 сентября того же года в отборочном матче к Чемпионату мира 2022 в Катаре в игре против сборной Ирландии Роналду, забив два гола, побил рекорд Даеи, став лучшим бомбардиром по количеству голов за национальную сборную).
 Лучший футболист Азии 1999 года.
 Лучший бомбардир Кубка Азии 1996 г. (8 мячей)
 Лучший бомбардир Азиатских игр 1998 г. (9 мячей)
 Обладатель приза IFFHS лучшему бомбардиру мира в международных матчах (2): 1996, 2004
 Обладатель рекорда по наибольшему числу забитых мячей за сборную в официальных играх за один календарный год — 20 мячей, 1996 год (с учётом товарищеских — 22 мяча).
 Занимает 7 место среди игроков Азии XX века в рейтинге IFFHS.
 Лучший бомбардир чемпионата Ирана 2004 года.

В качестве тренера
 Тренер года в Иране: 2008

Примечания

Ссылки
 Профиль на RSSSF

Выпускники Технологического университета имени Шарифа
Футболисты Ирана
Игроки сборной Ирана по футболу
Игроки ФК «Персеполис»
Игроки ФК «Аль-Садд»
Игроки ФК «Арминия» Билефельд
Игроки ФК «Бавария»
Игроки ФК «Герта» Берлин
Игроки ФК «Аль-Шабаб» Дубай
Игроки ФК «Саба Ком»
Игроки ФК «Сайпа»
Послы доброй воли ЮНИСЕФ
Футбольные тренеры Ирана
Тренеры ФК «Сайпа»
Тренеры сборной Ирана по футболу
Тренеры ФК «Персеполис»
Тренеры ФК «Саба Ком»
Диссиденты Ирана


Today is the first day of my two-week spring break. As a kid, I never went on a vacation during spring break. The first time I went on vacation on spring break was two school years ago when my sons were in kindergarten.
In kindergarten, my sons learned about Dr. Martin Luther King, Jr., and they wanted to see his monument in Washington D.C. My husband and I decided to fly there for spring break that year. That was my children's first time on a plane, and they had a blast.
Last year, we decided to drive to Gatlinburg, Tennessee. It's a place my husband and I like, and we wanted to share the experience with our sons.
This year, I am soooooo glad I'm staying in Indiana. As much as I enjoyed traveling with my family, traveling can be exhausting and too jammed packed. This year, we decided to stay home, and I'm having a blast.
What's even better is I hired a housekeeper to clean my house today. There is nothing better than binge watching television while someone else cleans your bathroom.
Breaks are great…if you actually take a break. Too many of us fill our vacations and days off of work with so much action that we need more days off to recover from our vacation. When you take days off of work, take my advice and relax.
…and I would have included a picture on us on spring break today, but I'm afraid there might be potato chips in my hair from eating in bed and binge watching TV.


text:
LIVE BROADCAST AND DIGITAL RECORDING SERVICES
Kris Savic
Kris Savic first joined CuriousWorks in early 2013 for a video production workshop at the Bonnyrigg Youth Centre. Shortly after she was part of the team that shot and edited the Fairfield Youth Festival and since then has worked with CuriousWorks on a number of creative and commercial projects.
Kris was born in Bosnia and migrated to Australia with her family in 1998. Growing up in Fairfield and Bonnyrigg heights in Western Sydney.
Primarily working as a video editor by trade, Kris freelances for a number of media companies working mainly on corporate in-house videos and commercials. Kris has also built her own company with friend and colleague, Stephanie Freeman called Eskay Media where they focus on providing a media service to artists and designers.
Kris has a video art practice too and has shown work in the Sydney Fringe Festival, Firstdraft and Casula Powerhouse among many others.
With a BA in Design: Photography and Situated Media from The University Of Technology Sydney, Kris has learned to think critically and design purposefully.
Her practice is often self-reflexive and a meta take on the production process. She is interested in the relationship between the artist, the audience and the artwork. Constructing spaces where the audience viewing the work becomes part of the work itself. Savic's practice is very playful in nature and takes on a D.I.Y process of making.
Savic's work largely takes the form of video however, photography and installation are also utilised.
Above all else Kris loves the art of the moving image and all its possibilities.
Makers Space
Meet + Eat
Our office is located on Tharawal country. Our work takes us across Tharawal, Dharug and Eora lands.
We acknowledge the traditional owners of the land on which we work, and pay our respects to Elders past, present and emerging.


Search Hartford County, Connecticut Foreclosure homes. See information on particular Foreclosure home or get Hartford County, Connecticut real estate trend as you search. Besides our Foreclosure homes, you can find other great Hartford County, Connecticut real estate deals on RealtyStore.com.


In most of the rest of the world, however, parent-child co-sleeping is well-established, as we have found in our studies in Africa (Nigeria, Kenya and Zambia), Asia (Nepal, India) and Latin America (Mexico, Colombia) and as other anthropologists have reported from other sites in those areas. Indeed, many parents think it's downright cruel to have a baby sleep alone. Who would do such a heartless thing?
Of course non-Western countries tend to have higher infant mortality rates, but there's no reason to think that has anything to do with co-sleeping. In Japan – a large, rich, modern country – parents universally sleep with their infants, yet their infant mortality rate is one of the lowest in the world – 2.8 deaths per 1,000 live births vs. 6.2 in the United States – and their rate of sudden infant death syndrome, or SIDS, is roughly half the U.S. rate.
American parents may also worry that sharing a bed increases a child's dependence on his parents, yet Japanese children appear to be just as mature and independent as American children.
Christine Gross-Loh writes in her 2013 book, "Parenting Without Borders": "After years of living (in Japan) on and off, my husband and I (and even our kids) have noticed that most children – the same children who sleep with their parents every night – take care of themselves and their belongings, work out peer conflicts, and show mature social behavior and self-regulation at a young age.
All things considered, we have to agree with McKenna's conclusion: the proven benefits of mother-infant co-sleeping far outweigh the largely imaginary risks. Putting a baby in a separate room at night encumbers parents and leads to their exhaustion without guaranteeing the safety or future character development of their children.
American parents also add to their burdens in other ways that are rare elsewhere in the world – for example, by offering their toddlers choices (about what to eat, what to wear, even where to cross the street), by making chores and responsibilities optional, and by fostering the child's early speech development without rules to restrain interrupting adult conversation.
The anthropologist Margaret Mead once proposed that human diversity in child rearing was like a grand experiment enabling American parents to "read the answers" to their questions – without having to try them out at home.
We no longer believe that reading the answers is as simple as Mead implied in 1930, but if Americans looked to parents in other cultures, they would perhaps realize that the "best" way to raise a child is not necessarily the most difficult, and ease up a bit.


Clusters that combine heterogeneous compute device architectures, coupled with novel programming models, have created a true alternative to traditional (homogeneous) cluster computing, allowing to leverage the performance of parallel applications. In this paper we introduce clOpenCL, a platform that supports the simple deployment and efficient running of OpenCL-based parallel applications that may span several cluster nodes, expanding the original single-node OpenCL model. clOpenCL is deployed through user level services, thus allowing OpenCL applications from different users to share the same cluster nodes and their compute devices. Data exchanges between distributed clOpenCL components rely on Open-MX, a high-performance communication library. We also present extensive experimental data and key conditions that must be addressed when exploiting clOpenCL with real applications.


text:
Design Tiny Homes
Iowa Boy Builds Tiny House in His Backyard
Mary Jo DiLonardo covers a wide range of topics focused on nature, health, science, and anything that helps make the world a better place.
The tiny house weathers its first winter. Luke Thill/Facebook
Last summer, Luke Thill was trying to think of something interesting to do. Instead of playing video games or riding his bike, the 12-year-old decided to build a tiny house in his backyard in Dubuque, Iowa.
"I was getting really bored during the summer and I got really fascinated with tiny houses," Luke says in the YouTube video (above) documenting his project. "I decided if I worked towards it and made enough money from cutting lawns that I would start to build a tiny house."
In addition to raising funds this way, Luke also bartered some services, like sweeping an electrician's garage in exchange for help wiring the house.
With his dad's assistance, Luke completed the 89-square-foot home in just under a year and a half. The house is 10 feet long and 5 1/2 feet wide and cost about $1,500.
On the outside, there are two cedar shake walls and two made out of vinyl siding, which was leftover from his grandma's house. The door and a couple windows are reclaimed, as are the materials for his deck.
Inside, there's a small kitchen area with a counter, storage and some shelves. That leads to a back sitting area with an ottoman (which he uses as a couch), a flip-down table and a wall-mounted TV. A ladder leads to an upstairs loft with a mattress.
When he started the process, Luke was already handy with a lot of tools, but he quickly learned skills like carpentry. Framing a house, however, was a learning curve.
"Now that I'm done building, I think it's a very simple process," he says. "But when I started, I didn't know what to do."
Dad weighs in
Greg Thill told The Des Moines Register that he set simple rules when his son started the project: You raise the money. You build it. And you own it.
He said although he helped with the project, his son researched and learned how to do much of the work, including staying on budget and dealing with adults.
"It was a chance for a kid to do something more than play video games or sports," he said. "It teaches life lessons."
Father and son also got closer as the tiny house progressed.
"Me and my dad really bonded through the process," Luke said. "Me and him spent nights and days building it. He was really busy, but he made sure to spend time with me and coached me through the process of building a house. I'm really grateful for a good dad, mom and a good family."
Inspiring others
The younger Thill spoke at a tiny home festival about his project and has a YouTube channel with more than 750 subscribers.
He liked building his "starter home" so much that he plans to build a larger tiny home in the future. Luke says he hopes to live in a tiny house full-time in a few years.
For now, however, he retreats to his backyard home a few nights a week, either to do homework or just to get some space from his twin brother.
And he hopes he has inspired a few young people to pick up a hammer.
He spoke at a recent tiny house festival, and as he told the Des Moines Register, his goal was simple:
"I want to show kids it's possible to build at this age."
French Tiny House is Crisply Modern
Firefighter's Self-Built Tiny House Is Inspired by Earthships (Video)
Family of Three Builds Their Own Off-Grid Tiny House in Hawaii (Video)
Man Builds $1,500 Tiny House, Forages & Grows His Own Food
L.A. Officials Impound Tiny Houses Donated to the Homeless
Tiny House in Indiana From 1935 Was a Prototype of Usonian Design
Sidewalk Hate Runs Deep in Some Suburban Neighborhoods
Traveling Family Raises the Roof on This Brilliant Off-Grid Bus Conversion (Video)
Handmade Tiny House With Self-Built Woodstove Is Home to Family of Three (Video)
9 Fabulous Tiny Homes, All Built for Under $20K
A Japanese Style Tiny House That's Passive House
Does Your Kid Get an Allowance?
Talented Architect Goes Minimalist With His Latest Escape One Tiny House
Hero Dog Returns Home After Being Shot 3 Times
'Goodbye Phone, Hello World' (Book Review)
Digital Fabrication Meets the Tiny House With the Bunkie


text:
Q: Can I use the same bootable drive for all models? I currently have a Late 2010 MacBook Air and looking to get the new Air when it comes out later this year.
My question is, I have just made a bootable USB installer (by using createinstallmedia through downloading Yosemite from the App Store). However, I am not sure if I can use this to install Yosemite on the MacBook Air 2015 without losing some features i.e. Hand-off, which are not available on the 2010 version.
So could I use a OS X 10.10.3 installer from a MacBook Air 2010 and use it to install Yosemite on the MacBook Air 2015 with all the features enabled?

A: The general rule is that you cannot boot a device using an OS older than the device itself.
So the chances are small.
The trick would be to recreate that drive as the latest OS update is announced, concurrently with that product release.
Alternatively, use the Apple Migration Assistant
Extract:

Before you transfer information from a Mac, connect the two computers with a cable (Ethernet, FireWire, or Thunderbolt).
Note:   If you're transferring from a Mac with OS X v10.8 Mountain Lion or earlier using a Thunderbolt cable, follow the steps for transferring from a Time Machine backup or other disk.
  You can also transfer information over a wired or wireless network, as long as your computers are connected to the same network.
Open Migration Assistant, click Continue, then follow the onscreen instructions to transfer info from a Mac.

*

*Open Migration Assistant on the other Mac, then follow the onscreen instructions to transfer info to a Mac.

*Select what to transfer.

*

*Apps: Select the Applications checkbox.
  Incompatible apps or apps with newer versions already installed may not be transferred or may not be usable.

*Computer settings: Select the Computer & Network Settings checkbox.
  Your desktop picture, network settings, and more will be transferred.

*To begin the transfer, click Continue.


Enhancing Communication in Children With Autism Spectrum Disorders presents an overview of impairments in communication among children with an ASD. A variety of techniques for implementing interventions are highlighted, including applied behavior analysis, token economy systems, social skills groups, and more.
This book is a part of Prufrock Press' Practical Strategies in Autism Education Series. This series offers timesaving books on critical topics for educating students with autism spectrum disorders. These books are filled with practical information and advice, thus making them an ideal resource for classroom teachers, preservice teachers, and graduate students.


Send us your Red Nose Day pictures!
It's not just any old Friday the 13th today - it's Red Nose Day!
Schools, community groups and individuals are gearing up to raise money for Comic Relief today, getting up to all sorts of funny things in the process.