text:
package main

import (
	"bytes"
	"compress/gzip"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"io"
	"math/big"
	"mime"
	"net/url"
	"os"
	"os/exec"
	"path/filepath"
	"strings"
	"sync"
	"time"

	"github.com/cenk/backoff"
	"golang.org/x/net/html"

	"log"

	"github.com/wsxiaoys/terminal/color"
	"github.com/zackbloom/goamz/s3"
)

const (
	SCRIPT = iota
	STYLE
)

const UPLOAD_WORKERS = 20

var NO_GZIP = []string{
	"mp4",
	"webm",
	"ogg",
}

func hashFile(path string) []byte {
	hash := md5.New()
	io.WriteString(hash, path)
	io.WriteString(hash, "\n")

	// TODO: Encode type?

	ref := must(os.Open(path)).(*os.File)
	defer ref.Close()

	must(io.Copy(hash, ref))

	return hash.Sum(nil)
}

func hashBytes(data []byte) []byte {
	hash := md5.New()
	must(io.Copy(hash, bytes.NewReader(data)))
	return hash.Sum(nil)
}

func hashFiles(files []string) string {
	hash := new(big.Int)
	for _, file := range files {
		val := new(big.Int)
		val.SetBytes(hashFile(file))

		hash = hash.Xor(hash, val)
	}

	return fmt.Sprintf("%x", hash)
}

func getRef() string {
	gitPath := mustString(exec.LookPath("git"))

	cmd := exec.Command(gitPath, "rev-parse", "--verify", "HEAD")

	out := bytes.Buffer{}
	cmd.Stdout = &out
	panicIf(cmd.Run())

	return string(out.Bytes())
}

func guessContentType(file string) string {
	return mime.TypeByExtension(filepath.Ext(file))
}

func shouldCompress(file string) bool {
	ext := filepath.Ext(file)
	for _, e := range NO_GZIP {
		if "."+e == ext {
			return false
		}
	}

	return true
}

type UploadFileRequest struct {
	Bucket       *s3.Bucket
	Reader       io.Reader
	Path         string
	Dest         string
	IncludeHash  bool
	CacheSeconds int
}

func uploadFile(req UploadFileRequest) (remotePath string) {
	buffer := bytes.NewBuffer([]byte{})

	compress := shouldCompress(req.Path)

	if compress {
		writer := gzip.NewWriter(buffer)
		must(io.Copy(writer, req.Reader))
		writer.Close()
	} else {
		must(io.Copy(buffer, req.Reader))
	}

	data := buffer.Bytes()

	hash := hashBytes(data)
	hashPrefix := fmt.Sprintf("%x", hash)[:12]
	s3Opts := s3.Options{
		ContentMD5:   base64.StdEncoding.EncodeToString(hash),
		CacheControl: fmt.Sprintf("public, max-age=%d", req.CacheSeconds),
	}

	if compress {
		s3Opts.ContentEncoding = "gzip"
	}

	dest := req.Path
	if req.IncludeHash {
		dest = hashPrefix + "_" + dest
	}
	dest = filepath.Join(req.Dest, dest)

	log.Printf("Uploading to %s in %s (%s) [%d]\n", dest, req.Bucket.Name, hashPrefix, req.CacheSeconds)

	op := func() error {
		// We need to create a new reader each time, as we might be doing this more than once (if it fails)
		return req.Bucket.PutReader(dest, bytes.NewReader(data), int64(len(data)), guessContentType(dest)+"; charset=utf-8", s3.PublicRead, s3Opts)
	}

	back := backoff.NewExponentialBackOff()
	back.MaxElapsedTime = 30 * time.Second

	err := backoff.RetryNotify(op, back, func(err error, next time.Duration) {
		log.Println("Error uploading", err, "retrying in", next)
	})
	panicIf(err)

	return dest
}

type FileRef struct {
	LocalPath    string
	RemotePath   string
	UploadedPath string
}

type FileInst struct {
	File     *FileRef
	InstPath string
}

func writeFiles(options Options, includeHash bool, files chan *FileRef) {
	bucket := s3Session.Bucket(options.Bucket)

	for file := range files {
		handle := must(os.Open(file.LocalPath)).(*os.File)
		defer handle.Close()

		var ttl int
		ttl = FOREVER
		if !includeHash {
			ttl = LIMITED
		}

		remote := file.RemotePath
		if strings.HasPrefix(remote, "/") {
			remote = remote[1:]
		}
		partialPath, err := filepath.Rel(options.Dest, remote)
		if err != nil {
			panic(err)
		}

		(*file).UploadedPath = uploadFile(UploadFileRequest{
			Bucket:       bucket,
			Reader:       handle,
			Path:         partialPath,
			Dest:         options.Dest,
			IncludeHash:  includeHash,
			CacheSeconds: ttl,
		})
	}
}

func deployFiles(options Options, includeHash bool, files []*FileRef) {
	ch := make(chan *FileRef)

	wg := new(sync.WaitGroup)
	for i := 0; i < UPLOAD_WORKERS; i++ {
		wg.Add(1)
		go func() {
			writeFiles(options, includeHash, ch)
			wg.Done()
		}()
	}

	for _, file := range files {
		if !includeHash && strings.HasSuffix(file.RemotePath, ".html") {
			panic(fmt.Sprintf("Cowardly refusing to deploy an html file (%s) without versioning.", file.RemotePath))
		}

		ch <- file
	}

	close(ch)

	wg.Wait()
}

func addFiles(form uint8, parent *html.Node, files []string) {
	for _, file := range files {
		node := html.Node{
			Type: html.ElementNode,
		}
		switch form {
		case SCRIPT:
			node.Data = "script"
			node.Attr = []html.Attribute{
				html.Attribute{
					Key: "src",
					Val: file,
				},
			}

		case STYLE:
			node.Data = "link"
			node.Attr = []html.Attribute{
				html.Attribute{
					Key: "rel",
					Val: "stylesheet",
				},
				html.Attribute{
					Key: "href",
					Val: file,
				},
			}
		default:
			panic("Type not understood")
		}

		parent.AppendChild(&node)
	}
}

func isLocal(href string) bool {
	parsed := must(url.Parse(href)).(*url.URL)
	return parsed.Host == ""
}

func formatHref(path string) string {
	if !strings.HasPrefix(path, "/") {
		path = "/" + path
	}
	return path
}

func renderHTML(options Options, file HTMLFile) string {
	handle := must(os.Open(file.File.LocalPath)).(*os.File)
	defer handle.Close()

	doc := must(html.Parse(handle)).(*html.Node)

	var f func(*html.Node)
	f = func(n *html.Node) {
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			f(c)
		}

		if n.Type == html.ElementNode {
			switch n.Data {
			case "script":
				for i, a := range n.Attr {
					if a.Key == "src" {
						for _, dep := range file.Deps {
							if dep.InstPath == a.Val {
								n.Attr[i].Val = formatHref(dep.File.UploadedPath)
								break
							}
						}
					}
				}
			case "link":
				stylesheet := false
				for _, a := range n.Attr {
					if a.Key == "rel" {
						stylesheet = a.Val == "stylesheet"
						break
					}
				}
				if !stylesheet {
					return
				}

				for i, a := range n.Attr {
					if a.Key == "href" {
						for _, dep := range file.Deps {
							if dep.InstPath == a.Val {
								n.Attr[i].Val = formatHref(dep.File.UploadedPath)
								break
							}
						}
					}
				}
			}
		}
	}
	f(doc)

	buf := bytes.NewBuffer([]byte{})
	panicIf(html.Render(buf, doc))

	return buf.String()
}

func parseHTML(options Options, path string) (files []string, base string) {
	files = make([]string, 0)

	handle := must(os.Open(path)).(*os.File)
	defer handle.Close()

	doc := must(html.Parse(handle)).(*html.Node)

	var f func(*html.Node)
	f = func(n *html.Node) {
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			f(c)
		}

		if n.Type == html.ElementNode {
			switch n.Data {
			case "base":
				for _, a := range n.Attr {
					if a.Key == "href" {
						base = a.Val
					}
				}
			case "script":
				for _, a := range n.Attr {
					if a.Key == "src" {
						if isLocal(a.Val) {
							files = append(files, a.Val)
						}
					}
				}
			case "link":
				local := false
				stylesheet := false
				href := ""
				for _, a := range n.Attr {
					switch a.Key {
					case "href":
						local = isLocal(a.Val)
						href = a.Val
					case "rel":
						stylesheet = a.Val == "stylesheet"
					}
				}
				if local && stylesheet {
					files = append(files, href)
				}
			}
		}
	}
	f(doc)

	return
}

func deployHTML(options Options, id string, file HTMLFile) {
	data := renderHTML(options, file)

	internalPath, err := filepath.Rel(options.Root, file.File.LocalPath)
	if err != nil {
		panic(err)
	}

	permPath := joinPath(options.Dest, id, internalPath)
	curPath := joinPath(options.Dest, internalPath)

	bucket := s3Session.Bucket(options.Bucket)
	uploadFile(UploadFileRequest{
		Bucket:       bucket,
		Reader:       strings.NewReader(data),
		Path:         permPath,
		IncludeHash:  false,
		CacheSeconds: FOREVER,
	})

	log.Println("Copying", permPath, "to", curPath)
	copyFile(bucket, permPath, curPath, "text/html; charset=utf-8", LIMITED)
}

func expandFiles(root string, glob string) []string {
	out := make([]string, 0)
	cases := strings.Split(glob, ",")

	for _, pattern := range cases {
		if strings.HasPrefix(pattern, "-/") {
			pattern = pattern[2:]
		} else {
			pattern = joinPath(root, pattern)
		}

		list := must(filepath.Glob(pattern)).([]string)

		for _, file := range list {
			info := must(os.Stat(file)).(os.FileInfo)

			if info.IsDir() {
				filepath.Walk(file, func(path string, info os.FileInfo, err error) error {
					panicIf(err)

					if !info.IsDir() {
						out = append(out, path)
					}

					return nil
				})
			} else {
				out = append(out, file)
			}
		}
	}
	return out
}

func listFiles(options Options) []*FileRef {
	filePaths := expandFiles(options.Root, options.Files)

	files := make([]*FileRef, len(filePaths))
	for i, path := range filePaths {
		remotePath := joinPath(options.Dest, mustString(filepath.Rel(options.Root, path)))

		for strings.HasPrefix(remotePath, "../") {
			remotePath = remotePath[3:]
		}

		files[i] = &FileRef{
			LocalPath:  path,
			RemotePath: remotePath,
		}
	}

	return files
}

func ignoreFiles(full []*FileRef, rem []*FileRef) []*FileRef {
	out := make([]*FileRef, 0, len(full))

	for _, file := range full {
		ignore := false
		path := filepath.Clean(file.LocalPath)

		for _, remFile := range rem {
			if filepath.Clean(remFile.LocalPath) == path {
				ignore = true
				break
			}
		}

		if !ignore {
			out = append(out, file)
		}
	}

	return out
}

func extractFileList(options Options, pattern string) (files []string) {
	files = make([]string, 0)

	parts := strings.Split(pattern, ",")

	for _, part := range parts {
		matches, err := filepath.Glob(joinPath(options.Root, part))
		if err != nil {
			panic(err)
		}
		if matches == nil {
			panic(fmt.Sprintf("Pattern %s did not match any files", part))
		}

		files = append(files, matches...)
	}

	return files
}

func filesWithExtension(files []*FileRef, ext string) (outFiles []*FileRef) {
	outFiles = make([]*FileRef, 0)
	for _, file := range files {
		if filepath.Ext(file.LocalPath) == ext {
			outFiles = append(outFiles, file)
		}
	}

	return
}

type HTMLFile struct {
	File FileRef
	Deps []FileInst
	Base string
}

func (f HTMLFile) GetLocalPath() string {
	return f.File.LocalPath
}

func Deploy(options Options) {
	if s3Session == nil {
		s3Session = openS3(options.AWSKey, options.AWSSecret, options.AWSRegion, options.S3Host)
	}

	files := listFiles(options)

	htmlFileRefs := filesWithExtension(files, ".html")
	var htmlFiles []HTMLFile
	var id string

	if len(htmlFileRefs) == 0 {
		log.Println("No HTML files found")
	} else {
		inclFiles := make(map[string]*FileRef)
		htmlFiles = make([]HTMLFile, len(htmlFileRefs))
		for i, file := range htmlFileRefs {
			dir := filepath.Dir(file.LocalPath)

			rel, err := filepath.Rel(options.Root, dir)
			if err != nil {
				panic(err)
			}

			paths, base := parseHTML(options, file.LocalPath)

			if strings.HasPrefix(strings.ToLower(base), "http") || strings.HasPrefix(base, "//") {
				panic("Absolute base tags are not supported")
			}

			if strings.HasSuffix(base, "/") {
				base = base[:len(base)-1]
			}

			htmlFiles[i] = HTMLFile{
				File: *file,
				Deps: make([]FileInst, len(paths)),
				Base: base,
			}

			var dest string
			if strings.HasPrefix(base, "/") && strings.HasPrefix(base, "/"+options.Dest) {
				dest = base
			} else {
				dest = joinPath(options.Dest, base)
			}

			var root string
			if strings.HasPrefix(base, "/") && strings.HasSuffix(options.Root, base) {
				root = options.Root
			} else {
				root = joinPath(options.Root, base)
			}

			for j, path := range paths {
				var local, remote string
				if strings.HasPrefix(path, "/") {
					local = joinPath(options.Root, path)
					remote = joinPath(options.Dest, path)
				} else {
					if strings.HasPrefix(base, "/") {
						local = joinPath(root, path)
						remote = joinPath(dest, path)
					} else {
						local = joinPath(options.Root, rel, base, path)
						remote = joinPath(options.Dest, rel, base, path)
					}
				}

				for strings.HasPrefix(remote, "../") {
					remote = remote[3:]
				}

				ref, ok := inclFiles[local]
				if !ok {
					ref = &FileRef{
						LocalPath:  local,
						RemotePath: remote,

						// Filled in after the deploy:
						UploadedPath: "",
					}

					inclFiles[local] = ref
				}

				use := FileInst{
					File:     ref,
					InstPath: path,
				}

				htmlFiles[i].Deps[j] = use
			}
		}

		inclFileList := make([]*FileRef, len(inclFiles))
		i := 0
		for _, ref := range inclFiles {
			inclFileList[i] = ref
			i++
		}

		hashPaths := make([]string, 0)
		for _, item := range inclFileList {
			hashPaths = append(hashPaths, item.LocalPath)
		}
		for _, item := range htmlFiles {
			hashPaths = append(hashPaths, item.File.LocalPath)
		}

		hash := hashFiles(hashPaths)
		id = hash[:12]

		deployFiles(options, true, inclFileList)
	}

	deployFiles(options, false, ignoreFiles(files, htmlFileRefs))

	if len(htmlFileRefs) != 0 {
		// Ensure that the new files exist in s3
		// Time based on "Eventual Consistency: How soon is eventual?"
		time.Sleep(1500 * time.Millisecond)

		wg := sync.WaitGroup{}
		for _, file := range htmlFiles {
			wg.Add(1)

			go func(file HTMLFile) {
				defer wg.Done()
				deployHTML(options, id, file)
			}(file)
		}

		wg.Wait()
	}

	visId := id
	if id == "" {
		visId = "0 HTML Files"
	}

	color.Printf(`
+------------------------------------+
|         @{g}Deploy Successful!@{|}         |
|                                    |
|       Deploy ID: @{?}%s@{|}      |
+------------------------------------+
`, visId)

}

func deployCmd() {
	options, _ := parseOptions()
	loadConfigFile(&options)
	addAWSConfig(&options)

	if options.Bucket == "" {
		panic("You must specify a bucket")
	}

	if options.AWSKey == "" || options.AWSSecret == "" {
		panic("You must specify your AWS credentials")
	}

	Deploy(options)
}


text:
Greatest Remix Hits 4 es un álbum de remixes de la cantante australiana Kylie Minogue. Fue lanzado por Mushroom Records en 1998 sólo en Australia. El álbum contenía remixes raros y antes no estaban disponibles de las canciones de los álbumes de estudio de Minogue con PWL 1987-1992.

Lista de canciones
Disco 1

Disco 2

Referencias
Greatest Remix Hits 4 en Allmusic

Enlaces externos
Sitio oficial de Kylie Minogue

Álbumes de remezclas de Kylie Minogue
Álbumes de 1998

redpajama_set_name: RedPajamaWikipedia


text:
What is a Tannhauser Gate, and what are C-Beams?
posted by brownpau to Media & Arts (11 answers total) 1 user marked this as a favorite
I always just assumed he made them up.
posted by coelecanth at 2:55 PM on September 17, 2004
There's a medium-geeky conversation about Tannhauser's gate here.
It's a split metaphor, if I remember correctly:
1) In Scott's film, Roy Batty was supposedly involved in colony defense - namely, engineering corps and.or demolitions. The beams glittering near the gate could refer to debris, or construction equipment.
2) The legend of Tannhauser was focused on redemption. A passionate, yet misguided soldier suddenly sees the light and corrects his ways in the end. In Wagner's Ring Cycle, Tannhauser passed through an enchanted portal, much like a) the transations Batty himself would encounter, b) the (possible) space docking ring/jumpgate/whatever Batty witnessed off-world, c) the long (wayward?) journey Batty undertook when he and the other replicants hijacked a shuttle and headed towward Earth.
There's also the Ezekiel/Johnny Cash connection:
Ezekiel saw a wheel a-turning,
Way in the middle of the air,
A wheel within a wheel a-turning,
And the little wheel turned by faith,
And the big wheel turned
By the grace of God,
Ezekiel saw a wheel a turning,
Way in the middle of the air.
Love is a burning thing
and it makes a firery ring
bound by wild desire
I fell in to a ring of fire...
Regardless to say, along with the owl, unicorn, and Bryant's Tiffany lamp depicting
a hunter felling a buffalo, the film is very heavy in metaphor.
posted by Smart Dalek at 3:32 PM on September 17, 2004 [2 favorites]
The entire soliloquoy was apparently ad-libbed by Rutger Hauer. So, there's no real meaning.
posted by neckro23 at 4:13 PM on September 17, 2004
In Wagner's Ring Cycle, Tannhauser passed through an enchanted portal
Er, that's in Wagner's opera Tannhäuser, which is entirely separate from his Ring Cycle.
posted by DevilsAdvocate at 4:44 PM on September 17, 2004
Taken from the Bad Astronomy board:
It's also an excellent name for a writer who wants a good name for a Earth < -> Venus transit system without falling into cliches like warp / tunnel / jumpgate etc.etc.etc.
It sounds cool. Using a proper noun when referring to an object lends to deepend the viewers suspension of belief. We don't say "nasal tissue" we say "Kleenex". It gives the sense that the name is so engrained in the culture, they don't refer to it using common language (quantum transfer device, etc.). Very cool technique if used effectively, like in Blade Runner. Not so cool when the name sounds forced or alien when the actors say it.
posted by geoff. at 5:07 PM on September 17, 2004
neckro, coelcanth's link seems to clarify that a little more:
"I think Heinlein and David Peoples were both inspired from the same Wagnerian source material. Rutger Hauer is on record as improvising the "All those moments will be lost, in time. Like tears in rain. Time to Die." but the earlier part of that speech is from the Peoples draft, according to Hauer himself.
(pp 195-196 Future Noir by Paul M Sammon, ISBN 0061053147 )"
David Peoples being a writer on Blade Runner.
posted by Big Fat Tycoon at 5:14 PM on September 17, 2004 [1 favorite]
In the underlying universe, they're both examples of Macro-Causal Grand Unified Field Format Inverter Nodes.
posted by ROU_Xenophobe at 5:17 PM on September 17, 2004 [6 favorites]
I always assumed that c-beams refered to light beams, ie lasers, coming from c being used to represent the speed of light in physics.
posted by biffa at 12:45 PM on September 18, 2004
ROU, do you have an automatic acronym axpander?
posted by billsaysthis at 5:08 PM on September 18, 2004
I figured they were like I-beams, but C or [ shaped.
posted by cardboard at 6:45 PM on September 18, 2004
« Older Photos in Free-Fall? | Hong Kong and Philippines Newer »
Films similar to these? April 27, 2014
Close the gates! If we have them. August 12, 2012
What is this sound effect I keep hearing? April 7, 2010
Ineed some help here. September 6, 2008
On what song did Bowie use the gated mics trick? May 30, 2006
tannhauser

redpajama_set_name: RedPajamaCommonCrawl


Responsible for the sale of neurological devices, disposables and capital equipment in OR and Neuro ICU.
Already converted 3 neuro surgeons to Certas Plus valve to treat hydrocephalus.
Completed hospital conversion to Codman at Berkshire in first quarter on the job.
Responsible for identifying and training surgeons on the da Vinci surgical system.
Sold to Urology, Gynecology, General Surgery, Colo-Rectal, Thoracic and Cardiac.
Converted several surgeons from both open and laparoscopic techniques to robotic.
Worked closely with mid to senior level hospital administration on implementing comprehensive robotic programs.
Grew procedure volume 59% YOY Launched first Thoracic and General Surgery programs in Westchester.
Converted several surgeons to da Vinci Single Site technology.
Collaborated to help upgrade 4 hospitals to the New Si robot.
Successfully launched advanced technology into all Si accounts (Vessel Sealer, Robotic Stapler, Single Site and Fluorescence Imaging).
Created several multi-specialty robotic programs in Westchester.
Responsible for training surgeons on the OR on the proper use and techniques when performing a Novasure endometrial ablation and the Adiana permanent sterilization procedure.
100% to quota or better every quarter to date.
Increase territory sales from $610k in 2008 to $850k in 2009.
Covered vacant territory for two quarters and finished over 100% in both territories (149% and 112%).
Won 2008 and 2009 Quotabuster award.
Closed 204 devise deal with Catholic Health System on Long Island.
Successfully negotiated distribution contract between Hologic and the NYC Health and Hospital Corporation (HHC).
Ranked number 9 out of140 reps in Sales Objective Ranking.
Responsible for the sale of Hudson RCI/ Rusch Respiratory and Anesthesia supplies and devices to Hospitals and Surgery Centers.
Leverage GPO contracts (Novation, Premier, Consorta etc.) to increase sales volume and drive compliance.
at 109.14% to quota (out of 40 reps).
Ranked #1 in percent to quota for Anesthesia at 133% to quota.
Over 100% to quota every month in 2007.
Daily interaction in the OR with Anesthesiologists, Nurses and Techs.
New York Metropolitan area Responsible for the sale of medical supplies and equipment to hospitals, long term care facilities, surgery centers, hospices, physician offices, and home health agencies.
103% to quota in 2004.
116% to quota in 2005 increasing sales from $501,632 to $904,974.
2005 ranked #4 out of 25 reps for total growth in the Northeast region.
101% to quota in 2006.
Increased territory sales from 450K to 1.2M in 2 years despite intense market competition.
Sold and marketed Disney Channel, Toon Disney, and ABC Family Networks to cable television affiliates.
Developed advertising campaigns and distributed funds for approved print, radio and television advertisements.
In 2001, converted $1.8M Disney Channel subscribers from a pay to basic cable service, generating $21M annually in revenue for the company.
In 2003 converted remaing $3M subscribers in New England increasing annual revenue by $36M.
Organized customer appreciation events utilizing various Disney properties such as Disney theme parks, movie screenings, and Broadway plays.
Worked closely with national accounts to develop customer specific contracts and proposals.
Consistently surpassed yearly sales goals and objectives.
Developed effective time and territory management skills that were critical in a large geographical territory with multiple priorities and 80% travel.
• Responsible for identifying and training surgeons on the da Vinci surgical system.
Grew procedure volume 59% YOY 2012-2013.
Launched first Thoracic and General Surgery programs in Westchester. • Converted several surgeons to da Vinci Single Site technology.
Successfully launched advanced technology into all Si accounts (Vessel Sealer, Robotic Stapler, Single Site and Fluorescence Imaging). Created several multi-specialty robotic programs in Westchester.
As a true start up I was responsible for managing the NYC region through the allocation of resources (clinical PA and nurse), dedicated to transforming the underserved arrhythmia market through the advancement of less invasive, more efficacious ablation alternatives for cardiac arrhythmias such as atrial fibrillation (AF).
Educate the market on nContact epicardial ablation devices and techniques, and explain how ablating/silencing the posterior left atrium is highly efficacious and safe for the treatment of AF.
Responsible for building arrhythmia programs for the treatment of Atrial Fibrillation specifically in the persistent longstanding AF patient population.
Responsible for creating collaboration between Electrophysiology, Cardiology and Cardiothoracic Surgery to build a successful program for the treatment of AF.
Started 6 new Convergent procedure programs in 2015 (launched the company's first account in Manhattan at Lenox Hill).
Grew YOY procedure volume by 116%.
Increased revenue YOY by $350k.
This is a resume for a Neuro Specialist in Bethel, Connecticut with experience working for such companies as Codman Neuro and HOLOGIC INC. The grade for this resume is 0 and is one of hundreds of Neuro Specialist resumes available on our site for free. Use these resumes as templates to get help creating the best Neuro Specialist resume.


The CDC should further investigate the role of HCV sexual transmission in MSM.
The CDC should update its 1998 HCV recommendations to suggest HCV testing for all persons with HIV/AIDS.
More research should be conducted to completely understand the immunologic responses associated with control of HCV infection.
The NIAAA should commence studies on the effects of alcohol in patients with HCV. The findings should be widely distributed to patients and community physicians in a timely manner.
Large natural history studies should be initiated to determine the current natural history of HIV/HCV coinfected individuals in the era of HAART.
The NIH ICDs (i.e., NIAID, NIDDK, NHLBI) should issue multiple RFAs for cross-training of fellows in hepatology and infectious disease/HIV research.
The NIH's Office of AIDS Research should make available some of its discretionary funding for basic and clinical research on HIV/HCV coinfection.
The NIH should explore the desirability and feasibility of a Hepatitis Clinical Trials Network. The network would carry out Phase I to IV clinical studies with nested basic science research.
Future HCV treatment trials should stratify for HIV serostatus and enroll both HIV- positive and HIV-negative people in order to gather these critical data.
HCV treatment should be mandated in all state and federal prison systems.
Transplant centers in the U.S. should consider HIV-positive people for liver transplantation.
HCV patients must have access to their HCV RNA levels at timely intervals (e.g., week 24) while on HCV treatment studies.
Schering Plough must unbundle Rebetron™ so that ribavirin can be purchased separately.
Research should be conducted to determine the lowest effective dose of ribavirin to minimize unnecessary toxicity.
All 50 U.S. States should add ribavirin to their Medicaid and ADAP formularies.
Industry should conduct drug interaction studies of anti-HIV drugs in HIV/HCV coinfected people while drugs are in development so that potential hepatotoxicity and drug interactions are defined prior to approval.
The FDA should grant Hoffmann-La Roche's PEG-IFN NDA a "priority review" because of the unmet medical need for therapies for HCV patients with cirrhosis.
HCV treating physicians should fully explain the risk and benefits of IFN/RBV combination therapy with their patients as well as estimates of treatment response according to host and viral characteristics.
Industry must actively recruit African Americans in all phases of HCV clinical trials. These studies should have the statistical power to assess racial differences in viral clearance and response rates.
Hepatitis treatment advocates should be included in all facets of NIH decision making about hepatitis clinical and basic science research, including protocol development, scientific agenda committees and grant reviews.


text:
A lófélék (Equidae) a páratlanujjú patások rendjének egy családja. Egy nem és kilenc recens faj tartozik a családba.

A lófélék hímjét, nőstényét, illetve kicsinyét a csődör, kanca és csikó szavakkal jelöljük.

Rendszerezés
A család az alábbi nemet, alnemeket és fajokat foglalja magában.

 Equus (Linnaeus, 1758) – 9 faj
 Equus alnem
 Ló (Equus ferus)
 †Tarpán (Equus ferus ferus)
 Przsevalszkij-ló vagy ázsiai vadló (Equus ferus przewalskii)
 Háziló (Equus ferus caballus), számos fajta
 Asinus alnem
 Afrikai vadszamár (Equus africanus)
 Núbiai vadszamár (Equus africanus africanus)
 Szomáliai vadszamár (Equus africanus somalicus)
 †Atlasz vadszamár (Equus africanus atlanticus)
 Háziszamár (Equus africanus asinus)
 Ázsiai vadszamár vagy félszamár (Equus hemionus)
 Mongol kulán (Equus hemionus hemionus)
 Türkmén kulán (Equus hemionus kulan)
 Perzsa onager (Equus hemionus onager)
 Indiai vadszamár (Equus hemionus khur)
 †Szír vadszamár (Equus hemionus hemippus)
 †Európai vadszamár (Equus hemionus hydruntinus)
 Kiang (Equus kiang)
 Dolichohippus alnem
 Grévy-zebra (Equus grevyi)
 †Equus simplicidens
 Hippotigris alnem
 Alföldi zebra (Equus quagga)
 Kvagga (Equus quagga quagga)
 Hegyi zebra (Equus zebra)
 Hartmann-hegyizebra (Equus zebra hartmannae)

Források
Josee Hermsen: Lovak enciklopédiája. Ford. Horváth Ildikó. Ventus Libro Kiadó, 2006.
Mammal Species of the World. Don E. Wilson & DeeAnn M. Reeder (szerkesztők). 2005. Mammal Species of the World. A Taxonomic and Geographic Reference (3. kiadás)

További információk
 Lovam.hu: Lófajták
 Lovam-Lovasok.hu Lovas Magazin

2
Emlőscsaládok


text:
Sanofi's strategy boss to leave as CEO readies revamp
PARIS — Sanofi's executive vice president in charge of strategy and business development, Muzammil Mansuri, a member of the French drugmaker's executive committee, will leave the firm by the end of the month, according to a memo seen by Reuters.
The decision marks the first important management change taken since Paul Hudson became chief executive of Sanofi on Sept. 1, as he prepares to give pointers about his vision for the company next month.
Hudson and his teams are engaged in a strategic review and are expected to unveil the company's priorities for the coming years at an investor day in Cambridge, Massachusetts in December.
Mansuri, who joined Sanofi in 2016 from Gilead Sciences , will be retiring from the company, according to the document sent to staff on Wednesday.
Hudson said in the memo that Alban de la Sabliere, currently head of business development, and Laurent Van Lerberghe, head of strategy, would take on more responsibilities as of Dec. 1 and report directly to him.
A spokesman for Sanofi could not provide any immediate comment. (Reporting by Matthias Blamont, Editing by Christian Lowe)
These are 10 unusual hotel jobs that you never knew existed Get recommendations for travel apps from some of Canada's top travel...


.:: Welcome to PHFI-UKC | Public Health Foundation Of India-uk Consortium ::.
The grant is managed through the following three committees, headed by the Executive Committee.
The sole owner of all the information available on this site is PHFI - UKC. There is also a collection of information that may be user collected for various purposes.
This website is regularly used by PHFI - UKC. to communicate with is customers / clients. We share information related to various services that we offer, and addressing of client queries/ complaints.
All the information shared by visitors on the website is stored securely both online and offline. The data is considered confidential and is not available to anybody externally or internally.
Any of the information about our site visitors is not sold or passed on to any third party. The only exception to this is where we are legally obligated to do so to comply with a current judicial proceeding, court order or legal process served on our Website.
Just like any other standard website, our website server also uses various log files. These log files including internet protocol (IP) addresses, browser categories, internet service provider (ISP) details, referring/exit pages, platform type, date/time stamp, and number of clicks – to analyze trends, administer the site, track user's movement in the aggregate, and gather broad demographic information for aggregate use. IP addresses, etc. - are not linked to personally identifiable information.
This website contains links to many other sites. PHFI - UKC. is not responsible for privacy practices of these sites. This privacy statement applies only to our website.


text:
Q: I am trying to install pandas for Python3.3 on Ubuntu 13.10 I had installed Python2.7 and was trying to install numpy and pandas for the same. However when I saw Python3.3 was already there, I removed the 2.7 and related packages and installed numpy for python 3. But when I tried installing pandas I started getting this error
/var/lib/dpkg/info/python-setuptools.postinst: 6: /var/lib/dpkg/info/python setuptools.postinst: pycompile: not found
dpkg: error processing python-setuptools (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 python-setuptools
E: Sub-process /usr/bin/dpkg returned an error code (1)

I tried a bunch of things like

*

*apt-get -f install

*apt-get install -y python-central. Nothing seems to work out

Any help/suggestions would be very helpful. I am completely new to Python.

A: The problem is that the postinstallation script for python-setuptools can't find pycompile, which compiles Python source to bytecode. pycompile is part of the python-minimal package. You may want to try uninstalling all the Python packages you have currently then going step-by-step, installing:

*

*python2.7 (which will install python-minimal, which contains pycompile)

*python-setuptools (which uses pycompile)

*python-pandas (which presumably uses python-setuptools)

redpajama_set_name: RedPajamaStackExchange


An Hour of Om, my free meditation gathering, takes place tonight from 6-7. All are welcome.
Meditation is a powerful tool that can help you reconnect with your body, develop a dynamic presence, and fall in love with the delirious deliciousness of now.
All levels are welcome. Tonight will be peaceful, energizing and empowering.


text:
eDiscovery Today by Doug Austin
eDiscovery Today – Doug Austin
October 14, 2020 Doug Austin
Court Sanctions Defendants for Deletion of Emails, But Stops Short of Intent to Deprive Finding: eDiscovery Case Law
In Charlestown Capital Advisors v. Acero Junction, Inc., No. 18-CV-4437 (JGK) (BCM) (S.D.N.Y. Sept. 30, 2020), New York Magistrate Judge Barbara Moses granted in part the plaintiff's motion for sanctions of the defendants for failure to preserve the business email account of the defendant's co-President and Director, whose signature appeared on an agreement between the two parties at the heart of the dispute, but denied it with respect to the level of sanctions, stating that "the record does not contain clear and convincing evidence that the Acero Defendants acted 'with the intent to deprive [plaintiff] of the information's use' in this action".
Case Background
In this breach of agreement case where the plaintiff sought damages over an agreement allegedly signed by Jateen S. Kapoor, co-President and Director of the defendant company (which entitled them to fees for an M&A transaction of $2.6 million), Kapoor testified that he did not negotiate or sign the agreement, that he did not learn of its existence until April 2018 (even though a fully-executed copy was emailed to him by the plaintiff on January 12, 2018) and that he lacked authority to bind the defendants to its terms.
During discovery, the defendants failed to institute an effective litigation hold or effectively preserve ESI relevant to this action, including Kapoor's business email account. A year later, the defendants indicated that a "mid-level human resources person" deleted the entire Kapoor Account as part of a "wholesale" deletion of former employee emails and a subset of Kapoor emails identified as potentially relevant to the case also disappeared, having been "unwittingly" stored for only 15 days on "Google servers." Although counsel knew about the destruction of both data sets in August 2019, he failed to tell the plaintiff or the Court until November 2019, one month before the close of discovery.
After Kapoor testified at deposition that he still had copies of his emails on a laptop, the defendants (with help from an eDiscovery vendor) reviewed approximately 50,000 emails recovered from Kapoor's laptop but, after a "de-duplication procedure" (that appeared to include what the plaintiff produced as part of deduplication), produced only 412 emails, only 24 of which were exchanged with the plaintiff, a small fraction of the 1,650 emails exchanged between the parties produced by the plaintiff itself. Notably absent was the January 12, 2018 email from Charlestown to Kapoor, attaching a fully-executed copy of the Agreement.
Judge's Ruling
Judge Moses found that the defendants had an obligation to preserve the ESI and that they failed to take reasonable steps to do so (both of which the defendants did not deny). With regard to whether the ESI could be replaced through additional discovery, Judge Moses stated:
"Defendants' efforts were inadequate for at least two reasons. First, the only evidence that Kapoor's laptop contained all of the emails that the Acero Defendants deleted when they destroyed his account in mid-2019 is Kapoor's own, somewhat hazy, testimony at deposition, much of which is not even in the record in admissible form, but was instead recited to the Court, by counsel, at oral argument…Second, and even more problematic, is the substantial evidence before the Court that the January 27, 2020 production was, in fact, incomplete. It included only '34 files containing the word 'Charlestown,' ' only 412 emails 'to, from, copied to, or blind copied to' the Kapoor Account, and only 24 emails between the Kapoor Account and Charlestown's personnel…Given the affirmative defenses in this case, the arrival of that January 12 Email in Kapoor's inbox has independent evidentiary significance, as does the metadata that would show when Kapoor received it, when (if at all) he opened it, and when (if at all) he forwarded it or took other action concerning it. The Acero Defendants have never produced the January 12 Email, nor any of the related metadata, which raises questions not only about the fate of that email (and others known to plaintiff but not produced by defendants) but also about the existence of other potentially probative emails not currently known to plaintiff."
As a result, Judge Moses found that "Sanctions Are Warranted Under Rule 37(e)(1)". But, with regard to more severe sanctions under subsection (e)(2) (such as the entry of a default judgment against the Acero Defendants), Judge Moses stated: "the record does not contain clear and convincing evidence that the Acero Defendants acted 'with the intent to deprive [plaintiff] of the information's use, in this action". As a result, Judge Moses stated:
"Consequently, the Court will impose monetary sanctions on the Acero Defendants sufficient to deter them from further misconduct and compensate Charlestown for its attorneys' fees and other expenses incurred in obtaining documents and information that should have been provided many months earlier and in litigating the instant sanctions motion. In addition, defendants will be precluded from arguing or offering testimony or other evidence designed to show that Kapoor did not send or receive emails that have been produced by other parties and that show any of Kapoor's known email addresses as the sender or a recipient. Thus, for example, Kapoor may not deny that the January 12, 2018 email from Charlestown, together with its attachment, appeared in his inbox, in the ordinary course, at or shortly after the time it was sent by Charlestown. Finally, Charlestown will be permitted to present evidence to the finder of fact at trial regarding the loss of the Kapoor ESI and – in the event the case is tried to a jury – may seek an appropriate jury instruction, the wording of which will be at the discretion of the trial judge, allowing the jury to consider that loss of that evidence, and the circumstances of its loss, in evaluating witness credibility and otherwise making its determinations."
So, what do you think? Did the sanction fit the action here? Please share any comments you might have or if you'd like to know more about a particular topic.
Case opinion link courtesy of eDiscovery Assistant.
Disclaimer: The views represented herein are exclusively the views of the author, and do not necessarily represent the views held by my employer, my partners or my clients. eDiscovery Today is made available solely for educational purposes to provide general information about general eDiscovery principles and not to provide specific legal advice applicable to any particular circumstance. eDiscovery Today should not be used as a substitute for competent legal advice from a lawyer you have retained and who has agreed to represent you.
eDiscovery Today
Federal eDiscovery Rules
Spoliation
Published by Doug Austin
Doug is an established eDiscovery thought leader with over 30 years of experience providing eDiscovery best practices, legal technology consulting and technical project management services to numerous commercial and government clients. Doug has published a daily blog since 2010 and has written numerous articles and white papers. He has received the JD Supra Readers Choice Award as the Top eDiscovery Author for 2017 and 2018 and a JD Supra Readers Choice Award as a Top Cybersecurity Author for 2019. Doug has presented at numerous events and conferences, including Legaltech New York, ILTACON, Relativity Fest, University of Florida E-Discovery Conference, Masters Conference and many local and regional conferences. Doug has also presented numerous CLE-accredited webcasts.	View all posts by Doug Austin
Previous Thought Leader Interview with Daniel Pelc of HaystackID, Part Two: eDiscovery Trends and Best Practices
Next That's No Hype! eDiscovery Software is On the Slope of Enlightment!: Legal Technology Trends
Categories Select Category eDiscovery Today (318) ACEDS (13) Analysis (25) Audio/Video Discovery (11) Careers (15) Case Law (77) Collection (26) Consulting (12) Cooperation (25) Corporate (8) COVID-19 (58) Criminal Law (6) Depositions (2) EDRM (36) Electronic Discovery (261) Email (9) Ethics (29) Evidence (41) Expert Witness (1) Federal eDiscovery Rules (13) Identification (3) ILTA (11) In Memoriam (1) Industry Trends (130) Information Governance (38) Internal Investigations (6) International eDiscovery (13) Law Firm Departments (10) Mergers-Acquisitions-Investments (9) Mobile Devices (20) News (12) Outsourcing (24) Presentation (7) Preservation (24) Pricing (12) Privacy (60) Privilege (8) Processing (21) Production (32) Project Management (23) Proportionality (27) Redaction (6) Review (31) Sanctions (25) Searching (17) Security (44) Sedona Conference (12) Social Media (15) Software: Cloud (33) Software: On-Prem (13) State eDiscovery Rules (4) Technology Assisted Review (TAR) (34) Third Party Subpoena (1) Webinar/Webcast (12) Women in eDiscovery (1)
Archives Select Month January 2021 (16) December 2020 (26) November 2020 (29) October 2020 (39) September 2020 (36) August 2020 (42) July 2020 (41) June 2020 (35) May 2020 (35) April 2020 (19)
Sites I Follow:
Ball in Your Court (Craig Ball)
Complex Discovery (Rob Robinson)
eDiscovery Assistant (Kelly Twigger)
Ride the Lightning (Sharon Nelson)
LawSites (Bob Ambrogi)
Techno Gumbo (Tom O'Connor)
Legaltech® News


text:
SMS Explorer
Valuable Perspectives and Research From the Strategic Management Society
SMS Website
What do Venture Capitalists, Leonardo DiCaprio, and Martin Scorsese Have in Common?
By Cristiano Bellavitis, Joost Rietveld, Igor Filatotchev
Have you ever wondered whether Leonardo DiCaprio and Martin Scorsese should work on yet another movie together? Or why Greylock Partners and Sequoia Capital regularly invest together? A paper that has recently been published in the Strategic Entrepreneurship Journal answers these questions. Researchers from Auckland Business School, UCL School of Management, and King's Business School investigate the effects of repeated co-investments between venture capitalists (VCs) in the United States (U.S.) on a venture's likelihood of making a successful exit.
At last count, DiCaprio and Scorsese have worked on six movies together. They are not alone in this behaviour of repeatedly collaborating with the same partners. Individuals and firms repeatedly collaborate with each other. Be it actors and movie directors, or venture capital investors; we like working with the same people over and over. The sense of familiarity involved in repeatedly working with the same partners offers strong advantages. After a few collaborations, we begin to trust each other and develop working routines. We feel more relaxed and at ease. Familiar partners make the collaboration feel more natural and trustworthy, reducing the risks involved in a collaboration: the potential for partners' misbehaviour and opportunism. These characteristics embedded in collaborations with familiar partners lead to faster progress and a potentially more efficient collaboration and, as a result, better performance.
However, there also is a "dark side" to repeated collaborations. Repeatedly working with the same partners increases certain risks. Repeatedly partnering with the same people creates overlapping networks and expertise. Familiar people also tend to have similar thinking patterns induced by common prior experiences. This might lead to groupthink and even over-investments in trust between partners, meaning that they don't question or hold each other accountable anymore. As a consequence, the creativity and innovativeness of the collaboration might be jeopardized by additional collaborations, eventually leading to negative performance outcomes. Hence, there are both advantages and disadvantages in working with familiar partners. Familiarity improves a partnership's performance, but only up to a certain point, after which the performance of the partnership starts to decline.
In the SEJ paper, the researchers conduct a longitudinal study of 4,550 U.S. ventures receiving syndicated investments from 1980 to 2017. Results show that there exists an inverted U-shaped relationship between the number of prior co-investments and a venture's likelihood of a successful exit through IPO or M&A. Figure 1 shows that the predicted probability of a successful exit increases from 8.4% at 0 prior co-investments to 11.3% at 70 co-investments, after which it declines to 8.0% at 150 prior co-investments. Hence, when the number of prior co-investments increases from a low to a moderate level, chances of a successful exit increase by 34%. However, when prior co-investments continue to increase from a moderate to a high level, the likelihood of a successful exit falls by 30%.
Figure 1. Marginal effects for H1 (main effect of prior co- investments)
Further, the researchers find that the advantages and disadvantages of repeated collaborations depend on the type of collaboration. They find that the level of risk embedded in the project, e.g. the age of the venture that VCs are investing in, emphasizes both the advantages and disadvantages of working with familiar partners. They also find that working with familiar partners that are geographically closer reduces the advantages of familiarity. In other words, VC investors should be more "adventurous", selecting unfamiliar partners if they are located nearby.
The study offers some important implications. Individuals and investors should consider both the advantages and disadvantages of collaborating with the same partners over and over. Familiarity can lead to better performance, but "over-familiarity" can negate these benefits. This suggests that our innate desire to fall back on the same partners must be controlled in the interests of a project's performance. In other words, Martin Scorsese may consider working with a different actor for his next movie if he wants to maintain stellar box office revenues.
Cristiano Bellavitis is a Senior Lecturer (Advanced Assistant Professor) of Innovation and Entrepreneurship at the Faculty of Management and International Business of Auckland Business School. He is moving to Syracuse University in August 2020. Cristiano obtained his doctorate in management from Cass Business School, London. He is the incoming co-editor for Venture Capital: An International Journal of Entrepreneurial Finance. His work has been published in leading international journals such as Organization Science, Strategic Entrepreneurship Journal, British Journal of Management, Journal of Small Business Management, among others. He is also portfolio manager at Integer Investments, an asset management company investing in stocks and real estate.
Joost Rietveld is Assistant Professor in the department of Strategy & Entrepreneurship at the UCL School of Management. His research interests are at the intersection of technology strategy and innovation management. Joost's research seeks to understand how inter-organizational dynamics, including platform-complementor relationships, alliances, and mergers and acquisitions, affect product-level outcomes. He is also interested in how digitization facilitates new and innovative ways of doing business including the freemium and platform business models. Joost's research has been published in highly ranked academic journals including Organization Science, Research Policy and the Strategic Entrepreneurship Journal. His PhD thesis was awarded finalist in best dissertation competitions organized by INFORMS (TIMES section) and the Academy of Management (TIM division). Joost has taught courses at various institutions including New York University, the New York Film Academy and the Rotterdam School of Management at Erasmus University.
Igor Filatotchev is Professor of Corporate Governance and Strategy at King's Business School, King's College London, and a Visiting Professor at Vienna University of Economics and Business. He received his PhD in Economics from the Institute of World Economy and International Relations, Moscow, the Russian Federation. His research interests are focused on corporate governance effects on entrepreneurship and strategic decisions; sociology of capital markets. He has published more than 150 academic papers in the fields of corporate governance and strategy including publications in leading academic journals such as Academy of Management Journal, Strategic Management Journal, Journal of International Business Studies, Organization Science, and Journal of Management. He served as an Editor in Journal of Management Studies, Corporate Governance International Review and Journal of Management and Governance.
June 15, 2020 April 15, 2022 sarahstanske
Previous Previous post: CEO Cognitive Flexibility and the Simultaneous Pursuit of Exploratory and Exploitative Innovation in Organizations
Next Next post: Decision Weaving: Entrepreneurs as both "Experiential Learners" and "Master Planners"
This site is operated by the SMS Office and SMS Media Innovations.
Contributors can find more information here.