There was talk early on about doing a Fat Rice cookbook; a few food writers who ate at the restaurant told Conlon and Lo they should do a book.
For Conlon and Lo, it was clear that if they did a book, Amano would be key to making it happen.
The idea was definitely in the air, but they had to figure out how to do it.
An agent from New York expressed interest in representing them, but they weren't sure if it was the right offer. In February 2014, Conlon and Lo emailed me about finding an agent. They were among of dozens of chefs who have asked me how to get started with a book, and I didn't think their chances were that much greater than most other chefs. Because getting a book deal is almost impossible for most chefs, especially those who aren't in New York.
Why? Blame digital. Book publishing changed dramatically somewhere around the time all of us started reading books on our phones instead of trooping off to the store to buy a printed book. Today, you can buy an e-book for as little as a dollar on your phone and have it delivered to you in less than a minute; it's a lot easier than finding time to go to a bookstore and picking up a hardcover book for $30 or $40. In the publishing business, e-books are referred to as a "disruption," meaning that while they create new opportunity, they also displace an established (and profitable) market. Add in some fairly brutal pricing wars between Amazon and publishing houses, and you can see why there has been a lot of talk in publishing circles about whether e-books would eventually kill print. Except with cookbooks, which is ironic, since anyone can jump on Google and find a recipe for just about any dish in the world, for free and in less than four seconds. But for some reason, we still want to hold a cookbook in our hands, we want to flip pages, browse photos and read recipe notes. If anything about cooking or publishing is left to be romanticized, it's cookbooks.
When you scroll through the best-seller list, you'll see dozens of names of publishing houses. What you probably don't realize is that there are only four major publishing houses in the U.S: Penguin Random House, HarperCollins, Simon & Schuster, and Hachette Livre. Most of those other names exist as imprints, which are branded divisions that specialize in specific areas and market books to specific buying audiences. Clarkson Potter and Ten Speed Press are two of the most prestigious imprints, but are both owned by Penguin Random House, a company that came into being when Penguin and Random House merged in 2013.
Conlon and Lo likely had no idea of any of this when they first started thinking about writing a cookbook or how it would impact whether they would get a deal; hardly anyone understands the particulars of book publishing. Which is one reason why finding an agent is key.
Chefs create books as an art form. Publishers publish books to make money from an art form. Agents bridge the gap to make it happen. Cookbook agents are some combination of sales reps, negotiators, scouts, matchmakers, emotional babysitters, collections agents, cheerleaders and coaches. In short, they have a high tolerance for crazy. Agents know the publishing world the way chefs know food, and they can spot a bad book deal at 10 paces in the same way chefs can tell that your truffled risotto was made with fake truffle oil and not the real thing. Agents know when Italian cookbooks are selling well and when the industry is overrun with them. They know that certain acquisitions editors are fans of Asian food, baking, Asian baking, or whatever. They know that every chef thinks he or she has a book to write, and that every chef thinks his or her book should be featured by Oprah. They are the people who have to explain that you might be a great chef with a fabulous restaurant, but without a great story behind it, you are not a great prospect for writing a cookbook. Or that if you have a chance, where the need lies; whether your book need to appeal to restaurant/chef types or people looking to make easy weeknight meals. It's no surprise that on her website, book agent Lisa Ekus offers a long list of what should be included in a cookbook proposal, along with a line wishing prospective authors good luck; that part of her site saves her a lot of time that would otherwise be wasted meeting with chefs who will never make it through all the steps in the process.
Agents make their money by taking 15 percent of the royalties a publisher pays an author. Which is why some chefs think they should try and get a deal without an agent. The problem is that without an agent, your chances of getting your book proposal in front of a publisher are almost zero, and even if you get a deal, you are most certainly going to be low-balled by that publisher. Most publishers are based in New York City, so it's hard to get their attention unless your restaurant is also in New York City. And even if your restaurant is in New York, is it big enough (or small and cute enough?) to get their attention? Is it in Manhattan, where everyone goes for business, or in Brooklyn, where everyone goes to feel cool? Is it one of five Korean noodle spots on the block, and if so, is one of the other spots owned by David Chang? Because, at the end of the day, is the customer base enough to warrant printing 50,000 copies? Will your book make money?
There are a few big names in cookbook agenting out there. Kimberly Witherspoon represents David Chang, Yotam Ottolenghi, Anthony Bourdain, Ruth Reichl and Gabrielle Hamilton. Ekus, based outside Boston, reps a mix of restaurant chefs and food writers and bloggers, including Kevin Gillespie, Virginia Willis and Natalie Slater of the vegan baking blog Bake and Destroy.
Collins, Conlon and Lo met and talked about the restaurant, the book idea and what it would take to write a book.
"I have never interviewed with a chef without having eaten at the restaurant several times beforehand," Collins says. "But at the time, it was at least a two-hour wait to get in to Fat Rice; there was a line to get in by 5 pm, and it was a really hot summer. So this is embarrassing, but I hadn't eaten there yet, and I didn't have time to go before the interview. Of course, one of the first things Abe asked me was if I'd eaten there. He is not the the kind of guy you can lie to: He would've asked me what I ate, I wouldn't have been able to bluff, and he would have nailed me to the wall. He can sort the wheat from the chaff pretty quick. So I told them I hadn't braved the lines and they set me up with a reservation for later in the week.
Collins wrote up contracts for Conlon and Lo, and a separate one for Amano, who would be paid out of the advance she would be able to negotiate for them.
An advance is all the money most chefs get from their books. I've heard of chefs getting advances too low to even cover the cost of photography, and of chefs getting a hundreds of thousand dollars—the range is all over the place. It's an advance payment against the book's future royalties, and is calculated by a number of factors like the manufacturing costs and how many copies the marketing department thinks will sell per sales figures based on similar titles. The editor creates a P&L statement based on all those factors and that's how the amount of the advance is calculated. In the end, it's basically a gamble on how well the book will sell before it is relegated to those $1.99 discount tables in bookstores.
There's an old joke, attributed to literary agent H.N. Swanson, that the most lucrative type of writing you can do is a ransom note. Writing a cookbook is not a way to make money, unless your name happens to be Ina Garten or Martha Stewart. Most chefs break even or lose money on their cookbooks, once they figure in the cost of their time, paying for a writer and photographer, the cost of ingredients for recipe testing and everything else that goes along with it. It has to be worth it for other reasons.


Venn Technology is a specialist IT Recruiter, working tirelessly to deliver 'Recruitment-as-a-Service' in the contract market. We support the entire enterprise across IT Service Delivery, Transformation and Change, Business Systems, Software and Engineering, Digital and Marketing.
With a proven track record in delivery, UK wide, working with SME and Tec Start Up's through to major PLC's and FTSE 100 organisations, we are confident we have the skills and the reach you need to meet your next challenge.
Venn Group has particular pedigree in the supply of the hardest to find talent to a number of industries including but not limited to, Defence and Aerospace, Healthcare, Manufacturing, Retail, Software, Financial Services, Telco and Digital.


Reminds me of the guy I met in the San Antonio Greyhound station from Louisiana who asked if Australia is the country with the kangaroos, and so it's next to Russia, right? teehee!
Funny, yet incredibly sad, since a lot of the names are hispanic which means that the parents probably weren't writing in their mother tongue.
Argh. Just ignore me. I tend to get bouts of political correctness every now and then.


text:
Q: How can I prevent circular {% include %} calls in Jinja2 templates I have a Django SaaS app with users who create their own Jinja2 templates (in an extraordinarily sandboxed environment, for those who just cringed), which are saved to a database. I have a template_type field, noting whether or not a given template is an "include" or a "full template" (a full template can of course include "includes"). The problem is that a user could put {% include "foo" %} into a template called "bar", and {% include "bar" %} into the "foo" template, causing a RuntimeError: maximum recursion depth exceeded type of situation, which would not be good for performance.
Is there a nice way to handle this situation that doesn't include a validation regexp (e.g., r'\{%\s+include') check for includes during user template creation time ("Make sure a recursive import never gets in the database, or your server will asplode" doesn't quite jive with me).
My failed attempt
I started by using a custom loader which only contains a user's "includes"::
def get_source(self, environment, template):
    """
    Returns the source of the template or raises ``TemplateNotFound``.
    This loader is for use with an environment which intends to load each
    template from a string, since only includes are loaded from here.
    """
    try:
        template = self.snippets[template]
    except KeyError:
        raise jinja2.TemplateNotFound(
            template, message=u'Snippet "{s}" was not found'.format(s=template)
        )
    else:
        source = template['source']
        return (source, None, lambda: True)

The problem with doing this is that I've basically blocked myself from being able to take advantage of Jinja2's Bytecode Cache, which would clearly require that all the templates be available for a load(... call, which in turn calls get_source(....

A: To parse templates and check includes, i use this code:
    ast = env.parse(template_text)
    for each in meta.find_referenced_templates(ast) :        # find the (% includes %}

redpajama_set_name: RedPajamaStackExchange


text:
package apple.metalperformanceshaders;

import apple.NSObject;
import apple.foundation.NSArray;
import apple.foundation.NSCoder;
import apple.foundation.NSMethodSignature;
import apple.foundation.NSSet;
import apple.metal.protocol.MTLDevice;
import org.moe.natj.c.ann.FunctionPtr;
import org.moe.natj.general.NatJ;
import org.moe.natj.general.Pointer;
import org.moe.natj.general.ann.Generated;
import org.moe.natj.general.ann.Library;
import org.moe.natj.general.ann.Mapped;
import org.moe.natj.general.ann.NInt;
import org.moe.natj.general.ann.NUInt;
import org.moe.natj.general.ann.Owned;
import org.moe.natj.general.ann.Runtime;
import org.moe.natj.general.ptr.VoidPtr;
import org.moe.natj.objc.Class;
import org.moe.natj.objc.ObjCRuntime;
import org.moe.natj.objc.SEL;
import org.moe.natj.objc.ann.ObjCClassBinding;
import org.moe.natj.objc.ann.ProtocolClassMethod;
import org.moe.natj.objc.ann.Selector;
import org.moe.natj.objc.map.ObjCObjectMapper;

/**
 * MPSNNForwardLoss
 * [@dependency] This depends on Metal.framework.
 * <p>
 * The MPSNNForwardLoss filter specifies a version of the loss filter which separates the forward
 * computation from the gradient computation. In order to compute gradients for the loss filter
 * use @ref MPSNNLossGradient filter and in order to start the gradient computation of an arbitrary
 * image use the @ref MPSNNInitialGradient filter.
 * NOTE: This filter does not support non-default offset or cliprects and setting them to other
 * than default values will result in undefined results.
 */
@Generated
@Library("MetalPerformanceShaders")
@Runtime(ObjCRuntime.class)
@ObjCClassBinding
public class MPSNNForwardLoss extends MPSCNNKernel {
    static {
        NatJ.register();
    }

    @Generated
    protected MPSNNForwardLoss(Pointer peer) {
        super(peer);
    }

    @Generated
    @Selector("accessInstanceVariablesDirectly")
    public static native boolean accessInstanceVariablesDirectly();

    @Generated
    @Owned
    @Selector("alloc")
    public static native MPSNNForwardLoss alloc();

    @Owned
    @Generated
    @Selector("allocWithZone:")
    public static native MPSNNForwardLoss allocWithZone(VoidPtr zone);

    @Generated
    @Selector("automaticallyNotifiesObserversForKey:")
    public static native boolean automaticallyNotifiesObserversForKey(String key);

    @Generated
    @Selector("cancelPreviousPerformRequestsWithTarget:")
    public static native void cancelPreviousPerformRequestsWithTarget(@Mapped(ObjCObjectMapper.class) Object aTarget);

    @Generated
    @Selector("cancelPreviousPerformRequestsWithTarget:selector:object:")
    public static native void cancelPreviousPerformRequestsWithTargetSelectorObject(
            @Mapped(ObjCObjectMapper.class) Object aTarget, SEL aSelector,
            @Mapped(ObjCObjectMapper.class) Object anArgument);

    @Generated
    @Selector("classFallbacksForKeyedArchiver")
    public static native NSArray<String> classFallbacksForKeyedArchiver();

    @Generated
    @Selector("classForKeyedUnarchiver")
    public static native Class classForKeyedUnarchiver();

    @Generated
    @Selector("debugDescription")
    public static native String debugDescription_static();

    @Generated
    @Selector("delta")
    public native float delta();

    @Generated
    @Selector("description")
    public static native String description_static();

    @Generated
    @Selector("epsilon")
    public native float epsilon();

    @Generated
    @Selector("hash")
    @NUInt
    public static native long hash_static();

    @Generated
    @Selector("init")
    public native MPSNNForwardLoss init();

    @Generated
    @Selector("initWithCoder:")
    public native MPSNNForwardLoss initWithCoder(NSCoder aDecoder);

    /**
     * <NSSecureCoding> support
     */
    @Generated
    @Selector("initWithCoder:device:")
    public native MPSNNForwardLoss initWithCoderDevice(NSCoder aDecoder, @Mapped(ObjCObjectMapper.class) Object device);

    @Generated
    @Selector("initWithDevice:")
    public native MPSNNForwardLoss initWithDevice(@Mapped(ObjCObjectMapper.class) Object device);

    /**
     * Initialize the loss forward pass filter with a loss descriptor.
     *
     * @param device         The device the filter will run on.
     * @param lossDescriptor The loss descriptor.
     * @return A valid MPSNNForwardLoss object or nil, if failure.
     */
    @Generated
    @Selector("initWithDevice:lossDescriptor:")
    public native MPSNNForwardLoss initWithDeviceLossDescriptor(@Mapped(ObjCObjectMapper.class) MTLDevice device,
            MPSCNNLossDescriptor lossDescriptor);

    @Generated
    @Selector("instanceMethodForSelector:")
    @FunctionPtr(name = "call_instanceMethodForSelector_ret")
    public static native NSObject.Function_instanceMethodForSelector_ret instanceMethodForSelector(SEL aSelector);

    @Generated
    @Selector("instanceMethodSignatureForSelector:")
    public static native NSMethodSignature instanceMethodSignatureForSelector(SEL aSelector);

    @Generated
    @Selector("instancesRespondToSelector:")
    public static native boolean instancesRespondToSelector(SEL aSelector);

    @Generated
    @Selector("isSubclassOfClass:")
    public static native boolean isSubclassOfClass(Class aClass);

    @Generated
    @Selector("keyPathsForValuesAffectingValueForKey:")
    public static native NSSet<String> keyPathsForValuesAffectingValueForKey(String key);

    @Generated
    @Selector("labelSmoothing")
    public native float labelSmoothing();

    /**
     * See MPSCNNLossDescriptor for information about the following properties.
     */
    @Generated
    @Selector("lossType")
    public native int lossType();

    @Generated
    @Owned
    @Selector("new")
    public static native MPSNNForwardLoss new_objc();

    @Generated
    @Selector("numberOfClasses")
    @NUInt
    public native long numberOfClasses();

    @Generated
    @Selector("reductionType")
    public native int reductionType();

    @Generated
    @Selector("resolveClassMethod:")
    public static native boolean resolveClassMethod(SEL sel);

    @Generated
    @Selector("resolveInstanceMethod:")
    public static native boolean resolveInstanceMethod(SEL sel);

    @Generated
    @Selector("setDelta:")
    public native void setDelta(float value);

    @Generated
    @Selector("setEpsilon:")
    public native void setEpsilon(float value);

    @Generated
    @Selector("setLabelSmoothing:")
    public native void setLabelSmoothing(float value);

    @Generated
    @Selector("setVersion:")
    public static native void setVersion_static(@NInt long aVersion);

    /**
     * Dynamically adjustable parameters
     */
    @Generated
    @Selector("setWeight:")
    public native void setWeight(float value);

    @Generated
    @Selector("superclass")
    public static native Class superclass_static();

    @Generated
    @Selector("supportsSecureCoding")
    public static native boolean supportsSecureCoding();

    @Generated
    @ProtocolClassMethod("supportsSecureCoding")
    public boolean _supportsSecureCoding() {
        return supportsSecureCoding();
    }

    @Generated
    @Selector("version")
    @NInt
    public static native long version_static();

    /**
     * Dynamically adjustable parameters
     */
    @Generated
    @Selector("weight")
    public native float weight();

    @Generated
    @Selector("reduceAcrossBatch")
    public native boolean reduceAcrossBatch();
}

redpajama_set_name: RedPajamaGithub


text:
Q: Split a string twice in Kotlin I have a string and I want to split it based on the & and =
kit=xxxx&accountType=xxxxx&accountId=1234
I want accountId and it's value 1234 out of it. I have tried the below approach and feel it has more time complexity.
Could you please suggest better approach?
            myString = "kit=xxxx&accountType=xxxxx&accountId=1234"

            val queryComponents: List<String>? = myString?.split("&")?.map { it }
            queryComponents?.forEach { element ->
                if (element.contains(key)) {
                    val search = element.split("=").map { it }
                    print("key = " + search[0] + "value = " + search[1])
                }
            }

A: Your approach is fine, but your code is pretty hard to read. We can split by & first and then by = which is probably the easiest to understand:
val accountId = myString.splitToSequence('&')
    .map { it.split('=') }
    .find { it[0] == "accountId" }
    ?.get(1)

Or we can split only once and then search for = using string utils. This could be a little faster as we don't create additional lists of strings:
val accountId = myString.splitToSequence('&')
    .find { it.startsWith("accountId=") }
    ?.takeLastWhile { it != '=' }

Note that by using splitToSequence() we split by & only until we find accountId=. Then we end the loop.
It could be even faster to not split at all and just search the string for &accountId=. Or use regular expressions. It would require to take into account multiple cases: accountId= is at the beginning, at the end or in the middle.
Anyway, I believe all these solutions have exactly the same time complexity of O(n).

A: val myString = "kit=xxxx&accountType=xxxxx&accountId=1234"

val components = myString
  .split("&", "=", ignoreCase = true)
  .chunked(2) { it[0] to it[1] }
  .toMap()

println(components["accountId"])


The Vestry is composed of twelve parish members who work with clergy, staff, and parishioners to oversee and implement church policies, programming, and ministry. Working committees of the Vestry include Finance and Stewardship, Buildings and Grounds, Pastoral Care, Outreach, and more.
At Christ Church, vestry members are elected to a three-year term at the Annual Meeting held in January. One-third of the Vestry finishes their term each year, to be replaced by newly elected members.
The head of the Vestry is the Senior Warden, who is responsible for running meetings with the rector. The Christ Church Vestry generally meets the fourth Thursday of each month at 6:00 pm, and any parishioner is welcome to attend.


"They go into shops at the same time," said Sarah Burton, to explain her canny alignment of McQueen's huge (250-piece) pre-fall collection for women with the men's collection she showed in Milan the other day. So you could find the same hints of regimental dressing, the same military touches. Well, "hints" is misleading, because the overwhelming impression was anything but understated. A navy officer's coat swagged with gold? Sailor pants reconfigured as a dress through the magic of trompe l'oeil? A slender pantsuit of navy felt trimmed with red, which switched the gender of Manet's immortal Drummer Boy? They were merely the beginning. Burton pointed to some decorative elements on lapels and necklines and said they'd been inspired by the Order of the Garter, one of the highest honors that British royalty can bestow. But her version had the extravagant exuberance of Louis XIV and the Sun King's court.
The designer also said she was getting more comfortable with working on the stand, like McQueen himself used to, and one bias-cut beauty—maybe it started life as an officer's coat, but it had been dissected and draped diagonally across the body, with a bodice of crusted crystal and gold beading attached—was all it took to prove Burton right.


Dr. Marsh has performed over 4000 facial procedures.
Although risks are part any surgery, they are extremmely rare in Dr Marshs hands. Dr. Marsh has preformed over 4000 Facial Procedures & 5000 Eyelid procedures.
Dr. Marsh and/or staff will explain in detail the risks associated with surgery. You will be asked to sign consent forms to ensure that you fully understand the procedure you will undergo and any risks and potential complications.
Be sure to ask questions: It's very important to ask Dr. Marsh questions about your facelift procedure. It's natural to feel some anxiety, whether it's excitement for your anticipated new look or a bit of preoperative stress. Don't be shy about discussing these feelings with Dr. Marsh.
If you experience shortness of breath, chest pains, or unusual heart beats, call Dr. Marsh's office immediately.
Click on an image below to view the Post-Operative Instructions.
When choosing a plastic surgeon for facelift surgery, remember that the Dr. Marsh's experience and your comfort with him is just as important as the final cost of the surgery.
Anesthesia: Dr. Marsh uses IV sedation and local anesthesia rather than general anesthesia. Therefore there is no tube in the patients throat & rarely post-op nausea.


text:
  - [Prerequisites](#prerequisites)
  - [Examples](#examples)
    - [Volumes](#volumes)
    - [Persistent Volumes](#persistent-volumes)
    - [Storage Class](#storage-class)

## Prerequisites

- Kubernetes with vSphere Cloud Provider configured.
  For cloudprovider configuration please refer [vSphere getting started guide](http://kubernetes.io/docs/getting-started-guides/vsphere/).

## Examples

### Volumes

  1. Create VMDK.

      First ssh into ESX and then use following command to create vmdk,

      ```shell
      vmkfstools -c 2G /vmfs/volumes/datastore1/volumes/myDisk.vmdk
      ```

  2. Create Pod which uses 'myDisk.vmdk'.

     See example

     ```yaml
        apiVersion: v1
        kind: Pod
        metadata:
          name: test-vmdk
        spec:
          containers:
          - image: gcr.io/google_containers/test-webserver
            name: test-container
            volumeMounts:
            - mountPath: /test-vmdk
              name: test-volume
          volumes:
          - name: test-volume
            # This VMDK volume must already exist.
            vsphereVolume:
              volumePath: "[datastore1] volumes/myDisk"
              fsType: ext4
     ```

     [Download example](vsphere-volume-pod.yaml?raw=true)

     Creating the pod:

     ``` bash
     $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pod.yaml
     ```

     Verify that pod is running:

     ```bash
     $ kubectl get pods test-vmdk
     NAME      READY     STATUS    RESTARTS   AGE
     test-vmdk   1/1     Running   0          48m
     ```

### Persistent Volumes

  1. Create VMDK.

      First ssh into ESX and then use following command to create vmdk,

      ```shell
      vmkfstools -c 2G /vmfs/volumes/datastore1/volumes/myDisk.vmdk
      ```

  2. Create Persistent Volume.

      See example:

      ```yaml
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv0001
      spec:
        capacity:
          storage: 2Gi
        accessModes:
          - ReadWriteOnce
        persistentVolumeReclaimPolicy: Retain
        vsphereVolume:
          volumePath: "[datastore1] volumes/myDisk"
          fsType: ext4
      ```

      [Download example](vsphere-volume-pv.yaml?raw=true)

      Creating the persistent volume:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pv.yaml
      ```

      Verifying persistent volume is created:

      ``` bash
      $ kubectl describe pv pv0001
      Name:		pv0001
      Labels:		<none>
      Status:		Available
      Claim:
      Reclaim Policy:	Retain
      Access Modes:	RWO
      Capacity:	2Gi
      Message:
      Source:
          Type:	vSphereVolume (a Persistent Disk resource in vSphere)
          VolumePath:	[datastore1] volumes/myDisk
          FSType:	ext4
      No events.
      ```

  3. Create Persistent Volume Claim.

      See example:

      ```yaml
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: pvc0001
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 2Gi
      ```

      [Download example](vsphere-volume-pvc.yaml?raw=true)

      Creating the persistent volume claim:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pvc.yaml
      ```

      Verifying persistent volume claim is created:

      ``` bash
      $ kubectl describe pvc pvc0001
      Name:		pvc0001
      Namespace:	default
      Status:		Bound
      Volume:		pv0001
      Labels:		<none>
      Capacity:	2Gi
      Access Modes:	RWO
      No events.
      ```

  3. Create Pod which uses Persistent Volume Claim.

      See example:

      ```yaml
      apiVersion: v1
      kind: Pod
      metadata:
        name: pvpod
      spec:
        containers:
        - name: test-container
          image: gcr.io/google_containers/test-webserver
          volumeMounts:
          - name: test-volume
            mountPath: /test-vmdk
        volumes:
        - name: test-volume
          persistentVolumeClaim:
            claimName: pvc0001
      ```

      [Download example](vsphere-volume-pvcpod.yaml?raw=true)

      Creating the pod:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pvcpod.yaml
      ```

      Verifying pod is created:

      ``` bash
      $ kubectl get pod pvpod
      NAME      READY     STATUS    RESTARTS   AGE
      pvpod       1/1     Running   0          48m
      ```

### Storage Class

  __Note: Here you don't need to create vmdk it is created for you.__
  1. Create Storage Class.

      Example 1:

      ```yaml
      kind: StorageClass
      apiVersion: storage.k8s.io/v1beta1
      metadata:
        name: fast
      provisioner: kubernetes.io/vsphere-volume
      parameters:
          diskformat: zeroedthick
      ```

      [Download example](vsphere-volume-sc-fast.yaml?raw=true)

      You can also specify the datastore in the Storageclass as shown in example 2. The volume will be created on the datastore specified in the storage class.
      This field is optional. If not specified as shown in example 1, the volume will be created on the datastore specified in the vsphere config file used to initialize the vSphere Cloud Provider.

      Example 2:

      ```yaml
      kind: StorageClass
      apiVersion: storage.k8s.io/v1beta1
      metadata:
        name: fast
      provisioner: kubernetes.io/vsphere-volume
      parameters:
          diskformat: zeroedthick
          datastore: VSANDatastore
      ```

      [Download example](vsphere-volume-sc-with-datastore.yaml?raw=true)
      Creating the storageclass:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-sc-fast.yaml
      ```

      Verifying storage class is created:

      ``` bash
      $ kubectl describe storageclass fast
      Name:		fast
      Annotations:	<none>
      Provisioner:	kubernetes.io/vsphere-volume
      Parameters:	diskformat=zeroedthick
      No events.
      ```

  2. Create Persistent Volume Claim.

      See example:

      ```yaml
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: pvcsc001
        annotations:
          volume.beta.kubernetes.io/storage-class: fast
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 2Gi
      ```

      [Download example](vsphere-volume-pvcsc.yaml?raw=true)

      Creating the persistent volume claim:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pvcsc.yaml
      ```

      Verifying persistent volume claim is created:

      ``` bash
      $ kubectl describe pvc pvcsc001
      Name:		pvcsc001
      Namespace:	default
      Status:		Bound
      Volume:		pvc-80f7b5c1-94b6-11e6-a24f-005056a79d2d
      Labels:		<none>
      Capacity:	2Gi
      Access Modes:	RWO
      No events.
      ```

      Persistent Volume is automatically created and is bounded to this pvc.

      Verifying persistent volume claim is created:

      ``` bash
      $ kubectl describe pv pvc-80f7b5c1-94b6-11e6-a24f-005056a79d2d
      Name:		pvc-80f7b5c1-94b6-11e6-a24f-005056a79d2d
      Labels:		<none>
      Status:		Bound
      Claim:		default/pvcsc001
      Reclaim Policy:	Delete
      Access Modes:	RWO
      Capacity:	2Gi
      Message:
      Source:
          Type:	vSphereVolume (a Persistent Disk resource in vSphere)
          VolumePath:	[datastore1] kubevols/kubernetes-dynamic-pvc-80f7b5c1-94b6-11e6-a24f-005056a79d2d.vmdk
          FSType:	ext4
      No events.
      ```

      __Note: VMDK is created inside ```kubevols``` folder in datastore which is mentioned in 'vsphere' cloudprovider configuration.
      The cloudprovider config is created during setup of Kubernetes cluster on vSphere.__

  3. Create Pod which uses Persistent Volume Claim with storage class.

      See example:

      ```yaml
      apiVersion: v1
      kind: Pod
      metadata:
        name: pvpod
      spec:
        containers:
        - name: test-container
          image: gcr.io/google_containers/test-webserver
          volumeMounts:
          - name: test-volume
            mountPath: /test-vmdk
        volumes:
        - name: test-volume
          persistentVolumeClaim:
            claimName: pvcsc001
      ```

      [Download example](vsphere-volume-pvcscpod.yaml?raw=true)

      Creating the pod:

      ``` bash
      $ kubectl create -f examples/volumes/vsphere/vsphere-volume-pvcscpod.yaml
      ```

      Verifying pod is created:

      ``` bash
      $ kubectl get pod pvpod
      NAME      READY     STATUS    RESTARTS   AGE
      pvpod       1/1     Running   0          48m
      ```

<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/volumes/vsphere/README.md?pixel)]()
<!-- END MUNGE: GENERATED_ANALYTICS -->


Welcome to the Radisson Media Harbor Hotel in Dusseldorf !!!
This eco-friendly hotel is located in Duesseldorf (Unterbilk), close to Harbor Bridge, Neuer Zollhof, and Rhine Tower. Also nearby are Duesseldorf City Hall and Museum Kunstpalast.
In addition to a restaurant, Radisson Blu Media Harbour Hotel, Düsseldorf features a sauna. Other amenities include a bar/lounge and a coffee shop/café.
Flat-screen televisions come with cable channels. Guestrooms also feature complimentary wireless Internet access, air conditioning, and premium bedding.
Radisson Blu Media Harbour Hotel, Düsseldorf features a sauna and a fitness center. The hotel offers a restaurant and a coffee shop/café. A bar/lounge is on site where guests can unwind with a drink. High-speed wireless Internet access is complimentary.
2 meeting rooms are available. This eco-friendly hotel also offers multilingual staff, concierge services, and complimentary newspapers in the lobby.


Designed in collaboration with world-famous blogger and makeup artist Maya Janeska, the Maya Mia Palette by Anastasia Beverly Hills contains 10 gorgeous eyeshadow shades that coordinate flawlessly. Each buildable hue wears wet to dry with intense color payoff and a velvety-smooth, long-wearing finish. The refreshing neutral hues combine with two pops of color to create the ideal palette for summertime looks with a hint of mod style.


…they saved their best for last! And then the party of course… Farewell Baghdaddy Actors Temple run, you were good to us all.
What a run! We shall return!
Baghdaddy rocks the Booktress launch party!
We just made New York Theater Guide's Top 5 Shows of the Week!
We're a NY Times Critics Pick!
We just got a rave in the NY Times plus a Critics Pick! This run now has officially exceeded our wildest expectations. Our other reviews have been amazing but I didn't want to jinx it!
Opening weekend went better than any of us could have expected! So proud of everyone involved.


ProQuest has launched The John Johnson Collection: An Archive of Printed Ephemera. The Joint Information Systems Committee (JISC) funded a unique partnership between ProQuest and the Bodleian Library to digitise more than 65,000 items from the Bodleian Library's John Johnson Collection of Printed Ephemera.  The John Johnson Collection: An Archive of Printed Ephemera, which will be the largest collection of its kind, is now available free of charge to all staff and students in colleges and universities in the UK through funding from the JISC Digitisation Programme, and available through ProQuest for purchase and subscription to libraries worldwide.
"Until now the materials in The John Johnson Collection of Printed Ephemera in the Bodleian Library have remained largely hidden to scholars and researchers" said Mary Sauer-Games, ProQuest's Vice-President of Publishing for Chadwyck-Healey. "We are very pleased to work with both the Bodleian Library and JISC to conserve, catalogue, and digitise this highly prized evidence of Britain's cultural, social, industrial, and technological heritage. Ephemera provide scholars and educators with a wholly untouched record of the past."
Richard Ovenden, Associate Director and Keeper of Special Collections, Bodleian Library, said: "Regarded as the most significant single collection of ephemera in the UK, The John Johnson Collection of Printed Ephemera has been one of Bodleian's least known treasures. Through the digitisation programme we are now able to make this valuable primary resource available to researchers and the general public worldwide."
Alastair Dunning, JISC digitisation programme manager said, "The academic value of printed ephemera is often overlooked, so providing digital access to such a collection will open up new historical perspectives. When this resource is combined with other collections currently being digitised with JISC funding, it will have a significant impact on the scholarly landscape."
Housed in the Bodleian Library at Oxford University, the John Johnson Collection of Printed Ephemera is widely recognized as one of the most important collections of printed ephemera in the world, and generally regarded as the most significant single collection of ephemera in the UK. The John Johnson Collection of Printed Ephemera, ranging in date from 1508-1939, spans a wide range of printing and social history. It was assembled by John de Monins Johnson (1882-1956), Printer to the University, who was visionary in his preservation of Britain's vulnerable paper heritage.
This new online collection, The John Johnson Collection: An Archive of Printed Ephemera makes available a wide array of rare or unique archival materials documenting various aspects of everyday life in Britain in the nineteenth century and before. The collection features playbills, programmes and handbills for theatrical and non-theatrical entertainments, broadsides relating to murders and executions, book prospectuses, popular and topographical prints, and a wealth of different kinds of printed advertising material. The collection will form an invaluable resource for anyone interested in the histories of consumption, leisure, gender, popular and commerce. As each item will be presented as a full-colour facsimile, it will also be invaluable for researchers studying the development of printing and visual culture in modern Britain.
Booktrade material - examples include publishing material (e.g. prospectuses of books and journals) and bookplates. The former items will be of interest to anyone studying the history of the publishing industry, or the reception of certain kinds of thought or learning during the period; the latter will prove invaluable to those interested in the provenance of books, or in design history.
Crime, Murders, and Executions - a mixture of single sheets and pamphlets. These resources give insights into the judicial system, and punishment, notably the application of the death penalty and of transportation. The Murders and Executions broadsides are currently highly popular with a variety of researchers (women and crime, iconography of the woodcuts, etc).
Advertising - social and economic historians, historians of popular culture, trades and industries, students of typographic design and many others will find that these items offer important insights into the past.
This project forms part of the current Digitisation Programme of the UK higher education body, the Joint Information Systems Committee (JISC) The JISC programme represents a total investment of nearly £22m in the digitisation of high-quality online content in a wide range of media, including sound, film, images, journals, newspapers, maps, theses, pamphlets and cartoons.


text:
Q: Why would hibernate not close its session after select query? When calling the following method 10 times there are 11 open sessions on the database:
public void readHsql() {
        SessionFactory sessionFactory = getSessionFactory();
        if (sessionFactory != null) {
            try (Session session = sessionFactory.openSession()) {
                String queryString = "select r from Role r where r.name='test'";
                Query<Role> query = session.createQuery(queryString, Role.class);
                List<Role> list = query.getResultList();
            } catch (Exception e) {
                System.err.println("Error");
            }
        } else {
            System.err.println("Error");
        }
    }

On each iteration of the calling loop there is one more session. When stopping the java application the sessions are gone again.
Why does a session not close when leaving the try-catch-block, I thought this should be done by Autoclosable?
Also calling .close() or .disconnect() does not seem to change anything.
Is there anything to configure or any annotation to avoid this using hibernate 5.4.12.Final?

A: Since getSessionFactory() is the only part not under control of hibernate I checked this one and found out that my implementation was not thread safe and under some circumstances returned multiple session factory instances for the same target which resulted in a growing number of sessions.


[увійдіть, щоб побачити URL] is a student company that prints biodegradable phone cases. We are looking for a designer that can make CAD files for the iPhone 7+,8,XR, and the Pixel 3. The file would also have the company logo engraved on the back. Attached below is the previous file we had created, without the logo.
You will get paid $4.00/hr. You must produce resul...This is just to test your skill. You must have internet based calling ability to make phone calls to the US to land line and cell phones. Your first job is to compile email addresses of Land Infra-Structure Developers, General Contractors, GC, Subs. email addresses. I will send you the detail later.


text:
The Ninty Times
Bringing the sizziling news DIRECTLY to you
Diablo III Eternal Collection Coming to Switch, Will Feature Nintendo-exclusive Items
August 16, 2018 / Kevin
Blizzard's Diablo III is coming to the Switch later this year.
Blizzard is bring the critically acclaimed Diablo III onto the Nintendo Switch later this year.
The company announced it will bring the 'Diablo III Eternal Collection' edition, the definite version of the game, containing expansions of previous paid downloadable content found on other platforms. The Nintendo Switch version will feature content loaded only found in this version of the game.
Expect to see exclusive items like The Legend of Zelda Ganandorf cosmetic armor set (pictured above) for you to play with. The game is currently slated for a 'Fall 2018' release per Blizzard. You can pre-order the game at these retailers below.
DIABLO® III ETERNAL COLLECTION™ BRINGS THE LEGENDARY ACTION RPG TO NINTENDO SWITCH®
The definitive version of Blizzard Entertainment's acclaimed Diablo III includes all the features and content from every expansion and update as well as bonus items exclusive to Nintendo Switch
IRVINE, Calif.—August 16, 2018—The minions of Hell have grown unfathomably strong since Diablo® III's release, but lucky for the High Heavens, reinforcements are on the way. Later this year, Nintendo Switch players the world over will join the fray with the Diablo III Eternal Collection™ and wield their systems' portable power to slay demons and amass vast hoards of loot anytime, anywhere.
The Eternal Collection is the definitive edition of the award-winning action RPG, including everything from the original Diablo III, the critically-acclaimed Reaper of Souls® expansion, and the Rise of the Necromancer® pack. With seven powerful character classes, a five-act campaign that spans the lore-rich and demon-infested world of Sanctuary, and an endlessly replayable Adventure Mode, the Eternal Collection is the perfect all-in-one package to introduce newcomers to a lifetime of adventure.
The Eternal Collection for the Nintendo Switch incorporates the system's flexibility and versatility into its design. Whether using a Joy-Con™ controller or a Nintendo Switch Pro Controller, players will have an awe-inspiring assortment of demon-slaying powers at their fingertips, thanks to intuitive, ultra-responsive controls custom-built for Nintendo Switch. And true to the spirit of the Diablo series, players will also have a wealth of options when it comes to cleansing Sanctuary cooperatively—up to four players can band together to engage in grand multiplayer crusades, whether they're sharing a screen on a single Nintendo Switch, linking their systems together wirelessly, or teaming up through the Nintendo Switch Online* service.
"The Eternal Collection is the definitive version of Diablo III, and we're thrilled to team up with Nintendo to unleash it for Nintendo Switch gamers around the world later this year," said Mike Morhaime, CEO and cofounder of Blizzard Entertainment. "Bringing the world together through epic entertainment is core to our mission at Blizzard—we can't wait to welcome a new generation of demon-slayers to Sanctuary."
"At Nintendo, we're huge fans of rich and compelling games that speak to players around the world," said Reggie Fils-Aime, Nintendo of America President and COO. "By partnering with companies like Blizzard, we're able to create new ways of engaging with beloved content. Blizzard and Nintendo share a commitment to redefining the way people play games, and with Diablo III Eternal Collection for Nintendo Switch, that means players can now explore the vast world of Sanctuary anytime they like, and anywhere they go."
Diablo III is the fastest-selling PC game of all time**. The Reaper of Souls expansion introduced the mighty Crusader class, the infinitely-replayable Adventure Mode, and a host of other game-defining features, like the random loot-filled Nephalem Rift dungeons. In 2017, Rise of the Necromancer resurrected the fan-favorite Necromancer class from Diablo II, bolstering players' forces with the gruesome powers of blood and bone. All of this is included in Diablo III Eternal Edition for the Nintendo Switch system, on top of platform-exclusive bonus items, like The Legend of Ganondorf cosmetic armor set, inspired by the iconic villain from The Legend of Zelda series.
Diablo III Eternal Collection for Nintendo Switch will be available later this year at retail stores everywhere and digitally through the Nintendo eShop. Gamers in North America and Europe will be able to get an early look at Diablo III Eternal Collection this August at Gamescom in Cologne, Fan Expo in Toronto, and PAX West in Seattle
All Nintendo news, Switch
Blizzard, Diablo III, Diablo III Eternal Collection, Switch
← Red Dead Redemption 2 Gameplay Video Dropping August 9
Dark Souls: Remastered Arrives on Nintendo Switch October 19 →
Leave a comment below Cancel reply
View /thenintytimes's profile on Facebook
View /nintytimes's profile on Twitter
View thenintytimes's profile on Instagram
View UCVahKB2GL2N1IEQKXngcevw's profile on YouTube
All Nintendo news
Nintendo Weekly Download
Readers Notes
The Next Installment of Detective Pikachu is Coming to Nintendo Switch
Cadence of Hyrule Could Launch This Week According to Dataminers
Here's Every Game Included Within the Contra Anniversary Collection
Nintendo Switch Has Officially Outsold the PS4 in Japan
Nintendo E3 Direct Presentation Will Air on June 11

redpajama_set_name: RedPajamaCommonCrawl


I feel lucky enough to be surrounded by so many people that I greet with the phrase "hello lovely". It makes me smile, it fills my heart that little bit more and I love hearing it too.
This print also makes a great gift as a little artwork for a baby's nursery.


text:
Q: proguard copying methods in interface after decompiling my interface i found out that proguard duplicated my implemented method in the upper level interface that is somehow a class on its own right.
here's how my interface looks like after obfuscation (note that proguard even added the annotation from the implementation)
package com.company.project.f.a.a;

import java.util.List;
import org.apache.log4j.Logger;

@Component(value="ServiceImpl")
public class a
{

    public b a(int i)
    {
        if((i = b.a(i)) != null)
        {
            if(i.size() == 0)
            {
                a_.fatal("It is expected at least one record.");
                return null;
            } else
            {
                return (b)i.get(0);
            }
        } else
        {
            return null;
        }
    }

    public a()
    {
        a_ = Logger.getLogger(getClass());
    }

    public com.company.project.b.a.a a()
    {
        return b;
    }

    public void a(com.company.project.b.a.a a1)
    {
        b = a1;
    }

    private com.company.project.b.a.a b;
    Logger a_;
}

same issue happened with the class below (proguard transforming the interface into a class with the same component name)
@Component("testDao")
public class TestDaoImpl implements TestDao {

    @Override
    public void testing() {
        // TODO Auto-generated method stub

    }

A: solved it :
according to mr eric lafortune , the optimizer is merging interface and class .
so i used
-dontoptimize


text:
Home » People » Tess Davis
Tess Davis
Tess Davis is an Affiliate Researcher in the Scottish Centre for Crime and Justice Research at the University of Glasgow.
Tess comes to this project from the Lawyers' Committee for Cultural Heritage Preservation — a not-for-profit institution based in the United States — where she was Executive Director until 2012. She previously worked for the nongovernmental organization Heritage Watch in Cambodia, first as Project Coordinator, and finally Assistant Director. Her career began at the Archaeological Institute of America.
For the past decade, Tess has devoted herself to fighting the pillage of ancient sites and trafficking of artifacts, particularly in Southeast Asia. She's conducted extensive research on the illicit trade in Cambodian antiquities. She also conceptualized and implemented a number of exciting projects in the country, including an exhibition at Angkor Wat about threats facing the temple, a hotline for the public to report archaeological discoveries or looting, and a children's book on preservation entitled "If the Stones Could Speak". More recently, Tess spearheaded the creation of a heritage law database, as well as a legal internship program there. Due to this and her other work, she has been interviewed by CNN, the New York Times, the Los Angeles Times, the Public Broadcasting Station (PBS), Voice of America (VOA), the Australian Broadcasting Corporation (ABC) the Phnom Penh Post, and the Cambodia Daily, among other national and international media outlets.
While at the University of Glasgow, Tess aims to better comprehend the laundering of antiquities, by tracing their journey from the ground in Cambodia, through the illicit and licit markets, to their stopping point in private and public collections. She will focus on a single style of statuary from a single site, Koh Ker, the brief capital of the Khmer Empire. Due to its remoteness, the temple complex was only "rediscovered" in the late 19th century and remained largely untouched until 1970, when Cambodia plummeted into decades of civil war, genocide, and foreign occupation. During that time, throughout the turn of the millennium, the site was heavily plundered. For these reasons and others, it presents an opportunity to supplement other studies in the field, ask broader questions about trafficking, and seek to answer them.
Tess graduated magna cum laude from Boston University with a Bachelor Arts in Archaeology and earned her Juris Doctor from the University of Georgia School of Law. She now serves on the Advisory Board of Heritage Watch and the Ocean Foundation and is Vice Chair of the American Society of International Law's Cultural Heritage and the Arts Interest Group. She is admitted to the New York State Bar, Third Department, and is a member of the New York State Bar Association.
Tess is the research lead on From Illicit to Licit: The Laundering of Looted Antiquities into Legitimate Artworks.
Davis, T. and S. Mackenzie (2019), 'The International Politics of Cultural Heritage Crime in Cambodia: Past, Present and Future', in S. Hufnagel and D. Chappell (eds.), The Palgrave Handbook on Art Crime. London: Routledge, 751–767.
Davis, T. and Mackenzie, S. (2014) 'Crime and Conflict: Temple Looting in Cambodia'. In J. Kila and M. Balcells (eds) Cultural Property Crimes: an overview and analysis on contemporary perspectives and trends (Brill: Leiden) 292–306.
Davis, T. (2014), "From Babylon to Baghdad: Cultural Heritage and Constitutional Law in the Republic of Iraq", International Journal of Cultural Property 21: 445–463.
Mackenzie, S. and Davis, T. (2014), 'Temple Looting in Cambodia Anatomy of a Statue Trafficking Network', British Journal of Criminology, 54: 722–740.
Davis, T. (2013), Letter to the Cultural Property Advisory Committee on the proposed second extension of the Memorandum of Understanding Between the Government of the Kingdom of Cambodia and the Government of the United States of America, 6 February.
Vlasic, M., and Davis, T. (2013) 'When Museums do the Right Thing', International Herald Tribune, 17 May.
Davis, T. (2012), 'Cambodia's looted treasures', Los Angeles Times, 25 April.
Vlasic, M., and Davis, T. (2012), 'Should Cambodian "blood antiquities" be returned?', CNN, 7 June.
Davis, T. (2011), 'Supply and demand: exposing the illicit trade in Cambodian antiquities through a study of Sotheby's auction house', Crime, Law and Social Change 56 (2), 155-174.
Affiliate Researcher
SCCJR, School of Social and Political Sciences, University of Glasgow
tess.davis@glasgow.ac.uk


text:
TITLE="mweave - a light weight literate programming tool"

function cleanUpHTML() {
	findfile -s ".html" . | while read -r P; do
		rm "$P"
	done
}

function FindNavMD() {
	DNAME="$1"
	if [ -f "${DNAME}/nav.md" ]; then
		echo "${DNAME}/nav.md"
		return
	fi
	DNAME=$(dirname "${DNAME}")
	FindNavMD "${DNAME}"
}

# Cleanup stale HTML files
cleanUpHTML

# Look through files and build new site
TITLE=""
if [[ "${1}" != "" ]]; then
	TITLE="${1}"
fi

echo "Building index.html from README.md and nav.md"
mkpage "title=text:${TITLE}" "nav=nav.md" "content=README.md" page.tmpl >index.html
git add index.html

echo "Building license.html from LICENSE and nav.md"
mkpage "title=text:${TITLE}" "nav=nav.md" "content=markdown:$(cat LICENSE)" page.tmpl >license.html
git add license.html

echo "Building install.html from INSTALL.md and nav.md"
mkpage "title=text:${TITLE}" "nav=nav.md" "content=INSTALL.md" page.tmpl >install.html
git add install.html

findfile -s ".md" . | while read -r P; do
	DNAME="$(dirname "$P")"
	FNAME=$(basename "$P")
	PREFIX="${DNAME:0:4}"

	if [[ "${PREFIX}" == "dist" || "${PREFIX}" == "test" || "${FNAME}" == "nav.md" || "${FNAME}" == "README.md" || "${FNAME}" == "INSTALL.md" || "${FNAME}" == "TODO.md" || "${FNAME}" == "IDEAS.md" ]]; then
		# Skip render
        #echo "Skipping $P"
        echo -n ""
	else
		HTML_NAME="${DNAME}/$(basename "$FNAME" ".md").html"
		NAV=$(FindNavMD "$DNAME")
		echo "Building $HTML_NAME from $DNAME/$FNAME and $NAV"
		mkpage "title=text:${TITLE}" "nav=${NAV}" "content=${DNAME}/${FNAME}" page.tmpl >"${HTML_NAME}"
		git add "${HTML_NAME}"
	fi
done


text:
We attribute our success to staying in touch with the needs of our customers and community. Product research and development is an ongoing collaboration between in-house engineers and lighting professionals in the field and this collaboration is largely to thank for our status as a major industry innovator and intellectual property holder.
As members of the entertainment community, we know reliability is paramount. We maintain rigorous manufacturing standards, while providing industry-leading customer support services.
ETC and High End together, known for innovation and creativity, promise to bring bigger and better things to you for many, many years to come.
High End Systems Inc. began as a grassroots venture in Austin, TX between a musician, a DJ, and a photographer. Our mission has always been to provide quality lighting products with great service. We've gone on to become a global industry leader and innovative force by introducing a series of ground-breaking new technologies that helped define the industry.
The Color Pro color-changing luminaire with dichroic glass filters offered a longer-lasting, color-rich alternative to traditional gels. Our dichroic lab was created specifically to maintain strict color tolerances for this and other products to come.
Our automated Intellabeam moving mirror fixture arrived and soon became an industry standard. Its use on Dire Straits' 1991 tour propelled us into the concert touring industry.
In 1992 High End Systems introduced the Trackspot, an affordable and reliable automated luminaire that brought intelligent lighting to a massive group of new users. With its $6 lamp, Trackspot redefined value in the entertainment lighting industry; in fact most Trackspots are still in use today!
The Cyberlight automated luminaire answered the industry call for more power and reliability. It offered many new advanced features, as well as unprecedented accuracy and manageability in a moving mirror fixture. The Cyberlight also featured the first LithoPatterns, a ground-breaking advancement in optical film from our own optical lab.
The Studio Color 575 became the first moving-yoke wash fixture widely available for purchase. Its versatility, power and quiet operation made it a touring favorite but also appealed to new markets, such as television, film and theatre.
A year after the introduction of the seminal Studio Color wash light, High End released the Studio Spot 575, a companion hard-edged fixture that completed the company's moving yoke arsenal.
The award-winning Wholehog lighting control system family, became part of the High End Systems product line with the acquisition of Flying Pig Systems. This gave customers a completely integrated lighting and control solution.
High End's first new fixture of the new millennium was the x.Spot (later the x.Spot Extreme) which offered an unprecedented feature set and made a dramatic impact on the industry.
High End Systems blazed new trails into the world of digital lighting, introducing the Catalyst Media Server.
The DL.1 digital light engine was introduced to complement the Catalyst Media Server and offered lighting designers an unprecedented level of creativity, flexibility and efficiency. For the theatre market, High End Systems introduced two gel-free products: ColorCommand dichroic color-mixing wash luminaire and the ColorMerge dichroic color mixing accessory for the ETC Source Four, both providing color that never fades.
The DL.2 digital light engine was introduced. With its integrated media server, lighting designers were offered an efficient and more powerful tool for creativity.
High End Systems surprised the industry by debuting a new automated wash luminaire, the Studio Command 700. The industry's first hybrid console, Hog iPC, was unveiled to popular acclaim, allowing programmers to use two different software platforms on one console.
The highly-anticipated Hog3PC were released, offering programmers even more control choices. Catalyst v4 Media Server and Software was also introduced, adding even more features and effects to what has become an industry-standard media server for digital content. Studio Command H, the Halogen version, and Studio Command 1200 debuted to offer professionals even more choices in automated wash luminaires. The Axon Media Server also answered a need, offering the graphics engine of the DL.2 but in a rack-mount version.
A new breed of Hog, the Road Hog console, debuted in spring to offer powerful control for smaller shows and at a price that's just right. The Hog family continues to grow... Meanwhile in June, HES unveiled the SHOWGUN, a hybrid automated luminaire that offers hard edge and soft edge wash beams, all in one compact unit. An LED Tracking System encircling the lens gives the fixture a unique look. The year ended with the launch of the Road Hog and Full Boar consoles, offering users more expandability.
DL.3 takes digital lighting to the next level with a higher output and new features. Plus, a new product category is born: Pixelation Luminaires. The first LED product in this category debuted as SHOWPIX, with a smaller version, StudioPix, joining it a few months later. SHOWGUN 2.5 also debuted, offering 30 percent more light output than its predecessor. In June High End Systems was acquired by Belgium-based Barco Inc. High End Systems remains close to its roots, developing new technology in tandem with experts in the field. We remain dedicated to serving the industry as well as shaping its future. Hog 3 ran the video servers for the 2008 Beijing Olympics.
In 2012, High End Systems launched the latest breed of Wholehog consoles, the HOG4. An instant hit in the lighting industry, HOG4 desks immediately found their way to countless concert tours, television studios and mega-events like the Olympics. Since its launch, HES software engineers have diligently rolled out new OS versions of this state-of-the-art control platform.
The game-changing SolaSpot Pro CMY was introduced in 2013, marking the company's shift to all LED lighting products. LD's found the fixture's bright white LED engine and HES dichroic filters to be a perfect match in this new LED world.
The Hog 4 was selected to operate the 2014 Olympics opening ceremonies and the SolaSpot CMY debuted.
SolaSpot Pro 1500, the company's new 'go-to' workhorse automated spot luminaire was released, and designers could now clearly see that LED automated fixtures can compete with metal halide lamp sources.
High End launched the flagship automated spot luminaire, SolaSpot 2000.
High End Systems was acquired by Wisconsin based ETC. High End and ETC share many core company values including a focus on customer service and product innovation. With ETC, High End gains an expanded platform of creativity and forward thinking. We promise to use our new resources to bring you great new live-event tools in the future.
With their 37,000+ lumen output and powerful feature sets, the SolaFrame 3000 and SolaSpot 3000 ushered in a new era of high intensity LED luminaires.
Subscribe to our Newsletter and other News
Patents | Privacy, Cookies, and Terms of Use Policies | Warranty | Terms & Conditions | Contact Us | Sitemap
High End Systems © 2020


Maine Savings' mission is to be a safe, sound, and secure organization providing exceptional financial solutions and extraordinary service as the preferred financial institution for all members, and to create an opportunity for our employee members to thrive in a challenging and exciting environment.
We promise to be passionate about providing extraordinary service with professional, knowledgeable people who genuinely care about your financial well-being. We will continually exceed your expectations and guarantee to treat you like you own the place, because you do!
Maine Savings Federal Credit Union was founded in Millinocket in 1961, as BARCO Federal Credit Union for the Bangor & Aroostook Railroad Company. The evolution and growth of the financial institution prompted the changing of our name to Maine Savings Federal Credit Union in 2001. In present day, we are one of the largest credit unions in Maine with more than $360 million in assets, nearly 30,000 members, more than 450 Select Employee Groups, and 11 locations throughout Maine in Hampden, Bangor, Brewer, Milo, Corinth, Ellsworth, Old Town, North Vassalboro, Portland, and in Bar Harbor serving employees of Jackson Laboratory.
In 1993, Maine Savings, along with six other Maine-based credit unions and the Maine Credit Union League, was one of the founders of CUSO Mortgage Corporation. CUSO is now the largest credit union mortgage lender in Maine and is one of the top 5 largest multi-owned Credit Union Service Organizations in the country.
Over the years, Maine Savings has grown into a full-service financial institution that offers all of the products and services that the large national banks offer - consumer products, commercial services, mortgages, insurance, and financial planning - but all with extraordinary member service. We've got funds to lend and can guarantee safety for your deposits because individual accounts are insured up to at least $250,000. Members can trust that we will stay true to our reputation of being a safe, sound, and local credit union.
Our tagline says it all: We treat you like you own the place...because you do!
CUSO Home Lending - A mortgage company serving Maine through most of Maine's credit unions.
Business Lending Solutions - A commercial lending company offering businesses financing for real estate, equipment, acquisitions, and more.
One Maine Insurance - An insurance company offering coverage for home owners, businesses, autos, boats, and more.