text:
Občanská záložna ve Vlašimi je reprezentativní budova někdejší městské záložny ve Vlašimi, která byla postavena v roce 1872 podle návrhu architekta Saturnina Hellera v novorenesančním slohu v Pláteníkově ulici čp. 48, nedaleko brány vlašimského zámku. Vystavěna byla jako nové sídlo Občanské záložny ve Vlašimi, prvního občanského peněžního ústavu (družstevní záložny) v českých zemích založeného roku 1858. Stavba byla před rokem 1988 zapsána jako kulturní památka.

Historie
Stavba byla dokončena roku 1872 pro potřeby finančního ústavu Občanské záložny ve Vlašimi, občanské spolkové záložny, prvního takového ústavu v českých zemích, která oficiálně vznikla k 14. březnu 1858. Prvním ředitelem ústavu se stal zdejší obuvník Jan Pláteník, jako tři další hlavní zakladatelé jsou uváděni Vojtěch Červ, František Cenkr, Josef Slabý a několik dalších. Návrh stavby vypracoval architekt a vlašimský rodák Saturnin Heller, který byl žákem Josefa Zítka. Stavba měla bohatě zdobený interiér.

Po zániku vlašimské záložny budova změnila využití. Po roce 2020 zde mj. sídlila galerie.

Architektura stavby
Jednopatrová budova je postavena ve svahu v centru města, v blízkosti vstupní brány vlašimského zámku. Částečně kompenzuje severní svah. Nese bohatou secesní štukovou a sgrafitovou výzdobu, svou strukturou, mj. nízkou sedlovou střechou, nese prvky tehdy módní italské renesanční architektury.

Odkazy

Reference

Externí odkazy

 Dějiny záložen v českých zemích (online kniha)

 Město Vlašim
 Kudyznudy.cz
 SVK Kladno

Kulturní památky v okrese Benešov
Novorenesanční stavby v Česku
Stavby ve Vlašimi
Postaveno v Česku 1872
Kultura ve Vlašimi


text:
NetComposites > News > AZL Installs KraussMaffei Injection Moulding Machine
AZL Installs KraussMaffei Injection Moulding Machine
A KraussMaffei Technologies injection moulding machine with turning table has been installed at the Aachen Centre for Integrative Lightweight Production (AZL).
The 200 ton machine provides the basis of a three-stage process chain, which produces fibre reinforced thermoset-thermoplastic hybrids for high-volume structural applications using photonic beam tools. To manufacture the novel fibre reinforced hybrids, continuous fibre reinforced thermoset CFRP laminates are cured and then functionalised through thermoplastic injection moulding (e.g. ribs, force transmission points). The adhesion and sealing of the epoxy-based laminate and the injection moulding compound is achieved through a laser beam pretreatment and specific process control. An innovative tool technology is used, where the component rests on the machine during the process sequence (resulting in minimal handling). Furthermore, a recently developed 3D laser scanner technology allows for a new kind of quality assured and precise laser surface processing.
AZL is the process- and system integrator for this project, which also involves BMW, KraussMaffei Technologies, ARGES, Precitec, Sensortherm and Zeiss Optotechnik.
"AZL has extensive expertise in developing combination technologies in regard to material sciences and production technology," says Martin Würtele, Head of Technology Development at KraussMaffei Technologies. "For this research project this is extremely valuable, particularly the know-how in the area of reaction- and laser system technology."
"We appreciate the trust given to us by another machine manufacturer, which enables the generation of impulses towards further development of machine technologies," notes Dr. Michael Emonts, CEO of AZL. "For the first time, the project collaboration allows for a highly integrated interaction between the robot-guided 3D laser scanner technology and a polymer processing plant."
The research efforts of the Fraunhofer Institute for Production Technology (IPT) and the Institute of Plastics Processing (IKV) in Industry and the Skilled Crafts at RWTH Aachen University provided the basis for this sophisticated process and system integration by AZL.
The technologies developed by the project will be presented during a public meeting at AZL in September.
Image provided by AZL
http://www.kraussmaffei.com
http://www.azl.rwth-aachen.de
http://photonischer-leichtbau.de/en/

redpajama_set_name: RedPajamaCommonCrawl


in Southsea, be sure to browse our directory.
Here at Freehold Guru, we are delighted to be considered as one of Portsmouth and the South East's top suppliers of residential block management and property services for landlords and freehold... property management companies. Using our wealth of experience we are able to deal with the various issues and problems that might arise helping to facilitate more efficient leaseholder and compliance procedures.


text:
package engine

import (
	"bytes"
	"context"
	"fmt"
	"sync"
	"time"

	"google.golang.org/protobuf/types/known/timestamppb"

	"go.chromium.org/luci/appengine/tq"
	"go.chromium.org/luci/common/clock"
	"go.chromium.org/luci/common/errors"
	"go.chromium.org/luci/common/logging"
	"go.chromium.org/luci/common/retry/transient"
	"go.chromium.org/luci/gae/service/datastore"

	"go.chromium.org/luci/scheduler/appengine/engine/cron"
	"go.chromium.org/luci/scheduler/appengine/engine/dsset"
	"go.chromium.org/luci/scheduler/appengine/engine/policy"
	"go.chromium.org/luci/scheduler/appengine/internal"
	"go.chromium.org/luci/scheduler/appengine/messages"
	"go.chromium.org/luci/scheduler/appengine/task"
)

// TODO(vadimsh): Surface triage status in Monitoring.

// errTriagePrepareFail is returned by 'prepare' on errors.
var errTriagePrepareFail = errors.New("error while fetching sets, see logs", transient.Tag)

// triageOp is a short lived struct that represents in-flight triage operation.
//
// A triage is a process of looking at what pending triggers/events a job has
// accumulated and deciding what to do with them (e.g. starting new invocations
// or waiting).
//
// There are 3 stages of the triage operation:
//   * Pre-transaction to gather pending events.
//   * Transaction to "atomically" consume the events.
//   * Post-transaction to cleanup garbage, update monitoring, etc.
type triageOp struct {
	// jobID is ID of the job being examined, must be provided externally.
	jobID string

	// dispatcher routes task queue tasks.
	dispatcher *tq.Dispatcher

	// policyFactory knows how to instantiate triggering policies.
	//
	// Usually it is policy.New, but may be replaced in tests.
	policyFactory func(*messages.TriggeringPolicy) (policy.Func, error)

	// enqueueInvocations transactionally creates and starts new invocations.
	//
	// Implemented by the engine, see engineImpl.enqueueInvocations.
	enqueueInvocations func(c context.Context, job *Job, req []task.Request) error

	// maxAllowedTriggers limits how many pending triggers are allowed to exist.
	//
	// If the pending triggers set has more triggers, oldest ones are forcefully
	// (without consulting the policy) discarded.
	//
	// This mechanism acts as a safeguard against total meltdown caused by large
	// pending trigger queues.
	maxAllowedTriggers int

	// The rest of fields are used internally.

	started      time.Time    // used to derive relative time in the debug log
	debugLogLock sync.Mutex   // the log may be modified from multiple goroutines
	debugLog     bytes.Buffer // appended to by debugInfoLog and debugErrLog
	debugLogMsgs int          // number of messages in the debug log

	finishedSet  *invocationIDSet
	finishedList *dsset.Listing

	triggersSet   *triggersSet
	triggersList  *dsset.Listing
	readyTriggers []*internal.Trigger // same as triggersList, but deserialized and sorted

	garbage    dsset.Garbage // collected inside the transaction, cleaned outside
	txnAttempt int           // incremented on each transaction attempt
	lastTriage time.Time     // value of job.LastTriage stored in the transaction
}

// prepare fetches all pending triggers and events from dsset structs.
func (op *triageOp) prepare(c context.Context) error {
	op.started = clock.Now(c).UTC() // used to derive relative time in the debug log
	op.debugInfoLog(c, "Starting")

	op.finishedSet = recentlyFinishedSet(c, op.jobID)
	op.triggersSet = pendingTriggersSet(c, op.jobID)

	wg := sync.WaitGroup{}
	wg.Add(2)

	// Grab all pending triggers to decided what to do with them.
	var triggersErr error
	go func() {
		defer wg.Done()
		op.triggersList, op.readyTriggers, triggersErr = op.triggersSet.Triggers(c)
		if triggersErr != nil {
			op.debugErrLog(c, triggersErr, "Failed to grab pending triggers")
		} else {
			sortTriggers(op.readyTriggers)
		}
	}()

	// Grab a list of recently finished invocations to remove them from
	// ActiveInvocations list.
	var finishedErr error
	go func() {
		defer wg.Done()
		op.finishedList, finishedErr = op.finishedSet.List(c)
		if finishedErr != nil {
			op.debugErrLog(c, finishedErr, "Failed to grab recently finished invocations")
		}
	}()

	wg.Wait()
	if triggersErr != nil || finishedErr != nil {
		return errTriagePrepareFail // the original error is already logged
	}

	op.debugInfoLog(c, "Pending triggers set:  %d items, %d garbage", len(op.triggersList.Items), len(op.triggersList.Garbage))
	op.debugInfoLog(c, "Recently finished set: %d items, %d garbage", len(op.finishedList.Items), len(op.finishedList.Garbage))

	// Remove old tombstones to keep the set tidy. We fail hard here on errors to
	// make sure progress stops if garbage can't be cleaned up for some reason.
	// It is better to fail early rather than silently accumulate tons of garbage
	// until everything grinds to a halt.
	if err := dsset.CleanupGarbage(c, op.triggersList.Garbage, op.finishedList.Garbage); err != nil {
		op.debugErrLog(c, err, "Failed to cleanup dsset garbage")
		return err
	}

	// Log something mostly to capture the timestamp.
	op.debugInfoLog(c, "The preparation is finished")
	return nil
}

// transaction must be called within a job transaction.
//
// It pops pending triggers/events, producing invocations or other events along
// the way.
//
// This method may be called multiple times (when the transaction is retried).
func (op *triageOp) transaction(c context.Context, job *Job) error {
	op.txnAttempt++
	if op.txnAttempt == 1 {
		op.debugInfoLog(c, "Started the transaction")
	} else {
		op.debugInfoLog(c, "Retrying the transaction, attempt %d", op.txnAttempt)
	}

	// Reset state collected in the transaction in case this is a retry.
	op.garbage = nil
	op.lastTriage = time.Time{}

	// Tidy ActiveInvocations list by moving all recently finished invocations to
	// FinishedInvocations list.
	tidyOp, err := op.tidyActiveInvocations(c, job)
	if err != nil {
		return err // the error is logged inside already
	}

	// Process pending triggers set by emitting new invocations. Note that this
	// modifies ActiveInvocations list when emitting invocations.
	triggersOp, err := op.processTriggers(c, job)
	if err != nil {
		return err // the error is logged inside already
	}

	// If nothing is running anymore, make sure the cron is ticking again. This is
	// useful for schedules like "with 10min interval" that initiate an invocation
	// after some time after the previous one finishes. This call submits at most
	// one task to TQ. Note that there's no harm in calling this multiple times,
	// only the first call will actually do something.
	if len(job.ActiveInvocations) == 0 {
		op.debugInfoLog(c, "Poking the cron")
		err := pokeCron(c, job, op.dispatcher, func(m *cron.Machine) error {
			m.RewindIfNecessary()
			return nil
		})
		if err != nil {
			op.debugErrLog(c, err, "Failed to rewind the cron machine")
			return err
		}
	}

	// Submit set modifications. This may produce more garbage that we need to
	// cleanup later (outside the transaction).
	popOps := []*dsset.PopOp{}
	if tidyOp != nil {
		popOps = append(popOps, tidyOp)
	}
	if triggersOp != nil {
		popOps = append(popOps, triggersOp)
	}
	op.debugInfoLog(c, "Removing consumed dsset items")
	if op.garbage, err = dsset.FinishPop(c, popOps...); err != nil {
		op.debugErrLog(c, err, "Failed to pop consumed dsset items")
		return err
	}

	op.lastTriage = clock.Now(c).UTC()
	job.LastTriage = op.lastTriage

	op.debugInfoLog(c, "Landing the transaction")
	return nil
}

// finalize is called after the transaction (successfully submitted or not) to
// delete any produced garbage, submit the triage log, update monitoring
// counters, etc.
//
// 'success' is true if the transaction successfully landed.
//
// It is best effort. We can't do anything meaningful if it fails: the
// transaction has already landed, there's no way to unland it.
func (op *triageOp) finalize(c context.Context, success bool) {
	// Cleanup the garbage accumulated in the transaction only if the transaction
	// really landed. If it didn't this it not really a garbage!
	if success && len(op.garbage) != 0 {
		op.debugInfoLog(c, "Cleaning up storage of %d dsset items", len(op.garbage))
		if err := dsset.CleanupGarbage(c, op.garbage); err != nil {
			op.debugErrLog(c, err, "Best effort cleanup failed")
		}
	}
	op.debugInfoLog(c, "Done")

	// Save the log. There's nothing we can do if this fails, but we try to detect
	// and warn on the log staleness (see GetJobTriageLog implementation).
	if op.lastTriage.IsZero() {
		op.lastTriage = clock.Now(c).UTC()
	}
	log := JobTriageLog{
		JobID:      op.jobID,
		LastTriage: op.lastTriage,
		DebugLog:   op.debugLog.String(),
	}
	if err := datastore.Put(c, &log); err != nil {
		logging.WithError(err).Errorf(c, "Failed to store the triage debug log")
	}
}

////////////////////////////////////////////////////////////////////////////////

// debugInfoLog adds a line to the triage debug log and Infof log.
func (op *triageOp) debugInfoLog(c context.Context, format string, args ...interface{}) {
	logging.Infof(c, format, args...)
	op.appendToLog(c, fmt.Sprintf(format, args...))
}

// debugErrLog adds a line to the triage debug log and Errorf log.
func (op *triageOp) debugErrLog(c context.Context, err error, format string, args ...interface{}) {
	if err == nil {
		logging.Errorf(c, format, args...)
		op.appendToLog(c, fmt.Sprintf("Error: "+format, args...))
	} else {
		logging.WithError(err).Errorf(c, format, args...)
		op.appendToLog(c, fmt.Sprintf("Error: "+format+" - %s", append(args, err)...))
	}
}

// appendToLog adds a line to the debug log, prefixing it with current time.
func (op *triageOp) appendToLog(c context.Context, msg string) {
	const maxMessageCount = 1000

	ms := clock.Now(c).Sub(op.started).Nanoseconds() / 1e6

	op.debugLogLock.Lock()
	if op.debugLogMsgs <= maxMessageCount {
		if op.debugLogMsgs < maxMessageCount {
			fmt.Fprintf(&op.debugLog, "[%03d ms] %s\n", ms, msg)
		} else {
			fmt.Fprintf(&op.debugLog, "<the log is too long, truncated here>")
		}
		op.debugLogMsgs++
	}
	op.debugLogLock.Unlock()
}

// tidyActiveInvocations removes finished invocations from ActiveInvocations,
// and adds them to FinishedInvocations.
//
// Called within a transaction. Mutates job. Returns an open dsset.PopOp that
// must be eventually submitted with dsset.FinishPop.
func (op *triageOp) tidyActiveInvocations(c context.Context, job *Job) (*dsset.PopOp, error) {
	now := clock.Now(c).UTC()

	// Deserialize the list of recently finished invocations, as stored in the
	// entity. Discard old items right away. If it is broken, log, but proceed.
	// It is ~OK to loose it (this will temporary cause some API calls to return
	// incomplete data).
	finishedRecord, err := filteredFinishedInvs(
		job.FinishedInvocationsRaw, now.Add(-FinishedInvocationsHorizon))
	if err != nil {
		op.debugErrLog(c, err, "Failed to unmarshal FinishedInvocationsRaw, skipping")
	}

	// Note that per dsset API we need to do BeginPop if there's some garbage,
	// even if Items is empty. We can skip this if both lists are empty though.
	var popOp *dsset.PopOp
	if len(op.finishedList.Items) != 0 || len(op.finishedList.Garbage) != 0 {
		popOp, err = op.finishedSet.BeginPop(c, op.finishedList)
		if err != nil {
			op.debugErrLog(c, err, "Failed to pop from finished invocations set")
			return nil, err
		}

		// Items can have IDs popped by some other transaction already. Collect
		// only ones consumed by us here.
		reallyFinished := make(map[int64]struct{}, len(op.finishedList.Items))
		for _, itm := range op.finishedList.Items {
			if popOp.Pop(itm.ID) {
				reallyFinished[op.finishedSet.ItemToInvID(&itm)] = struct{}{}
			}
		}

		// Remove IDs of all finished invocations from ActiveInvocations list,
		// preserving the order, and add them to the finished invocations list.
		if len(reallyFinished) != 0 {
			filtered := make([]int64, 0, len(job.ActiveInvocations))
			for _, id := range job.ActiveInvocations {
				if _, yep := reallyFinished[id]; !yep {
					filtered = append(filtered, id) // still running
					continue
				}
				op.debugInfoLog(c, "Invocation %d is acknowledged as finished", id)
				finishedRecord = append(finishedRecord, &internal.FinishedInvocation{
					InvocationId: id,
					Finished:     timestamppb.New(now),
				})
			}
			job.ActiveInvocations = filtered
		}
	}

	// Marshal back FinishedInvocationsRaw after it has been updated.
	job.FinishedInvocationsRaw = marshalFinishedInvs(finishedRecord)

	// Log summary.
	op.debugInfoLog(c, "Number of active invocations: %d", len(job.ActiveInvocations))
	op.debugInfoLog(c, "Number of recently finished:  %d", len(finishedRecord))

	return popOp, nil
}

// processTriggers pops pending triggers, converting them into invocations.
func (op *triageOp) processTriggers(c context.Context, job *Job) (*dsset.PopOp, error) {
	popOp, err := op.triggersSet.BeginPop(c, op.triggersList)
	if err != nil {
		op.debugErrLog(c, err, "Failed to pop from pending triggers set")
		return nil, err
	}

	// Filter out all triggers already popped by some other transaction.
	triggers := make([]*internal.Trigger, 0, len(op.readyTriggers))
	for _, t := range op.readyTriggers {
		if popOp.CanPop(t.Id) {
			triggers = append(triggers, t)
		}
	}
	op.debugInfoLog(c, "Triggers available in this txn: %d", len(triggers))

	// If the job is paused or disabled, just pop all triggers without starting
	// anything. Note: there's a best-effort shortcut for ignoring triggers
	// for paused jobs in execEnqueueTriggersTask.
	if len(triggers) != 0 {
		if job.Paused || !job.Enabled {
			op.debugInfoLog(c, "The job is inactive, clearing the pending triggers queue")
			for _, t := range triggers {
				popOp.Pop(t.Id)
			}
			return popOp, nil
		}
	}

	// Keep the set of pending triggers bounded, to avoid total meltdown caused
	// by slow triage transactions.
	if len(triggers) > op.maxAllowedTriggers {
		dropping := len(triggers) - op.maxAllowedTriggers
		op.debugErrLog(c, nil, "Too many pending triggers (>%d), dropping %d oldest", op.maxAllowedTriggers, dropping)
		for i := 0; i < dropping; i++ {
			popOp.Pop(triggers[i].Id)
		}
		triggers = triggers[dropping:]
	}

	// Ask the policy to convert triggers into invocations. Note that triggers is
	// not the only input to the triggering policy, so we call it on each triage,
	// even if there's no pending triggers.
	op.debugInfoLog(c, "Invoking the triggering policy function")
	out := op.triggeringPolicy(c, job, triggers)
	op.debugInfoLog(c, "The policy requested %d new invocations", len(out.Requests))

	// Actually pop all consumed triggers and start the corresponding invocations.
	// Note that this modifies job.ActiveInvocations list.
	if len(out.Requests) != 0 {
		consumed := 0
		for _, r := range out.Requests {
			for _, t := range r.IncomingTriggers {
				popOp.Pop(t.Id)
			}
			consumed += len(r.IncomingTriggers)
		}
		if err := op.enqueueInvocations(c, job, out.Requests); err != nil {
			op.debugErrLog(c, err, "Failed to enqueue some invocations")
			return nil, err
		}
		op.debugInfoLog(c, "New invocations enqueued, consumed %d triggers", consumed)
	}

	return popOp, nil
}

// triggeringPolicy decides how to convert a set of pending triggers into
// a bunch of new invocations.
//
// Called within a job transaction. Must not do any expensive calls.
func (op *triageOp) triggeringPolicy(c context.Context, job *Job, triggers []*internal.Trigger) policy.Out {
	var policyFunc policy.Func
	p, err := policy.UnmarshalDefinition(job.TriggeringPolicyRaw)
	if err == nil {
		policyFunc, err = op.policyFactory(p)
	}
	if err != nil {
		op.debugErrLog(c, err, "Failed to instantiate the triggering policy function, using the default policy instead")
		policyFunc = policy.Default()
	}
	return policyFunc(policyFuncEnv{c, op}, policy.In{
		Now:               clock.Now(c).UTC(),
		ActiveInvocations: job.ActiveInvocations,
		Triggers:          triggers,
	})
}

// policyFuncEnv implements policy.Environment through triageOp.
type policyFuncEnv struct {
	ctx context.Context
	op  *triageOp
}

func (e policyFuncEnv) DebugLog(format string, args ...interface{}) {
	e.op.debugInfoLog(e.ctx, format, args...)
}

redpajama_set_name: RedPajamaGithub


In Short Hacks: How amazing it is if we can access Android OS on our Windows PC =D ? Well, Now it is possible to run both Android and Windows on a single PC and running both OS simultaneously is called as 'Remix OS'. After installing remix OS on your computer then you can easily run any Android app. Read this article till the end, hope this may help you to install and run Remix OS 2.1 on your MAC and Windows computer.
The majority of smartphone owners have an Android device. This is due to the highly customizable user interface of Android's operating system. A large number of free apps and games could also be the reason behind the popularity of Android devices among people around the world. However, these apps and games could be accessed only on Android devices until we got introduced to Android emulators such as Bluestacks, Nox Player, AMIDuOS, etc. Android emulators are software which allows you to run Android apps and games on your PC/laptop. This software works efficiently and allows you to use Android applications on your PC/laptop conveniently.
Install Remix OS is one such amazing operating system for PCs/laptops with x86 and ARM architectures. Remix OS allows its users to run Android applications on any compatible Intel-based PC. Jide Technology developed this operating system to replicate the full functionality and features of an Android device on a PC/laptop. Remix OS was developed to create the world in which the boundaries between mobile and PC would be eliminated forever.
0.1 What is Remix OS?
How to Select the Ideal Android OS System Remix OS is and You'll be able to Run All of Android Attributes on Your Computer, Games, and Also All of Android Apps. You will be permitted on your computer to Run Android surroundings. Also take a look at Windows tricks and tweaks, to be used Windows in a great manner. That is the Operating System for virtually any Pc, in rather than.
3) Minimum 8 GB of free HDD space.
4) A good Internet connection would be helpful.
It is available for both 32-bit PCs and 64-bit PCs. The 32-bit version is Legacy BIOS only whereas the 64-bit version is UEFI Boot and Legacy BIOS compatible.
Installing Remix on your PC is very easy. It is just a three-step process.
Step 1- Download the Remix OS for PC from the official website which is 'http://www.jide.com/remixos-for-pc' using your web browser.
Step 2– Navigate to the location here you had downloaded the files of this operating system. Then, click on some dialog boxes to initiate the installation of Remix OS on your PC.
Step 3- Once the installation process is completed, restart your PC to boot the Remix OS on your PC. You will notice an icon of Remix OS on your desktop. Double-click on this icon to launch Remix OS on your PC.
A fascinating fact about Remix OS Android emulator is that it is entirely free of cost. Which means that you can enjoy all the features provided by this operating system for free.
#1. Built-in RAM management software: Remix OS comes with an integrated RAM management software using which you can clear cache and RAM usage. This can be done just by selecting the small button on the taskbar.
#2. File Manager: This Android emulator comes with a File Manager which can perform almost all the functions of a file manager. This is quite helpful as you won't need to install a third-party File Manager.
#3. Pin Apps to Taskbar: The most common notion of pinning an app to the taskbar is dragging the apps and dropping them onto the Taskbar. However, this won't help your cause. To pin apps to your taskbar, you must go the App drawer and right click on the app. This will Pin the app to the Taskbar.
#4. Make use of Notification drawer: In Remix OS Android emulator, you get a notification drawer which is pinned onto the bottom right of the taskbar. In this notification bar, you get all notifications from Gmail, Google Now, Play Store updates, etc. This notification drawer works exactly as it does on an Android device. Along with notifications, you can also use quick toggles such as Screenshot and Reboot, etc.
Wrap Up: This is all you need to know about Remix OS before you download and install it on your PC. You can use numerous Android applications on your PC using this Android emulator. This is not a difficult assignment if you know how to install Kali Linux or Windows then you can easily initiate this process. If you think something more should have been added above then, please let us know in the comments section below.


DSP FMP-243-36 M-Reg-G analysis. NAV, return, risk and comparison with benchmark and peers.
DSP FMP-243-36 M-Reg-G, NAV: 10.51, is managed by Laukik Bagwe. The fund is not rated. DSP FMP-243-36 M-Reg-G is a FMPs fund with a corpus of 216.05 Crores and is benchmarked against Crisil Composite Bond Fund Index.


Ellenville Gas Prices is updated daily with new data. However, gas price in your selection may change more frequently that we can obtain them. Based on the city/zip code you provide, the lowest price is exxon at $3.639 per gallon in Regular, citgo at $3.709 in Medium, and citgo at $3.789 in Premium. Check out the map for location.


Mint leaves need no introduction. They are a very common ingredient we usually have in our household. We use them in various foods – including salads and drinks – for flavoring but are not fully aware of their amazing benefits.
The popular herb doesn't only have a refreshing aroma and taste but also holds tons of health benefits. Its scientific name is Mentha and is available in more than two dozen different species. The medicinal use of mint is not a recent discovery. In fact, it has been used for centuries for its natural and remarkable medicinal properties.
We have list down the top health benefits of mint so that the next time you use it, you know how amazing it is.
Mint is a popular choice to help with stomach discomfort and digestive disorders. A warm cup of mint tea is extremely soothing if you are suffering from stomach inflammation or indigestion.
Mint's refreshing aroma activates the salivary glands in our mouth and help stimulate digestive enzymes. As a result, it facilitates digestions. This is the main reason why many international countries use mint for palate cleanser, to be consumed before the meal to help with easy digestion.
Fresh mint leaves can instantly help you deal with headache and nausea. People who suffer from motion sickness – especially during air and sea travel – usually carry a handful of fresh mint leaves or mint oil as an effective remedy for nausea.
Balms with menthol properties can be used for rubbing on the nose and forehead to relieve headache. The natural soothing substances present in mint can help alleviate inflammation to ease migraines and headaches.
Most herbal teas designed for weight loss have mint as a major ingredient. It's no surprise that a stimulant like mint can help with weight loss effectively. Most people simply use mint in warm water to boost weight loss.
Mint leaves do not only encourage the digestive enzymes to absorb food nutrients and use fat as usable energy, they also contain dietary fiber that makes you feel satiated soon. Since mint also helps with digestive problems, it improves the metabolism and does not store fat in the body. This in return aids weight loss.
Mint's most significant content is menthol, which is a popular decongestant. Mint, in fact, has become a common herb used as a natural ingredient for balms, inhalers, and other solutions for common colds and respiratory problems.
You do not have to buy these products from store when you can gain the same benefits by simply inhaling the steam of hot mint water. In addition to this, you can also consume mint water to help with those nasal congestions and runny nose. The menthol helps get rid of mucus and phlegm and keeps it from becoming worse.
Why do so many toothpastes contain mint?
Of course, the refreshing flavor and aroma are major reasons but there are other benefits for oral health too. Menthol oil present in mint is also rich in anti-microbial properties. In most toothpastes and mouthwashes, menthol is combined with ethyl alcohol for better results.
Mint water present in these oral health products helps bring a cool and fresh sensation in the mouth and maintains oral hygiene. Additionally, it freshens up the esophagus and does not lead to dryness or irritation.
If you didn't know about these benefits and you don't use mint that often, now you have every reason to stock back on that herb right now!
What Mint can Do to Your Body Inside Out?


Catch up on our Scenario Planning webinar - listen in for 25 minutes of thought-provoking content.
Do you have a view on what mid-term futures your business might face?
Scenario planning is a tool that we use when clients are faced with a range of possible future situations or outcomes. This can occur when entering a completely new market, or if a major economic, political, social shift is in progress.
Right now in the UK, most large firms with the budget and multidisciplinary teams have developed a series of scenarios around the uncertainty of Brexit. Some already have their 'no deal' action plans in place.
But what about the SMEs out there that don't have these resources available to them? Is it too late?
It's never too late to scope out a plan for the future. So if you think you need to look up from what is keeping you busy to really think through what you're missing, then call us for a chat. Our approach is practical, pragmatic and tailored to your business.
Step 1. Trend identification research and stakeholder interviews to understand the list of factors likely to affect the success of your business.
Step 2. Scenario Planning Masterclass to prioritise these factors and develop a plausible picture of the future.
Step 3. Close out report and recommendations for future strategy.


Are States Effectively Driving Stronger School Climates Via ESSA?
The Center for American Progress' Samantha Batel says in The 74 that ESSA gave states an opportunity to "rethink their education systems," and not just on accountability. ESSA plans also "encourage states to spotlight holistic support systems that can improve outcomes for students." In fact, states "highlight a variety of policies and programs to improve conditions for student learning, particularly around school climate," which correlates with myriad positive student outcomes, such as lowering absenteeism, suspensions, and substance abuse, as well as helping to narrow achievement gaps.


text:
Sleepy Hollow, Is It About Headless Horsemen Play or Something Else?
It's a careful marriage of The Mummy movies and National Treasure. If Crane and Mills hook up then I am done…well maybe, I don't know. Shows like this have a reputation of jumping the shark easily.
Tags abby mills, ichabod crane, jump the shark, national treasure, sleepy hollow, television, the mummy, the mummy returns
The Scorpion King – Starring Dwayne "The Rock" Johnson, Michael Clarke Duncan, Peter Facinelli, Steven Brand and Kelly Hu. This movie sets the stage for part of the story of "The Mummy Returns" by telling the story of the fictional Scorpion King.
Tags dwayne johnson, scorpion king, the mummy returns, the rock, the scorpion king
There's a fine line between coincidence and fate.
Ardeth Bay (Played by Oded Fehr), from The Mummy Returns
Tags fate, oded fehr, the mummy returns
We Are Watching The Mummy ReturnsThe film is a sequel to the 1999 film The Mummy film written and directed by Stephen Sommers, starring Brendan Fraser, Rachel Weisz, John Hannah, Arnold Vosloo, Oded Fehr, Patricia Velásquez, Dwayne "The Rock" Johnson and Freddie Boath. (From Wikipedia) This movie has some great action, humor and adventure.
Tags brendan fraser, dwayne johnson, John Hannah, movies, Rachel Weisz, sequels, the mummy returns


116-year-old Susannah Mushatt Jones is the oldest recorded living woman at the moment, and if she had her own way, her diet would be anything but healthy.
For her birthday, Susannah's cake was garnished with her favorite food: bacon. She would "eat bacon all day long" if she had her say, the New York Post reported her niece Lois Judge as saying.
Her regime is nothing extraordinary: Jones, who is aware and able to speak, wakes up at 9:30 am and eats scrambled eggs for breakfast, and then bacon an hour later, for a snack. She eats a healthy lunch consisting of fruit, and a full dinner of meat and vegetables or potatoes. Meat is consistently her favorite food.
Known as "Miss Susie" and called Tee" (short for "Auntie") by family, Susannah also loves to chew gum-but Doublemint sticks, only.
The oldest person ever on record is Jeanne Louise Calment of France, who lived to be 122 years old. Born in 1875, she died at a nursing home in Arles, in the south of France on August 4th, 1997.
The oldest man on record is Jiroemon Kimura from Japan, who lived to be116 years old and died in 2013.
Will Ms. Jones live longer? Only time will tell.


text:
Texas Working With Truckers in Fight Against Human Trafficking
During a visit to San Antonio on Thursday, Texas Attorney General Ken Paxton discussed a partnership with truck drivers in the state's efforts to combat human trafficking.
by Nicole Cobler Sept. 1, 2016 12 PM Central
Texas Attorney General Ken Paxton speaks during a press conference about fighting human trafficking in Texas. The event took place Sept. 1, 2016, at the San Antonio Police Department Public Safety Headquarters. Credit: Darren Abate for The Texas Tribune
SAN ANTONIO — As Texas continues to ramp up its efforts to combat human trafficking, truck drivers will be an integral part in detecting suspicious activity, Attorney General Ken Paxton said Thursday as he highlighted the partnership between the state and a pair of trucking associations.
Speaking outside of San Antonio's Public Safety Headquarters about the the state's collaboration with Truckers Against Trafficking and the Texas Trucking Association, Paxton noted that the approach will allow for more eyes across the state to look for possible trafficking.
"Human trafficking is modern-day slavery," Paxton said. "My office has made it a priority to combat human trafficking."
He said the partnership helps educate truck drivers on the signs of human trafficking and how to report it. Paxton added that such a focused effort will help ensure that victims will be identified and rescued, and that traffickers will be punished.
The collaboration, which began in fall 2015, is just one facet of the attorney general's efforts focused on human trafficking. In January, Paxton also announced a new unit in the attorney general's office dedicated to combating human trafficking.
Truckers Against Trafficking, a registered nonprofit group created in 2011, educates and trains truck drivers across the country to report possible cases of human trafficking they spot at truck stops and motels. San Antonio is the fourth Texas city the group has visited.
"This is a wonderful way to show how community policing works – bringing in partners from the community, people who are in the trenches, on the front lines to be our eyes and ears for law enforcement and prosecutorial agencies." — Bexar County District Attorney Nico LaHood
Because there's no statewide or national tracking of trafficking victims, most information on trafficking comes from victims or survivors making reports.
There have been 307 cases of human trafficking reported in Texas this year, according to the National Human Trafficking Resource Center. Calls from victims and survivors accounted for 198 calls made to the center.
The trucking industry has accounted for more than 1,400 calls to the National Human Trafficking Resource Center since the inception of Truckers Against Trafficking, according to Kendis Paris, the nonprofit's executive director.
Truck stops are just one of the places drivers may see suspicious activities, Paris said. Drivers should be aware of their surroundings in hotels, city streets and bus terminals.
"It certainly does happen at truck stops, but they're only one of the places," Paris said. "People have been propositioned in any kind of parking lot."
Truckers Against Trafficking also drives a mobile unit to cities across the country, which serves as a resource for truck drivers and the community to learn about human trafficking. Survivors' lipstick, sandals and dog tags hang on the walls of the trailer to raise awareness about the danger victims face. The mobile unit was available to San Antonio community members for the day.
Bexar County District Attorney Nico LaHood office commended Paxton's efforts to fight human trafficking by partnering with the trucking group.
"This is a wonderful way to show how community policing works – bringing in partners from the community, people who are in the trenches, on the front lines to be our eyes and ears for law enforcement and prosecutorial agencies," LaHood said.
Read more coverage about human trafficking in Texas:
Texas Attorney General Ken Paxton announced a new unit in his office dedicated to combating human trafficking.
Under a new state law, law enforcement officials will be able to take children suspected to be sex trafficking victims immediately into protective custody instead of waiting for a court order. This story is part of our 31 Days, 31 Ways series.


text:
Q: Proofs on a dense in R set... Let A be a dense in R set. Proof that the intersection of A with any non-empty open interval is a infinit set.
Thanks.

A: If $A\cap (a,b)$ is a finite set, say $\{x_1,x_2,...,x_n\}$ arranged in inreasing order than $A\cap (x_1,x_2)$ is empty and this is a contradiction.

redpajama_set_name: RedPajamaStackExchange


Every parent worries about their teenage boy. Sometimes, however, those worries escalate to serious concerns about your son's safety, health, and mental state. More often than not, good parenting and outside professional help, when necessary, can provide troubled teens with the help they need. But when your son's troubles exceed your ability to provide the necessary treatment, it might be time to look into a therapeutic boarding school.
Therapeutic boarding schools are primarily educational institutions where students are housed at the facility full-time. However, they are called therapeutic for a reason. Students who are struggling in traditional schools for any number of reasons may be enrolled in a therapeutic boarding school to receive intensive and individualized therapy to help them overcome their challenges while they get a quality education.
Is There a Therapeutic Boarding School Near Me?
Should I Really Consider a Therapeutic Boarding School?
Troubled teen boys who suffer from certain issues might need professional help. These schools and many more could be just what your son needs. Even if their choices are not conscious decisions, their behavior can harm themselves or have a destructive effect on families. Whatever the issues might be, it's important that boys be given the tools they need to progress in a constructive way. If your son's behavior concerns you and other methods have not yielded the needed results, it may be time for you to consider a therapeutic boarding school.
Locating and identifying the right therapeutic boarding school for your son's specific needs is a huge task. If you are considering such a facility, there are plenty of online resources you can look to for guidance. By going online, you can look at what educational and therapeutic options each school provides, what extracurricular activities are offered, tuition rates, and more. When you're looking to ensure a positive future for your son, a therapeutic boarding school for boys might offer a life-changing experience for him and the rest of your family.
Parents of troubled teen boys should spend plenty of time researching, helping them identify the very best therapeutic boarding schools for their situation. Don't hesitate to ask for professional help in making the tough decision to send your son to a therapeutic boarding school. Seek guidance from those who can understand the amount of stress, anxiety and concern that goes into such a decision. The right help can make the research and decision-making process smoother and less stressful.
What Should I Expect From A Therapeutic Boarding School?
First and foremost, these schools should remove troubled teen boys from their current negative environment, which may be supplied by their traditional school, the wrong friends, and frustrated teachers who aren't trained to deal with your son's challenges. A therapeutic boarding school places him in very structured and supervised surroundings.
These schools can also provide behavior modification programs that give boys positive incentives for good behavior, as well as programs that are filled with interesting and progressive recreation. At his new school, your son will enjoy social and entertainment opportunities that can boost self-esteem while they help him build relationships and achieve goals. At a therapeutic school, you can be assured that the faculty will be trained to help your son improve his behavior, his mental state, and his future. He will gain the life and coping skills to become a successful and productive adult.
Students may receive individual and group therapy sessions with licensed therapists, in an environment where academic achievement is emphasized, helping him gain an appreciation for its importance in his transition into the adult world.
Can't I Just Wait and See?
As a parent, how you deal with your son's behavioral, mental, or educational challenges is entirely up to you. However, many studies have documented the need for early intervention in troubled children and teens. Many parents are tempted to wait it out and see if their teen's behavior is just a phase, but it's vital that the warning signs be taken seriously. If the other steps you have taken haven't done enough to turn things around, giving up should never be an option. Teens who don't get the help they need can enter a downward spiral that is much harder to break away from.
Sending your son to a therapeutic boarding school might seem like a drastic step, but sometimes, it's a necessary one. The earlier you step in to get him the help he needs, the better chance he will have to turn his life around and become a well-adjusted adult.
Fortunately, there are organizations that provide provide free consultations for parents like you who are seeking information on therapeutic boarding schools. They employ people who are ready to guide you as you make this tough decision. It's the first step in a long, difficult road, but in the end, your teen son will get the guidance, therapy and education he needs to have the best chance of success.


The Rochester Summer TOPSoccer program will begin on Thursday, July 15th and run on 5 consecutive Thursday's from 6:30PM - 7:30PM. The sessions will be held at Doug Miller Soccer Dome.
Cost for the program is $30.00 per player.
*No pre-registration required. You may register at the first session.
We are looking for volunteers to help with these special children. No experience necessary.


I'd highly recommend the BIRTHFIT postpartum series to any mom who is looking for help in recovery, rehabilitation, and learning how to really take care of herself postpartum. Dr. Julie was a great instructor/coach, and provided lots of information specific to issues/questions that each mom had. The class exceeded my expectations (we received emails going over each of the movements covered in class & Dr. Julie was willing to answer any questions we had), and I am recommending it to the moms I work with in my midwifery practice. Thanks so much for offering this service to our community, Dr. Julie Kulig!


We specialise in multiple event co-ordination and management – from social and corporate events to team building and large-scale exhibitions. We provide creative design, manufacture and daily operations of activation for clients at events. Each project we are involved in, is managed in the most sustainable way possible. In addition to this we can carry out full carbon audits and develop management plans to best suit your company, event or brand. We develop annual calendars and research platforms for our clients to promote and activate their brands and events. From milestone celebrations for businesses to birthday parties, no occasion is too big or too small to celebrate in style.
We have experience in product launches, corporate hospitality functions, exhibitions, fashion shows, private events, weddings, and large scale sporting events. We will find the ideal venue for your unique event, organize every aspect in fine detail and work with you to develop your ideas to maximum potential. We will ensure that all objectives are delivered on and that the event unfolds on the day exactly as planned and to your complete satisfaction. We will manage your event cost-effectively and control the budget diligently throughout the process. Our fresh thinking and unique approach will ensure that we understand your needs and are ready to meet any challenge. Let us manage all operational aspects of your event including budgeting, site design and logistics, procurement, event scheduling, décor, audio visual, security, crowd control and event submissions, licenses and permissions.
You brief us on your project, your desired outcomes and budget, then relax and take delivery of these services from a professional team of event coordinators. We work within the framework of your pre-approved budget and carefully manage this budget throughout the event process. We have a proven history with our clients on delivery and accountability for the success of their events. Our team of reliable, trustworthy staff are all qualified and skilled in project management. We offer a national and international conference and event management service. You have access to specialised expertise and resources through our network of tried and trusted suppliers. We have the capacity to plan and implement your project in the most socially and environmentally responsible way possible.


Bagnall were renowned builders of industrial locomotives for both standard gauge and narrow gauge. They developed a huge range of designs and built numerous engines for the 'big four' and the MOD. The 7″ x 12″ saddle tank was a mid-range narrow gauge design that could be supplied in a number of different formats. Several examples of the type have been preserved, one of the most famous being the Rev. Teddy Boston's 'Pixie' which ran round his railway in the garden of Cadeby rectory!
In light of the success of our Quarry Hunslet in this scale, used to represent 2′ gauge on 45mm track, we have decided to produce our second live steam locomotive for this market. The more generous proportions of models in this scale have given us the opportunity to look at prototypes which would be rather too small in 1:19 scale but which we have long hankered to produce. The model is gas fired and fitted with a water gauge with blow-down valve, miniature pressure gauge; constructed of stainless steel and etched brass, the loco has an enhanced level of detail made possible by this scale including a brake stand / gas control valve and water gauge. It is not gauge-adjustable and is only available in 45mm gauge.
Boiler Fittings: Safety valve, miniature pressure gauge, water gauge with blow-down valve.
Cab Controls: Steam regulator, gas regulator, reverse lever, displacement lubricator with under-floor drain.
You can download the instructions for the Bagnall here.


text:
/*
 *
 *
 *
 */
#include "AppCore.h"

//--------------------------------------------------------------
void AppCore::setup(const int numOutChannels, const int numInChannels,
                    const int sampleRate, const int ticksPerBuffer) {

	ofSetFrameRate(30);
	ofSetVerticalSync(true);

    //----------------------------------- WEBSOCKET START -------------------------------------------
    //ofSetLogLevel(OF_LOG_VERBOSE);
    // basic connection:
    // client.connect("echo.websocket.org");
    // OR optionally use SSL
    // client.connect("echo.websocket.org", true);

    // advanced: set keep-alive timeouts for events like
    // loss of internet

    // 1 - get default options
    //options = ofxLibwebsockets::defaultClientOptions();

    // 2 - set basic params
    //options.host = "pmos-website.jit.su";
    //options.host = "echo.websocket.org";
    //options.host = "localhost";
    //options.port = 9092;

    // 3 - set keep alive params
    // BIG GOTCHA: on BSD systems, e.g. Mac OS X, these time params are system-wide
    // ...so ka_time just says "check if alive when you want" instead of "check if
    // alive after X seconds"
    //options.ka_time     = 1;
    //options.ka_probes   = 0;
    //options.ka_interval = 0;

    // 4 - connect
    //client.connect(options);

    //ofSetLogLevel(OF_LOG_WARNING);

    //client.addListener(this);

    //----------------------------------- WEBSOCKET END -------------------------------------------

	// double check where we are ...
	cout << ofFilePath::getCurrentWorkingDirectory() << endl;

    //----------------------------------- PD START-------------------------------------------
	if(!pd.init(numOutChannels, numInChannels, sampleRate, ticksPerBuffer)) {
		OF_EXIT_APP(1);
	}
    Externals::setup();
	midiChan = 1; // midi channels are 1-16

	// subscribe to receive source names
	pd.subscribe("toOf");
	pd.subscribe("env");

    pd.addReceiver(*this);   // automatically receives from all subscribed sources
	pd.ignore(*this, "env"); // don't receive from "env"

	pd.addMidiReceiver(*this);  // automatically receives from all channels

	pd.addToSearchPath("pd/abs");

	pd.start();
    //Patch patch = pd.openPatch("pd/somename.pd");
    //cout << patch << endl;
    //----------------------------------- PD END-------------------------------------------

    //----------------------------------- KINECT START -------------------------------------------
    //while(kinect.numAvailableDevices()== 0){
    cout << "List Kinects:" << endl;
    kinect.listDevices();
    //}
    cout << "Done Listing:" << endl;
    kinect.init();
    kinect.open("0000000000000000");//the other one
    kinect.setCameraTiltAngle(0);
    grayImage.allocate(kinect.width, kinect.height);

    kinect1.init();
    kinect1.open("A00364A11700045A");
    kinect1.setCameraTiltAngle(0);
    grayImage1.allocate(kinect1.width, kinect1.height);

    bothKinects.allocate(kinect.height*2, kinect.width);
    combinedVideo = (unsigned char*)malloc(640 * 480 * 2 * sizeof(unsigned char*));

    blobs.resize(100);
    blobCenterX.resize(100);
    blobCenterXmap.resize(100);
    blobCenterY.resize(100);
    blobCenterYmap.resize(100);

    //----------------------------------- KINECT END -------------------------------------------

    // Setup OSC Sender
    sender.setup(HOST, PORT);

    allPipes = new ofPipe*[TUBE_NUM]; // an array of pointers for the objects
    persons = new ofPerson*[PERSON_NUM];
    colors = new ofColor*[PERSON_NUM];
    //the string is printed at the top of the app
    //to give the user some feedback
    message = "loading data.xml";

    //we load our data file

    if( XML.loadFile("data.xml") ){
        message = "data.xml loaded!";
    }else{
        message = "unable to load data.xml check data/ folder";
    }

    XML.pushTag("document");
    newXML.addTag("document");
    newXML.pushTag("document");

    for(int i=0; i<TUBE_NUM; i++){

        XML.pushTag("tube",i);

        float x = XML.getValue("y",0.0);
        float y = XML.getValue("x",0.0);

        // rotate
        float angle = ofDegToRad(-25);
        float rX = (x*cos(angle) - y*sin(angle));
        float rY = (x*sin(angle) + y*cos(angle));

        // map to the of window size
        float mult = 6;
        float w = 1280;
        float h = 720;
        x = (rX * mult + w / 2) - 50;
        y = (rY * mult + h / 2) + 0;

        float radius = XML.getValue("diameter",0.0 ) / 1.8;
        float length = XML.getValue("length",0.0 );
        float height= XML.getValue("height",0.0);
        float frequency = 342 / ((length*2)/100);
        int idNum = XML.getValue("num",0);
        int element = XML.getValue("element",0 );
        int open = XML.getValue("oc",0 );

        allPipes[i] = new ofPipe(x,y,radius,length,height,frequency, idNum, element, open);

        newXML.addTag("tube");
        newXML.pushTag("tube", i);
        newXML.addValue("num", idNum);
        newXML.addValue("frequency", frequency);
        newXML.addValue("length", length);
        newXML.addValue("height", height);
        newXML.addValue("diameter", radius);
        newXML.addValue("x", ofMap(x, 0, w, 0, 1));
        newXML.addValue("y", ofMap(y, 0, h, 0, 1));
        newXML.addValue("element", element);
        newXML.addValue("oc", open);

        XML.popTag();
        newXML.popTag();
    }

    newXML.saveFile("newXML.xml");

    // load the PD patches and create the people
    for(int i = 0; i<PERSON_NUM; i++){
        patches[i] = pd.openPatch("pd/main.pd");
        persons[i] = new ofPerson(0.0,0.0,0.0, i);
        colors[i] = new ofColor;
    }
    // load a separate patch for the mouse
    mousePatch = pd.openPatch("pd/main.pd");
    mPerson = new ofPerson(0.0,0.0,0.0,0);
    outputState=false;
    tryConnecting=true;

    //colors[10]->setHex(0x939598);
    ofTrueTypeFont::setGlobalDpi(72);
    f = *new ofTrueTypeFont;
    f.loadFont("Tahoma Bold.ttf", 12,true,true);
    ofSetFullscreen(fullScreen);
    ofHideCursor();
}

//--------------------------------------------------------------
void AppCore::update() {
    //bServerConnected = threadedObject.bServerConnected;

    // Make sure the Kinects are connected
    if(!kinect.isConnected()){
        if(kinect.numTotalDevices() !=0){
            kinect.init();
            kinect.open("0000000000000000");
            kinect.setCameraTiltAngle(0);
        }
    }
    if (!kinect1.isConnected()){
        if(kinect1.numTotalDevices() !=0){
            kinect1.init();
            kinect1.open("A00364A11700045A");
            kinect1.setCameraTiltAngle(0);
        }
    }
    ////////////////////////////////////////////////////

    kinect.update();
    kinect1.update();

    if(kinect.isFrameNew() && kinect1.isFrameNew()){

        grayImage.setFromPixels(kinect.getDepthPixels(), kinect.width, kinect.height);
        grayImage1.setFromPixels(kinect1.getDepthPixels(), kinect1.width, kinect1.height);

        GrayPixel = grayImage.getPixelsRef();
        GrayPixel.rotate90(1);

        GrayPixel1 = grayImage1.getPixelsRef();
        GrayPixel1.rotate90(1);

        for(int i=0; i<640; i++){
            memcpy(combinedVideo + (i*960), GrayPixel.getPixels()+(i*480), 480);
            memcpy(combinedVideo + (i*960+480), GrayPixel1.getPixels()+(i*480), 480);
            bothKinects.setFromPixels(combinedVideo, 480*2, 640);
        }

        bothKinects.threshold(thresholdVal);
        contourFinder.findContours(bothKinects, 600, 50000, maxInput, false);

    }

    grayImage.flagImageChanged();
    grayImage1.flagImageChanged();

    currentInput = contourFinder.nBlobs;

    for(int i = 0; i < currentInput; i++) {
        blobs[i] = contourFinder.blobs.at(i);
        blobCenterX[i] = blobs[i].centroid.x;
        blobCenterY[i] = blobs[i].centroid.y;
        blobCenterXmap[i] = ofMap(blobCenterX[i], 0, kinect.height*2, 0, ofGetWidth());
        blobCenterYmap[i] = ofMap(blobCenterY[i], 0, kinect.width, 0, ofGetHeight());

        }

    ////////////////////////////////////////////////////////////////////////////////////////

    ofxOscBundle b;
    Poco::Timestamp epoch(0);
    Poco::Timestamp now;
    Poco::Timestamp::TimeDiff diffTime = (now - epoch);
    timeStamp = (long long) (diffTime/1000);

    if(currentInput>PERSON_NUM){
        currentInput=PERSON_NUM;
    }

    for (int i = 0; i < PERSON_NUM; i++){
        persons[i]->frequency = 0;
    }

    // reset the pipes and check the mouse
    mPerson->pipeID = 0;
    mPerson->frequency=0;

    ofxOscMessage m;
    m.setAddress("/mouse");
    m.addFloatArg(0);                                       // channel
    m.addStringArg(ofToString(timeStamp));                  // timestamp
    m.addFloatArg(ofMap(mPerson->x,0,ofGetWidth(),0,1));    // x
    m.addFloatArg(ofMap(mPerson->y,0,ofGetHeight(),0,1));   // y
    for (int i = 0; i < TUBE_NUM; i++){
        allPipes[i]->isHit=false;
        float mouseDist = ofDist(allPipes[i]->x,allPipes[i]->y,mPerson->x,mPerson->y);
        if(mouseDist<allPipes[i]->radius){
            mPerson->frequency=allPipes[i]->frequency;
            mPerson->diameter=allPipes[i]->radius;
            mPerson->height=allPipes[i]->height;
            mPerson->length=allPipes[i]->length;
            mPerson->openClosed=allPipes[i]->openClosed;
            mPerson->pipeID = allPipes[i]->idNum;
            allPipes[i]->isHit=true;
        }
    }
    m.addFloatArg(mPerson->pipeID);                 // tubeID
    m.addFloatArg(mPerson->frequency);              // frequency
    m.addFloatArg(mPerson->diameter);               // diameter

    if(ofGetFrameNum()%2==0){
        //sender.sendMessage(m);
        m.clear();
    }
    //b.addMessage(m);

    // check if the tracked people are hitting the pipes
    for(int u = 0; u<currentInput; u++){
        persons[u]->x=blobCenterXmap[u];
        persons[u]->y=blobCenterYmap[u];
        persons[u]->frequency=0;
        persons[u]->pipeID=0;
        //persons[u]->diameter=0;   //no need to set these to 0
        //persons[u]->height=0;
        //persons[u]->length=0;
        //persons[u]->openClosed=0;

        for (int i = 0; i < TUBE_NUM; i++){
            float dist = ofDist(allPipes[i]->x,allPipes[i]->y,persons[u]->x,persons[u]->y);
            if(dist<allPipes[i]->radius){

                persons[u]->x=allPipes[i]->x;   //don't move insede a tube
                persons[u]->y=allPipes[i]->y;   //don't move insede a tube

                persons[u]->frequency=allPipes[i]->frequency;
                persons[u]->diameter=allPipes[i]->radius;
                persons[u]->height=allPipes[i]->height;
                persons[u]->length=allPipes[i]->length;
                persons[u]->openClosed=allPipes[i]->openClosed;
                persons[u]->pipeID=allPipes[i]->idNum;
                allPipes[i]->isHit=true;
            }
        }
        //Pack OSC
        if(persons[u]->pX != persons[u]->x || persons[u]->pY != persons[u]->y){
            ofxOscMessage oscMessage;
            oscMessage.setAddress("/messages");
            oscMessage.addIntArg(u);
            oscMessage.addStringArg(ofToString(timeStamp));                             // timestamp
            oscMessage.addFloatArg(ofMap(persons[u]->x,0,ofGetWidth(),0,1));            // x
            oscMessage.addFloatArg(ofMap(persons[u]->y,0,ofGetHeight(),0,1));           // y
            oscMessage.addFloatArg(persons[u]->pipeID);                                 // tubeID
            oscMessage.addFloatArg(persons[u]->frequency);                              // frequency
            oscMessage.addFloatArg(persons[u]->diameter);
            b.addMessage(oscMessage);
            oscMessage.clear();
        }

        /*
        if(!testmode){
            if(persons[u]->pX != persons[u]->x || persons[u]->pY != persons[u]->y){
                jsonPeople[u]["channel"] = ofToString(u);
                jsonPeople[u]["timestamp"] = ofToString(timeStamp);
                jsonPeople[u]["x"] = ofToString(ofMap(mPerson->x,0,ofGetWidth(),0,1));
                jsonPeople[u]["y"] = ofToString(ofMap(mPerson->y,0,ofGetHeight(),0,1));
                jsonPeople[u]["num"] = ofToString(mPerson->pipeID);
                jsonPeople[u]["frequency"] = ofToString(mPerson->frequency);
                jsonPeople[u]["closed"] = ofToString(mPerson->openClosed);
                jsonPeople[u]["diameter"] = ofToString(mPerson->diameter);
                jsonPeople[u]["height"] = ofToString(mPerson->height-mPerson->length);
            }
        }

        if(testmode){
            jsonPeople[u]["channel"] = ofToString(u);
            jsonPeople[u]["timestamp"] = ofToString(timeStamp);
            jsonPeople[u]["x"] = ofToString(ofRandom(1.0));
            jsonPeople[u]["y"] = ofToString(ofRandom(1.0));
            jsonPeople[u]["num"] = ofToString(ofRandom(1000));
            jsonPeople[u]["frequency"] = ofToString(ofRandom(300));
            jsonPeople[u]["closed"] = ofToString(0);
            jsonPeople[u]["diameter"] = ofToString(ofRandom(30));
            jsonPeople[u]["height"] = ofToString(ofRandom(500));
        }
         */
       /* if (ofGetFrameNum()%5==0 && client.isConnected() && isWritable) {
            shouldSend = true;
            cout << "should send users" <<endl;
            //client.send(ofToString(jsonPeople[u]));
            //cout << ofToString(jsonPeople[u]);

        }
        */
    }

    //Send OSC
    sender.sendBundle(b);

   // if (client.isConnected() && isWritable) {
   //     shouldSend = true;
   //     cout << "should send users" <<endl;
        //client.send(ofToString(jsonPeople[u]));
        //cout << ofToString(jsonPeople[u]);

    //}

    if(currentInput==0){
        for (int i = 0; i < PERSON_NUM; i++){
            persons[i]->frequency = 0;
            persons[i]->diameter=0;
            persons[i]->height=0;
            persons[i]->length=0;
            persons[i]->openClosed=0;
            persons[i]->x=0;
            persons[i]->y=0;
        }
    }

    // Send stuff to the PD patches

    for (int i = 0; i < PERSON_NUM; i++){

      //  persons[i]->x+=ofRandom(-0.2,0.2);//THISSHIT
      //  persons[i]->y+=ofRandom(-0.2,0.2);//THISSHIT

        pd.sendFloat(patches[i].dollarZeroStr()+"-frequency",persons[i]->frequency);
        pd.sendFloat(patches[i].dollarZeroStr()+"-openClosed",persons[i]->openClosed);
        pd.sendFloat(patches[i].dollarZeroStr()+"-height",persons[i]->height-persons[i]->length);
        pd.sendFloat(patches[i].dollarZeroStr()+"-diameter",persons[i]->diameter);
        // vbap
        // OF screen bottom-left is top-left for the vbap speaker placement
        pd.sendFloat(patches[i].dollarZeroStr()+"-y",ofMap(persons[i]->x,0,ofGetWidth(),1,0));
        pd.sendFloat(patches[i].dollarZeroStr()+"-x",ofMap(persons[i]->y,0,ofGetHeight(),1,0));

        persons[i]->pX = persons[i]->x;
        persons[i]->pY = persons[i]->y;
    }

    // mouse patch
    pd.sendFloat(mousePatch.dollarZeroStr()+"-frequency",mPerson->frequency);
    pd.sendFloat(mousePatch.dollarZeroStr()+"-openClosed",mPerson->openClosed);
    pd.sendFloat(mousePatch.dollarZeroStr()+"-height",mPerson->height-mPerson->length);
    pd.sendFloat(mousePatch.dollarZeroStr()+"-diameter",mPerson->diameter);
    // vbap
    // OF screen bottom-left is top-left for the vbap speaker placement
    pd.sendFloat(mousePatch.dollarZeroStr()+"-y",ofMap(mPerson->x,0,ofGetWidth(),1,0));
    pd.sendFloat(mousePatch.dollarZeroStr()+"-x",ofMap(mPerson->y,0,ofGetHeight(),1,0));
    pd.sendFloat(mousePatch.dollarZeroStr()+"-selectOutput",outputState);

    /*
    // WEBSOCKET STUFF
    if(mPerson->pX != mPerson->x || mPerson->pY != mPerson->y){
        jsonOut["channel"] = "11";
        jsonOut["timestamp"] = ofToString(timeStamp);
        jsonOut["x"] = ofToString(ofMap(mPerson->x,0,ofGetWidth(),0,1));
        jsonOut["y"] = ofToString(ofMap(mPerson->y,0,ofGetHeight(),0,1));
        jsonOut["num"] = ofToString(mPerson->pipeID);
        jsonOut["frequency"] = ofToString(mPerson->frequency);
        jsonOut["closed"] = ofToString(mPerson->openClosed);
        jsonOut["diameter"] = ofToString(mPerson->diameter);
        jsonOut["height"] = ofToString(mPerson->height-mPerson->length);

        if (client.isConnected() && isWritable) {
            //client.send(ofToString(jsonOut));
            //shouldSend = true;
            //cout << "should send mouse" <<endl;

        }
        //cout << ofToString(jsonOut);
    }
    */

    mPerson->pX = mPerson->x;
    mPerson->pY = mPerson->y;
    /*
    // this is not doing anything at the moment
    for (int i = 0; i < TUBE_NUM; i++){
        allPipes[i]->update();
    }
    */
}

//--------------------------------------------------------------
void AppCore::draw() {
    if(!grafics){
        ofBackground(140);
        bothKinects.draw(ofGetWidth()-bothKinects.width/4-10,10,bothKinects.width/4,bothKinects.height/4);

        contourFinder.draw(0, 0, ofGetWidth(), ofGetHeight());
        for (int i = 0; i < TUBE_NUM; i++){
            allPipes[i]->draw();
        }
        string mText = ofToString(mPerson->pipeID) + "/f:" + ofToString(mPerson->frequency) + "/d:" + ofToString(mPerson->diameter) + "/h:" + ofToString(mPerson->height - mPerson->length);
        ofDrawBitmapStringHighlight(mText, ofGetAppPtr()->mouseX + 5, ofGetAppPtr()->mouseY);

        ofSetColor(0, 0, 0);
        ofDrawBitmapStringHighlight(message, 20,ofGetHeight()-40);
        if(outputState){
            ofDrawBitmapStringHighlight("stereo audio (press a to switch) ", 20, ofGetHeight()-20);
        }else{
            ofDrawBitmapStringHighlight("8-channel audio (press a to switch)", 20,ofGetHeight()-20);
        }

        for(int i=0; i<currentInput; i++){
            // draw center of blobs
            string pText = ofToString(i) + " " + ofToString(persons[i]->pipeID) + " " + ofToString(persons[i]->frequency);
            ofSetColor(255, 255, 0);
            ofFill();
            ofCircle(persons[i]->x, persons[i]->y, 5);
            ofDrawBitmapStringHighlight(pText, persons[i]->x+5, persons[i]->y-5);
            ofSetColor(255);
        }
    /*
        if (!client.isConnected()) {
            ofDrawBitmapStringHighlight("not connected (s to stop trying)" + ofToString(tryConnecting), 20, ofGetHeight()-60);
        }else{
            ofDrawBitmapStringHighlight("connected", 20, ofGetHeight()-60);
        }*/
    }
    else if(grafics){
        ofBackground(0);
        for (int i = 0; i < TUBE_NUM; i++){
            allPipes[i]->drawGrafik();
        }

        for(int i=0; i<currentInput; i++){
            if(persons[i]->x>0){
                ofSetColor(255,123,172);
                ofFill();
                ofCircle(persons[i]->x, persons[i]->y, 10);
            }

            if(persons[i]->frequency>0){
                ofRectangle rect = f.getStringBoundingBox(ofToString(persons[i]->frequency,2), 0, 0);
                ofSetColor(0);
                ofRect(persons[i]->x-rect.width-5, persons[i]->y-5,rect.width+10,rect.height+10);
                ofSetColor(255  );
                f.drawString(ofToString(persons[i]->frequency,2),persons[i]->x-rect.width, persons[i]->y+rect.height);
            }
        }

    }
    if(kinectDebug){
        kinect.drawDepth(10,10, 400, 300);
        kinect1.drawDepth(410,10, 400, 300);
    }
}

//--------------------------------------------------------------
void AppCore::exit() {

    //threadedObject.stopThread();
}

//--------------------------------------------------------------
void AppCore::playTone(int pitch) {
	pd << StartMessage() << "pitch" << pitch << FinishList("tone") << Bang("tone");
}

void AppCore::mouseMoved(int x, int y ){
    mPerson->x = x;
    mPerson->y = y;
}

//--------------------------------------------------------------
void AppCore::keyPressed (int key) {
    if(key=='a'){
        outputState = !outputState;
    }else if(key=='s'){
        tryConnecting = !tryConnecting;
    }else if(key=='g'){
        grafics = !grafics;
        fullScreen = !fullScreen;
        ofSetFullscreen(fullScreen);
    }else if(key=='t'){
        ofxOscMessage oscMessage;
        oscMessage.setAddress("/messages");
        oscMessage.addIntArg(0);
        oscMessage.addStringArg(ofToString(timeStamp));             // timestamp
        oscMessage.addFloatArg(0.0);                                // x
        oscMessage.addFloatArg(0.0);                                // y
        oscMessage.addFloatArg(0);                                  // tubeID
        oscMessage.addFloatArg(0.0);                                // frequency
        oscMessage.addFloatArg(0);
        sender.sendMessage(oscMessage);
        oscMessage.clear();
    }else if(key=='k'){
        kinectDebug = !kinectDebug;
    }
}

//--------------------------------------------------------------
void AppCore::audioReceived(float * input, int bufferSize, int nChannels) {
	pd.audioIn(input, bufferSize, nChannels);
}

//--------------------------------------------------------------
void AppCore::audioRequested(float * output, int bufferSize, int nChannels) {
	pd.audioOut(output, bufferSize, nChannels);
}

//--------------------------------------------------------------
void AppCore::print(const std::string& message) {
	cout << message << endl;
}

//--------------------------------------------------------------
void AppCore::receiveBang(const std::string& dest) {
	cout << "OF: bang " << dest << endl;
}

void AppCore::receiveFloat(const std::string& dest, float value) {
	cout << "OF: float " << dest << ": " << value << endl;
}

void AppCore::receiveSymbol(const std::string& dest, const std::string& symbol) {
	cout << "OF: symbol " << dest << ": " << symbol << endl;
}

void AppCore::receiveList(const std::string& dest, const List& list) {
	cout << "OF: list " << dest << ": ";

	// step through the list
	for(int i = 0; i < list.len(); ++i) {
		if(list.isFloat(i))
			cout << list.getFloat(i) << " ";
		else if(list.isSymbol(i))
			cout << list.getSymbol(i) << " ";
	}

	// you can also use the built in toString function or simply stream it out
	// cout << list.toString();
	// cout << list;

	// print an OSC-style type string
	cout << list.types() << endl;
}

void AppCore::receiveMessage(const std::string& dest, const std::string& msg, const List& list) {
	cout << "OF: message " << dest << ": " << msg << " " << list.toString() << list.types() << endl;
}

//--------------------------------------------------------------
void AppCore::receiveNoteOn(const int channel, const int pitch, const int velocity) {
	cout << "OF MIDI: note on: " << channel << " " << pitch << " " << velocity << endl;
}

void AppCore::receiveControlChange(const int channel, const int controller, const int value) {
	cout << "OF MIDI: control change: " << channel << " " << controller << " " << value << endl;
}

// note: pgm nums are 1-128 to match pd
void AppCore::receiveProgramChange(const int channel, const int value) {
	cout << "OF MIDI: program change: " << channel << " " << value << endl;
}

void AppCore::receivePitchBend(const int channel, const int value) {
	cout << "OF MIDI: pitch bend: " << channel << " " << value << endl;
}

void AppCore::receiveAftertouch(const int channel, const int value) {
	cout << "OF MIDI: aftertouch: " << channel << " " << value << endl;
}

void AppCore::receivePolyAftertouch(const int channel, const int pitch, const int value) {
	cout << "OF MIDI: poly aftertouch: " << channel << " " << pitch << " " << value << endl;
}

// note: pd adds +2 to the port num, so sending to port 3 in pd to [midiout],
//       shows up at port 1 in ofxPd
void AppCore::receiveMidiByte(const int port, const int byte) {
	cout << "OF MIDI: midi byte: " << port << " " << byte << endl;
}

//--------------------------------------------------------------
void AppCore::processEvents() {

	cout << "Number of waiting messages: " << pd.numMessages() << endl;

	while(pd.numMessages() > 0) {
		Message& msg = pd.nextMessage();

		switch(msg.type) {

		case pd::PRINT:
			cout << "OF: " << msg.symbol << endl;
			break;

			// events
		case pd::BANG:
			cout << "OF: bang " << msg.dest << endl;
			break;
		case pd::FLOAT:
			cout << "OF: float " << msg.dest << ": " << msg.num << endl;
			break;
		case pd::SYMBOL:
			cout << "OF: symbol " << msg.dest << ": " << msg.symbol << endl;
			break;
		case pd::LIST:
			cout << "OF: list " << msg.list << msg.list.types() << endl;
			break;
		case pd::MESSAGE:
			cout << "OF: message " << msg.dest << ": " << msg.symbol << " "
			     << msg.list << msg.list.types() << endl;
			break;

			// midi
		case pd::NOTE_ON:
			cout << "OF MIDI: note on: " << msg.channel << " "
			     << msg.pitch << " " << msg.velocity << endl;
			break;
		case pd::CONTROL_CHANGE:
			cout << "OF MIDI: control change: " << msg.channel
			     << " " << msg.controller << " " << msg.value << endl;
			break;
		case pd::PROGRAM_CHANGE:
			cout << "OF MIDI: program change: " << msg.channel << " "
			     << msg.value << endl;
			break;
		case pd::PITCH_BEND:
			cout << "OF MIDI: pitch bend: " << msg.channel << " "
			     << msg.value << endl;
			break;
		case pd::AFTERTOUCH:
			cout << "OF MIDI: aftertouch: " << msg.channel << " "
			     << msg.value << endl;
			break;
		case pd::POLY_AFTERTOUCH:
			cout << "OF MIDI: poly aftertouch: " << msg.channel << " "
			     << msg.pitch << " " << msg.value << endl;
			break;
		case pd::BYTE:
			cout << "OF MIDI: midi byte: " << msg.port << " 0x"
			     << hex << (int) msg.byte << dec << endl;
			break;

		case pd::NONE:
			cout << "OF: NONE ... empty message" << endl;
			break;
		}
	}
}
/*
//--------------------------------------------------------------
void AppCore::onConnect( ofxLibwebsockets::Event& args ){
    cout<<"on connected"<<endl;
}

//--------------------------------------------------------------
void AppCore::onOpen( ofxLibwebsockets::Event& args ){
    cout<<"on open"<<endl;
    startChecking=true;
}

//--------------------------------------------------------------
void AppCore::onClose( ofxLibwebsockets::Event& args ){
    cout<<"on close"<<endl;
    startChecking=false;

}

//--------------------------------------------------------------
void AppCore::onError( ofxLibwebsockets::Event& args ){
    cout<<"on error "<<endl;
}

//--------------------------------------------------------------
void AppCore::onIdle( ofxLibwebsockets::Event& args ){
    //cout<<"on idle"<<endl;
    isWritable=true;
    if(shouldSend){
        for (int u = 0; u<currentInput; u++) {
            //client.send(ofToString(jsonPeople[u]));
        }
        //client.send(ofToString(jsonOut));
        cout << "sending something" <<endl;
        isWritable=false;
        shouldSend=false;
    }
}

//--------------------------------------------------------------
void AppCore::onMessage( ofxLibwebsockets::Event& args ){
    cout<<"got message "<<args.message<<endl;
}

//--------------------------------------------------------------
void AppCore::onBroadcast( ofxLibwebsockets::Event& args ){
    cout<<"got broadcast "<<args.message<<endl;
}
 */


New Monster High Hairstyles games ahead, ladies! Are you excited to discover who's going to be the next daring ghoul coming for a total transformation at your famous hair salon? Well, she's a singer like Catty Noir so for sure she's looking for new, extravagant look to adorn her sophisticated stage outfits with and she's also the daughter of Circe, the goddess of magic so there is always a royal touch in her final look! Miss Casta Fierce is definitely the ultimate beauty mark at the famous Monster High and with your help she will surely become the most popular ghoul, too! Ready to show off what you've got? Then feel free to step in getting the 'Casta Fierce Hairstyles' game started and first of all, wash her hair with the right type on cleanser to prepare it for the styling part. Use the professional hairdryer to obtain extra volume for it and once your done, use the scissors to cut her blunt tips. Check out the palette of colors we've prepared at your disposal in this brand-new Monster High Hair Game, select your favorite shades and dye Casta's hair-locks as colorful as possible and then find a really cute hair accessory to beautiful adorn her brand-new updo with. Some of the tools you might need for the hairstyling process are blocked and in order to unlock them, you ladies will have to play two super fun mini-games of Casta's choice! Deal with her make-up look as well, choose her a super cute outfit for today and then, for a complete stage look, pick out the right sparkling jewelries, too! Enjoy playing the 'Casta Fierce Hairstyles' game!


If you've been visiting my blog for a while, you know that I absolutely love photography! When I'm out and about and having fun, I can never resist saving a bit of the experience through taking a photo.
Recently, I found out about the Urban Cottage Industries #LetThereBeLight photography competition. It's a chance for bloggers to share some of their fave photos that they've taken. To enter, bloggers must share two photos -- one taken in natural light and the other taken in artificial light. I've been going through my collection of photos over the last several days as I've been deciding which ones to enter. I've finally decided to enter these two that I took in Paris a while back.
This is my entry for natural light. The light is the most natural light of all...the sun. The sun was flooding into the Louvre as I took this picture.
And this is my artificial light entry. This was taken inside Notre-Dame Cathedral. There were candles everywhere and they created such a beautiful ambience inside that beautiful space.
I love to read a little bit also before I get out of bed. It always gets me in the right mood to start my day.
In general, our mental health bares a pretty complicated system of how it works. It requires a certain amount of satisfaction and purpose in order for us to keep going, but achieving that can sometimes be quite difficult. Some people find it hard to figure out what gives them satisfaction, and others find it difficult to find their purpose in life. If you can't find it, it can often lead to various issues which make life difficult. If you get to that stage, don't let it render you helpless! Everyone has a purpose in life; you just need to find out what you can do to keep yourself going! Many different factors tend to weigh on the mind, whether it's our physical appearance, our position in life, or even our financial situation. All of those things can affect you, along with many more, so you need to find ways to counter them!
If you're finding it hard to get by in your day to day life, then it's obvious that it's time you started to make a change! Whether you take big steps or small steps, the road to improvement is the same! If your first concern is physical appearance, you're going to want to start out on exercise and dieting. It's important at this stage that you find the right balance to get you going, as overestimating yourself will only make it more difficult. Doing exercise and eating healthy foods don't just help you lose weight, but the vitamins and physical strain can also have a positive effect on your mind alone. You're killing two birds with one stone!
If your social situation is what's affecting you the most, you might want to look into joining new groups or activities so you can meet new people. Not only that, but it can provide you with great opportunities that you didn't even consider before. Imagine taking part in global adventure challenges charity fundraising events, you have so much opportunity to meet great people, while at the same time going on an all-new adventure. With that in mind, you're also helping to raise money for charity; which you'll find is a great feeling. It can be rewarding to know that your efforts are helping those who have nothing, or are helpless without the money. So you can gain a new social standing, and you start to feel better about yourself!
Many people see shame in getting help with their issues, but there's no reason to! Everyone has problems of their own buried deep inside their minds, but it's not something you should repress and let shape you. The healthiest option is to see someone about these so you can get the help you need in resolving or accepting them. There are many different treatments out there for all kinds of problems, whether it's therapy, medicine or surgery; you can find the help you need. Not just that, but it's all confidential if you're worried about other people finding out about it. Mental issues are a sensitive topic, and it's understandable that you don't want others to be in the know.
If you find that you're struggling with your mental health, check out thrivetalk.com to connect with someone who can help.
There is something about reading that is so compelling that you can't stop and when a book ends you have a small period of sadness that you couldn't continue on with the characters. As human beings, we are all obsessed by stories whether they come in book form or as films or radio shows. We love to know more about each other and even invent characters to explore issues and topics too.
As social animals, language is what drives us together, keeps us happy and allows us greater access to understanding the world as we see it but also how other people see it. In short, language is a true joy that should not be underestimated.
If you have ever spent time alone then you will understand how detrimental it can be to your health. Humans are social creatures and even if you think that you like being a hermit, after a day or two in solitary confinement, you will almost certainly be going a bit stir crazy.
In fact, communication is so important that you shouldn't limit your chatter to friends and acquaintances. Talking to strangers is a good way to boost your mood and even seems to improve our social interactions with loved ones as well. This is quite surprising given that modern society can feel so cold, especially in large cities like London.
But, try chatting to the person next to you on the bus and see what happens. Even in London, you can almost guarantee that they will respond.
Learning to speak comes naturally to the vast majority of children. The brain seems to be programmed and ready to accept the languages it is exposed to from a young age and children are definitely more adept at learning new languages than adults. Though we tend to teach languages by memory and rote, it is clear that children learn through mimicry and experimentation, learning the rules naturally rather than uniformly. Understanding this is the foundation of learning a new language and courses such as the Effortless English Club utilize this method over others.
Interestingly, people who have multiple languages tend to think differently in each language as the tone lends itself to a particular frame of mind. This is intriguing because polyglots also seem to use these different languages to hop from idea to idea, choosing the language that fits, rather than the one we have. It rather suggests that though language is what we have to arrange our thoughts, it is also affecting what those thoughts are in the first place.
So what do we do with all this skill? We tell stories and we consume stories all the time.
A big part of the joy of storytelling and reading is being able to vicariously experience something completely different to what you know and understand about the world. It gives you the ability to empathise with someone you have never met and probably will never meet and the sensation of forging a connection between the two of you.
I love trees in all seasons. The trees in winter especially intrigue me though. They are mysterious and beautiful.
I saw the shape of a heart in the sunlight through the trees this morning.


text:
Bury Free Press readers' views
The pandemic, a controversial leaflet and your generosity are among this week's topics.
SCHOOLS SHOULD STAY CLOSED TO PROTECT STAFF
This country has now had over 70,000 Covid virus-related deaths. The health service is under great strain, and this new Covid strain is rapidly rising, especially in the East of England.
I find the imminent re-opening of schools and collegesextremely foolhardy. This government seems to have little concern about the well-being of all staff members who are employed in any form of educational work-place.These work places have large teams of support staff such as learning support, catering, caretaking, technical, administration as well as outside contractors and bus and taxi drivers, who are all at risk, not just the teaching staff. Without these large cohorts of support staff, schools, colleges and universities could not operate.
Educational campuses are large sites, where many people gather and move about mainly in enclosed areas.Even the best Covid-related health and safety measures and procedures unfortunately won't prevent some infections occuring. All this government keeps telling us is that it is imperitive for the well-being of young students to keep schools and colleges open. However, the staff well-being during this current health emergency is rarely addressed. My own parents had six years of a very disrupted education during the Second World War, but both eventually had long and fullfilling professional careers.
I can't help feeling that this blundering government is only thinking about the economy and is using the educational services and staff as surrogate 'minders' of our young people to keep parents at work to help shore 'up' this country's weak and faltering economic situation.
Sadly, and inevitably, there will be educational 'casualties' amongs students, missing out or not being able to attain their own learning expectations, but this happens in normal times, as well as during national or international emergencies.
The Government had a real opportunity to close all schools and colleges earlier in the weeks preceding the Christmas break, which may have assisted in slowing down the spread of the new and more virulent strain of the Covid virus.
Unfortunately, it has been too slow and dithering, yet again in taking and using this chance for direct and urgent action.
The re-opening of all places of education should now be delayed to protect all the staff and students as well as the wider community to help prevent this new Covid virus from gaining an even stronger and potentially devastating claim on all of our lives and families.
Simon Whitnall, Bury St Edmunds
LEAFLET BELONGS IN THE BIN
Having received a 'Patriotic Alternative' flier through the letterbox, the attraction of the headline 'The Government is Lying to you' had a ring of truth to it but after reading the leaflet and looking at the website of the organisation, all that can be gleaned is that someone is peddling the tired old rhetoric of looking for scapegoats for the ills of society without considering their own responsibilities for themselves or to others.
Hopefully, nobody is taken in by this nonsense and ditches both the leaflets and the ideas in the junk bin where they belong.
Malcolm Searle, Bury St Edmunds
WE CONDEMN RACIST PROPAGANDA
We, the Bury St Edmunds Town Councillors were appalled to learn that racist propaganda has been distributed through residents' letter boxes on Sunday, December 20, 2020.
Apart from any considerations about the 'season of goodwill', the town councillors believe that equality and justice are – and must be – the mainstays of British society and there is no place for racism and fearmongering about the dangers of 'otherness' in our town.
Those who seek to incite people to view others with suspicion, fear or hatred have learnt nothing either from history or the current pandemic which has seen the collaboration of neighbours, strangers, families and society as a whole on an unprecedented scale.
Bury St Edmund's Town Councillors want to make it clear that racist, homophobic, anti-Semitic and Islamophobic propaganda will not be tolerated in our town at any level and will do everything they can to root out and condemn such actions.
Cllr Nicola Iannelli-Popham; Cllr Diane Hind; Cllr Cliff Waterman; Cllr Jo Rayner; Cllr Ann Williamson; Cllr Darren Turner; Cllr Robert Everitt; Cllr Katie Parker; Cllr Cyrille Bouché; Cllr Patrick Chung; Cllr Richard Rout; Mayor Cllr Peter Thompson; Cllr Donna Higgins ; Cllr John Augustine; Cllr Kevin Hind; Cllr Tony Whittingham
Gordon Halewood would like to thank everyone who donated to the Bridge for Heroes Military Charity on December 16 in Bury St Edmunds.
The total raised was a wonderful £1,223.50. There were no expenses for the day. This money will go towards the provision of holistic support to serving members and Veterans of all our Armed Forces and their families delivered by The Bridge for Heroes from our centre in King's Lynn
Gordon Halewood, Vice-chairman of trustees, The Bridge for Heroes
WHERE DID THIS MAN GET SUCH STRENGTH?
Listening to a recent radio interview withTerry Waite certainly opened my eyes to the privation and torture on an unimaginable scale suffered by the man whose sole object of visiting Lebanon in the first place was to secure the release of imprisoned journalist John McCarthy.
We (myself included) are full of what we can't do, where we can't go, and who we can't see for but a few days, perhaps even months. Yet this man suffered an interminable five long years, isolated, shackled, in total darkness and almost starved to death all of this time under the constant threat of execution.
Where did this incredible man get such strength to exit such an ordeal keeping his sanity and seemingly without any bitterness? God knows!
Brian Davies, Bury St Edmunds
SOLAR FARM PLAN IS A POLITICAL TOOL
The future of Sunnica solar farm is going to be used as a political tool for control. Away from the dogged and admired efforts of the village communities opposing this monstrous development there is a political agenda being played out.
Detach yourself for one moment from the campaign Say No To Sunnica and consider this situation.
Solar will be a contributor to the government's proposed going green target.
The government needs a majority control of its councils to implement its policies. We have county elections in May.
A Conservative Sir Lancelot will appear wanting the villagers' votes offering his full support.
A delay of any decision from the Secretary of State until after the May elections would unfold. Village votes secured, crusade complete and off rides Sir Lancelot. June comes and the solar farm is given the go ahead.
The fact that so many of these solar farm developments have already been given government approval suggests the current mindset of the Secretary of State.
As a district councillor I see the political wheels in action on many subjects working in this manner. This is why I stood as an independent because it should always be about the people not about a party politics or policy.
Please don't think for one minute that the fight does not have my full and active support because it does. There is every reason to keep increasing the pressure and fighting to protect your village life. Just be aware that this Sunnica Solar project will also be used for individual political gain.
Cllr Andy Neal, Mildenhall
PEOPLE ARE RESIGNED TO HAVING NO DENTIST
I was interested to read your article about the lack of NHS dental care in Bury St Edmunds (Bury Free Press, December 25).
I moved to Bury two years ago from London, and had assumed that there would be an equivalent NHS dental service here. How wrong could I be? People I asked about this appeared to be resigned to the fact that their dental treatment would need to be private as there was nobody offering NHS services in Bury, and certainly new residents had no chance of getting on an NHS list.
However, private is not an option for many, and nor is travelling across the county and beyond for NHS services, especially if, like me, you do not have a car.
It doesn't make much sense to wait until dental problems escalate to an emergency before anything can be done, when a regular check-up could identify most issues before that.
I've been a bit surprised to find that your newspaper has not been campaigning about this, as it should be especially newsworthy given that the Secretary of State for Health is the MP for West Suffolk and our MP Jo Churchill is a minister in the same department. Both regularly proclaim their support and admiration for the NHS, but this does not seem to extend to dental care.
Perhaps some pressure from the local press could have some influence.
Cathy Bennett, via email
Read more: News from Bury St Edmunds


Based in Cambridge Street, Aylesbury, Tungsten Manufacturing is a manufacturer.
Tungsten Manufacturing is in Cambridge Street Aylesbury. You can view a list of neighbouring businesses by going to the Cambridge Street page.
Note: the pin is positioned at the postcode centre, and may not correspond with the precise location of 22-28 Cambridge Street.


Gavin Bryars studied philosophy at Sheffield University and became a professional jazz bassist and pioneer of free improvisation working especially with Derek Bailey and Tony Oxley. In the late 1960s he worked with John Cage: this influenced early works such as the indeterminately scored The Sinking of the Titanic of 1969 and the 1971 work Jesus' Blood Never Failed Me Yet. Since then he has written five operas and music for many ballets as well as a great deal of vocal music. He performs with his own ensemble and his work is widely recorded - on his own label GB Records and elsewhere. He is a Transcendent Satrap and Regent of the Collège de 'Pataphysique.


text:
Jovan Kljajic (Podgorica, Montenegro, 11 de septiembre de 2001) es un jugador de baloncesto profesional montenegrino. Mide 1,96 metros y juega en la posición de escolta, actualmente pertenece a la plantilla del Krepšinio klubas Prienai de la Lietuvos Krepšinio Lyga, cedido por el Herbalife Gran Canaria. Es internacional con la Selección de baloncesto de Montenegro.

Carrera deportiva

Formado en las categorías inferiores del KK Buducnost, en 2016 ingresó en la cantera del CB Gran Canaria para formar parte del equipo de Liga EBA.

El 7 de diciembre de 2017, se convierte en el jugador más joven en debutar con el Herbalife Gran Canaria a la edad de 16 años y 98 días, en un encuentro de Eurocup frente al Tofas Bursa.

Durante las temporadas siguientes formaría parte del CB Gran Canaria Claret, realizando buenos promedios anotadores. En 2019, sería vencedor del Torneo Junior Ciudad de Hospitalet.

Durante la temporada 2019-20, en las filas del CB Gran Canaria Claret en Liga EBA, promediando casi 15 de valoración en los últimos 3 encuentros antes de la suspensión de la liga por la pandemia.

El 20 de octubre de 2019, debutó con el Herbalife Gran Canaria en la Liga Endesa, en un encuentro de la jornada 5 frente al FC Barcelona en el que jugó un minuto y cuarenta segundos.

En la temporada 2020-21, formaría parte de la dinámica del primer equipo de Liga Endesa con el jugaría los primeros encuentros de liga. Durante el inicio de la temporada 2020-21, Jovan jugaría tanto con el primer equipo como con el filial en LEB Plata, dónde promedia 13 puntos, 2 rebotes y 3 asistencias en 2 encuentros disputados.

El 20 de octubre de 2020, el jugador es renovado por 4 temporadas por el Herbalife Gran Canaria y lo cede hasta el final de temporada al Bilbao Basket de la Liga Endesa.

El 20 de agosto de 2021, firma por el Krepšinio klubas Prienai de la Lietuvos Krepšinio Lyga.

Internacional

Sería un fijo es las convocatorias de las categorías inferiores de la Selección de baloncesto de Montenegro con el que participaría en el Mundial sub 17 de 2018. Además, en 2020 se convierte en internacional absoluto por la selección de su país.

Referencias

Enlaces externos
Ficha del jugador en FEB
Ficha del jugador en ACB
Perfin en FIBA

Baloncestistas de Montenegro
Baloncestistas de la selección de Montenegro
Baloncestistas de la Liga LEB
Baloncestistas de la Liga ACB
Baloncestistas del Club Baloncesto Gran Canaria
Baloncestistas del Club Basket Bilbao Berri
Baloncestistas del KK Prienai

redpajama_set_name: RedPajamaWikipedia


text:
Q: android: error parsing package I am downloading an app in Android from a server and saving it to the internal memory:
URLConnection connection = url.openConnection();
connection.connect();
// download the file
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(getFilesDir() + "/filename");
byte data[] = new byte[1024];
while ((count = input.read(data)) != -1) {
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();

When the download is completed, a notification appears. When the notification is clicked, the app should be installed.
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(new File(getFilesDir()+ "/filename")),"application/vnd.android.package-archive");
PendingIntent act = PendingIntent.getActivity(MainActivity._activity,0, i, 0);
notification.setLatestEventInfo("TEXT", "TEXT, act);

But when I click the notification, a dialog box saying: Error parsing package appears. Why?

A: Another application with the same package name might be already installed in the device. So you are getting the error.