text:
(Bloomberg) -- Central bankers may do well to pay less attention to the bond market and their own forecasts than they do to newspaper articles.That's the somewhat heretical finding of a new algorithm-based index being tested at Norway's central bank in Oslo. Researchers fed 26 years of news (or 459,745 news articles) from local business daily Dagens Naringsliv into a macroeconomic model to create a "newsy coincident index of business cycles" to help it gauge the state of the economy.
Leif-Anders Thorsrud, a senior researcher at the bank who started the project while getting his Ph.D. at the Norwegian Business School, says the "hypothesis is quite simple: the more that is written on a subject at a time, the more important the subject could be."
He's already working on a new paper (yet to be published) showing it's possible to make trades on the information. According to Thorsrud, the work is part of a broader "big data revolution."
Big data and algorithms have become buzzwords for hedge funds and researchers looking for an analytical edge when reading economic and political trends. For central bankers, the research could provide precious input to help them steer policy through an unprecedented era of monetary stimulus, with history potentially a serving as a poor guide in predicting outcomes.
At Norway's central bank, researchers have found a close correlation between news and economic developments. Their index also gives a day-to-day picture of how the economy is performing, and do so earlier than lagging macroeconomic data.
But even more importantly, big data can be used to predict where the economy is heading, beating the central bank's own forecasts by about 10 percent, according to Thorsrud. The index also showed it was a better predictor of the recession in the early 2000s than market indicators such as stocks or bonds.
The central bank has hired machines, which pore daily through articles from Dagens Naringsliv and divide current affairs into topics and into words with either positive or negative connotations. The data is then fed into a macroeconomic model employed by the central bank, which spits out a proxy of GDP.
Thorsrud says the results of the index are definitely "policy relevant," though it's up to the operative policy makers whether they will start using the information. Other central bank such as the Bank of England are looking at similar tools, he said.
While still in an experimental stage, the bank has set aside more resources to continue the research, Thorsrud said. "In time this could be a useful in the operative part of the bank."
Bron: Informatie Management
Data scientist,
application1 BI Trends1 business,9 Business Process Management1 Community3 data-informed1 databeveiliging1 data hub1 deep web1 digital maturity 1 disruptive intelligence1 enterprise information management1 externe data1 facebook4 futures trading1 Games,2 Industrial analytics report 2016 20171 insurance industry2 kunstmatige intelligentie4 Omni-Channel marketing1 open source1 Open State Foundation1 operational data warehouse1 presentations1 Qlik1 team-building 1 technological transformation2 Value of Data1 verandering1 white rabbit trends1


text:
Ны́ммкюла () — деревня в волости Рапла уезда Рапламаа, Эстония.

До административной реформы местных самоуправлений Эстонии 2017 года входила в состав волости Райккюла.

География и описание
Расположена в 52 км к югу от Таллина и в 13 км к юго-западу от волостного и уездного центра — города Рапла. Высота над уровнем моря — 51 метр.

Официальный язык — эстонский. Почтовый индекс — 78408.

Население
По данным переписи населения 2021 года, в деревне проживал 21 человек, из них 20 (95,2 %) — эстонцы.

Численность населения деревни Ныммкюла по данным переписей населения:

История
В письменных источниках 1490 года упоминается Nümküll, 1540 года — Nommekull, примерно 1900 года — Немкюля. С XVII века и позже название деревни не упоминается, снова деревня возникла к концу XIX века. В 1977–1997 годах Ныммкюла была частью деревни Ныммеметса.

Примечания

Населённые пункты Эстонии
Рапламаа

redpajama_set_name: RedPajamaWikipedia


The approximate days and hours of this position are Monday through Friday 7:00-8:30 am & 3:00-5:30 pm during regular school days. More hours available during school vacations and summer camp.
Minimum of 1 year center/school environment experience with strong classroom management and organizational skills preferred.
It is important that the individual is energetic, creative & flexible as well as enjoys working with a variety of age groups.
(2) part time long term sub direct care professional to work with children ages 18 mths to 5 years of age.
The days of this position are Monday through Friday for approximately 35-40 hours per week.
Minimum of 1 year early learning center environment experience with strong classroom management and organizational skills preferred.
It is important that the individual is energetic, have knowledge of the early learning guidelines, be creative & flexible as well as enjoys working with a variety of age groups.
For more information, please contact Jennifer Szantyr at 539-2406. Please submit an application to info@oxfordsacc.org or in person.


Prevents acne cover with herbs and zinc powder. Chopped green mint and cilantro (1 soup spoon) mixed with a small cold water, throw in the zinc powderise, stir and apply for Fifteen minutes on the problem areas. Rinse with cool water.
If the facial skin is struck by acne and acne, it is required to make protein-camphor cover: to throw in the whipped egg white camphor alcohol (10-15 drops), and a little lemon juice. Use cover to the facial skin, and hold until very dry. A resulting film is washed off with h2o at room temperature.
Cover with peppermint and starch refreshes and tones oily face, giving it a light matte finish. Good mint leaves are crushed, pour raw materials (3 tbsp) cups of boiling water, cover and leave for Thirty minutes. It is possible to pick up a dry mint - it's enough 1 tablespoon Infusion mixed with starch slurry and used to the facial skin for 20 min. Wash off with heartwarming water. In basic, with any exceptions, a cover for problematic female skin always water-washed with cold or lukewarm aqua.
For a daily maintenance of dry face prone to inflammation and acne, do good use of home-based face lotion chamomile. Need pour boiling water (200 ml) dry chamomile flowers (TWO teaspoon), and boil them for 5-7 minutes on short heat. After removing with heat, cooled broth, strain, throw in honey (1 tsp), stir and rub a face 2-3 minutes a day. Chamomile may be taken instead of sage.
If you keep already appeared freckles, age spots, so a face and neck skin need polish a fresh birch sap - this care helps with acne.


text:
#import "SDWebImageDownloader.h"
#import "SDWebImageDownloaderOperation.h"
#import <ImageIO/ImageIO.h>

static NSString *const kProgressCallbackKey = @"progress";
static NSString *const kCompletedCallbackKey = @"completed";

@interface SDWebImageDownloader ()
/**
 *  SDWebImageDownloader 下载管理器是一个单例类,它主要负责图片的下载操作的管理。图片的下载是放在一个 NSOperationQueue 操作队列中来完成的,其声明如下:
 */
@property (strong, nonatomic) NSOperationQueue *downloadQueue;
@property (weak, nonatomic) NSOperation *lastAddedOperation;
@property (assign, nonatomic) Class operationClass;
@property (strong, nonatomic) NSMutableDictionary *URLCallbacks;
@property (strong, nonatomic) NSMutableDictionary *HTTPHeaders;
// This queue is used to serialize the handling of the network responses of all the download operation in a single queue
/**
 *  所有下载操作的网络响应序列化处理是放在一个自定义的并行调度队列中来处理的,其声明及定义如下:
 */
@property (SDDispatchQueueSetterSementics, nonatomic) dispatch_queue_t barrierQueue;

@end

@implementation SDWebImageDownloader

+ (void)initialize {
    // Bind SDNetworkActivityIndicator if available (download it here: http://github.com/rs/SDNetworkActivityIndicator )
    // To use it, just add #import "SDNetworkActivityIndicator.h" in addition to the SDWebImage import
    if (NSClassFromString(@"SDNetworkActivityIndicator")) {

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
        id activityIndicator = [NSClassFromString(@"SDNetworkActivityIndicator") performSelector:NSSelectorFromString(@"sharedActivityIndicator")];
#pragma clang diagnostic pop

        // Remove observer in case it was previously added.
        [[NSNotificationCenter defaultCenter] removeObserver:activityIndicator name:SDWebImageDownloadStartNotification object:nil];
        [[NSNotificationCenter defaultCenter] removeObserver:activityIndicator name:SDWebImageDownloadStopNotification object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:activityIndicator
                                                 selector:NSSelectorFromString(@"startActivity")
                                                     name:SDWebImageDownloadStartNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:activityIndicator
                                                 selector:NSSelectorFromString(@"stopActivity")
                                                     name:SDWebImageDownloadStopNotification object:nil];
    }
}

+ (SDWebImageDownloader *)sharedDownloader {
    static dispatch_once_t once;
    static id instance;
    dispatch_once(&once, ^{
        instance = [self new];
    });
    return instance;
}

- (id)init {
    if ((self = [super init])) {
        _operationClass = [SDWebImageDownloaderOperation class];
        _shouldDecompressImages = YES;
        _executionOrder = SDWebImageDownloaderFIFOExecutionOrder;
        _downloadQueue = [NSOperationQueue new];
        _downloadQueue.maxConcurrentOperationCount = 6;
        _URLCallbacks = [NSMutableDictionary new];
#ifdef SD_WEBP
        _HTTPHeaders = [@{@"Accept": @"image/webp,image/*;q=0.8"} mutableCopy];
#else
        _HTTPHeaders = [@{@"Accept": @"image/*;q=0.8"} mutableCopy];
#endif
        _barrierQueue = dispatch_queue_create("com.hackemist.SDWebImageDownloaderBarrierQueue", DISPATCH_QUEUE_CONCURRENT);
        _downloadTimeout = 15.0;
    }
    return self;
}

- (void)dealloc {
    [self.downloadQueue cancelAllOperations];
    SDDispatchQueueRelease(_barrierQueue);
}

- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field {
    if (value) {
        self.HTTPHeaders[field] = value;
    }
    else {
        [self.HTTPHeaders removeObjectForKey:field];
    }
}

- (NSString *)valueForHTTPHeaderField:(NSString *)field {
    return self.HTTPHeaders[field];
}

- (void)setMaxConcurrentDownloads:(NSInteger)maxConcurrentDownloads {
    _downloadQueue.maxConcurrentOperationCount = maxConcurrentDownloads;
}

- (NSUInteger)currentDownloadCount {
    return _downloadQueue.operationCount;
}

- (NSInteger)maxConcurrentDownloads {
    return _downloadQueue.maxConcurrentOperationCount;
}

- (void)setOperationClass:(Class)operationClass {
    _operationClass = operationClass ?: [SDWebImageDownloaderOperation class];
}

/**
 *  整个下载管理器对于下载请求的管理都是放在 downloadImageWithURL:options:progress:completed: 方法里面来处理的,而该方法又调用了 addProgressCallback:andCompletedBlock:forURL:createCallback: 方法来将请求的信息存入管理器中,同时在创建回调的 block 中创建新的操作,配置之后将其放入 downloadQueue 操作队列中,最后方法返回新创建的操作,具体实现如下:
 */
- (id <SDWebImageOperation>)downloadImageWithURL:(NSURL *)url options:(SDWebImageDownloaderOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageDownloaderCompletedBlock)completedBlock {
    __block SDWebImageDownloaderOperation *operation;
    __weak __typeof(self)wself = self;

    //这里面都是创建下载的回调
    [self addProgressCallback:progressBlock completedBlock:completedBlock forURL:url createCallback:^{
        //创建下载的回调,我们开始来看看创建完下载的回调之后里面都写了什么事情
        //配置下载超时的时间
        NSTimeInterval timeoutInterval = wself.downloadTimeout;
        if (timeoutInterval == 0.0) {
            timeoutInterval = 15.0;
        }

        // In order to prevent from potential duplicate caching (NSURLCache + SDImageCache) we disable the cache for image requests if told otherwise
        /**
         创建请求对象,并根据options参数设置其属性
         为了避免潜在的重复缓存(NSURLCache + SDImageCache),
         如果没有明确告知需要缓存,
         则禁用图片请求的缓存操作, 这样就只有SDImageCache进行了缓存
         这里的options 是SDWebImageDownloaderOptions
         */
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:(options & SDWebImageDownloaderUseNSURLCache ? NSURLRequestUseProtocolCachePolicy : NSURLRequestReloadIgnoringLocalCacheData) timeoutInterval:timeoutInterval];
        // 通过设置 NSMutableURLRequest.HTTPShouldHandleCookies = YES
        //的方式来处理存储在NSHTTPCookieStore的cookies
        request.HTTPShouldHandleCookies = (options & SDWebImageDownloaderHandleCookies);
        //返回在接到上一个请求得得响应之前,饰扣需要传输数据,YES传输,NO不传输
        request.HTTPShouldUsePipelining = YES;
        /**
         如果你自定义了wself.headersFilter,那就用你自己设置的
         wself.headersFilter来设置HTTP的header field
         它的定义是
         typedef NSDictionary *(^SDWebImageDownloaderHeadersFilterBlock)(NSURL *url, NSDictionary *headers);
         一个返回结果为NSDictionary类型的block
         如果你没有自己设置wself.headersFilter那么就用SDWebImage提供的HTTPHeaders
         HTTPHeaders在#import "SDWebImageDownloader.h",init方法里面初始化,下载webp图片需要的header不一样
         (WebP格式,[谷歌]开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间)
         #ifdef SD_WEBP
         _HTTPHeaders = [@{@"Accept": @"image/webp,image/*;q=0.8"} mutableCopy];
         #else
         _HTTPHeaders = [@{@"Accept": @"image/*;q=0.8"} mutableCopy];
         #endif
         */
        if (wself.headersFilter) {
            request.allHTTPHeaderFields = wself.headersFilter(url, [wself.HTTPHeaders copy]);
        }
        else {
            request.allHTTPHeaderFields = wself.HTTPHeaders;
        }
        /**
         创建SDWebImageDownLoaderOperation操作对象(下载的操作就是在SDWebImageDownLoaderOperation类里面进行的)
         传入了进度回调,完成回调,取消回调
         @property (assign, nonatomic) Class operationClass;
         将Class作为属性存储,初始化具体Class,使用的时候调用具体class的方法
         */
        operation = [[wself.operationClass alloc] initWithRequest:request
                                                          options:options
                                                         progress:^(NSInteger receivedSize, NSInteger expectedSize) {
                                                             //progress block回调的操作
                                                             SDWebImageDownloader *sself = wself;
                                                             if (!sself) return;
                                                             /**
                                                              URLCallbacks是一个字典,key是url,value是一个数组,
                                                              数组里面装的是字典,key是NSString代表着回调类型,value为block是对应的回调
                                                              确保提交的block是指定队列中特定时段唯一在执行的一个.
                                                              */
                                                             __block NSArray *callbacksForURL;
                                                             dispatch_sync(sself.barrierQueue, ^{
                                                                 callbacksForURL = [sself.URLCallbacks[url] copy];
                                                             });
                                                             for (NSDictionary *callbacks in callbacksForURL) {
                                                                 dispatch_async(dispatch_get_main_queue(), ^{
                                                                     //根据kProgressCallbackKey这个key取出进度的操作
                                                                     SDWebImageDownloaderProgressBlock callback = callbacks[kProgressCallbackKey];
                                                                     //返回已经接收的数据字节,以及未接收的数据(预计字节)
                                                                     if (callback) callback(receivedSize, expectedSize);
                                                                 });
                                                             }
                                                         }
                                                        completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
                                                            //completed block 回调的操作
                                                            SDWebImageDownloader *sself = wself;
                                                            if (!sself) return;
                                                            //依旧是根据url这个key取出一个里面装了字典的数组
                                                            __block NSArray *callbacksForURL;
                                                            dispatch_barrier_sync(sself.barrierQueue, ^{
                                                                callbacksForURL = [sself.URLCallbacks[url] copy];
                                                                //如果这个任务已经完成,就根据url这个key从URLCallbacks字典里面删除
                                                                if (finished) {
                                                                    [sself.URLCallbacks removeObjectForKey:url];
                                                                }
                                                            });
                                                            //根据kCompletedCallbackKey这个key取出SDWebImageDownloaderCompletedBlock(完成的block)
                                                            for (NSDictionary *callbacks in callbacksForURL) {
                                                                SDWebImageDownloaderCompletedBlock callback = callbacks[kCompletedCallbackKey];
                                                                //回调 图片 data error 是否完成的
                                                                if (callback) callback(image, data, error, finished);
                                                            }
                                                        }
                                                        cancelled:^{
                                                            //将url对应的所有回调移除
                                                            SDWebImageDownloader *sself = wself;
                                                            if (!sself) return;
                                                            dispatch_barrier_async(sself.barrierQueue, ^{
                                                                [sself.URLCallbacks removeObjectForKey:url];
                                                            });
                                                        }];
        //上面 是SDWebImageDownloaderOperation *operation的创建,从这里开始就都是对operation的配置
        // 设置是否需要解压
        operation.shouldDecompressImages = wself.shouldDecompressImages;

        /**
         用户认证 NSURLCredential
         当连接客户端与服务端进行数据传输的时候,web服务器
         收到客户端请求时可能需要先验证客户端是否是正常用户,再决定是否返回该接口的真实数据
         iOS7.0之前使用的网络框架是NSURLConnection,在 2013 的 WWDC 上,
         苹果推出了 NSURLConnection 的继任者:NSURLSession
         SDWebImage使用的是NSURLConnection,这两种网络框架的认证调用的方法也是不一样的,有兴趣的可以去google一下这里只看下NSURLConnection的认证(在这里写看着有些吃力,移步到这个代码框外面阅读)
         */

        /**
         *  NSURLCredential 身份认证

         认证过程:

         1.web服务器接收到来自客户端的请求

         2.web服务并不直接返回数据,而是要求客户端提供认证信息,也就是说挑战是服务端向客户端发起的

         2.1要求客户端提供用户名与密码挑战 NSInternetPassword

         2.2 要求客户端提供客户端证书 NSClientCertificate

         2.3要求客户端信任该服务器

         3.客户端回调执行,接收到需要提供认证信息,然后提供认证信息,并再次发送给web服务

         4.web服务验证认证信息

         4.1认证成功,将最终的数据结果发送给客户端

         4.2认证失败,错误此次请求,返回错误码401

         Web服务需要验证客户端网络请求

         NSURLConnectionDelegate 提供的接收挑战,SDWeImage使用的就是这个方案
         */
        if (wself.urlCredential) {
            operation.credential = wself.urlCredential;
        } else if (wself.username && wself.password) {
            operation.credential = [NSURLCredential credentialWithUser:wself.username password:wself.password persistence:NSURLCredentialPersistenceForSession];
        }
        //根据下载选项SDWebImageDownloaderHighPriority设置优先级
        if (options & SDWebImageDownloaderHighPriority) {
            operation.queuePriority = NSOperationQueuePriorityHigh;
        } else if (options & SDWebImageDownloaderLowPriority) {
            operation.queuePriority = NSOperationQueuePriorityLow;
        }

        //将下载操作加到下载队列中
        [wself.downloadQueue addOperation:operation];
        /**
         根据executionOrder设置操作的依赖关系
         executionOrder代表着下载操作执行的顺序,它是一个枚举
         SD添加下载任务是同步的,而且都是在self.barrierQueue这个并行队列中,
         同步添加任务。这样也保证了根据executionOrder设置依赖关是正确的。
         换句话说如果创建下载任务不是使用dispatch_barrier_sync完成的,而是使用异步方法 ,虽然依次添加创建下载操作A、B、C的任务,但实际创建顺序可能为A、C、B,这样当executionOrder的值是SDWebImageDownloaderLIFOExecutionOrder,设置的操作依赖关系就变成了A依赖C,C依赖B
         typedef NS_ENUM(NSInteger, SDWebImageDownloaderExecutionOrder) {
         // 默认值,所有的下载操作以队列类型执行,先被加入下载队列的操作先执行
         SDWebImageDownloaderFIFOExecutionOrder,
         // 所有的下载操作以栈类型执行,后进先出,后被加入下载队列的操作先执行
         SDWebImageDownloaderLIFOExecutionOrder
         };
         */
        if (wself.executionOrder == SDWebImageDownloaderLIFOExecutionOrder) {
            // Emulate LIFO execution order by systematically adding new operations as last operation's dependency
            [wself.lastAddedOperation addDependency:operation];
            wself.lastAddedOperation = operation;
        }
    }];

    return operation;
}

- (void)addProgressCallback:(SDWebImageDownloaderProgressBlock)progressBlock completedBlock:(SDWebImageDownloaderCompletedBlock)completedBlock forURL:(NSURL *)url createCallback:(SDWebImageNoParamsBlock)createCallback {
    // The URL will be used as the key to the callbacks dictionary so it cannot be nil. If it is nil immediately call the completed block with no image or data.
    //如果图片的url是空的就直接返回
    if (url == nil) {
        if (completedBlock != nil) {
            completedBlock(nil, nil, nil, NO);
        }
        return;
    }

    /**
     *  Dispatch Barrier解决多线程并发读写一个资源发生死锁
        sync说明了这是个同步函数,任务不会立即返回,会等到任务执行结束才返回。

     使用dispatch_barrier_sync此函数创建的任务会首先去查看队列中有没有别的任务要执行,如果有则会等待已有任务执行完毕再执行;同时在此方法后添加的任务必须等到此方法中任务执行后才能执行,利用这个方法可以控制执行顺序。

     Dispatch   Barrier确保提交的block是指定队列中特定时段唯一在执行的一个.在所有先于Dispatch Barrier的任务都完成的情况下这个block才开始执行.轮到这个block时barrier会执行这个block并且确保队列在此过程 不会执行其他任务.block完成后才恢复队列。

     这是用户自己创建的队列,DISPATCH_QUEUE_CONCURRENT代表的是它是一个并行队列,为什么选择并发队列而不是串行队列我们来想一下:

     串行队列可以保证任务按照添加的顺序一个个开始执行,并且上一个任务结束才开始下一个任务,这已经可以保证任务的执行顺序(或者说是任务结束的顺利)了,但是并行队列不一样,并发队列只能保证任务的开始,至于任务以什么样的顺序结束并不能保证但是并发队列使用Barrier却是可以保证的
     */
    // 以 dispatch_barrier_sync 操作来保证同一时间只有一个线程能对 URLCallbacks 进行操作
    dispatch_barrier_sync(self.barrierQueue, ^{
        /**
         *  URLCallbacks是一个可变字典,key是NSURL类型,value为NSMutableArray类型,value(数组里面)只包含一个元素,这个元素的类型是NSMutableDictionary类型,这个字典的key为NSString类型代表着回调类型,value为block,是对应的回调

         这些代码的目的都是为了给url绑定回调
         */
        BOOL first = NO;
        if (!self.URLCallbacks[url]) {
            self.URLCallbacks[url] = [NSMutableArray new];
            first = YES;
        }

        // Handle single download of simultaneous download request for the same URL
        // 处理同一 URL 的同步下载请求的单个下载
        NSMutableArray *callbacksForURL = self.URLCallbacks[url];
        NSMutableDictionary *callbacks = [NSMutableDictionary new];
        if (progressBlock) callbacks[kProgressCallbackKey] = [progressBlock copy];
        if (completedBlock) callbacks[kCompletedCallbackKey] = [completedBlock copy];
        [callbacksForURL addObject:callbacks];
        self.URLCallbacks[url] = callbacksForURL;

        /**
         *  如果url第一次绑定它的回调,也就是第一次使用这个url创建下载任务则执行一次创建回调

         在创建回调中 创建下载操作(下载操作并不是在这里创建的),dispatch_barrier_sync执行确保同一时间只有一个线程操作URLCallbacks属性,也就是确保了下面创建过程中在给operation传递回调的时候能取到正确的self.URLCallbacks[url]值,同事确保后面有相同的url再次创建的时候if (!self.URLCallbacks[url])分支不再进入,first==NO,也就不再继续调用创建回调,这样就确保了同一个url对应的图片不会重复下载

         以上这部分代码总结起来只做了一件事情:在barrierQueue队列中创建下载任务
         */
        if (first) {
            createCallback();
        }
    });
}

- (void)setSuspended:(BOOL)suspended {
    [self.downloadQueue setSuspended:suspended];
}

@end

redpajama_set_name: RedPajamaGithub


Right now, many internet companies are still at Phase 1 (Discover or "Formative") – they haven't figured out or 'discovered' a pattern of success. One sign of this Phase is the complaint that they can't monetize. But, they are convinced they will figure it out and they spend a lot of time and energy trying.
And, all sorts of companies are really hurting at Phase 3 (Re-Think and Modify "Integrated") – where things that used to work aren't working anymore. This includes American car companies, the record and film business, the radio business as well as 'old' tech companies like Microsoft.
Many companies at Phase 3 waste a lot of time and energy trying to figure out how to recreate Phase 2 (Duplicate the Pattern of Success "Normative") where they made so much money simply duplicating what they discovered in Phase 1.
A lot of businesses never get out of Phase 1 formative (because they can't figure out the what and how). Many 'promising' start-ups die.
And, a lot of businesses get clobbered at Phase 3 Integrated (because they don't ask 'why' soon enough). They wait too long because they still believe the 'big, easy money' of Phase 2 normative will come back.
There is a lot of consolidation between the end of Phase 2 and Phase 3 as businesses try to 'buy' market share to hang on to Phase 2 profits. Over time, according to management genius Peter Drucker, very few of these consolidations work.


Basic Service - Less than 2 years since last service and/or minor parts replaced.
Includes 6 months warranty on service. Parts used are not included in service price.
Premium Service: Over 2 years since last serviced and/or machine is out of time, needle bar position is out of adjustment, needs intermediate parts replaced or will not form stitch properly. Includes a 1 year warranty on service.
Overhaul Service: Over 2 years since last service and/or is bound, frozen or requires major part replacement. Includes 2 year warranty on service.
We also offer scissor sharpening, basic to intermediate restoration services, and in some instances update the wiring using your original bakelite hardware. If you are experiencing difficulties, drop in and share them with us, we love to help.


Pleasant Ideas Of Cartier Wedding Rings Price – Through the thousand Photograph online concerning cartier wedding rings price, we all filter the very best literature along with ideal image resolution indeed for our visitor, and of course,this pics is considered one of images libraries inside our attractive images gallery about Pleasant Ideas Of Cartier Wedding Rings Price. I am optimism you might want it.
posted by means of admin at 2018-10-21 19:27:00. To discover lots of pics inside Pleasant Ideas Of Cartier Wedding Rings Price photos gallery remember to abide by this kind of website hyperlink.


Skys are crying, I am watching, catching teardrops in my eyes.
The sky was thick with TV. If you wore special glasses you could see them spinning through the sky among the bats and homing birds—blondes, wars, famines, football, food shows, coups d'tat, hairstyles stiff with hair spray. Designer pectorals. Gliding towards Ayemenem like skydivers. Making patterns in the sky. Wheels. Windmills. Flowers blooming and unblooming.
A black star appears, a point of darkness in the night sky's clarity. Point of darkness and gateway to repose. Reach out, pierce the fine fabric of the sheltering sky, take repose.
Never, ever, let anyone tell you what you can and can't do. Prove the cynics wrong. Pity them for they have no imagination. The sky's the limit. Your sky. Your limit. Now. Let's dance.
Tie your heart at night to mine, love, and both will defeat the darknesslike twin drums beating in the forestagainst the heavy wall of wet leaves. Night crossing: black coal of dreamthat cuts the thread of earthly orbswith the punctuality of a headlong trainthat pulls cold stone and shadow endlessly. Love, because of it, tie me to a purer movement, to the grip on life that beats in your breast, with the wings of a submerged swan, So that our dream might replyto the sky's questioning starswith one key, one door closed to shadow.
To Mr. Jones, she said, imagine you're looking up at a blue sky, and imagine a tiny airplane skywriting the letter Z. Then let the wind erase the letter. Then imagine the plane writing the letter Y. Let the wind erase it. Then the letter X. Erase it. Then the letter W. Let the wind erase it.
O how all things are far removed and long have passed away. I do believe the star, whose light my face reflects, is dead and has been so for many thousand years. I had a vision of a passing boat and heard some voices saying disquieting things. I heard a clock strike in some distant house... but in which house?... I long to quiet my anxious heart and stand beneath the sky's immensity. I long to pray... And one of all the stars must still exist. I do believe that I would know which one alone endured, and which like a white city stands at the ray's end shining in the heavens.
Waves, sky, trees, Essrog - I was off the page now, away from the grammar of skyscrapers and pavement.
Love so needs to lovethat it will endure almost anything, even abuse, just to flicker for a moment. But the sky's mouth is kind, its song will never hurt you, for Ising those words.
There is nothing more poetic and terrible than the skyscrapers' battle with the heavens that cover them. Snow, rain, and mist highlight, drench, or conceal the vast towers, but those towers, hostile to mystery and blind to any sort of play, shear off the rain's tresses and shine their three thousand swords through the soft swan of the fog.
Lay me on an anvil, O God. Beat me and hammer me into a crowbar. Let me pry loose old walls. Let me lift and loosen old foundations. Lay me on an anvil, O God. Beat me and hammer me into a steel spike. Drive me into the girders that hold a skyscraper together. Take red-hot rivets and fasten me into the central girders. Let me be the great nail holding a skyscraper through blue nights into white stars.


text:
Microsoft Introduces Ethereum Proof-of-Authority Algorithm on Azure
Microsoft's cloud platform Azure has introduced a proof-of-authority (PoA) algorithm on its Ethereum (ETH) blockchain product, according to a blog post Aug. 7.
The new Ethereum network algorithm will reportedly allow a "more efficient" way of building decentralized applications (DApps) for private or consortium networks, where "all consensus participants are known and reputable."
In contrast to proof-of-work (PoW) — the existing protocol on Azure — a PoA algorithm is based on the principle of approved identities or validators on a blockchain, and does not require competition in completing the transactions.
The new Ethereum product on Azure is equipped with a number of features to ensure its correct functioning and security, such as an identity leasing system, Parity's web-assembly support, Azure Monitor, and a Governance DApp.
The identity leasing system intends to ensure that while each member possesses "redundant consensus nodes," no two nodes can carry the same identity. The system provides identity protection even in the case of virtual machine (VM) or outage, so the new nodes "can quickly spin up and resume the previous nodes' identities."
Parity's web-assembly support aims to simplify the process of building smart contracts, enabling customers to write them in languages that are more familiar than the existing Solidity programming language on the ETH blockchain. The blog post notes that developers will now be able to write DApps in such languages as C, C++, and Rust.
The Governance DApp solution intends to simplify voting and validator delegation in the process of participation in a consortium. By enabling this feature, the developers provide customers with a level of abstraction, which allows programmers to hide all but the relevant data about an object in order to lessen complexity and boost efficiency.
The Governance DApp will also ensure that each consortium member has control over his or her own keys, which allows for fully protected signing on a user's chosen wallet, the blog post writes.
Microsoft first announced the launch of the Ethereum-based Azure cloud computing platform in late 2015. Founded in 2010, Azure provides a global network of Microsoft-managed data centers for developing, testing, deploying, and managing applications and services.
Earlier in June, the R3 blockchain consortium announced that the firm — together with 39 global financial companies — had successfully tested its know your customer (KYC) application, running a total of 45 nodes on Microsoft Azure.
The TRON network is about to get its first-ever public oracle system
Connor Blenkinsop
Mark Cuban issues burn notice on offensive ENS domain
Jeffrey Albus
Blockchain is hard for developers and everyday users. Is it getting any easier?
Blockchain startup offers peer-to-peer contracts for market deals
Boost for smart contracts as oracle system goes live on Binance Smart Chain

redpajama_set_name: RedPajamaCommonCrawl


Do you enjoy working in a role where you are given autonomy to manage your own work while also benefiting from the knowledge of Directors and Partners?
Would you like like to collaborate with a knowledgeable peer group and benefit from having great people around you to run tax solutions and challenges by?
Morgan McKinley is delighted to be partnering with the Tax Division of a Big 4 firm in Cork to recruit a tax professional at Assistant Manager or Manager level.
The role is largely focused on servicing private clients in Tax Advisory, Tax Compliance and Tax Accounting. You will also have the opportunity to guide trainee and junior team members.
Whether you are coming from a Big 4, Top 10 or Boutique tax environment this is an excellent opportunity to advance your career and work closely with clients to deliver tax solutions.
If you are interested to learn more, contact David Tuohy on dtuohy@morganmckinley.ie or call 021 2300300.


text:
Police shoot dead knife man on London Bridge
The scene on London Bridge in the aftermath of the attack in London. Photo: Luke Poulton via Reuters
British police on Friday shot dead a man wearing a fake suicide vest who had stabbed several people near London Bridge before being wrestled to the ground by bystanders.
The BBC reported that two members of the public were killed in what police have called a terrorist attack. Reuters was not immediately able to confirm the deaths.
The attacker went on the rampage just before 2pm (local time), attacking people at a premises near London Bridge in the heart of the city's financial district - the scene of a deadly attack by Islamist militants two years ago.
Half a dozen bystanders tackled the suspect to the ground and grabbed his knife. A video posted on Twitter showed police dragging one man off the suspect before an officer took careful aim. Two shots rang out. The man stopped moving.
Prime Minister Boris Johnson, who has called a snap election for December 12 and is due to host NATO leaders including U.S. President Donald Trump next week, praised those who took on the man for their courage and said Britain would never be cowed.
"I ... want to pay tribute to the extraordinary bravery of those members of the public who physically intervened to protect the lives of others," Johnson told reporters in Downing Street.
Prime Minister Boris Johnson on this afternoon's incident at London Bridge. pic.twitter.com/PGVtmcFh42
— UK Prime Minister (@10DowningStreet) November 29, 2019
"For me they represent the very best of our country and I thank them on behalf of all of our country," Johnson said. "This country will never be cowed, or divided, or intimidated by this sort of attack."
He said the incident was now thought to have been contained and vowed that anyone else involved would be hunted down.
Britain's top counter-terrorism officer, Neil Basu, said specialist armed officers from the City of London police shot the suspect, who died at the scene.
"A number of other people received injuries during this incident," Basu said. "We believe a device that was strapped to the body of the suspect was a hoax explosive device."
Labour Party leader Jeremy Corbyn .Photo: Reuters
Labour Party leader Jeremy Corbyn, Johnson's main opponent in the election, said he was shocked by the incident and that his thoughts were with those caught up in it.
Campaigning has been temporarily suspended.
Attacker named, previously convicted of terrorism offences
British police named the man who stabbed two people to death in London on Friday, in what the authorities called a terrorist attack, as 28-year-old Usman Khan, who had been convicted of terrorism offences and was released from prison last year.
"This individual was known to authorities, having been convicted in 2012 for terrorism offences," Britain's top counter-terrorism police officer, Neil Basu, said in a statement.
"He was released from prison in December 2018 on licence and clearly, a key line of enquiry now is to establish how he came to carry out this attack," Basu said.
A person who is released on licence is subject to conditions for the duration of their sentence after leaving prison. The Times newspaper reported that Khan had agreed to wear an electronic tag.
The attacker went on the rampage just before 2pm, targeting people at Fishmongers' Hall near London Bridge in the heart of the city's financial district - the scene of a deadly attack by Islamist militants two years ago.
In addition to the man and the woman who were killed, a man and two women were injured and remain in hospital, Basu said.
Just before news broke of the suspect's previous conviction, Prime Minister Boris Johnson, who is seeking re-election on Dec. 12, said criminals must be made to serve their sentences.
"It is a mistake to allow serious and violent criminals to come out of prison early, and it is very important that we get out of that habit and that we enforce the appropriate sentences for dangerous criminals, especially for terrorists," he said.
Johnson leads opposition leader Jeremy Corbyn, according to opinion polls.
During the 2017 election campaign, London Bridge was the scene of an attack when three militants drove a van into pedestrians and then attacked people in the surrounding area, killing eight and injuring at least 48. The attack focused attention on cuts to policing since the governing Conservatives took power in 2010.
"We owe a deep debt of gratitude to our police and emergency services, and the brave members of the public who put themselves in harm's way to protect others," Corbyn said late on Friday.
UK's 'most prolific rapist' jailed for 136 rapes
Johnson wins 'huge' mandate for swift Brexit in election
Corbyn to step down as crushing defeat looms
The Qaeda-inspired man behind the London Bridge attack
Celebrity chef Gary Rhodes dies
UK truck deaths: Driver enters guilty plea
25 migrants found in container on UK-bound ferry
Latest Epstein accuser calls on Prince to talk to authorities
Hidden Banksy mural to be uncovered
Body found off Cambodia coast believed to be British tourist
Banksy painting 'Devolved Parliament' sells for $19m
Tables turned on 'unruly tourist' family
Queenstown to get $90m in infrastructure spend-up
Kobe Bryant: final moments in heli crash revealed


FEBRUARY - Can you believe it! We are eight years old today. And we keep going because of our wonderful readers and the fantastic editors. Thank you so much! Now don't forget that this month is Valentine's Day so celebrate even if you are alone because the best person in the world is you!
"Tomatoes - the Original Love Apple" in the Health/Fitness section. "Healthy Foods Instead of a Diet" in our Health at Every Size section.
Lips are everywhere in our Fashion/Beauty section. Vintage SSBBW themed Valentine's Cards in our Art/Entertainment section.
"Eye on The Watchers" in our Literature section. "I'm an All-or-Nothing Person" in our Health/Fitness section.
"How I Became a Toil Girl" in our Art/Entertainment section. Tomato Recipes in our Recipes section.


text:
Angola competed at the 2014 Summer Youth Olympics, in Nanjing, China from 16 August to 28 August 2014.

Athletics

Angola qualified one athlete.

Qualification Legend: Q=Final A (medal); qB=Final B (non-medal); qC=Final C (non-medal); qD=Final D (non-medal); qE=Final E (non-medal)

Boys
Track & road events

Handball

Angola qualified a girls' team based on its performance at the 2013 African Women's Youth Handball Championship.

Girls' tournament

Roster

 Amelia Caluyombo
 Alexandra Chaca
 Alcina Chitangueleca
 Joana Costa
 Nicol da Costa
 Fernanda Cungulo
 Lucinda Ganga
 Vilma Menganga
 Manuela Paulino
 Dalva Peres
 Marila Quizelete
 Vilma Silva
 Swelly Simao
 Jocelina Yanda

Group stage

5th Place Playoff

References

2014 in Angolan sport
Nations at the 2014 Summer Youth Olympics
Angola at the Youth Olympics


text:
A few words regarding writer-producer, Dylan Thomas Good:
Dylan Thomas Good was the result of a science experiment in late 1973, which took place somewhere near a bioengineering laboratory at the University of Pittsburgh.
What was meant as a hybrid of Captain Morgan and Grizzly Adams resulted nine months later in a quiet, chubby sprite of a baby with fair hair, deep brown eyes and a strong Celtic background, this meaning he would grow up to become a prodigious drinker who looked good in a kilt.
For years, he roamed the land in search of adventure, knowledge and some really good boots.
Over the past four decades, he's cut a swath across the world, leaving a fevered wake of bawdy lust, leather, libations, laughter and Long John Silver's chicken plank wrappers.
To this day, adventure still follows wherever he goes, and though he's since forgotten the knowledge, he at least still has the boots.
Mr. Good currently lives on the shores of Washington State with his husband, Jim, and a pet Z-car named 'Atomic'.
© 2020 by DTG - all rights reserved - powered by the awesome magic of the Water Clock and Wix.com


text:
Category_Inspiration
Conversations with Yogananda
By Swami Kriyananda
~ 166 ~
The Master summoned Clifford Frederick, a disciple at Mount Washington, to his desert retreat. Clifford came, but was privately worried about the duties he was neglecting by his absence.
The Master said to him, "I know you are worried, but this, now, is your responsibility. I go by the orders of the 'Supreme Boss' up there. It is to Him you are answerable. Don't bother with anything else. Be free, inside.
"If God told me at this very moment, 'Come home,' I would gladly drop everything ' organization, buildings, work, books, people ' everything, to do His will. This world is His business. He is the Doer, not you or I."
Television appeared on the market only late in the Master's life. He cautioned us against watching it too much. "Television has a satanic influence," he said. "Don't let yourselves be too fascinated by it. Seek, instead, the 'television' of superconscious visions in the spiritual eye."
I once asked the Master if, during classes that I was giving for new monks, it would be all right to include a few stories from the life of Krishna. To my surprise, he replied cautiously.
"It's all right to tell them a few of those stories," he said, "but be careful to choose only those with a clear message. The stories of Krishna ' especially those of his boyhood in Brindaban ' are allegorical. They have been greatly misunderstood by Westerners, and by many Indians as well. Westerners, especially, when reading them, think the gopis were ordinary young women enjoying the emotion of human love. Actually, the gopis were incarnated rishis . They took birth to show, allegorically, the soul's relationship with the divine Beloved. There was nothing sensual or impure in that relationship. Worldly people, when they hear those stories, project onto them their own sensual or selfish tendencies. The reality wasn't like that at all.
"Those stories were intended to win people away from lust and desire. Therefore I say, Be careful how you present them to your classes."
Showing the transcendent nature of Krishna's relationship with the gopis (cowherd girls; Krishna's disciples), the Master told us the following story:
"Krishna and Radha, his closest gopi disciple, were walking together in the forest. She felt drawn down, briefly, to the delusion of being a woman, whose own dear beloved was Krishna. With sagging shoulders she said to him, 'I am feeling very tired!'
"Krishna, well aware of what she was feeling, asked her, 'Would you like me to carry you'? Oh, she was so pleased! 'Yes!' she cried happily. 'Would you'?
"He bent down to let her jump onto his back. The moment she jumped, however, he disappeared! She landed flat on the ground. At once she realized her mistake, and cried tearfully, 'O Krishna, Lord, please forgive me. I know that in your true nature you are infinite, and that your love is given equally to all. Please, come back to me!'
"Krishna appeared again, quite unconcerned at what had occurred. Peacefully they continued their walk through the forest."
Arthur Smith, a minister in the Master's work, left it after my arrival there. The Master told me later, "Smith announced to me one day, proudly, 'Do you know, I never take any of the collection money from the church. It all goes to the work.' The moment he said that, I knew he was not for this path."
What the Master meant was that such an act, in a true devotee, would have been only natural; it would not have been a cause for pride.
"God watches the heart," the Master said. "Seek to please Him above all. Don't act with the prime motive of pleasing others."
I was struck especially by his next words, which showed how balanced he was in everything he taught. "It is even good," he added, "to do good for the sake of praise. That is better than not to do good at all! Still, when you do good to please God alone, that is true Karma Yoga. It is almost as good as meditation. Indeed, it is 'half meditation.' Even if others misunderstand you, God will never misunderstand. Live to feel His smile in your heart."
To those who grieve over the death of a loved one, the following words of the Master's should offer deep consolation.
"Departed relatives and friends sometimes come to one in dreams. Be open to that possibility, especially if you deeply miss your loved ones, for such dreams can be true experiences.
"When Woody's mother died of breast cancer,* I became very withdrawn for a time.
"'Don't be moody,' someone said to me.
"'This is no mood!' I exclaimed. (How can genuine sorrow over the loss of a friend be called a mood!) I prayed deeply. Then at last I saw her in the astral world.
"An angel was leading her away from me. I saw her pause briefly and smile at the beauty of the flowers in a meadow. I called to her, and she turned. At first she didn't recognize me. But then I touched her on the forehead, and she cried, 'I remember!' She parted the gown she was wearing and said, 'See: no more cancer!' She was free, and wonderfully happy."
* Woody was a close woman disciple of the Master's.
Rogers, before coming to Mount Washington, had been a professional house painter. The Master once said to him, "I see you, in the astral world, creating flowers by thought alone." Rogers's love of visual beauty, the Master was saying, would be fulfilled on that plane. Indeed, though worldly desires can only be satisfied on the physical plane, pure desires can be fulfilled better in the astral world.
"Many great works of art, poetry, and music," the Master said, "are inspired by astral memories. The desire to do noble, beautiful things here on earth is also often a carryover of astral experiences between a person's earth lives."
"Sir," a student asked him, "is everyone conscious in the astral world?"
"Not everyone," he replied. "People of worldly consciousness enter a sort of gray mist. Some of them are vaguely conscious, depending on the sensitivity of their perception, but for many of them it is like a dream. They aren't quite sure what is going on. If your intuition is even slightly developed, however ' especially if you've meditated and prayed some in this life, but also if you've served others, even as a soldier who fought heroically in battle ' you will find, after you leave this world, that that other world is far more beautiful than this one, and extremely enjoyable!"
"A couple expressed to me their desire for a spiritual child. I prayed for them, then showed them a photograph. This soul, I told them, would be suitable for them, and was also, I felt, ready to be reborn on earth.
"'Meditate on this soul,' I said. 'Concentrate especially on the eyes. Invite him to come dwell in your home. In addition, have no sexual contact for six months; abstinence will increase your magnetism.
"'When, at the end of that time, you come together physically, think of that person, and think also of God. If you follow my advice in all these respects, that soul will be born to you.'
"They followed what I'd told them, and, some time later, that was the very soul which was drawn into their home."
Why Celebrate Christmas?
Excerpts from In Divine Friendship


text:
So you're thinking of joining us in one of the safest big cities in the world? Lakeland Japan is tucked away in a quiet corner of Shinjuku – the heart of Tokyo's entertainment district. The campus is perfect for commuting access, and the surrounding areas give the opportunity to experience contemporary Tokyo and all of its Japanese modern, artistic, international, and traditional offerings as well. One step into the campus as you're amongst friends and colleagues; a few steps out and a city of 35 million and unlimited opportunity is at your fingertips. New York may be the city that never sleeps, but Tokyo is the city that never ceases to amaze.
Lakeland University Japan is easily accessed from the numerous train lines that feed into Shinjuku Station and several others nearby stations. The Guinness Book of Records considers Shinjuku Station the busiest train station in the world – serving over 3.5 million passengers a day! In between the station and our campus you will find shopping, dining, entertainment, movies, art, museums, skyscrapers, gyms, and a whole lot more.
There's no need to worry if this is your first time in Tokyo, or even your first time overseas. Our new student orientations will help guide you to a smooth start to your college life here. From how to maneuver around the city, to how to get a cell phone and open a bank account, our staff are here to make sure you are ready for an unforgettable experience with Lakeland Japan.
Shinjuku gives direct access to at least fourteen different train lines. Some even run through to connected lines; for example, if you catch the Fukutoshin Line, one of the closest to LUJ, it can take you north to Saitama through the Tobu Tojo Line, or to the mountain areas west of Tokyo on the Seibu Ikebukuro Line, or south through to Yokohama on the Tokyu Toyoko Line—all a ingle train ride away, no transfers. Most of Tokyo is directly connected to Shinjuku that way, and what's not is usually just a short transfer from there.
Subway map of Tokyo (PDF)
JR Railway map of Kanto
Combined Central Tokyo Rail Map
Train Lines in Shinjuku:
Yamanote Line
Chūō Line
Sōbu Line
Shōnan-Shinjuku Line
Saikyō Line
Narita Express
Seibu Shinjuku Line
Odakyu Odawara Line
Keio Line
Keio New Line
Marunouchi Line
Fukutoshin Line
Shinjuku Line
Ōedo Line
You are here: Home Campus Life Campus Access


text:
package javasmmr.zoowsome.repositories;

import java.math.BigDecimal;

import org.w3c.dom.Element;

import javasmmr.zoowsome.models.employees.Caretaker;
import javasmmr.zoowsome.models.employees.Employee;
import javasmmr.zoowsome.services.factories.Constants;

public class EmployeeRepository extends EntityRepository<Employee> {

	private static final String XML_FILENAME = "Employees.xml";

	public EmployeeRepository(){
		super(XML_FILENAME, Constants.XML_TAGS.EMPLOYEE);
	}

	protected Employee getEntityFromXmlElement(Element element){
		String discriminant = element.getElementsByTagName(Constants.XML_TAGS.DISCRIMINANT).item(0).getTextContent();
		switch (discriminant){
		case Constants.Employee.Caretaker:
			Employee caretaker = new Caretaker(String.valueOf(element.getElementsByTagName("name").item(0).getTextContent()), Long.valueOf(element.getElementsByTagName("id").item(0).getTextContent()), BigDecimal.valueOf(Long.valueOf(element.getElementsByTagName("salary").item(0).getTextContent())));
			caretaker.decodeFromXml(element);
			return caretaker;
		default:
			break;
		}
		return null;
	}
}


Cat's Claw or Uña de Gato (Uncaria tomentosa) has antioxidant, antiviral, anti-abnormal cell growth, antimicrobial, and anti-inflammatory properties and may be helpful in the treatment of abnormal cell growth, AIDS, arthritis, rheumatism, asthma, bursitis, genital herpes, herpes zoster, ulcers, candidiasis, lupus, chronic fatigue syndrome, PMS, menstrual irregularities, gastric ulcers, abnormal cell growths, gonorrhea, hemorrhoids, gastritis, colitis, diverticulitis, high blood pressure, high cholesterol levels, and stimulating immune function.
Cat's Claw continues to serve as an all-in-one immune system supporter. If your system remains in a dilapidated state because of excessive masturbation, try Poor Immune System Caused by Over-Masturbation available at herballove.com to see an improvement.
As dietary supplement, take 1-2 capsules 3 times daily.
Wild Countryside Cat's Claw bark.
Cat's Claw is shipped in a discrete, unmarked package. Orders are processed immediately and usually take about 3 to 5 working days to be received. We do ask that you try it for 2 to 3 weeks to feel the full effects. Any information received is used only for order processing and shipping purposes. Your information, such as e-mail address, will never be disclosed to a third party.


Confidence: Help for people in a hurry!
Do you want some INSTANT HELP to create a sense of inner confidence? This SHORT self-help hypnotherapy recording for adults and teenagers contains powerful suggestions for respecting and believing in yourself. It helps you to reawaken any stored, sometimes forgotten, inner resources, "˜imaginatively borrow' confident feelings from an admired person and intensify a more positive response in you. Within a Gentle & relaxing framework you are helped to set up a trigger for a surge of instant confidence when you need it most. It also helps build a powerful, lasting inner confident response when used regularly. Play the recording at a quiet time where you won't be disturbed and never listen while driving or when you need to concentrate on something else. Simply relax and focus on the VOICE to derive full benefit FROM THE hypnotic recording. Lynda's gentle, well-modulated, English voice calms, re-assures and encourages you. For maximum benefit, listen daily for about three weeks. Once you have noticed the changes in you, use it every so often to support and maintain the changes. This approach is completely natural and drug free and is based on sound hypnotherapy principles.. As a former teacher and Clinical Hypnotherapist of many years standing, Lynda has helped thousands of adults and children worldwide through her CDs and downloads. Her work has been featured in the press, TV and radio and she is the author of two widely acclaimed books on the use of hypnotherapy with adults and children.


NeuStar Inc., a leader in directories, has added seven new members to its Session Initiated Protocol Exchange (SIP-IX) alliance, the company announced today. Those new partners include a combination of service providers and vendors, and include Acme Packet, BroadSoft Inc., iBasis Inc., NexTone Communications, Sonus Networks Inc., Sylantro and XO Communications Inc..
Previously announced partners include Equinix and Telehouse, and technology partners CEON Corp., JacobsRimell, Incognito Software Inc. and Nominum Inc.
SIP-IX, which was launched nearly a year ago and is still considered in trial stage, allows IP communications providers to connect with one another directly. Of course, VoIP peering has become a hot issue in recent months, and at least one company, Stealth Communications Inc., launched a service called The Voice Peering Fabric (VPF) in response.
But NeuStar execs said VPF sells ports while SIP-IX enables network operators to interact and leverage big IP pipes at PoPs by providing directory-related information.
While the initial application for SIP-IX is to allow VoIP providers to connect so they can bypass the PSTN entirely, NeuStar executives said, thats just the tip of the iceberg. The execs said SIP-IX also would work to connect the various carrier islands of MMS, for example.
The 2015 Alliance Partner of the Year Award was presented to CDW while Avant received the 2015 Distribution Partner of the Year Award.
To qualify for cloud accreditation, applicants must have an existing Infor Partner Network (IPN) alliance agreement and must be in good standing.


text:
Archive 1 > Interviews for FOLKLORE 2000 PROJECT
Ms. Rosie Kennedy
For our folklore project we went to interview Rosie Kennedy. We found out lots of interesting information.We started by asking her about school days. She went to School in Clonaslee Girls N.S.
In school she learned Irish, English, maths, geography, history and knitting. Every day she had to walk to school bare footed. She had to walk one mile from her house to the school. She didn't have to stay at home to help out at home during school so she went to school every week day. They started school at the age of four or five normally. The principal at the time was Ms. Bates. Her teachers were Ms. Daly and Ms. Bates. The games they normally played were tag and hide and seek. Her favourite subject at school was English reading. She went to secondary school for two years. The thing she liked at school was meeting her friends. She enjoyed her years at school.
As a child she enjoyed her life at school and at home. Her most frightening experience as a child. was getting teeth out and her rubela injection. Her happiest experience as a child was passing her primary cert. When she was a child the headlines on the paper had only the odd murder. There was nothing about drugs in the paper and only a few robberies. She knew some people who could cure Jaundice, ring worm and shingles. Her family knew a home cure for shingles. The person that cured the shingles would prick his/hers finger with a needle and then put the blood on the scalp. Someone used one of the old cures on her. She was cured of shingles. She knew an older lady that could make cures for burns out of herbs. She didn't know any old cures her self.
As a child her jobs around the home was to bring in water for the washing and she had to bring turf and sticks for the fire. She had to pulp turnips and mangles to feed the cattle. To do her jobs it took her about one hour. As a child she hated thinning the turnips and scraping the potatoes. The food she had the most as a child was home made bread and butter made out of cream. We also often had potatoes and home cured bacon. Back then we didn't have pizza and burgers. They grew most of the food themselves. They were one of the only families that had a pump in their own yard.
I enjoyed this project because of all the tea and biscuits.
Thank you Rosie Kennedy Tom 09/02/00


text:
Meet More of Our Team
International and China-based Team Members
Arthur Kleinman, M.D.
Esther and Sidney Rabb Professor of Anthropology, Harvard University Professor of Medical Anthropology in Social Medicine
Professor of Psychiatry, Harvard Medical School
Nancy Chen, Ph.D.
Professor and Chair of Anthropology University of California Santa Cruz
Ken Brummel Smith
Charlotte Edwards Maguire Professor, Department of Geriatrics Florida State University
Devon E. Hinton, Ph.D. M.D
Harvard Medical School and Massachusetts General Hospital
Pan Tianshu, Ph.D.
Anthropology and Sociology, Fudan University
Alan Ernst, Ph.D.
Neuroscience, California State University, Sacramento
Zeng Yanbing, Ph.D.
School of Public Health,
Ryan G. Hornbeck, Ph.D.
Department of Anthropology, Xiamen Unviersity
Alex K. Gearin, Ph.D.
Anthropology, School of Social Science University of Queensland
Judith Farquhar, Ph.D.
Max Palevsky Professor of Anthropology Emerita and of Social Sciences at The University of Chicago; Faculty Director of The University of Chicago Center in Beijing.


text:
'use strict';

const _ = require('lodash');
const parseUrl = require('url').parse;
const lib = require('../../../broker/lib');
const app = require('../support/apps').internal;
const catalog = require('../../../common/models').catalog;
const docker = require('../../../data-access-layer/docker');
const config = require('../../../common/config');
const CONST = require('../../../common/constants');
const utils = require('../../../common/utils');
const fabrik = lib.fabrik;

describe('service-broker-api', function () {
  describe('instances', function () {
    /* jshint expr:true */
    describe('docker', function () {
      const base_url = '/cf/v2';
      const api_version = '2.12';
      const service_id = '24731fb8-7b84-4f57-914f-c3d55d793dd4';
      const plan_id = '466c5078-df6e-427d-8fb2-c76af50c0f56';
      const plan = catalog.getPlan(plan_id);
      const organization_guid = 'b8cbbac8-6a20-42bc-b7db-47c205fccf9a';
      const space_guid = 'e7c0a437-7585-4d75-addf-aa4d45b49f3a';
      const instance_id = 'b3e03cb5-29cc-4fcf-9900-023cf149c554';
      const binding_id = 'd336b15c-37d6-4249-b3c7-430d5153a0d8';
      const app_guid = 'app-guid';
      const parameters = {
        foo: 'bar'
      };
      const usedPorts = [38782, 44635];
      const docker_url = parseUrl(config.docker.url);
      const protocol = config.external.protocol;
      const host = config.external.host;
      const username = 'user';
      const password = 'secret';

      const payload = {
        apiVersion: 'deployment.servicefabrik.io/v1alpha1',
        kind: 'Docker',
        metadata: {
          name: instance_id,
          labels: {
            state: 'in_queue'
          }
        },
        spec: {
          options: JSON.stringify({
            service_id: service_id,
            plan_id: plan_id,
            context: {
              platform: 'cloudfoundry',
              organization_guid: organization_guid,
              space_guid: space_guid
            },
            organization_guid: organization_guid,
            space_guid: space_guid,
            parameters: {
              foo: 'bar'
            }
          })
        },
        status: {
          state: 'in_queue',
          lastOperation: '{}',
          response: '{}'
        }
      };

      const payloadK8s = {
        apiVersion: 'deployment.servicefabrik.io/v1alpha1',
        kind: 'Docker',
        metadata: {
          name: instance_id,
          labels: {
            state: 'in_queue'
          }
        },
        spec: {
          options: JSON.stringify({
            service_id: service_id,
            plan_id: plan_id,
            context: {
              platform: 'kubernetes',
              namespace: 'default'
            },
            organization_guid: organization_guid,
            space_guid: space_guid,
            parameters: {
              foo: 'bar'
            }
          })
        },
        status: {
          state: 'in_queue',
          lastOperation: '{}',
          response: '{}'
        }
      };

      const payload2 = {
        apiVersion: 'deployment.servicefabrik.io/v1alpha1',
        kind: 'Docker',
        metadata: {
          name: instance_id,
          labels: {
            state: 'in_queue'
          }
        },
        spec: {
          options: JSON.stringify({
            service_id: service_id,
            plan_id: plan_id,
            context: {
              platform: 'cloudfoundry',
              organization_guid: organization_guid,
              space_guid: space_guid
            },
            organization_guid: organization_guid,
            space_guid: space_guid,
            parameters: {
              foo: 'bar'
            }
          })
        },
        status: {
          state: 'succeeded',
          lastOperation: '{}',
          response: '{}'
        }
      };

      const payload2K8s = {
        apiVersion: 'deployment.servicefabrik.io/v1alpha1',
        kind: 'Docker',
        metadata: {
          name: instance_id,
          labels: {
            state: 'in_queue'
          }
        },
        spec: {
          options: JSON.stringify({
            service_id: service_id,
            plan_id: plan_id,
            context: {
              platform: 'kubernetes',
              namespace: 'default'
            },
            organization_guid: organization_guid,
            space_guid: space_guid,
            parameters: {
              foo: 'bar'
            }
          })
        },
        status: {
          state: 'succeeded',
          lastOperation: '{}',
          response: '{}'
        }
      };
      let sandbox, delayStub;

      before(function () {
        _.unset(fabrik.DockerManager, plan_id);
        mocks.docker.inspectImage();
        mocks.docker.getAllContainers(usedPorts);
        sandbox = sinon.sandbox.create();
        delayStub = sandbox.stub(Promise, 'delay', () => Promise.resolve(true));
        return mocks.setup([
          fabrik.DockerManager.load(plan),
          docker.updatePortRegistry()
        ]);
      });

      afterEach(function () {
        mocks.reset();
      });

      after(function () {
        delayStub.restore();
      });

      describe('#updatePortRegistry', function () {
        it('returns all used tcp ports', function () {
          expect(docker.portRegistry.getPorts('tcp')).to.eql([33331].concat(usedPorts));
        });
      });

      describe('#provision', function () {
        it('returns 201 Created', function () {

          mocks.apiServerEventMesh.nockCreateResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, {}, 1, payload);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2, 1);
          return chai.request(app)
            .put(`${base_url}/service_instances/${instance_id}`)
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: parameters
            })
            .then(res => {
              expect(res).to.have.status(201);
              expect(res.body).to.eql({
                dashboard_url: `${protocol}://${host}/manage/dashboards/docker/instances/${instance_id}`
              });
              mocks.verify();
            });
        });

        it('returns 201 Created - start fails once internally', function () {
          mocks.apiServerEventMesh.nockCreateResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, {}, 1, payload);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2, 1);
          return chai.request(app)
            .put(`${base_url}/service_instances/${instance_id}`)
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: parameters
            })
            .then(res => {
              expect(res).to.have.status(201);
              expect(res.body).to.eql({
                dashboard_url: `${protocol}://${host}/manage/dashboards/docker/instances/${instance_id}`
              });
              mocks.verify();
            });
        });

        it('returns 201 Created: For K8S', function () {
          mocks.apiServerEventMesh.nockCreateResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, {}, 1, payloadK8s);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2K8s, 1);
          return chai.request(app)
            .put(`${base_url}/service_instances/${instance_id}`)
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: parameters
            })
            .then(res => {
              expect(res).to.have.status(201);
              expect(res.body).to.eql({
                dashboard_url: `${protocol}://${host}/manage/dashboards/docker/instances/${instance_id}`
              });
              mocks.verify();
            });
        });

      });

      describe('#update', function () {
        it('returns 200 OK', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2, 1);
          return chai.request(app)
            .patch(`${base_url}/service_instances/${instance_id}`)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              parameters: parameters,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              previous_values: {
                plan_id: plan_id,
                service_id: service_id
              }
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({
                dashboard_url: `${protocol}://${host}/manage/dashboards/docker/instances/${instance_id}`
              });
              mocks.verify();
            });
        });
        it('returns 200 OK : For K8S', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payloadK8s, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2K8s, 1);
          return chai.request(app)
            .patch(`${base_url}/service_instances/${instance_id}`)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              parameters: parameters,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              previous_values: {
                plan_id: plan_id,
                service_id: service_id
              }
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({
                dashboard_url: `${protocol}://${host}/manage/dashboards/docker/instances/${instance_id}`
              });
              mocks.verify();
            });
        });

      });

      describe('#deprovision', function () {
        const payload = {
          apiVersion: 'deployment.servicefabrik.io/v1alpha1',
          kind: 'Docker',
          metadata: {
            name: instance_id,
            labels: {
              state: 'delete'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'delete',
            lastOperation: '{}',
            response: '{}'
          }
        };

        const payloadK8s = {
          apiVersion: 'deployment.servicefabrik.io/v1alpha1',
          kind: 'Docker',
          metadata: {
            name: instance_id,
            labels: {
              state: 'delete'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'delete',
            lastOperation: '{}',
            response: '{}'
          }
        };

        const payload2 = {
          apiVersion: 'deployment.servicefabrik.io/v1alpha1',
          kind: 'Docker',
          metadata: {
            name: instance_id,
            labels: {
              state: 'in_queue'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'succeeded',
            lastOperation: '{}',
            response: '{}'
          }
        };

        const payload2K8s = {
          apiVersion: 'deployment.servicefabrik.io/v1alpha1',
          kind: 'Docker',
          metadata: {
            name: instance_id,
            labels: {
              state: 'in_queue'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'succeeded',
            lastOperation: '{}',
            response: '{}'
          }
        };
        it('returns 200 OK', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

        it('returns 410 Gone', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {}, 1, 404);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(410);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

        it('returns 200 OK: for existing deployment not having platfrom-context in environment', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

        it('returns 200 OK: In K8S platform', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payloadK8s, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, {});
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.DEPLOYMENT, CONST.APISERVER.RESOURCE_TYPES.DOCKER, instance_id, payload2K8s, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

      });

      describe('#bind', function () {
        const bindPayload = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'in_queue'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'in_queue',
            lastOperation: '{}',
            response: '{}'
          }
        };

        const bindPayload2 = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'succeeded'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'succeeded',
            lastOperation: '{}',
            response: utils.encodeBase64({
              hostname: docker_url.hostname,
              username: username,
              password: password,
              ports: {
                '12345/tcp': 12345
              },
              uri: `http://${username}:${password}@${docker_url.hostname}`
            })
          }
        };
        it('returns 201 Created', function () {
          mocks.apiServerEventMesh.nockCreateResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, bindPayload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, bindPayload2, 1);
          return chai.request(app)
            .put(`${base_url}/service_instances/${instance_id}/service_bindings/${binding_id}`)
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .send({
              service_id: service_id,
              plan_id: plan_id,
              app_guid: app_guid,
              bind_resource: {
                app_guid: app_guid
              },
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              }
            })
            .then(res => {
              expect(res).to.have.status(201);
              expect(res.body).to.eql({
                credentials: {
                  hostname: docker_url.hostname,
                  username: username,
                  password: password,
                  ports: {
                    '12345/tcp': 12345
                  },
                  uri: `http://${username}:${password}@${docker_url.hostname}`
                }
              });
              mocks.verify();
            });
        });
      });

      describe('#unbind', function () {
        const unbindPayload = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'delete'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'delete',
            lastOperation: '{}',
            response: '{}'
          }
        };
        const unbindPayloadK8s = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'delete'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'delete',
            lastOperation: '{}',
            response: '{}'
          }
        };
        const unbindPayload2 = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'succeeded'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'cloudfoundry',
                organization_guid: organization_guid,
                space_guid: space_guid
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'succeeded',
            lastOperation: '{}',
            response: JSON.stringify({
              hostname: docker_url.hostname,
              username: username,
              password: password,
              ports: {
                '12345/tcp': 12345
              },
              uri: `http://${username}:${password}@${docker_url.hostname}`
            })
          }
        };
        const unbindPayload2K8s = {
          apiVersion: 'bind.servicefabrik.io/v1alpha1',
          kind: 'DockerBind',
          metadata: {
            name: binding_id,
            labels: {
              state: 'succeeded'
            }
          },
          spec: {
            options: JSON.stringify({
              service_id: service_id,
              plan_id: plan_id,
              context: {
                platform: 'kubernetes',
                namespace: 'default'
              },
              organization_guid: organization_guid,
              space_guid: space_guid,
              parameters: {
                foo: 'bar'
              }
            })
          },
          status: {
            state: 'succeeded',
            lastOperation: '{}',
            response: JSON.stringify({
              hostname: docker_url.hostname,
              username: username,
              password: password,
              ports: {
                '12345/tcp': 12345
              },
              uri: `http://${username}:${password}@${docker_url.hostname}`
            })
          }
        };
        it('returns 200 OK', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2, 1);
          mocks.apiServerEventMesh.nockDeleteResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}/service_bindings/${binding_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

        it('returns 200 OK: for existing deployment not having platfrom-context in environment', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2, 1);
          mocks.apiServerEventMesh.nockDeleteResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}/service_bindings/${binding_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

        it('returns 200 OK: In K8S Platform', function () {
          mocks.apiServerEventMesh.nockPatchResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayloadK8s, 1);
          mocks.apiServerEventMesh.nockGetResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2K8s, 1);
          mocks.apiServerEventMesh.nockDeleteResource(CONST.APISERVER.RESOURCE_GROUPS.BIND, CONST.APISERVER.RESOURCE_TYPES.DOCKER_BIND, binding_id, unbindPayload2K8s, 1);
          return chai.request(app)
            .delete(`${base_url}/service_instances/${instance_id}/service_bindings/${binding_id}`)
            .query({
              service_id: service_id,
              plan_id: plan_id
            })
            .set('X-Broker-API-Version', api_version)
            .auth(config.username, config.password)
            .catch(err => err.response)
            .then(res => {
              expect(res).to.have.status(200);
              expect(res.body).to.eql({});
              mocks.verify();
            });
        });

      });
      describe('docker-deprecated-plans', function () {
        const plan_id = '61a8d1f7-6477-4eb7-a85d-57ac067e80c4';
        const plan = catalog.getPlan(plan_id);

        before(function () {
          _.unset(fabrik.DockerManager, plan_id);
          mocks.docker.inspectImage();
          mocks.docker.getAllContainers(usedPorts);
          return mocks.setup([
            fabrik.DockerManager.load(plan),
            docker.updatePortRegistry()
          ]);
        });

        afterEach(function () {
          mocks.reset();
        });

        describe('#provision', function () {
          it('returns 403 for deprecated plan', function () {
            return chai.request(app)
              .put(`${base_url}/service_instances/${instance_id}`)
              .set('X-Broker-API-Version', api_version)
              .auth(config.username, config.password)
              .send({
                service_id: service_id,
                plan_id: plan_id,
                organization_guid: organization_guid,
                space_guid: space_guid,
                parameters: parameters,
                context: {
                  platform: 'cloudfoundry',
                  organization_guid: organization_guid,
                  space_guid: space_guid
                }
              })
              .catch(err => err.response)
              .then(res => {
                expect(res).to.have.status(403);
              });
          });
        });
      });
    });
  });
});


text:
Joseph Podner
August 9, 1924 — July 13, 2019
Obituary of Joseph Anthony Podner Atlantic Mine Joseph A. Podner, 94, a resident of Atlantic Mine, passed away Saturday, July 13, 2019 at the Houghton County Medical Care Facility in Hancock where he had been a resident for the past month. He was born on August 9, 1924, in Painesdale, the 7th child of the late Joseph and Francis (Gregorich) Podner. Joseph grew up in the Painesdale area until he had enlisted with the United States Navy in 1942 serving in World War II. When he returned home in 1946, he received his GED from Houghton Schools and began attending Suomi College. After one year there, he enrolled at DeVry in Chicago earning a degree in Engineering. On November 9, 1946, he was united in marriage to the former Estelle Karpinen. She preceded him in death in 1985. Joseph was employed for Burroughs Corp. in Detroit where worked as an electronics engineer for 30 years. During his career, he continued to be active with the US Navy by re-enlisting as a reserve eventually attaining the rank of Chief Petty Officer First Class. He retired after 30 years of service. Joseph was a devoted catholic and was a member of St. Ignatius Loyola Catholic Church in Houghton. He was a lifetime member of the VFW. He enjoyed bowling, amateur radio, playing horseshoes, making wine, and loved dancing. Besides his parents and his wife, Joseph was preceded in death by his 6 siblings and his son Keith. He is survived by his children: Craig (Deb) Podner of Missoula, MT Cathy (Michael) Peterson of Tapiola granddaughter Elisha of Pewaukee, WI great-grandchildren Joseph, Daniel and Jessica great-great grandchild Connie His life partner Faye Bennett of Calumet Fayes children, grandchildren and great-grandchildren A niece, Joy Riutta and nephew Raymond Fox. A Mass of Christian Burial for Joseph will be held 11am Tuesday, July 23, 2019 at St. Ignatius Loyola Catholic Church in Houghton by Fr. John Martignon. Burial with military honors will be held 1:30pm in the Mt. View Cemetery in South Range. Friends may call Monday, July 22, 2019 from 4-7pm at the Plowe Funeral Home in Houghton where a parish prayer service will be held at 6:00pm. In lieu of other expressions of sympathy, the family asks that donations be made to a charity of your choice. To view this obituary or to send condolences to the family, please visit www.memorialchapel.net. The Memorial Chapel & Plowe Funeral Home of Houghton has been assisting the family with the arrangements. To send flowers to the family of Joseph Podner, please visit Tribute Store
To order memorial trees or send flowers to the family in memory of Joseph Podner, please visit our flower store.
Plowe Funeral Home


Lil Country Librarian: I'm having a sale in my TpT store!
I'm having a sale in my TpT store!
I'm having a TpT sale! For the last few days of April, take 15% off everything in my store, except the HUGE Hundreds Chart Bundle. Happy shopping! Just click on the button below to head over to my TpT store and take advantage of this discount.