Sometimes I think crazy thoughts.
-Will the universe implode if temperatures reach 0 Kelvin?
-How would civilization be different if we only had four fingers per hand and foot?
-Could we all just be toys in the toybox of some celestial kid?
Over the years, my crazy-deep thoughts have turned toward the culinary. And more recently they have focused on the pinnacle (at least in my book) of creative dessert forms: the ice cream sandwich.
I do have a soft spot in my heart for those vanilla-soft-serve-between-soft-chocolate-cookie creations. They're reliable and the eater has no expectations at all—except perhaps to have chocolate goo between their front teeth for at least 10 minutes afterward. But when it comes to a real ice cream sandwich created by hand, the vanilla and chocolate combo becomes passe.
And dare I say it, so does the chocolate chip cookie and vanilla combo. It's a good starting point. But there's oh-so many possibilities. Start by staring at the Ben & Jerry's selections.
Credit for this Ginger Ice Cream Sandwich's inspiration comes from a friend – let's call her Ginger – who is the spice's biggest fan. The Ginger Ice Cream is courtesy of the local Jamaica Plain ice creamists at Batch. And yes, there are bits of crystallized ginger scattered about its creaminess. A generous 1/4 cup—more, perhaps—is sandwiched between two massive Ginger-Molasses Cookies, whose recipe comes from Joanne Chang's Flour cookbook. And here's a key step to keep in mind for anyone constructing an ice cream sandwich: Let it firm up in the freezer for about a day so the ice cream doesn't escape when you bite into it.
Oh, yeah. It's good. And there's one in my freezer right now.
Other crazy ice cream sammy combos are on my to-bake list. And if Ginger has any say in the matter, each sammy will have a corresponding cupcake. One person's crazy is another's brilliance.
I have a sister. Two, actually. The sister in question, Karen, called me last Monday.
And by close, she means 4 hours.
Jennifer and I have lived here for eight years now. This would be the first time Karen and Chris came for a visit.
This would be the first time that any of my five siblings visited me in my adult life. And I'm 42.
I know this isn't the norm. I know there are siblings that visit each other all the time, or at least as often as distance allows. The distance in my family is pretty expansive—and I'm not talking the distance you measure by miles. We're not a close family, and to visit one another is just not and has never been expected.
That little girl is me. And the bride is my sister. I'm 3, and she's a few days away from 20. When I think of my family, I think of this photo: Me, with a bag of rice, the others doing what they do, separately. In the distance.
My sister called and invited herself to sit on that step with me, a step I've been very comfortable occupying alone for 40 years. I've lived all sorts of lives there, none of it she knows, or any of the others really know. Sharing that spot on the steps seems so foreign.
Two days to prepare for the visit, but I really had much more time than that, didn't I?
Well, I um … I've been around.
What? No! No no no. I've just been … well, remember when I said I wanted to read more? I've been reading. Every morning for an hour. And that was usually the time I hung around here.
I am. Absolutely. Here again. With some changes in the works over the next month or so. I know … I know, I teased y'all about that before. "Major stuff in the works!" But this time the ball is rolling – actually rolling – and there will definitely be bigger and better Dainty stuff to interest everyone in the coming weeks.
Meanwhile, let's talk homemade oreo cookies. It could be the most awesome childhood-memory-inducing cookie ever. That's to Joanne Chang at Flour Bakery in Boston … literally at the end of my block … adults now have a decadent deep-chocolately lustful version to dream about. Seriously good stuff.
Now, with food blogging, printed cookbook recipes are shared all the time. And I really don't like publicly posting recipes from bakeries in my neighborhood or who I kinda/sorta have a connection with. They gotta make money, right? How can they do that if their recipes are out in Googlespace?
BUT … I've made Flour's version of oreos—and with several different additions—for several events now and I keep getting requests for the recipe. I owe it to my peeps to share. So, Joanne, please do forgive me for what I'm about to reveal.
A note before I get started: I make a Christmas version of these with 1/2 tsp of peppermint extract in the cream filling. And for my most recent batch—whose cream filling was made in an ice bucket in a hotel room in Louisville (no kidding)—I omitted the milk and added a full shot of bourbon. And believe me, the chocolate pairs really well with bourbon.
A shot of bourbon in the cream filling pairs really well with the chocolate.
So, with full credit going to Joanne and her sheer brilliant baking skills, here's the recipe.
1. In the bowl of a stand mixer, blend butter and sugar with the whisk attachment. Add in the vanilla and chocolate, then the egg, and mix until thoroughly combined.
2. In a different bowl, stir together the flour, cocoa powder, salt and baking soda. With the stand mixer on slow, carefully add the mixed dry ingredients. Turn up to low-medium for a bit until the dry and wet ingredients are well combined. Let the mixture sit at room temp for about an hour so it firms.
3. This is the tricky part so pay attention. Where going to take this dough and make it into long logs. And from these logs you'll slice off individual rounds that'll bake up into the chocolate cookies. Got it?
First, let me say that Joanne makes these logs with a diameter of about 2.5 inches. That's a pretty big cookie—and a fine cookie size, actually. But when I bake these, I am typically taking them to a party or something, and I find that smaller bite-sized cookies are better suited for partytime. That said … once the dough is firm, I split the dough into three or four equal piles. Place one pile onto a half-sheet-sized piece of parchment paper or waxed paper. With your hands, shape it into a log of about 1 or 1.5 inches in diameter. Roll the paper around the log a bit and roll it along the counter to make it a bit smoother, trying to get the air bubbles out (you can see them through the paper). Repeat with the remaining piles of dough, and then place the rolled dough into the refrigerator for 2 hours. You might find it helpful to reroll the logs a few times during the 2 hours so keep that log shape.
4. Preheat the oven to 325 and position a rack smack-dab in the middle. Prepare a couple of half-sheet pans with parchment paper. Remove a log from the fridge and unwrap. You might want to trim off both ends of the log so they are flat. Then slice the log into 1/4-inch thick rounds. With a 1 or 1.5 inch log, you'll end up with about 30-35 slices. Place the slices onto the parchment paper about an inch apart. I can fit one whole log's worth of cookies onto one sheet.
5. Pop them in the oven. For Joanne's 2.5 inch cookies, they bake about 20-25 minutes. These smaller cookies will be done in 18 minutes. They'll just be firm to the touch. Remove from the oven and let cool for about 5 minutes, then put them onto cooling racks. Chocolate cookies: Done.
Slightly overfill the oreo so the filling oozes out a bit, then roll in crushed candy canes. People won't stop calling you Martha.
This is awesome and easy to do while your cookies are hangin' out and cooling.
1. Remember that stand mixer? Wash out the bowl, give it a dry, attach the paddle to the mixer and then beat the butter on low for about 30 seconds. You want it to be smooth.
2. Carefully add the confectioner's sugar (you don't want to make a cloud of it!) and the vanilla and beat until it's perfectly smooth. Add the milk and salt and beat yet again until smooth. At some point the concoction will go from a butter yellow color to a whitish, and it'll be stiff. You're done!
Note about adding bourbon: I made two batches with bourbon. The first I included the milk and the filling was too soft. The second batch sans milk was much better. You need about a shot's worth of liquor in order for the flavor to be apparent.
3. Now the fun part: filling. What I do is pair lay out the cookies – top side down – and match them up in pairs, hopefully getting them partnered with someone about their same size. I then put the filling into a Ziploc bag, seal it up, and push the filling down into one corner, creating a makeshift piping bag. Cut the corner, and carefully pipe out however much filling you want – about 2 tsp should do for a small cookie – onto one cookie in the pair. Top with the other and there you have it—an actually homemade oreo cookie.
Use a great-quality chocolate chip, vanilla and other flavorings and these can be orgasmic. I've had nothing but raves. These are truly a spectacular cookie. Thanks, Joanne!
Given the realm of possibilities here, what flavorings would you add to make these cookies your own? Leave a comment and let Dainty know.
You are currently viewing the archives for February, 2012 at The Dainty Dot.


A sketch of what the development at the Barn Road car park could look like. Pic: Alumno Group.
The swelling student population of Norwich city centre could be set to expand by a further 300, if plans for a high-rise development on top of a council-owned car park gets the go-ahead.
The Barn Road car park, where accommodation for 300 students could be built. Pic: Archant.
Plans are to be lodged for the flats at the Barn Road car park, behind the former Toys R Us store at the bottom of Grapes Hill.
But it would not signal the end of the 147-space pay and display Norwich City Council car park. The development, known as Mulberry Yard, would be built on top of a redesigned, covered car park, still run by City Hall.
The proposals have been put forward by Alumno Group. The London-based company is also behind the student housing for Norwich University of the Arts students built near Norwich bus station and the under-construction Pablo Fanque House for University of East Anglia students in All Saints Green.
Bosses at Alumno said the flats would make use of an "underutilised" city centre site and would help meet the need for student homes.
A view of the Barn Road car park, where accommodation for 300 students could be built, from the bottom of Grapes Hill. Pic: Archant.
David Campbell, managing director at Alumno, said: "This project will redevelop an important entry point to the city centre, re-provide and modernise the existing parking capacity, whilst at the same time providing state of the art modern accommodation for students studying in Norwich.
Alumno has organised a public exhibition to consult on the plans.
It will be held at the former Harp & Rose antiques shop at 2, Woolgate Court at St Benedicts Street from 1pm until 8pm on Tuesday.
Recent months has seen student flats in St Stephens Towers and St Crispin's House given the go-ahead by Norwich City Council.


text:
Home Land Land DCD getting ready to deliver Springbuck APCs to African client
DCD getting ready to deliver Springbuck APCs to African client
Written by Guy Martin -
A Springbuck HD armoured vehicle.
DCD Protected Mobility is getting ready for another delivery of Springbuck HD (Heavy Duty) armoured personnel carriers (APCs) to an African client in the first quarter of this year.
This comes after deploying Springbuck HD vehicles in West Africa in 2017. Meanwhile, DCD will soon start manufacturing a new order of Springbuck SD (Standard Duty) vehicles, which will be deployed in East Africa.
Some three years ago DCD expanded the Springbuck range to meet different customer requirements, and now offers the vehicle in Standard, Heavy Duty and Extra Duty versions. DCD Protected Mobility said the Springbuck ballistic and landmine protected vehicle was built with simplicity, comfort, protection and cost effectiveness in mind and was geared specifically towards the African market. It can be adapted to suit various applications including ambulance, command and control, cash-in-transit, riot control or tactical patrol and with the addition of turret-mounted weaponry, DCD said the vehicle can also be effectively used in combat. "Our vehicles are battle proven and successfully deployed in various combat areas," the company said.
The Springbuck SD is the Standard version, the HD is the Heavy Duty and XD is the Xtra Duty, with performance, payload and protection increasing with each model. The 4×4 SD has B6 ballistic protection and can withstand a TM57 landmine directly under the hull, or two under any wheel. The SD is the lightest in the series and weights 9 000 kg and has a 1 500 kg payload. It is powered by the MWM 6.10T 6.45 litre six cylinder turbocharged diesel delivering 194 hp.
The intermediate Springbuck HD is powered by an MWM 6.12TCA 7.2 litre six cylinder turbocharged diesel engine delivering 286 horsepower and giving a maximum speed of 110 km/h and range of 600 km. The 13 000 kg vehicle has a payload of 2 500 kg and B7 ballistic protection.
The Springbuck XD is the heaviest in the range and weighs 15 000 kg and has a payload of 3 500 kg. It carries two crew and eight personnel, who enter and egress via two side doors, a rear door and two roof hatches. With ballistic protection upgradeable to STANAG Level 3, the all-steel armoured V-shaped hull is certified against STANAG Level 4a under any wheel and 3b blast protection under the hull. A 6.7 litre Cummins turobdiesel delivers 360 hp and gives a top speed of 110 km/h and range of 600 km.
Optional equipment for the Springbuck XD range includes cabin and engine fire protection, an 18 000 lb electric winch, four wheel steering for navigating tight spaces, a public address system and smoke launchers. Two vehicles can be transported inside a C-130 Hercules aircraft or one vehicle in a six metre container.
DCD Protected Mobility also offers the Husky route clearance vehicle. The company has expanded its client base over the last few years to cover 19 countries on five continents. These include Congo-Brazzaville, Egypt, Saudi Arabia, Jordan and Burundi. These join established customers which include South Africa, France, Canada, Australia, Kenya, the United Kingdom, Uganda, Turkey, Spain, Iraq, South Sudan, Nigeria and Tanzania.
"We at DCD pride ourselves to be client orientated; our engineering and technical team work closely with the users to ensure their requirements are met," the company said. "At DCD we understand the African battle space and our focus is to support and partner with our clients, offering full assistance to make the products cost-effective with an affordable Life Cycle Cost. DCD products offers solutions to meet the threats of all situations from route clearance, military, police and security and border patrol. DCD has a product for each application."
Springbuck
R38 million allocated towards establishing Investigative Directorate
Zuma ducks and dives at Zondo Commission
Zuma tells Zondo Commission he never broke the law
Panther on prowl in Afghanistan
Zondi defends DoD UXO tender, procurement system

redpajama_set_name: RedPajamaCommonCrawl


There might be Something out there We're at the mercy of the "Upstaters"
We're at the mercy of the "Upstaters"
Upstate - Dying, specifically the act of walking out into the wastes to die - now used hyperbolically.
Aftaxu - The name adopted by the Upstaters.
Tight - A ritual when the upstaters/Aftaxu come to demand tribute, in the form of food, festivities and drugs.
Blue Skies - A bright and positive future.
Red Sand - Inevitable doom/Rebellion.
Shareholders - Traitors who's interests align with the corporate colonists.
Time is up to back their successful LARP in Zine form - My Jam but keep an eye on their twitter for where you can get the .pdf version!
"Certain things, they should stay the way they are. You ought to be able to stick them in one of those big glass cases and just leave them alone."
The platform of a space elevator houses the electronic brains that control the drones on the planet below. They are tasked with cleaning up the Earth for the eventual return of the humans.
HLN 3618N2-4 "Helen" (Iris Explosion) - The very proper administrator.
PCO-800 "Seev" (Patrick Cartelli) - The supply and aquisitions unit.
Atmospheric Oversight 35,73.11.B "Atmos" (Kelsey Hercs) - The air cleaning unit with a strong sense of purpose.
LSM-748 "Fleshwise" (Ken Breese) - Genetics and organics unit in charge of repopulating the fauna.
B33DL3 (John Holt) - The excavation and reclamation of subsurface ecology.
Backdrop: The Earth has been left uninhabitable and the humans left, leaving a team of robots to rejuvenate the planet and await the return of the humans.
Main Location: Laika Station, a platform at the top of a Space Elevator. It is rooted in continental Asia.
Indo - A vice where in you deliberately neglect maintenance so that repair requires extra effort.
Go check out Kelsey's play "Can't You Tell" encore showing on July 7th, 2018. We'll update our social media when we have a specific link and you can follow her directly for updates!
Iris will be with d20 Burlesque at GenCon 2018 this year!
This is a brief overview that lays out the rules summary of Dialect by Kathryn Hymes and Hakan Seyalioglu. Purchase a copy here at Thorny Games.
Recommended number of players: 3-5 players, Play time around 2-4 hours.
A Surface to play on.
Dialect is a GMless game where your will play an isolated community. You will grow a language based on your commonalities and that language will shift and eventually die along with the collapse of your isolated group.
"Maria: HEAD and HANDS need a mediator. THE MEDIATOR BETWEEN HEAD AND HANDS MUST BE THE HEART!
Worker #1: But where is our mediator, Maria - ?
Maria: Wait for him! He will surely come!
Worker #2: We will wait, Maria...! But not much longer - - !"


Historic Tours of Nashville | with a native Nashvillian as your guide.
I love Nashville. I was born here, raised here, went to college here and stayed put. History is my passion–ranging from the tales (true and otherwise) of local music business to the histories of Nashville, the Civil War, Tennessee, the United States and trains.
But I'm not some stuffy old curmudgeon. I love telling colorful stories and sliding in the occasional joke. Take a tour of my website, then contact me to schedule a tour. I would love to give you a fun and informative introduction to Nashville.
You may also enjoy Captain Jim's online history magazine/blog featuring nearly sixty articles covering a wide range of historical subjects.
I would like to set a private tour with my family on May 30th 2019. I am especially interested in a civil war perspective as well as whatever else you would offer.
Send me a text or call This at 615-406-8939 and we'll make arrangements. Pretty sure I'm open that day.


text:
package org.springframework.remoting.rmi;

import java.lang.reflect.InvocationTargetException;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.RMIClientSocketFactory;
import java.rmi.server.RMIServerSocketFactory;
import java.rmi.server.UnicastRemoteObject;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.remoting.support.RemoteInvocation;
import org.springframework.remoting.support.RemoteInvocationBasedExporter;

/**
 * RMI exporter that exposes the specified service as RMI object with the specified
 * name. Such services can be accessed via plain RMI or via RmiProxyFactoryBean.
 * Also supports exposing any non-RMI service via RMI invokers, to be accessed via
 * RmiClientInterceptor/RmiProxyFactoryBean's automatic detection of such invokers.
 *
 *
With an RMI invoker, RMI communication works on the RmiInvocationHandler
 * level, needing only one stub for any service. Service interfaces do not have to
 * extend java.rmi.Remote or throw RemoteException on all methods, but in and out
 * parameters have to be serializable.
 *
 *
The major advantage of RMI, compared to Hessian and Burlap, is serialization.
 * Effectively, any serializable Java object can be transported without hassle.
 * Hessian and Burlap have their own (de-)serialization mechanisms, but are
 * HTTP-based and thus much easier to setup than RMI. Alternatively, use Spring's
 * HTTP invoker to combine Java serialization with HTTP-based transport.
 *
 *
Note: RMI makes a best-effort attempt to obtain the fully qualified host name.
 * If one cannot be determined, it will fall back and use the IP address. Depending
 * on your network configuration, in some cases it will resolve the IP to the loopback
 * address. Ensuring that RMI will use the host name bound to the correct network
 * interface you should pass the java.rmi.server.hostname property to the
 * JVM that will export the registry and/or the service using the "-D" JVM argument.
 * For example: -Djava.rmi.server.hostname=myserver.com
 *
 * @author Juergen Hoeller
 * @since 13.05.2003
 * @see RmiClientInterceptor
 * @see RmiProxyFactoryBean
 * @see java.rmi.Remote
 * @see java.rmi.RemoteException
 * @see org.springframework.remoting.caucho.HessianServiceExporter
 * @see org.springframework.remoting.caucho.BurlapServiceExporter
 * @see org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
 */
public class RmiServiceExporter extends RemoteInvocationBasedExporter
		implements InitializingBean, DisposableBean {

	private String serviceName;

	private int servicePort = 0;  // anonymous port

	private int registryPort = Registry.REGISTRY_PORT;

	private RMIClientSocketFactory clientSocketFactory;

	private RMIServerSocketFactory serverSocketFactory;

	private Remote exportedObject;

	/**
	 * Set the name of the exported RMI service,
	 * i.e. rmi://localhost:port/NAME
	 */
	public void setServiceName(String serviceName) {
		this.serviceName = serviceName;
	}

	/**
	 * Set the port that the exported RMI service will use.
	 * Default is 0 (anonymous port).
	 */
	public void setServicePort(int servicePort) {
		this.servicePort = servicePort;
	}

	/**
	 * Set the port of the registry for the exported RMI service,
	 * i.e. rmi://localhost:PORT/name
	 * Default is Registry.REGISTRY_PORT (1099).
	 */
	public void setRegistryPort(int registryPort) {
		this.registryPort = registryPort;
	}

	/**
	 * Set a custom RMI client socket factory to use for exporting.
	 * If the given object also implement RMIServerSocketFactory,
	 * it will automatically be registered as server socket factory too.
	 * @see #setServerSocketFactory
	 * @see UnicastRemoteObject#exportObject(Remote, int, RMIClientSocketFactory, RMIServerSocketFactory)
	 */
	public void setClientSocketFactory(RMIClientSocketFactory clientSocketFactory) {
		this.clientSocketFactory = clientSocketFactory;
	}

	/**
	 * Set a custom RMI server socket factory to use for exporting.
	 * @see #setClientSocketFactory
	 */
	public void setServerSocketFactory(RMIServerSocketFactory serverSocketFactory) {
		this.serverSocketFactory = serverSocketFactory;
	}

	/**
	 * Register the service as RMI object.
	 * Creates an RMI registry on the specified port if none exists.
	 */
	public void afterPropertiesSet() throws RemoteException {
		checkService();
		if (this.serviceName == null) {
			throw new IllegalArgumentException("serviceName is required");
		}
		if (this.clientSocketFactory instanceof RMIServerSocketFactory) {
			this.serverSocketFactory = (RMIServerSocketFactory) this.clientSocketFactory;
		}
		if ((this.clientSocketFactory != null && this.serverSocketFactory == null) ||
				(this.clientSocketFactory == null && this.serverSocketFactory != null)) {
			throw new IllegalArgumentException("Both RMIClientSocketFactory and RMIServerSocketFactory or none required");
		}

		Registry registry = getRegistry(this.registryPort);
		this.exportedObject = getObjectToExport();

		// export remote object and bind it to registry
		if (logger.isInfoEnabled()) {
			logger.info("Binding RMI service '" + this.serviceName +
					"' to registry at port '" + this.registryPort + "'");
		}
		if (this.clientSocketFactory != null) {
			UnicastRemoteObject.exportObject(
					this.exportedObject, this.servicePort, this.clientSocketFactory, this.serverSocketFactory);
		}
		else {
			UnicastRemoteObject.exportObject(this.exportedObject, this.servicePort);
		}
		registry.rebind(this.serviceName, this.exportedObject);
	}

	/**
	 * Locate or create the RMI registry for this exporter.
	 * @param registryPort the registry port to use
	 * @return the RMI registry
	 * @throws RemoteException if the registry couldn't be located or created
	 */
	protected Registry getRegistry(int registryPort) throws RemoteException {
		if (logger.isInfoEnabled()) {
			logger.info("Looking for RMI registry at port '" + registryPort + "'");
		}
		Registry registry;
		try {
			// retrieve registry
			registry = LocateRegistry.getRegistry(registryPort);
			registry.list();
		}
		catch (RemoteException ex) {
			logger.debug("RMI registry access threw exception", ex);
			logger.warn("Could not detect RMI registry - creating new one");
			// assume no registry found -> create new one
			registry = LocateRegistry.createRegistry(registryPort);
		}
		return registry;
	}

	/**
	 * Determine the object to export: either the service object itself
	 * or a RmiInvocationWrapper in case of a non-RMI service object.
	 * @return the RMI object to export
	 */
	protected Remote getObjectToExport() {
		// determine remote object
		if (getService() instanceof Remote &&
				((getServiceInterface() == null) || Remote.class.isAssignableFrom(getServiceInterface()))) {
			// conventional RMI service
			return (Remote) getService();
		}
		else {
			// RMI invoker
			if (logger.isInfoEnabled()) {
				logger.info("RMI object '" + this.serviceName + "' is an RMI invoker");
			}
			return new RmiInvocationWrapper(getProxyForService(), this);
		}
	}

	/**
	 * Redefined here to be visible to RmiInvocationWrapper.
	 * Simply delegates to the corresponding superclass method.
	 */
	protected Object invoke(RemoteInvocation invocation, Object targetObject)
			throws NoSuchMethodException, IllegalAccessException, InvocationTargetException{
		return super.invoke(invocation, targetObject);
	}

	/**
	 * Unbind the RMI service from the registry at bean factory shutdown.
	 */
	public void destroy() throws RemoteException, NotBoundException {
		if (logger.isInfoEnabled()) {
			logger.info("Unbinding RMI service '" + this.serviceName +
					"' from registry at port '" + this.registryPort + "'");
		}
		Registry registry = LocateRegistry.getRegistry(this.registryPort);
		registry.unbind(this.serviceName);
		UnicastRemoteObject.unexportObject(this.exportedObject, true);
	}

}

redpajama_set_name: RedPajamaGithub


This interview confirms that Twitter is still at least considering introducing an edit function. Still, seeing as in January 2017 Dorsey revealed that Twitter was "thinking a lot about" offering the option to edit your tweets Twitter May Let You Edit Your Tweets Soon Twitter May Let You Edit Your Tweets Soon Twitter is considering letting you edit your own tweets. Although it's unlikely to happen next week or next month, Twitter is at least considering the option. Read More , we won't hold our breath waiting for it to happen.


text:
COVID-19: Impact on businesses and solutions
The D3 Cloud (IaaS)
Desktop-as-a-Service (DaaS)
Security In The Cloud
Backup-as-a-Service (BaaS)
NOC Services
Private / Secured / Caged Datacenter
Business Continuity Space (BCP)
MSP Partner Program
MSP Partner Cloud Program
MSP Partner Colocation Program
Enterprise Focused Software (EFS)
D3 Executive Team
Brochures / Publications (PDFs)
MSP Partner Program - Cloud Services
Announcing our new MSP Partner Program
Private label our Colocation, Cloud 2.0 & NOC services
Call us today @ 918.237.4400
Your true MSP Partner. Sell our services as your own.
Expand your services and add to your bottom line through our exclusive partnership program.
MSP Cloud Partners
DATA3 offers "The D3 Cloud" a proprietary suite of cloud infrastructure 'building blocks' that form a new blueprint for the delivery and monetization of cloud-based technology solutions for our MSP partners. The core architecture for these building blocks, categorized as Infrastructure as a Service ("IaaS"), has already been used in many industries, with proven traction from leading managed services providers (MSPs), tier 1 telcos and Fortune 500 companies.
Award Winning Technology
To provide a significant means enhancing your offering in a transitioning industry, which is quickly moving to cloud-based services.
Assist MSP organizations in their quest to provide a comprehensive set of services to their customers, thereby maintaining control over all aspects of the relationship.
Assist MSPs in broadening their brand and scope of services to enable future capacity and growth.
Provide MSPs an on-going stream of revenue through a private-label relationship with DATA 3.
Infrastructure-as-a-Service
(The D3 Cloud)
The D3 Cloud of DATA3 delivers an end-to-end premium IaaS platform with unmatched performance & cost-savings. MSP & IT providers can rapidly deploy their own enterprise- grade cloud solutions with full control - from a complete white-label rebrand to flexible account management and billing.
(DaaS)
DATA'3's Desktop-as-a-Service is an all-in-one virtual desktop infrastructure (VDI) solution that delivers applications and virtual desktops to any device, anytime, anywhere.
We offer an enterprise-grade, turnkey DaaS solution that MSPs can use to quickly establish "remote working" for their clients. With simple and predictable pricing that includes infrastructure and licenses, MSPs can provide instant access to applications, desktops and data from any device anywhere,
DATA3 offers guaranteed reduction in total cost of ownership (TCO).
Security-as-a-Service
(Built on WatchGuard)
The D3 Cloud seamlessly integrates into our Security-as-a -Service product, as if our platform was architected specifically with WatchGuard in mind. This integration enables MSPs and IT service providers to easily leverage an out-of-the- box cloud offering with a unified threat management (UTM) firewall solution and layered security services at a sustainable cost, giving service providers a competitive advantage and allowing them to focus on their core competencies.
The differentiation is strategic, and economics play a huge role. MSPs have an opportunity to realize larger margins by taking advantage of discounts that yield prices 25 percent below AWS and 35 percent below Azure.
Backup-as-a-Service
(BaaS)
Our new Backup-as-a-Service is a complete out-of-the- box enterprise solution for businesses and MSPs. We offer a turnkey solution that is fast, secure and scalable. This new service is built and hosted on "The D3 Cloud" and offers the same reliability and performance that you would expect from our state-of-the-art Cloud 2.0 architecture. MSPs can quickly provision scalable cloud backup solutions for their customers at the click of a button.
Video Surveillance-as-a-Service
(VSaaS)
Our Video Surveillance as a Service (VSaaS) is a hosted cloud-based video surveillance service and offers video recording, storage, remote viewing, management alerts and cyber security. The cost is based on a pay as you go model through a subscription service. The video processing and management is performed off-site using the cloud and it allows you to manage multiple locations from a central login.
Download our brochures and technical whitepapers for more information
MSP Partner Program - DaaS DataSheet
MSP Partner Program - Colocation Services
MSP Partner Program - IaaS DataSheet
Creating Revenue Streams for MSPs - Technical Whitepaper
Who is DATA3?
We began operations in 1999 and have an experienced and skilled management and operations team. We conduct business with companies of all sizes, including Fortune 500 companies with domestic and international operations.
We live in a fortress, a building designed to be a world class hospital that is the only single-pour office building in Oklahoma. The building continues to house many medical facilities as well as our operations. To that end, CityPlex maintains 1500 KW of backup generator power supplementing DATA 3's 1,150 KW of private generator power, as well as 30,000 gallons of diesel fuel on site.
We have 18,000 square feet of data center space on the 4th floor of our building. Additionally, we have 30,000 square feet of business continuity space on the 4th floor, with expansion capacity of 100,000 square feet. With our N+2 generator and UPS battery capacity, we can keep our facilities running for weeks. We work with 7 broadband providers including all of the major carriers in Oklahoma. Most have a local a fiber optic POP to avoid local loop, last mile fees.
As a significant tenant we have tremendous support from building management and building security, which provides 24/7 on-site personnel, key card access for off-hours for the building and for the elevators. Our facilities are accessible with two-factor authentication, have significant, redundant air-cooling capacity and are built out with state of the art waterless fire suppressions systems.
Call us today @ 918.237.4400 or click here to schedule a tour of our facilities and services.
DATA3 Corporaiton
2448 E. 81st Steet Sute 456, Tulsa OK 74137
All Rights Reserved ® - Copyright © 2019


text:
Fuminori Toyasaki
As of Fall 2007, Dr. Fuminori Toyasaki will be an Assistant Professor of Management Science in the School of Administrative Studies at York University in Toronto, Canada. From 2005 to 2007 he was a Postdoctoral Research Fellow in the Faculty of Management at McGill University in Montreal, Canada. He successfully defended his doctoral dissertation in Business Administration specializing in Management Science at the Isenberg School of Management at the University of Massachusetts at Amherst in August 2005.
He received a BS and an MS in Economics from Osaka University in Japan. From 1996 to 2001, he studied economic development and applied microeconomics from the perspective of spatial and temporal price and allocation models and computable general equilibrium models under Professor Hideo Hashimoto. He has been a member of the Japan Scholarship Foundation since 1998.
His research interests include: reverse logistics, green logistics, environmental finance, supply chain management, environmental and resource economics, applied microeconomics, and microeconomic theory.
He was elected to membership in Beta Gamma Sigma in 2005.
Reverse Supply Chain Management and Electronic Waste Recycling: A Multitiered Network Equilibrium Framework for E-Cycling Anna Nagurney and Fuminori Toyasaki (Appears in Transportation Research E: Transportation and Logistics 41: (2005) pp 1-28.)
Supply Chain Supernetworks and Environmental Criteria
Anna Nagurney and Fuminori Toyasaki
(Appears in Transportation Research D: Transportation and the Environment 8: (2003) pp 185 - 213.)
Virtual Center for Supernetworks
UMass INFORMS Student Chapter
The Japanese Economic Association
Nikkei.com
International Center for Environmental Finance


Here at vGRID we have some products and services that operate with "flat rate" internet traffic, this means we don't impose fixed limits to the amount of data you transfer (traffic). To date, instances of "unfair use" have been very rare ensuring customers continue to enjoy the limitless qualities of our service.
Flat Rate bandwidth on vGRID is provided by way of shared pools, therefore it is a shared service and we cannot allow the actions of a few users to negatively influence the system performance for the majority. Some types of activities are obviously violations such as illegal peer-to-peer file sharing. However, some other activities can cause network performance issues. These activities are difficult to summarize in a policy but are usually caused by sustained transfers in excess of 75% of the connection speed or frequent periods of sustained transfers in excess of 10Mbps, etc. As such, we retain the right to intervene in order to uphold the overall user experience for all customers on vGRID.
vGRID retains the right to limit or halt service to any user in breach of New Zealand law, specifically privacy or copyright laws.
vGRID retains the right to limit or halt service to any user imposing excessive load on the network so that this will compromise the system performance for the majority.
vGRID retains the right to limit or halt service to any user, in the rare event that we are not able to keep up with the overall storage growth.
vGRID wishes to keep its customers satisfied, even those who are in violation of the Fair Use Policy, because we acknowledge that this might not be intentional. Therefore, when we invoke the Fair Use Policy, by limiting or halting the service, we will get in touch with the impacted users to find a mutually agreeable solution.


What the hell?? I am SHOCKED!! I've had 2, one at 7 weeks and one at 11 weeks... my doctor did both. I am sooo put off and offended this is happening to you!!! GET ANOTHER DOCTOR!!!!!
I have been in three times for a v____al ultrasound and all three times they have given me the option to insert it myself or for them to do it. I think it is b/c the ultrasound tech is not completely trained to insert objects into people they are not doctors.
I have had to have 2 v____al ultrasouds and both times I inserted the wand. I think it is because I had a technician and I think it is due to rules that they couldn't do it, but I don't know for sure. It is just like inserting a tampon and honestly I was glad to do it myself, i would be very uncomfortable having them do it. It's enough with all of the other times and things we get done that one less time for someone else to be looking or putting something up me is okay by me.
It would seem creepier if they didn't give you that option and just shoved it up there themselves. They have a blanket it over you, it's not like they can see anything so I am pretty sure they are getting their rocks off on you shoving something up your cootchie. At all my ultrasounds they gave me the option to do it myself or have the tech do it. They weren't s_xually harra__sing me by asking if I wanted to do it myself. They can't even see you, you have a blanket covering your whole bottom part. Who cares.
What do you mean creepier?? Have you ever got a PAP SMEAR?? Does your doc give you the option of sticking up your own speculam or swab?? My OB does my u/s not some tech. And if they are a trained tech they should be well versed in all techniques. How are we supposed to know what to do?? I am soooo curious..... WHERE DO YOU GUYS LIVE??
when I told my husband about this thread concerning inserting the ultrasound by yourself his first comment was it was so american. It seems that they try to do the most 'correct' thing every time for fear of people sueing.. I guess. but such a thing is not heard of in europe I think. (at the moment I am in italy) I was really shocked when I read that!!!
Hey, im not pg, but ive had a v____al ultrasound and i had to insert it myself as well, i felt dirty..i didnt like it at all..i mean, its a MEDICAL thing, the DOCTOR should do it. it wasnt a plesant(sp) experiance.
Well I just don't understand why they would make the patient do that. I mean that's why they get paid so much per procedure, we shouldn't be doing it for them. We have so much going through our heads during those exams, what do we need with some added stress and uncomfortable feelings?
i've had several v____al ultrasounds, and i have never had to insert it myslef. i would find a new doctor. the whole point is to relaxe as much as possible, if you are having to insert something into yourself while someone is watching that is not realxing.
WELL.... My appointment was Wednsday. I had a full pelvic exam, folowed by the ultrasound ( my OBGYN did it all) I expressed my concern about their policy, signed a waiver, and he did all the medical stuff. Crisis over. No one has ever explained why they would want ME to do it in the first place ( esp when it is following a pap.. speculum... come on, now) but at least there was a way to get around it. My doc was actually very nice about the whole thing, although he did mention that most women LIKE inserting themselves.... see, they insert it, then doc takes over and moves it all around, etc. I mean really, of the whole ultrasound, the insertion was the gentlest thing.. he had to move that thing all over the place to see everything, so now I really don't get why they would want me to insert it.... well, it's over now, but the question still remains. Oh, yes... I'm from the U.S., and maybe that IS part of the issue.
So, why are techs doing this anyway? Is the dr even in the same room while it is going on? I hope my OB does the u/s herself... Also, why do they tell you to come to your first appointment with a full bladder? They asked me to do this too. I don't know which type of u/s they'll be doing since it is the first one at 8 weeks. Any ideas?
Full Bladder.... you're getting an external ultrasound. My 1st child's doc preferred these, so I never had an internal one till this child. 1st child ultrasounds were done at an ultrasound clinic so an ultrasound tech does it, this child they have the stuff right there at the OB office, so my doc does it all himself.
To piggy back on my first post about v____al u/s... I couldn't hold my pee, so I couldn't get a normal u/s. I inserted the probe for a v____al u/s because the radiology technician didn't want to do it because he was a MALE. It happened in a large hospital where the doctor couldn't be present. I guess it depends on where you are and what your hospital/clinic policy is. To those who are critical about u/s performed by techinicans, I am a Laboratory Technician, and one of my very close friends (I've known him for at least 8 years) is a Radiology technician. They undergo at least 2 years of college and clinical experience (the same amount of schooling as those folks that draw your blood and perform your cholesterol, pregnancy, and anemia tests in the lab). After that, they have to undergo other special training that can last up to a year of cla__sroom and clinical training to do ultrasounds. As far as I am concerned (being a lab technician), these folks, after completing this training program, are more than qualified to do an u/s. Especially since the u/s is recorded on a videotape and then your doc reviews it. Although your doc is not present, they do eventually review the u/s, and verify the diagnosis.
when they did the external ultrasound I didnt have to have a full bladder. I wonder why. Years back I remember needing to have a full bladder. place I go to is a small clinic and the doctors have their own u/s machines in the room. part of every visit is the visit to the baby via u/s.most doctors insert fingers into you to check if you the uterus is soft or not. so I dont see much difference between that and inserting other things.


text:
The Samsung Galaxy A10 is an Android smartphone developed by Samsung Electronics. It was released in March 2019. It comes with Android 9 (Pie) with One UI, 32GB internal storage and a 3400 mAh battery. It is the successor of the Galaxy J4/J4+, and is the predecessor to the Galaxy A11.

Specifications

Hardware
The Samsung Galaxy A10 has a 6.2 inch HD+ Infinity-V Display with a 720x1520 resolution. The phone itself measures 155.6 X 75.6 X 7.9mm and weighs 168 g. It is powered by an Octa-core (2x1.6 GHz Cortex-A73 & 6x1.35 GHz Cortex-A53) CPU and a Mali-G71 MP2 GPU. It comes with 32GB internal storage, expandable up to 512GB via MicroSD and 2GB RAM. It has a non-removable 3400 mAh battery.

Software
The Samsung Galaxy A10 runs on Android 9 (Pie) with Samsung's signature One UI. In May 2020, it received an Android 10 update, along with OneUI 2.0 and in August 2021,  it was upgraded to Android 11.That was the last major update this phone received.

See also
Samsung Galaxy
Samsung Galaxy A series
Samsung Galaxy A50

References

Samsung Galaxy
Mobile phones introduced in 2019
Android (operating system) devices
Samsung mobile phones

redpajama_set_name: RedPajamaWikipedia


text:
Justia › US Law › US Case Law › US Supreme Court › Volume 95 › Railroad Company v. Hecht
Railroad Company v. Hecht, 95 U.S. 168 (1877)
Railroad Company v. Hecht
1. A statute which prescribes a mode of serving process upon railroad companies different from that provided for in a charter previously granted to a particular company does not impair the obligation of the contract between such company and the State.
2. The power of a state to regulate the forms of administering justice is an incident of sovereignty, and its surrender is never to be presumed.
3. As against the government, the word "shall," when used in statutes, is to be construed as "may" unless a contrary intention is manifest.
The Cairo and Fulton Railroad Company having been sued in the Circuit Court of Clay County, Arkansas, service was had
on the tenth day of September, 1873, by leaving a copy of the summons with a clerk of the company.
Judgment was rendered by default. A motion was subsequently made to set the default aside on the ground that there had been neither legal service upon nor appearance by the company. This motion having been overruled, the company appealed to the supreme court of the state, where the judgment below was affirmed. The company then brought the case here.
The company was incorporated by an act of the Legislature of Arkansas, approved Jan. 12, 1853.
The thirteenth section of that act provides as follows:
"This act shall be deemed a public act, and shall be favorably construed for all the purposes therein expressed and declared in all courts and places whatever, and shall be in force from and after its passage, provided that all the rights, privileges, immunities, and franchises contained in the charter granted at this session of the legislature of this state to the Mississippi Valley Railroad Company, not restricting or inconsistent with this act, are hereby extended to and shall form a part of this incorporation as fully as if the same were inserted herein."
The charter of the Mississippi Valley Railroad Company was granted by an Act approved Jan. 12, 1853, the twenty-fourth section of which provides that
"Process on said company shall be served on the president by leaving a copy to his address, at the principal office of the corporation, in the hands of any of its officers."
An act passed in 1868 provides that
"Where the defendant is a corporation created by the laws of this state, the service of the summons may be upon the president, mayor, chairman of the board of trustees, or other chief officer, or, if its chief officer is not found in the county, upon its cashier, treasurer, secretary, clerk, or managing agent."
It will be seen that service in this case was made pursuant to the latter act, and not to the provisions of the charter.
The company here assigns for error that its charter constitutes a contract between it and the state, and that the subsequent act under which the process was served impairs the obligation of the contract, and is therefore in violation of Sec. 10, Art. I, of the Constitution of the United states.
OF THE STATE OF ARKANSAS
MR. CHIEF JUSTICE WAITE delivered the opinion of the Court.
The single question presented by this record is whether a statute which prescribes a mode of service of judicial process upon the Cairo and Fulton Railroad Company different from that provided for in its charter is void because it impairs the obligation of a contract. The regulation of the forms of administering justice by the courts is an incident of sovereignty. The surrender of this power is never to be presumed. Unless, therefore, it clearly appears to have been the intention of the legislature to limit its power of bringing this corporation before its judicial tribunals to the particular mode mentioned in the charter, the subsequent legislation upon that subject was not invalid. The provision of the charter relied upon is in these words:
"Process on said company shall be served on the president by leaving a copy to his address, at the principal office of the corporation, in the hands of any of its officers. The said corporation shall have power to establish a principal office at such place as they may see fit, and the same to change at pleasure."
As against the government, the word "shall," when used in statutes, is to be construed as "may" unless a contrary intention is manifest. Here, no such intention appears. The largest latitude is given the company in respect to the location of its principal office, and it can hardly be supposed that the legislature meant to deprive itself of the power of providing another mode of service if that specified was found to be inconvenient or unwise. The provision is one which evidently belongs to remedies against the corporation, and not to the grant of rights. As to remedies, it has always been held that the legislative power of change may be exercised when it does not affect injuriously rights which have been secured. Sturgess v. Crowninshield, 4 Wheat. 122.


Prime Minister Justin Trudeau criticized the Doug Ford government's new policy that will see six safe injection sites lose funding, including three in Toronto.
The Canadian government bases its policies on evidence, and the evidence shows that safe injection sites save lives, he insisted.
The federal government will continue to work with health experts, frontline workers and municipalities to support these programs, even if some governments — for "ideological" reasons — do not, he said.
The Ontario government has announced funding for 15 safe injection facilities across the province but is insisting that "wrap around" rehabilitation programs be offered, too.
"Based on extensive consultation with experts, we are confident the model we have brought forward is the right approach to connect people struggling with addiction with the care they need and deserve," Ontario health ministry spokesman Hayley Chazan said in an e-mail.
Funding requests were rejected only when the location was close to another existing site, and the province continues to accept applications for more facilities on an ongoing basis, she said.


text:
Two rescued after being swept away by tide on Lihou
Tuesday 13 September 2022, 10:44am
Guernsey's inshore lifeboat rescued a family that were stranded on Lihou after being cut off by the tide. Credit: ITV Channel TV
Two people had to be rescued by Guernsey's lifeboat after being swept away by the tide while crossing the causeway to Lihou.
Both the all-weather lifeboat and St Peter Port's inshore lifeboats were launched just before 5pm on Sunday 11 September.
A Guernsey fishing boat also responded to the mayday call and helped to rescue the two from the water.
Guernsey lifeboat invites public on board for annual fundraising day
Rocks rescue at Guernsey's Petit Port
Four others from the same family were left stranded on Lihou and rescued by the inshore lifeboat.
The family of six were reunited in St Peter Port where they were checked over by paramedics from St John Ambulance.


Asahi Refining is the newest refinery in the global precious metals industry. The company has a long history in Japan, but its global profile has been limited to date. As of December 2014, the company has been working to expand its offerings for investors.
Individual bars ship in sealed protective plastic courtesy of Asahi.
Obverse features the Asahi logo and identifying engravings.
Reverse includes a repeating logo design.
Weight and purity guaranteed by Asahi Metals.
Designs reflective of Johnson Matthey molds.
Among the variety of weights available in silver bars, the 1 oz. and 10 oz. weights are extremely popular. Investors prefer these two weights because of their flexibility and value. It's easier to purchase 1 oz and 10 oz bars because their pricing points are lower than larger bars, and their smaller size makes it easier to transport and store the bars.
Asahi Refining recently emerged on the global stage after its December 2014 purchase of Johnson Matthey's 160-plus-year-old silver and gold refining operations. The English company exited the industry in favor of focusing on other financial sectors. Asahi has been working feverishly to produce its own lineup of silver bars amidst a market that is experiencing unprecedented demand.
On the obverse face of the 10 oz Asahi Silver Bar is the image of the new Asahi Metals logo, along with engravings that run from top to bottom and include the mint's name, the bar's purity, metal content, and weight. There is also an individual serial number on the bars.
The reverse of the bar has a repeating design set that focuses on the Asahi Metals logo, which is set at a 45-degree angle. Asahi Metals operates two former Johnson Matthey refining facilities in North America, in Salt Lake City, Utah, and Brampton, Ontario, Canada.
Asahi Refining launched its operations in 1952 in Tokyo as a precious metals recycler. It moved into a position of production with the purchase of Johnson Matthey, and struggled at first to secure enough silver to produce various silver bars.


Take a look at the journey behind our legendary Rider jacket, from inception to perfection.
As one of the founding fathers of denim – and with almost 130 years of workwear excellence under our rodeo belts – we have a fair few standout pieces in our archive. But there is none so famous as the Lee® Rider Jacket – the world's first slim cut denim jacket.
Introduced in 1925, this first denim jacket, called the 91J, was especially loved by early Railroad workers, affectionately becoming known as Lee's "Loco" jacket. With it's full-cut and single breast pocket, you can see how much the style has evolved.
1934 saw the birth of the 101J Cowboy Jacket, and a year later, the 101LJ, a blanket lined version, first entered the market.
Already popular with blue collar workers and cowboys – legendary Rodeo star Turk Greenough was a fan, but had his girlfriend take the jacket in for a slimmer fit. Inspired by this, the H.D. Lee Company set about designing a brand new slim style of denim jacket with cowboys and rodeo riders specifically in mind.
Dubbed the "New Lee Rider Jacket" it was promoted on a first come first served basis for members of the Rodeo Cowboy Association and Cowboy Association of America.
In the advertisement in The Buckboard magazine, you can see some of those iconic details: fitted and waist-length, there's vertical pleating on either side of the centre front fastening, with the distinctive zig-zag top-stitching down the button placket, and breast pockets on both sides.
All Lee Cowboy Jackets made after their introduction in late 1948 have the Lee Rider or premium Lee 101 buttons.
The twin chest pockets are slanted for easy access – almost certainly for a pack of Marlboros.
The signature of the new fitted 101J jacket design included the zig-zag topstitching on the center front placket. Not just there for decoration, it reinforces the denim.
Lee's Cowboy Jacket also featured an adjustable waist with a short tab and two black cats' eye buttons.
Cut to 2018 – with the revival of 90s fashion trends and authenticity being the most sought-after value for brands and individuals alike – and the Rider jacket has never felt so relevant. A must have this season, and every season after.


text:
Research Articles, Systems/Circuits
Disengagement of Motor Cortex during Long-Term Learning Tracks the Performance Level of Learned Movements
Eun Jung Hwang, Jeffrey E. Dahlen, Madan Mukundan and Takaki Komiyama
Journal of Neuroscience 18 August 2021, 41 (33) 7029-7047; DOI: https://doi.org/10.1523/JNEUROSCI.3049-20.2021
Eun Jung Hwang
Neurobiology Section, Center for Neural Circuits and Behavior, Department of Neurosciences, and Halıcıoğlu Data Science Institute, University of California San Diego, La Jolla, California 92093
ORCID record for Eun Jung Hwang
Jeffrey E. Dahlen
Madan Mukundan
Takaki Komiyama
ORCID record for Takaki Komiyama
https://doi.org/10.1523/JNEUROSCI.3049-20.2021
Society for Neuroscience
Received December 2, 2020
Revision received June 28, 2021
Accepted June 29, 2021
First published July 8, 2021.
Version of record published August 18, 2021.
Copyright © 2021 the authors SfN exclusive license.
Eun Jung Hwang*,
Jeffrey E. Dahlen*,
Madan Mukundan, and
E. J. Hwang's present address: Cell Biology and Anatomy Discipline, Chicago Medical School, and Stanson Toshok Center for Brain Function and Repair, Rosalind Franklin University of Medicine and Science, North Chicago, Illinois 60064.
Author contributions: E.J.H., J.E.D., M.M., and T.K. performed research; E.J.H., J.E.D., and M.M. analyzed data; E.J.H. wrote the first draft of the paper; E.J.H., M.M., and T.K. edited the paper; E.J.H. and T.K. wrote the paper; T.K. designed research.
↵*E.J.H. and J.E.D. contributed equally to this work.
Received December 2, 2020.
Revision received June 28, 2021.
Accepted June 29, 2021.
This work was supported by National Institutes of Health Grants R01 NS091010, R01 EY025349, and P30 EY022589; Pew Charitable Trusts; David & Lucile Packard Foundation; McKnight Foundation; New York Stem Cell Foundation; Kavli Institute for Brain and Mind; National Science Foundation 1940202 to T.K.; and National Institutes of Health, National Research Service Award F31NS090858 to J.E.D. We thank A.N. Kim, K. O'Neil, O. Arroyo, Q. Chen, and L. Hall for technical assistance; members of the T.K. laboratory for discussions; and H. Do, K. Aguila, A. Stepanian, S. Sadre, S. Lu, A. Hoang, and L. Maggioni for help with animal training.
The authors declare no competing financial interests.
Correspondence should be addressed to Takaki Komiyama at tkomiyama{at}ucsd.edu or Eun Jung Hwang at eunjunghwang.phd{at}gmail.com
HHS | NIH | National Institute of Neurological Disorders and Stroke (NINDS)
R01 NS091010; F31 NS090858
HHS | NIH | National Eye Institute (NEI)
R01 EY025349; P30 EY022589
Pew Charitable Trusts
David and Lucile Packard Foundation (David & Lucile Packard Foundation)
McKnight Foundation
New York Stem Cell Foundation (NYSCF)
UC | UCSD | Kavli Institute for Brain and Mind, University of California, San Diego (KIBM, UCSD)
previous version (July 08, 2021).
Online Impact
Select a custom date range for the past year
Article usage: July 2021 to January 2022
Jul 2021 1291 0 142
Aug 2021 1268 223 125
Total 2021 3774 457 393
Jan 2022 163 51 27
Total 2022 163 51 27
Journal of Neuroscience
Thank you for sharing this Journal of Neuroscience article.
You are going to email the following Disengagement of Motor Cortex during Long-Term Learning Tracks the Performance Level of Learned Movements
Message Subject (Your Name) has forwarded a page to you from Journal of Neuroscience
Message Body (Your Name) thought you would be interested in this article in Journal of Neuroscience.
View Full Page PDF
Eun Jung Hwang, Jeffrey E. Dahlen, Madan Mukundan, Takaki Komiyama
Journal of Neuroscience 18 August 2021, 41 (33) 7029-7047; DOI: 10.1523/JNEUROSCI.3049-20.2021
motor cortex inactivation
motor learning
mouse motor cortex
mouse reaching
movement consistency
multiple movement learning
Responses to this article
No eLetters have been published for this article.
Medial temporal lobe networks in Alzheimer's disease: structural and molecular vulnerabilities
Pathogenic mechanisms of cytosolic and membrane-enriched α-synuclein converge on fatty acid homeostasis
Left motor delta oscillations reflect asynchrony detection in multisensory speech perception
Show more Research Articles
Systems/Circuits
Perceptual Texture Dimensions Modulate Neuronal Response Dynamics in Visual Cortical Area V4
Sparser and Less Efficient Hippocampal-Prefrontal Projections account for Developmental Network Dysfunction in a Model of Psychiatric Risk Mediated by Gene-Environment Interaction
Effects of Light Isoflurane Anesthesia on Organization of Direction and Orientation Selectivity in the Superficial Layer of the Mouse Superior Colliculus
Show more Systems/Circuits
Visit Society for Neuroscience on Facebook
Follow Society for Neuroscience on Twitter
Follow Society for Neuroscience on LinkedIn
Visit Society for Neuroscience on Youtube
Follow our RSS feeds
Copyright © 2022 by the Society for Neuroscience.
JNeurosci Online ISSN: 1529-2401
The ideas and opinions expressed in JNeurosci do not necessarily reflect those of SfN or the JNeurosci Editorial Board. Publication of an advertisement or other product mention in JNeurosci should not be construed as an endorsement of the manufacturer's claims. SfN does not assume any responsibility for any injury and/or damage to persons or property arising from or related to any use of any material contained in JNeurosci.


On a previous walk in this part of the county, we visited all four of the Marden villages and noted that three of them had churches and only one had a pub, but things may have been different in the past. On this occasion we visit the village of West Marden, the one with the pub and no church, heading out further west to isolated farming country.
Should the need for more spiritual sustenance be required on returning to our starting point, the weary walker can be assured that the other Marden villages, with churches, are not too far away and can be easily reached, once the walker's inner hunger has been sated at the pub.
The term Marden, used by the four villages in this part of the county, would seem to indicate habitations or communities at a border or boundary area. The precise boundary between Sussex and Hampshire was for some time rather poorly defined, but the villages would have been markers to show that a change in county identity had taken place.
The walk is largely on level paths with some gentle woodland rise and fall. This is quiet agricultural countryside with large fields and well-tended woodland.
1. From the crossroads in West Marden, on the B2146 road, walk up the main street of the village, signposted to Rowland's Castle, heading west and passing The Victoria Inn.
Climb between the flint buildings for 350 yards and, with the entrance to West Marden Hall off to the right, locate the stile and footpath sign on the left, just after the last house. Cross into the field and follow the left fence line for 150 yards to cross a stile and enter the woodland of West Marden Copse.
Follow the pleasant tree-covered path for several hundred yards to a point where it leaves the beech woods over a stile and turns right for a short distance. The path then re-enters the woods over a stile in 75 yards and climbs to the left to follow a southerly, wooded, balcony path that arrives at Oldhouse Lane in a little over a quarter-of-a-mile.
Cross the lane, going quarter- right on a bridleway, in a few yards cross over a drive, and follow a rising, southeasterly direction for nearly half-a-mile.
Finally, the bridleway turns to the right and then goes left for a few paces to arrive beside an isolated dwelling and a junction of tracks.
2. Locate the onward left field-edge bridleway that is across a drive, opposite the house, and follow this. The track keeps to the left edge of the huge field, with Watergate Hanger to the left.
There are occasional glimpses through the trees to the surrounding countryside and a view to the left to the delightful settlement of Walderton. Across the field, to the right through distant trees, there are sightings of the Isle of Wight.
Continue on the bridleway, to be joined by a track from the left towards the end of the field and then a bridleway from the left as you finally approach Woodlands Lane, after three-quarters-of-a-mile.
3. Turn right up the quiet, metalled lane, which soon becomes a rougher, more level track.
Stride out for two-thirds of a mile to draw alongside Woodlands Cottages. Continue ahead for 150 yards, passing around double metal gates and arriving at a five-way footpath and bridleway junction.
Follow the bridleway ahead (blue arrow) in a westerly direction, with views across fields on the right to the secluded, classical facade of Lumley Seat.
Keep to the level path for a little over half-a-mile, with the estate grounds of Stansted Park becoming obvious on the left. The bridleway then arrives beside two very trimlooking flint-faced dwellings, known as Iron Gate Cottages, and a junction of tracks.
4. Turn left at the junction and walk down the access drive to come to a further junction, with the entrance to Stansted House on the left. The house was once the country estate of the Bessborough family but now, like many similar stately piles, is a visitor attraction with a wide range of events, exhibitions and re-enactments throughout the year.
Turn right down the metalled drive for 200 yards and, just after a speed hump in the drive (not noticeable if you are walking at the correct speed), turn right through a bridle gate (blue arrow).
The bridleway keeps to the edge of Forest Hanger, with prominent sweet chestnut trees, for half-a-mile. Finally the bridleway rises to the bushy cover of Rosamond's Hill after three-quarters-of-a-mile of field-edge walking.
The path then turns left to enter the woodland for a few yards and a moist convergence of four tracks. Turn right on the bridleway option, taking neither of the footpaths leading left and right at this four-way junction.
Continue for a quarter-ofa- mile through Wythy Piece to come to the edge of the woodland.
5. Continue up the broad field, on a grassy track, towards the obvious buildings at Lodge Farm on the skyline.
Walk ahead between the farm buildings to a metal gate and continue on the bridleway.
The track drops after 300 yards to the metalled surface of Oldhouse Lane, which was encountered earlier.
Cross to the opposite side and locate the ongoing footpath.
Keep to the left field-edge, which may be overgrown at certain times of the year. The path drops to Westmarden Copse at the left field corner, after 350 yards.
Enter the copse (yellow arrow), turning to the left and descending to an enclosing field edge fence and stile in a short distance. The tiled roofs of West Marden become obvious on the right.
Climb over the stile into the small field we were in at the start of this walk and head for the lower left corner and stile.
Cross into the village street and turn right, back down the hill to the starting point.
Distance/time: Five miles taking two-and-a-half hours.
By car: West Marden is on the B2146, Westbourne to South Harting road, three miles south of Uppark House. Roadside parking in a lay-by. Start point Grid Ref. SU773136.
By public transport: Details from www.traveline.info or phone 0871 2002233. Bus stop in the village.
What's underfoot: Western Downs walking, on mainly level bridleways, with a few short, but easy climbs. Possible with a baby backpack. Not possible with a baby buggy.
Thirsty work: The Victoria Inn at the start/finish point in West Marden village.


text:
Lockport Military History Weekend
Illinois, US
Join us for a weekend of learning and adventure at Lockport's Military History Weekend. At this event, you will have the opportunity to witness reenactments of WWII, Civil War, and Vietnam War battles, as well as view authentic uniforms, vehicles, and equipment from these periods. Plus, don't miss your chance to take a ride in a UH-1H "Huey" or AH-1F "Cobra" helicopter! This is an experience you won't want to miss.
9 Sep 2023 - 10 Sep 2023
Reenactment Multiperiod


text:
June L. Stimson, 91
FALMOUTH — June Libby Stimson, 91, of Falmouth, died Oct. 27 after a prolonged period of failing health.
She was born in Windham in 1923, the daughter of Edna Libby. Stimson grew up on Land of Nod Road and graduated from Windham High School.
For many years, she and her husband, Joseph W. Stimson Jr., ran a dairy farm on Hurricane Road in West Falmouth. She was a traditional farming wife, familiar with the hard work that life entails. She also was an outdoorswoman who enjoyed hunting, fishing, snowmobiling and four-wheeling with her family, at Moxie Pond in Samoset County.
June was predeceased by Joseph 22 years ago. She was also predeceased by three sisters, Abbie, Inez and Alice.
She is survived by five children, Robert Stimson, of West Paris, Ken Stimson and wife, Mary, of Falmouth, Mary McDonough and husband, Mike, of Cumberland, Richard Stimson and wife, Lori, of Falmouth, and Joyce Cornish and husband, Michael, of New Gloucester. She also leaves behind a sister, Mary Hall, of Windham, 10 grandchildren and seven great-grandchildren.
At Stimson's request there will be no services. Burial will be at a future date in Blanchard Cemetery, Cumberland. Arrangements are under the direction of Jones, Rich & Hutchins Funeral Home, in Portland.
Stimson


Titan FC 20 from September 23, 2011 in Kansas City, Kansas.
Titan FC 21 Santiago vs Pecanha Fri, Mar 2, 2012 (2:06:44) Titan FC 21 from March 2, 2012 in Kansas City, Kansas.
Titan FC 19 Krause vs French Fri, Jul 29, 2011 (3:11:24) Titan FC 19 from July 29, 2011 in Kansas City, Kansas.
Titan FC 17 Lasley vs Ott Fri, Mar 25, 2011 (2:48:03) Titan FC 17: Lasley vs Ott from March 25, 2011 in Kansas City, Kansas USA.


text:
Mozilla, you're killing me…
Doug Simmons | October 15, 2013 | Editorials, Featured, Google Code | 1 Comment
In 2010 a Firefox user submitted a bug to the Mozilla developers requesting that they implement WebP (the most powerful image format in the world) into Firefox. Now in its fourth year, even though Mozilla identified this as an "important, high-profile subject" on which they have "image codec specialists" on the case who have been for over two weeks completing their experiments and that, as always with these teaser statements, we should expect something imminently. And imminence has slid by again.
What I want from Mozilla is to implement the codec. What I'll settle for is, as they appear not to be inclined to implement the format at least in its present state, to just close the bug thread with a "WONTFIX" flag so that the rest of us who are concerned with this image format's adoption can stop crossing our fingers Firefox will get it and realize that it ain't happening indefinitely, or at least not until certain specific things have changed. For whatever reason Mozilla finds neither path appealing.
It's particularly frustrating because WebP would improve the world except not being supported by Firefox presents a major pitfall and obstacle to its ubiquitous adoption. I'm not alone in believing that if Mozilla adopted it, Microsoft and Apple would follow suit.
Even though only 30% of the browsers visiting MobilityDigest support the format, we serve Chrome and Android visitors (roughly 30% of our traffic) images on the site in WebP instead of jpeg, gif or png, saving roughly 30% per image (and Pagespeed, another Google technology we use, reduces oversized images to the sizes specified in the HTML, even more savings).
On average, 60% of a given webpage's bytes are comprised of images, so it's saving us maybe 13% of transport. Not much. But with Firefox, Safari and IE on board, we wouldn't even need to convert to WebP and it would take us a fifth less storage and bandwidth and time on pageviews to deliver the site to you.
The importance of that to us is amplified as 40% of you are using mobile devices, and the longer it takes for our site to hit your screen, the less likely you are to stick around and come back, and the more data of your monthly quota we eat up. For sites that are image-heavy, like Facebook which adopted WebP, that adds up. Netflix is working on implementing WebP, most of Google's websites use it, and CDNs possibly including Akamai are interested in the efficiency.
Regardless of how this bug thread plays out with Mozilla (and feel free to visit Bugzilla to chime in, it's open to the public), I think it's unfortunate that a popular browser regarded by many as always being on the cutting edge of performance can sit on something like this for years. WebP is not the only way to make the web faster, so I hope Mozilla doesn't give other advancements, like QUIC, the same treatment.
Doug Simmons
Ookla's Speedtest.net Finally Gets An iPad Version
1 Comment | Mar 12, 2014
Reconsidering gzip
Nginx 1.4 Lights Up Google's SPDY and PageSpeed!
Hey Stephen: LTE-A in NYC?
Biographical info.. hmm. I have a history of not being able to strike the balance between what is "safe" to put into these forms and what is, in my mind at least, funny. Can't do it.
Doug Simmons	 October 17, 2013
I think the lack of comments on these Mozilla rant articles I do is indicative of why they haven't implemented WebP yet, or closed the ticket: It's a good idea, however there's simply not enough interest or demand for it relative to the things with which they already have their hands full. A to do list triage thing.


text:
Woman jailed for biting hole in victim's cheek during violent attack
A WOMAN has been jailed for five years after she bit a hole in another female's cheek when she attacked her at a Birmingham pub.
Kerry Wickson, aged 32, attacked the woman outside the Cross Keys Pub, in High Street, Erdington, in the early hours of November 26 last year.
Birmingham Crown Court heard that a dispute took place outside the venue between several pub-goers.
The victim of the attack went outside to see what was going on and was confronted by Wickson who began arguing with her,
Madhu Rai, Crown Advocate for West Midlands Crown Prosecution Service, said: "She was then punched in the face and arms which made her fall to the ground. At this stage, Ms Wickson climbed on top of the victim and deliberately lent forward and bit off a piece of her cheek."
She added: "This was an extremely violent and unprovoked assault on a woman who was simply enjoying a night out with her friends.
"The attack has left the victim extremely traumatised, and due to the extent of her injuries, a skin graft was needed on her cheek, but she is still left with a permanent scar."
Wickson was arrested at the scene of the attack and was later charged with wounding with intent to cause grievous bodily harm.
She pleaded guilty to the offence on May 18 and was sentenced to five-years' imprisonment.
Madhu Rai added: "We hope that the five year sentence imposed on Ms Wickson acts as a deterrent to others from committing such vicious and mindless acts.
"In this case, alcohol clearly played a part in the attack and has had devastating consequences for both the victim and the defendant."


text:
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.filedistribution;

import com.yahoo.config.FileReference;
import com.yahoo.io.IOUtils;
import com.yahoo.jrt.Int32Value;
import com.yahoo.jrt.Request;
import com.yahoo.jrt.RequestWaiter;
import com.yahoo.jrt.StringValue;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Transport;
import com.yahoo.text.Utf8;
import com.yahoo.vespa.config.Connection;
import com.yahoo.vespa.config.ConnectionPool;
import net.jpountz.xxhash.XXHash64;
import net.jpountz.xxhash.XXHashFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Duration;
import java.util.Arrays;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

import static com.yahoo.jrt.ErrorCode.CONNECTION;
import static com.yahoo.vespa.filedistribution.FileReferenceData.CompressionType.gzip;
import static com.yahoo.vespa.filedistribution.FileReferenceData.Type.compressed;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

public class FileDownloaderTest {
    private static final Duration sleepBetweenRetries = Duration.ofMillis(10);
    private static final Set<FileReferenceData.CompressionType> acceptedCompressionTypes = Set.of(gzip);

    private MockConnection connection;
    private FileDownloader fileDownloader;
    private File downloadDir;
    private Supervisor supervisor;

    @Before
    public void setup() {
        try {
            downloadDir = Files.createTempDirectory("filedistribution").toFile();
            connection = new MockConnection();
            supervisor = new Supervisor(new Transport()).setDropEmptyBuffers(true);
            fileDownloader = createDownloader(connection, Duration.ofSeconds(1));
        } catch (IOException e) {
            e.printStackTrace();
            fail(e.getMessage());
        }
    }

    @After
    public void teardown() {
        fileDownloader.close();
        supervisor.transport().shutdown().join();
    }

    @Test
    public void getFile() throws IOException {
        File downloadDir = fileDownloader.downloadDirectory();

        {
            // fileReference already exists on disk, does not have to be downloaded

            String fileReferenceString = "foo";
            String filename = "foo.jar";
            FileReference fileReference = new FileReference(fileReferenceString);
            File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
            writeFileReference(downloadDir, fileReferenceString, filename);
            fileDownloader.downloads().completedDownloading(fileReference, fileReferenceFullPath);

            // Check that we get correct path and content when asking for file reference
            Optional<File> pathToFile = getFile(fileReference);
            assertTrue(pathToFile.isPresent());
            String downloadedFile = new File(fileReferenceFullPath, filename).getAbsolutePath();
            assertEquals(new File(fileReferenceFullPath, filename).getAbsolutePath(), downloadedFile);
            assertEquals("content", IOUtils.readFile(pathToFile.get()));

            // Verify download status when downloaded
            assertDownloadStatus(fileReference, 1.0);
        }

        {
            // fileReference does not exist on disk, needs to be downloaded, but fails when asking upstream for file)

            connection.setResponseHandler(new MockConnection.UnknownFileReferenceResponseHandler());

            FileReference fileReference = new FileReference("bar");
            File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
            assertFalse(fileReferenceFullPath.getAbsolutePath(), getFile(fileReference).isPresent());

            // Verify download status when unable to download
            assertDownloadStatus(fileReference, 0.0);
        }

        {
            // fileReference does not exist on disk, needs to be downloaded)

            FileReference fileReference = new FileReference("baz");
            File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
            assertFalse(fileReferenceFullPath.getAbsolutePath(), getFile(fileReference).isPresent());

            // Verify download status
            assertDownloadStatus(fileReference, 0.0);

            // Receives fileReference, should return and make it available to caller
            String filename = "abc.jar";
            receiveFile(fileReference, filename, FileReferenceData.Type.file, "some other content");
            Optional<File> downloadedFile = getFile(fileReference);

            assertTrue(downloadedFile.isPresent());
            File downloadedFileFullPath = new File(fileReferenceFullPath, filename);
            assertEquals(downloadedFileFullPath.getAbsolutePath(), downloadedFile.get().getAbsolutePath());
            assertEquals("some other content", IOUtils.readFile(downloadedFile.get()));

            // Verify download status when downloaded
            System.out.println(fileDownloader.downloads().downloadStatuses());
            assertDownloadStatus(fileReference, 1.0);
        }

        {
            // fileReference does not exist on disk, needs to be downloaded, is compressed data

            FileReference fileReference = new FileReference("fileReferenceToDirWithManyFiles");
            File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
            assertFalse(fileReferenceFullPath.getAbsolutePath(), getFile(fileReference).isPresent());

            // Verify download status
            assertDownloadStatus(fileReference, 0.0);

            // Receives fileReference, should return and make it available to caller
            String filename = "abc.tar.gz";
            Path tempPath = Files.createTempDirectory("dir");
            File subdir = new File(tempPath.toFile(), "subdir");
            File fooFile = new File(subdir, "foo");
            IOUtils.writeFile(fooFile, "foo", false);
            // Check that long file names work. (need to do TarArchiveOutPutStream.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX)) for it to work);
            File barFile = new File(subdir, "really-long-filename-over-100-bytes-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
            IOUtils.writeFile(barFile, "bar", false);

            File tarFile = new FileReferenceCompressor(compressed, gzip).compress(tempPath.toFile(), Arrays.asList(fooFile, barFile), new File(tempPath.toFile(), filename));
            byte[] tarredContent = IOUtils.readFileBytes(tarFile);
            receiveFile(fileReference, filename, compressed, tarredContent);
            Optional<File> downloadedFile = getFile(fileReference);

            assertTrue(downloadedFile.isPresent());
            File downloadedFoo = new File(fileReferenceFullPath, tempPath.relativize(fooFile.toPath()).toString());
            File downloadedBar = new File(fileReferenceFullPath, tempPath.relativize(barFile.toPath()).toString());
            assertEquals("foo", IOUtils.readFile(downloadedFoo));
            assertEquals("bar", IOUtils.readFile(downloadedBar));

            // Verify download status when downloaded
            assertDownloadStatus(fileReference, 1.0);
        }
    }

    @Test
    public void getFileWhenConnectionError() throws IOException {
        fileDownloader = createDownloader(connection, Duration.ofSeconds(2));
        File downloadDir = fileDownloader.downloadDirectory();

        int timesToFail = 2;
        MockConnection.ConnectionErrorResponseHandler responseHandler = new MockConnection.ConnectionErrorResponseHandler(timesToFail);
        connection.setResponseHandler(responseHandler);

        FileReference fileReference = new FileReference("fileReference");
        File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
        assertFalse(fileReferenceFullPath.getAbsolutePath(), getFile(fileReference).isPresent());

        // Getting file failed, verify download status and since there was an error is not downloading ATM
        assertDownloadStatus(fileReference, 0.0);
        assertFalse(fileDownloader.isDownloading(fileReference));

        // Receives fileReference, should return and make it available to caller
        String filename = "abc.jar";
        receiveFile(fileReference, filename, FileReferenceData.Type.file, "some other content");
        Optional<File> downloadedFile = getFile(fileReference);
        assertTrue(downloadedFile.isPresent());
        File downloadedFileFullPath = new File(fileReferenceFullPath, filename);
        assertEquals(downloadedFileFullPath.getAbsolutePath(), downloadedFile.get().getAbsolutePath());
        assertEquals("some other content", IOUtils.readFile(downloadedFile.get()));

        // Verify download status when downloaded
        assertDownloadStatus(fileReference, 1.0);

        assertEquals(timesToFail, responseHandler.failedTimes);
    }

    @Test
    public void getFileWhenDownloadInProgress() throws IOException, ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newFixedThreadPool(2);
        String filename = "abc.jar";
        fileDownloader = createDownloader(connection, Duration.ofSeconds(3));
        File downloadDir = fileDownloader.downloadDirectory();

        // Delay response so that we can make a second request while downloading the file from the first request
        connection.setResponseHandler(new MockConnection.WaitResponseHandler(Duration.ofSeconds(1)));

        FileReference fileReference = new FileReference("fileReference123");
        File fileReferenceFullPath = fileReferenceFullPath(downloadDir, fileReference);
        FileReferenceDownload fileReferenceDownload = new FileReferenceDownload(fileReference, "test");

        Future<Future<Optional<File>>> future1 = executor.submit(() -> fileDownloader.getFutureFile(fileReferenceDownload));
        do {
            Thread.sleep(10);
        } while (! fileDownloader.isDownloading(fileReference));
        assertTrue(fileDownloader.isDownloading(fileReference));

        // Request file while download is in progress
        Future<Future<Optional<File>>> future2 = executor.submit(() -> fileDownloader.getFutureFile(fileReferenceDownload));

        // Receive file, will complete downloading and futures
        receiveFile(fileReference, filename, FileReferenceData.Type.file, "some other content");

        // Check that we got file correctly with first request
        Optional<File> downloadedFile = future1.get().get();
        assertTrue(downloadedFile.isPresent());
        File downloadedFileFullPath = new File(fileReferenceFullPath, filename);
        assertEquals(downloadedFileFullPath.getAbsolutePath(), downloadedFile.get().getAbsolutePath());
        assertEquals("some other content", IOUtils.readFile(downloadedFile.get()));

        // Check that request done while downloading works
        downloadedFile = future2.get().get();
        assertTrue(downloadedFile.isPresent());
        executor.shutdownNow();
    }

    @Test
    public void setFilesToDownload() {
        Duration timeout = Duration.ofMillis(200);
        MockConnection connectionPool = new MockConnection();
        connectionPool.setResponseHandler(new MockConnection.WaitResponseHandler(timeout.plus(Duration.ofMillis(1000))));
        FileDownloader fileDownloader = createDownloader(connectionPool, timeout);
        FileReference xyzzy = new FileReference("xyzzy");
        // Should download since we do not have the file on disk
        fileDownloader.downloadIfNeeded(new FileReferenceDownload(xyzzy, "test"));
        assertTrue(fileDownloader.isDownloading(xyzzy));
        assertFalse(getFile(xyzzy).isPresent());
        // Receive files to simulate download
        receiveFile(xyzzy, "xyzzy.jar", FileReferenceData.Type.file, "content");
        // Should not download, since file has already been downloaded
        fileDownloader.downloadIfNeeded(new FileReferenceDownload(xyzzy, "test"));
        // and file should be available
        assertTrue(getFile(xyzzy).isPresent());
    }

    @Test
    public void receiveFile() throws IOException {
        FileReference foobar = new FileReference("foobar");
        String filename = "foo.jar";
        receiveFile(foobar, filename, FileReferenceData.Type.file, "content");
        File downloadedFile = new File(fileReferenceFullPath(downloadDir, foobar), filename);
        assertEquals("content", IOUtils.readFile(downloadedFile));
    }

    @Test
    public void testCompressionTypes() {
        try {
            createDownloader(connection, Duration.ofSeconds(1), Set.of());
            fail("expected to fail when set is empty");
        } catch (IllegalArgumentException e) {
            // ignore
        }
    }

    private void writeFileReference(File dir, String fileReferenceString, String fileName) throws IOException {
        File fileReferenceDir = new File(dir, fileReferenceString);
        fileReferenceDir.mkdir();
        File file = new File(fileReferenceDir, fileName);
        IOUtils.writeFile(file, "content", false);
    }

    private File fileReferenceFullPath(File dir, FileReference fileReference) {
        return new File(dir, fileReference.value());
    }

    private void assertDownloadStatus(FileReference fileReference, double expectedDownloadStatus) {
        Downloads downloads = fileDownloader.downloads();
        double downloadStatus = downloads.downloadStatus(fileReference);
        assertEquals("Download statuses: " + downloads.downloadStatuses().toString(),
                     expectedDownloadStatus,
                     downloadStatus,
                     0.0001);
    }

    private void receiveFile(FileReference fileReference, String filename, FileReferenceData.Type type, String content) {
        receiveFile(fileReference, filename, type, Utf8.toBytes(content));
    }

    private void receiveFile(FileReference fileReference, String filename,
                             FileReferenceData.Type type, byte[] content) {
        XXHash64 hasher = XXHashFactory.fastestInstance().hash64();
        FileReceiver.Session session =
                new FileReceiver.Session(downloadDir, 1, fileReference, type, gzip, filename, content.length);
        session.addPart(0, content);
        File file = session.close(hasher.hash(ByteBuffer.wrap(content), 0));
        fileDownloader.downloads().completedDownloading(fileReference, file);
    }

    private Optional<File> getFile(FileReference fileReference) {
        return fileDownloader.getFile(new FileReferenceDownload(fileReference, "test"));
    }

    private FileDownloader createDownloader(MockConnection connection, Duration timeout) {
        return  createDownloader(connection, timeout, acceptedCompressionTypes);
    }

    private FileDownloader createDownloader(MockConnection connection, Duration timeout, Set<FileReferenceData.CompressionType> acceptedCompressionTypes) {
        return new FileDownloader(connection, supervisor, downloadDir, timeout, sleepBetweenRetries, acceptedCompressionTypes);
    }

    private static class MockConnection implements ConnectionPool, com.yahoo.vespa.config.Connection {

        private ResponseHandler responseHandler;

        MockConnection() {
            this(new FileReferenceFoundResponseHandler());
        }

        MockConnection(ResponseHandler responseHandler) {
            this.responseHandler = responseHandler;
        }

        @Override
        public void invokeAsync(Request request, Duration jrtTimeout, RequestWaiter requestWaiter) {
            responseHandler.request(request);
        }

        @Override
        public void invokeSync(Request request, Duration jrtTimeout) {
            responseHandler.request(request);
        }

        @Override
        public String getAddress() {
            return null;
        }

        @Override
        public void close() {
        }

        @Override
        public Connection getCurrent() {
            return this;
        }

        @Override
        public Connection switchConnection(Connection connection) {
            return this;
        }

        @Override
        public int getSize() {
            return 1;
        }

        void setResponseHandler(ResponseHandler responseHandler) {
            this.responseHandler = responseHandler;
        }

        public interface ResponseHandler {
            void request(Request request);
        }

        static class FileReferenceFoundResponseHandler implements MockConnection.ResponseHandler {

            @Override
            public void request(Request request) {
                if (request.methodName().equals("filedistribution.serveFile")) {
                    request.returnValues().add(new Int32Value(0));
                    request.returnValues().add(new StringValue("OK"));
                }
            }
        }

        static class UnknownFileReferenceResponseHandler implements MockConnection.ResponseHandler {

            @Override
            public void request(Request request) {
                if (request.methodName().equals("filedistribution.serveFile")) {
                    request.returnValues().add(new Int32Value(1));
                    request.returnValues().add(new StringValue("Internal error"));
                }
            }
        }

        static class WaitResponseHandler implements MockConnection.ResponseHandler {

            private final Duration waitUntilAnswering;

            WaitResponseHandler(Duration waitUntilAnswering) {
                super();
                this.waitUntilAnswering = waitUntilAnswering;
            }

            @Override
            public void request(Request request) {
                try { Thread.sleep(waitUntilAnswering.toMillis());} catch (InterruptedException e) { /* do nothing */ }

                if (request.methodName().equals("filedistribution.serveFile")) {
                    request.returnValues().add(new Int32Value(0));
                    request.returnValues().add(new StringValue("OK"));
                }
            }
        }

        static class ConnectionErrorResponseHandler implements MockConnection.ResponseHandler {

            private final int timesToFail;
            private int failedTimes = 0;

            ConnectionErrorResponseHandler(int timesToFail) {
                super();
                this.timesToFail = timesToFail;
            }

            @Override
            public void request(Request request) {
                if (request.methodName().equals("filedistribution.serveFile")) {
                    if (failedTimes < timesToFail) {
                        request.setError(CONNECTION, "Connection error");
                        failedTimes++;
                    } else {
                        request.returnValues().add(new Int32Value(0));
                        request.returnValues().add(new StringValue("OK"));
                    }
                }
            }
        }
    }

}


NEW MILFORD, CONN. (November 22, 2011) – On Friday, December 2, TheatreWorks New Milford will debut legendary playwright Noël Coward's classic comedy of manners, PRESENT LAUGHTER. The show opens at 8:00 p.m. for a five-week run.
This classic audacious comedy centers on Garry Essendine (Jonathan Jacobson, Litchfield), a popular, pampered actor – modeled after Coward himself – busily making preparations for an extended overseas tour with his devoted secretary Monica (Janice Connor, Goshen). His plans are complicated first by Daphne (Gloria Antonios, Thomaston), a beautiful stage-struck ingénue, as well as an absurdly eager and aspiring playwright, Roland Maule (Chris Bolster, New Milford), who insist on his attentions. When his wife, his agents, and his numerous admirers arrive, Garry is hard pressed to escape what quickly spirals into a hilarious farcical game of cat-and-mouse.
"This play stands the test of time for one reason: Noël Coward was a brilliant playwright," said director Beth Bonnabeau of New Milford. "He was a master craftsman. Each one of his scenes builds on the one before, each player becomes a real person and, most importantly, the dialogue just sparkles with dazzling wit. Sorry, there's nothing in PRESENT LAUGHTER that's going to 'help people or make them think' as one of the play's characters says. But what's wrong with light-hearted wit and laughter in a time where we're constantly bombarded by so many heavy issues? Nothing. Especially during the Holidays. It's why this show is so perfect for the ages and for this time of year. It's like a fizzy glass of champagne that keeps tickling your nose and making you laugh."
"[Director] Beth [Bonnabeau] has assembled a first-rate cast for a drawing room comedy such as this," said producer Richard Pettibone of New Milford. "It's been said about the play that it's only as good as your Garry Essendine, and Beth has certainly found that refined Coward-esque style in actor Jonathan Jacobson. But any show is only as good as the sum of its parts. And this large cast fills out their roles incredibly well, adding to the building comedic pacing of the production. It really does stand up beautifully after nearly 70 years."
Rounding out the cast are some of the region's finest actors: Robyn Maitland (New Fairfield), Jacky Saulnier (Danbury), J. Scott Williams (Brookfield), Glenn R.Couture (Ansonia), and Tony Saracino, Sheila Echevarria, and LuAnn Leonard (all New Milford).
Pettibone is also co-designer of lighting with technical director Scott Wyshynski. The set has been designed by Glenn R. Couture, sound design is being handled by Tom Libonate, costume design is being handled by Couture and Susan Pettibone, and stage management is in the hands of Colette Nadeau.
PRESENT LAUGHTER was written in 1939, but didn't open in the UK until 1942 due to the outbreak of World War II. The play made its Broadway debut on October 29, 1946 at the Plymouth Theatre. Between 1982 and 2010 there were three Broadway revivals of the play with George C. Scott, Frank Langella, and Victor Garber, each playing the role of Essendine, respectively. The New York Times called the play upon its first release "Sharp, withering, and funny."
PRESENT LAUGHTER runs December 2,3 9,10,11 16,17,18 30,31 and January 6,7. Curtain time is 8:00 p.m. Fridays & Saturdays, with 2:00 p.m. Sunday matinees on December 11 and 18. Tickets for all shows are $20 for reserved seating. On New Year's Eve, December 31, at 8:00 p.m. there will be one gala fundraising performance with hors d'oeuvres and an open bar of wine, beer, and soft drinks.


Our Bonded Rail Connectors attaches and bonds horizontal cross pipes to XR1000 Rails. Each rail requires two connectors to create a secure and bonded attachment. Available for both 2" and 3" sizes, these Rail Connectors are manufactured using extruded 6000 series aluminum. Review the images on the section overview for added context.
Click the button below to add the IronRidge GM-BRC-003 Bonding Rail Connector to your wish list.