In need of a translation? Contact me or write a comment below.
When it comes to video games, Germany is a place full of contradictions. While the gaming scene is booming and becomes more popular by the hour in my home country, the old stereotypes (read more here) of socially inept and awkward gamers are still prevalent. It goes so far that many people shy away from mentioning their interest for games in public.
And while there are Germans who prefer to play their games in English to preserve the "clever writing" and "original message", there is a huge crowd of gamers who refuse to play or simply can´t understand English games.
Getting a German translation for a game is always a pleasant surprise, but it is often marred by very obvious translation errors. It happens often when you hire a translator who is not very interested in gaming and doesn´t even testplay the material he is working with. Not only do you need to convey the quirks of the writing and the personality of the characters in dialogues, you also have to consider differences in grammar when the game automatically creates words, like randomly generated equipment. Everytime I see "Iron Helmet of Cruelty" translated to "Eisen Helm von Grausamkeit", I cry a little bit.
An epic RPG experience that can take 100 or more hours to complete. German translation was done by me in collaboration with Philip Hübner. You can see the German version in this Let´s Play.
Visit the game´s website for more information.
Means: "The German translation is done well and the game is enormously fun, even when it sometimes punishes the player too hard. :)"
Means: "The translation is great and the game is now even more fun."
Yes! you're right there are many peoples who refuse to play or can't understand the language. You blog is nice & interesting to read. There are a lot of Game Translation companies are available in the market that make gaming easy. Thanks for posting & keep blogging!
Support Hell Gates and get 2 free games!


text:
//
//  ASDisplayNodeInternal.h
//  AsyncDisplayKit
//
//  Copyright (c) 2014-present, Facebook, Inc.  All rights reserved.
//  This source code is licensed under the BSD-style license found in the
//  LICENSE file in the root directory of this source tree. An additional grant
//  of patent rights can be found in the PATENTS file in the same directory.
//

//
// The following methods are ONLY for use by _ASDisplayLayer, _ASDisplayView, and ASDisplayNode.
// These methods must never be called or overridden by other classes.
//

#import <atomic>
#import <AsyncDisplayKit/ASDisplayNode.h>
#import <AsyncDisplayKit/ASDisplayNode+Beta.h>
#import <AsyncDisplayKit/ASLayoutElement.h>
#import <AsyncDisplayKit/ASLayoutTransition.h>
#import <AsyncDisplayKit/ASThread.h>
#import <AsyncDisplayKit/_ASTransitionContext.h>
#import <AsyncDisplayKit/ASWeakSet.h>

NS_ASSUME_NONNULL_BEGIN

@protocol _ASDisplayLayerDelegate;
@class _ASDisplayLayer;
@class _ASPendingState;
@class ASSentinel;
struct ASDisplayNodeFlags;

BOOL ASDisplayNodeSubclassOverridesSelector(Class subclass, SEL selector);
BOOL ASDisplayNodeNeedsSpecialPropertiesHandlingForFlags(ASDisplayNodeFlags flags);

/// Get the pending view state for the node, creating one if needed.
_ASPendingState * ASDisplayNodeGetPendingState(ASDisplayNode * node);

typedef NS_OPTIONS(NSUInteger, ASDisplayNodeMethodOverrides)
{
  ASDisplayNodeMethodOverrideNone               = 0,
  ASDisplayNodeMethodOverrideTouchesBegan       = 1 << 0,
  ASDisplayNodeMethodOverrideTouchesCancelled   = 1 << 1,
  ASDisplayNodeMethodOverrideTouchesEnded       = 1 << 2,
  ASDisplayNodeMethodOverrideTouchesMoved       = 1 << 3,
  ASDisplayNodeMethodOverrideLayoutSpecThatFits = 1 << 4,
  ASDisplayNodeMethodOverrideFetchData          = 1 << 5,
  ASDisplayNodeMethodOverrideClearFetchedData   = 1 << 6
};

FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayScheduledNodesNotification;
FOUNDATION_EXPORT NSString * const ASRenderingEngineDidDisplayNodesScheduledBeforeTimestamp;

// Allow 2^n increments of begin disabling hierarchy notifications
#define VISIBILITY_NOTIFICATIONS_DISABLED_BITS 4

#define TIME_DISPLAYNODE_OPS 0 // If you're using this information frequently, try: (DEBUG || PROFILE)

@interface ASDisplayNode ()
{
@package
  _ASPendingState *_pendingViewState;

  UIView *_view;
  CALayer *_layer;

  struct ASDisplayNodeFlags {
    // public properties
    unsigned synchronous:1;
    unsigned layerBacked:1;
    unsigned displaysAsynchronously:1;
    unsigned shouldRasterizeDescendants:1;
    unsigned shouldBypassEnsureDisplay:1;
    unsigned displaySuspended:1;
    unsigned shouldAnimateSizeChanges:1;
    unsigned hasCustomDrawingPriority:1;

    // Wrapped view handling

    // The layer contents should not be cleared in case the node is wrapping a UIImageView.UIImageView is specifically
    // optimized for performance and does not use the usual way to provide the contents of the CALayer via the
    // CALayerDelegate method that backs the UIImageView.
    unsigned canClearContentsOfLayer:1;

    // Prevent calling setNeedsDisplay on a layer that backs a UIImageView. Usually calling setNeedsDisplay on a CALayer
    // triggers a recreation of the contents of layer unfortunately calling it on a CALayer that backs a UIImageView
    // it goes through the normal flow to assign the contents to a layer via the CALayerDelegate methods. Unfortunately
    // UIImageView does not do recreate the layer contents the usual way, it actually does not implement some of the
    // methods at all instead it throws away the contents of the layer and nothing will show up.
    unsigned canCallSetNeedsDisplayOfLayer:1;

    // whether custom drawing is enabled
    unsigned implementsInstanceDrawRect:1;
    unsigned implementsDrawRect:1;
    unsigned implementsInstanceImageDisplay:1;
    unsigned implementsImageDisplay:1;
    unsigned implementsDrawParameters:1;

    // internal state
    unsigned isEnteringHierarchy:1;
    unsigned isExitingHierarchy:1;
    unsigned isInHierarchy:1;
    unsigned visibilityNotificationsDisabled:VISIBILITY_NOTIFICATIONS_DISABLED_BITS;
    unsigned isDeallocating:1;
  } _flags;

@protected
  ASDisplayNode * __weak _supernode;
  NSMutableArray<ASDisplayNode *> *_subnodes;

  ASLayoutElementStyle *_style;
  ASPrimitiveTraitCollection _primitiveTraitCollection;

  std::atomic_uint _displaySentinel;

  // This is the desired contentsScale, not the scale at which the layer's contents should be displayed
  CGFloat _contentsScaleForDisplay;

  UIEdgeInsets _hitTestSlop;

#if ASEVENTLOG_ENABLE
  ASEventLog *_eventLog;
#endif

  // Main thread only
  BOOL _automaticallyManagesSubnodes;
  _ASTransitionContext *_pendingLayoutTransitionContext;
  NSTimeInterval _defaultLayoutTransitionDuration;
  NSTimeInterval _defaultLayoutTransitionDelay;
  UIViewAnimationOptions _defaultLayoutTransitionOptions;

  int32_t _transitionID;
  BOOL _transitionInProgress;

  int32_t _pendingTransitionID;
  ASLayoutTransition *_pendingLayoutTransition;
  std::shared_ptr<ASDisplayNodeLayout> _calculatedDisplayNodeLayout;
  std::shared_ptr<ASDisplayNodeLayout> _pendingDisplayNodeLayout;

  ASDisplayNodeViewBlock _viewBlock;
  ASDisplayNodeLayerBlock _layerBlock;
  NSMutableArray<ASDisplayNodeDidLoadBlock> *_onDidLoadBlocks;
  Class _viewClass;
  Class _layerClass;

  UIImage *_placeholderImage;
  CALayer *_placeholderLayer;

  // keeps track of nodes/subnodes that have not finished display, used with placeholders
  ASWeakSet *_pendingDisplayNodes;

  ASDisplayNodeContextModifier _willDisplayNodeContentWithRenderingContext;
  ASDisplayNodeContextModifier _didDisplayNodeContentWithRenderingContext;

  // Accessibility support
  BOOL _isAccessibilityElement;
  NSString *_accessibilityLabel;
  NSString *_accessibilityHint;
  NSString *_accessibilityValue;
  UIAccessibilityTraits _accessibilityTraits;
  CGRect _accessibilityFrame;
  NSString *_accessibilityLanguage;
  BOOL _accessibilityElementsHidden;
  BOOL _accessibilityViewIsModal;
  BOOL _shouldGroupAccessibilityChildren;
  NSString *_accessibilityIdentifier;
  UIAccessibilityNavigationStyle _accessibilityNavigationStyle;
  NSArray *_accessibilityHeaderElements;
  CGPoint _accessibilityActivationPoint;
  UIBezierPath *_accessibilityPath;

  // performance measurement
  ASDisplayNodePerformanceMeasurementOptions _measurementOptions;
  NSTimeInterval _layoutSpecTotalTime;
  NSInteger _layoutSpecNumberOfPasses;
  NSTimeInterval _layoutComputationTotalTime;
  NSInteger _layoutComputationNumberOfPasses;

#if YOGA
  YGNodeRef _yogaNode;
  ASDisplayNode *_yogaParent;
  NSMutableArray<ASDisplayNode *> *_yogaChildren;
  ASLayout *_yogaCalculatedLayout;
#endif

#if TIME_DISPLAYNODE_OPS
@public
  NSTimeInterval _debugTimeToCreateView;
  NSTimeInterval _debugTimeToApplyPendingState;
  NSTimeInterval _debugTimeToAddSubnodeViews;
  NSTimeInterval _debugTimeForDidLoad;
#endif
}

+ (void)scheduleNodeForRecursiveDisplay:(ASDisplayNode *)node;

/// The _ASDisplayLayer backing the node, if any.
@property (nullable, nonatomic, readonly, strong) _ASDisplayLayer *asyncLayer;

/// Bitmask to check which methods an object overrides.
@property (nonatomic, assign, readonly) ASDisplayNodeMethodOverrides methodOverrides;

// Swizzle to extend the builtin functionality with custom logic
- (BOOL)__shouldLoadViewOrLayer;

/**
 * Invoked before a call to setNeedsLayout to the underlying view
 */
- (void)__setNeedsLayout;

/**
 * Invoked after a call to setNeedsDisplay to the underlying view
 */
- (void)__setNeedsDisplay;

/**
 * Called from [CALayer layoutSublayers:]. Executes the layout pass for the node
 */
- (void)__layout;

/*
 * Internal method to set the supernode
 */
- (void)__setSupernode:(nullable ASDisplayNode *)supernode;

/**
 * Internal method to add / replace / insert subnode and remove from supernode without checking if
 * node has automaticallyManagesSubnodes set to YES.
 */
- (void)_addSubnode:(ASDisplayNode *)subnode;
- (void)_replaceSubnode:(ASDisplayNode *)oldSubnode withSubnode:(ASDisplayNode *)replacementSubnode;
- (void)_insertSubnode:(ASDisplayNode *)subnode belowSubnode:(ASDisplayNode *)below;
- (void)_insertSubnode:(ASDisplayNode *)subnode aboveSubnode:(ASDisplayNode *)above;
- (void)_insertSubnode:(ASDisplayNode *)subnode atIndex:(NSInteger)idx;
- (void)_removeFromSupernode;

// Private API for helper functions / unit tests.  Use ASDisplayNodeDisableHierarchyNotifications() to control this.
- (BOOL)__visibilityNotificationsDisabled;
- (BOOL)__selfOrParentHasVisibilityNotificationsDisabled;
- (void)__incrementVisibilityNotificationsDisabled;
- (void)__decrementVisibilityNotificationsDisabled;

/// Helper method to summarize whether or not the node run through the display process
- (BOOL)__implementsDisplay;

/// Display the node's view/layer immediately on the current thread, bypassing the background thread rendering. Will be deprecated.
- (void)displayImmediately;

/// Alternative initialiser for backing with a custom view class.  Supports asynchronous display with _ASDisplayView subclasses.
- (nullable instancetype)initWithViewClass:(Class)viewClass;

/// Alternative initialiser for backing with a custom layer class.  Supports asynchronous display with _ASDisplayLayer subclasses.
- (nullable instancetype)initWithLayerClass:(Class)layerClass;

@property (nonatomic, assign) CGFloat contentsScaleForDisplay;

- (void)applyPendingViewState;

/**
 * // TODO: NOT YET IMPLEMENTED
 *
 * @abstract Prevents interface state changes from affecting the node, until disabled.
 *
 * @discussion Useful to avoid flashing after removing a node from the hierarchy and re-adding it.
 * Removing a node from the hierarchy will cause it to exit the Display state, clearing its contents.
 * For some animations, it's desirable to be able to remove a node without causing it to re-display.
 * Once re-enabled, the interface state will be updated to the same value it would have been.
 *
 * @see ASInterfaceState
 */
@property (nonatomic, assign) BOOL interfaceStateSuspended;

/**
 * This method has proven helpful in a few rare scenarios, similar to a category extension on UIView,
 * but it's considered private API for now and its use should not be encouraged.
 * @param checkViewHierarchy If YES, and no supernode can be found, method will walk up from `self.view` to find a supernode.
 * If YES, this method must be called on the main thread and the node must not be layer-backed.
 */
- (nullable ASDisplayNode *)_supernodeWithClass:(Class)supernodeClass checkViewHierarchy:(BOOL)checkViewHierarchy;

/**
 *  Convenience method to access this node's trait collection struct. Externally, users should interact
 *  with the trait collection via ASTraitCollection
 */
- (ASPrimitiveTraitCollection)primitiveTraitCollection;

/**
 * This is a non-deprecated internal declaration of the property. Public declaration
 * is in ASDisplayNode+Beta.h
 */
@property (nonatomic, assign) BOOL shouldRasterizeDescendants;

@end

NS_ASSUME_NONNULL_END

redpajama_set_name: RedPajamaGithub


Google Print Library going on hold over copyright is big news in our world. Copyfight followed up on the story. Of particular interest is the comments with people speculating on the copyright-kosherness of a publicly traded for-profit company freely scanning, copying and indexing content that is not owned by them without negotiating for rights. Other popular copyfighters Siva and Seth have worthwhile insights.
Seth: Why is Google doing this book-scanning project? It's not because it's just so cool (even if it is). While coolness may justify a small-scale promotional project, the scanning efforts are expensive. So Google, as a company, obviously sees some value in the effort. This is not wrong. But it's also a direct conflict with the granted monopoly know as copyright. Whenever there is value, particularly commercial value, there is conflict over who should be able to receive it.


The Government of India has proposed the National Medical Commission Bill 2017 bill in the parliament on Friday to overhaul the structure of medical education, with the introduction of medical exit examination and put an end to the Medical Council of India (MCI).
What are the future implications and how will it change the healthcare industry?
The Bill allows practitioners of Ayurveda, Homeopathy, Yoga and other alternative medicines to enter the field of modern medicine after completing a "bridge course", which means more number of allopathy doctors to meet the demands of the evergrowing population of India, reports The Indian Express.
It disallows doctors to elect members of their community to regulate them, thereby angering the Indian Medical Association, India's largest voluntary organization of doctors. According to the bill, the Centre and the states will be nominating people from the ministries of health, human resource development, and the Department of Pharmaceuticals and experts from health, economics, science etc. to regulate the health authority to bring more transparency.
The Bill will set up National Medical Commission (NMC) which will regulate and develop medical education and the profession with the Medical Advisory Council (MAC), a purely advisory body to aid the NMC, having members nominated from every state and union territory to put forth the views of concerned states.
The motion was for a foundation to support the insignia of education on traditional medicine and to designate qualified AYUSH doctors.
The Logical Indian believes that the possibility of transparency seems bleak since the Chairman of the NMC will also be an ex-officio Chairman of the Council, making the leadership unchanged. Furthermore, to meet the shortfall of doctors with India's overgrowing population, the government should come up with reforms that empower the existing doctors rather than integrating alternative medical practitioners into modern medicine. Currently, MBBS doctors cannot practice certain procedures like a cesarean birth before attaining a masters degree. Even nurses are barred from simple procedures such as administering anaesthesia. Reforms should be aimed at bettering the existing system, not bringing in a solution same as the problem.


text:
Q: how to get Java cmd/terminal/shell program to release? public static void main(String[] args){
    System.out.println("enter password");
    char[] password = System.console.readPassword();
    if(passwordOK(password)){
        //let go of shell, and continue running.
    }
}

I want the Java application to keep on running, but stop "hogging" the cmd/terminal. Release cmd/terminal so that I can use it as per normal, while the application continues to run. No more terminal usage after password auth/setup.

A: I don't think a running process can switch itself from foreground to background, detaching from its input and output. A suitably sophisticated shell can, of course, use job management to background running tasks (in most UNIX shells, ctrl-Z, fg, bg etc.).
In Java the best I can think of is to write two programs:

*

*your long-running server runs in the background, and starts by opening a ServerSocket, it listens for one connection, on which it expects to receive the authentication info. Only when that has happened does it initialise fully and go into its main listening loop.

*another program runs in the foreground. It waits for the socket to become available, connects, prompts at the terminal for a password, writes that to the socket, closes and terminates

You'll need to do some simple scripting to launch both programs at the same time. There's no reason why both programs have to be Java -- on UNIX I'd be tempted to use netcat to squirt the password into the server.
For security, ensure that the socket uses localhost networking. On UNIX it could instead be a UNIX domain socket.
Of course there are lots of communication methods your two processes could use -- files, shared memory, pipes, TCP sockets, ... -- it's a matter of picking one that's secure enough for the information you're passing between them.

redpajama_set_name: RedPajamaStackExchange


text:
Celebrating 50 Years Serving Oklahoma City!
In 1967, Don Chaffin, President of Jackie Cooper Tire and Electronics began his enduring relationship with Jack Cooper. One year later, the first Jackie Cooper Tire retail store opened in Midwest City, Oklahoma. This set the course for many great ventures to come. Over the next four decades, Don's leadership and vision lead the way to the success of 3 retail tire and service centers, 3 electronics stores and 9 AT&T stores throughout the greater Oklahoma City metro area and surrounding cities.
Throughout the next 42 years, with the direction and devotion of Don Chaffin, Jackie Cooper Tire and Electronics expanded from tires, wheels and automotive service to the latest technology in mobile electronics including cell phones, pagers, car stereos and car alarms. Thanks to the guidance, influence and dedication of Don Chaffin, Jackie Cooper Tint & Electronics is a recognized leader today in the mobile electronics industry, specializing in not only car audio and car security but car video, back up cameras, marine audio, remote start, radar detectors, car paint protection and automotive, residential and commercial window film.
Don loved Jackie Cooper Tire and Electronics because it provided him the opportunity to serve. He believed the way to success in business and in life was through service to others. From the beginning, it was Don's goal to establish THE standard in customer service in our stores. Four decades of dedicated service speaks to Don's personal resolution to make Jackie Cooper Tint and Electronics a trusted "name you know."
Don Chaffin created a lasting legacy in the company which is now run by his children, Donnie Chaffin and Jill Chaffin Splitt. Don left his mark not only in the company but also with everyone he came in contact with. We miss him daily and continue to strive to serve each other and our customers as he taught!

redpajama_set_name: RedPajamaCommonCrawl


Chennai-based prepress and packaging training centre YesGo expanded its gamut of software with induction of ArtPro+, a revolutionary native PDF Editor from Esko, at 14th PrintPack India 2019, Greater Noida.
Speaking on the investment, Nizam Appas of YesGo said, "Industry must equip itself with new and updated technologies to match pace with the rapid industrial growth. Speed, accuracy and instant output with minimal error are need of the hour today, and ArtPro+ precisely satisfies the industry demands. It comes with abundance of user friendly features like integrated preflight functionality, instant and automatic trapping, customized action list, easy access to tools based on the on-going task which doesn't require any specific IT skills to operate hence make it not only industry friendly but operator-friendly too. It works with unmatchable speed and has combined features of DeskPack, PackEdge and Plato which certainly makes prepress easier than ever and celebrate this wonder as a must have in the industry which is going to rule the prepress and packaging industry.
Established in June 2018, YesGo has completed four batches of training till now and is currently going on with the fifth batch. As a part of industry visit, YesGo students has visited and received trainings so far at Tetra Pack, Avery Dennison, Harshal Graphics, PR Packaging, Vee Pee Graphics.