text:
NSString *const WCProjectDocumentFileReferencesKey = @"fileReferences";
NSString *const WCProjectDocumentProjectContainerKey = @"projectContainer";
NSString *const WCProjectDocumentBuildTargetsKey = @"buildTargets";
NSString *const WCProjectDocumentFileBreakpointsKey = @"fileBreakpoints";

NSString *const WCProjectDataFileName = @"project.wstudioprojdata";
NSString *const WCProjectSettingsFileExtension = @"plist";

@interface WCProjectDocument ()
@property (readwrite,retain) WCProjectContainer *projectContainer;
@property (readwrite,retain) NSMapTable *filesToSourceFileDocuments;
@property (readwrite,retain) NSMapTable *sourceFileDocumentsToFiles;
@property (readwrite,retain) NSMapTable *filesToFileContainers;
@property (readwrite,retain) NSMutableDictionary *UUIDsToFiles;
@property (readwrite,copy) NSDictionary *projectSettings;
@property (readwrite,retain) NSHashTable *projectSettingsProviders;
@property (readwrite,retain) NDTrie *fileCompletions;
@property (readwrite,retain) NSArray *buildTargets;

- (WCSourceFileSeparateWindowController *)_sourceFileSeparateWindowControllerForSourceFileDocument:(WCSourceFileDocument *)sourceFileDocument;
@end

@implementation WCProjectDocument
#pragma mark *** Subclass Overrides ***
- (void)dealloc {
#ifdef DEBUG
	NSLog(@"%@ called in %@",NSStringFromSelector(_cmd),[self className]);
#endif
	[_debugController release];
	[_breakpointManager release];
	[_buildController release];
	[_buildTargets release];
	[_fileCompletions release];
	[_openFiles release];
	[_unsavedFiles release];
	[_projectSettingsProviders release];
	[_projectSettings release];
	[_UUIDsToFiles release];
	[_filesToFileContainers release];
	[_sourceFileDocumentsToFiles release];
	[_filesToSourceFileDocuments release];
	[_projectContainer release];
	[super dealloc];
}

- (id)init {
	if (!(self = [super init]))
		return nil;

	[self setHasUndoManager:NO];
	[self setUndoManager:nil];

	_unsavedFiles = [[NSHashTable hashTableWithWeakObjects] retain];
	_openFiles = [[NSCountedSet alloc] initWithCapacity:0];
	_projectSettingsProviders = [[NSHashTable hashTableWithWeakObjects] retain];
	_buildTargets = [[NSMutableArray alloc] initWithCapacity:0];

	return self;
}

- (void)makeWindowControllers {
	WCProjectWindowController *windowController = [[[WCProjectWindowController alloc] init] autorelease];

	[windowController setShouldCloseDocument:YES];

	[self addWindowController:windowController];

	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_projectNavigatorDidAddNewGroup:) name:WCProjectNavigatorDidAddNewGroupNotification object:[windowController projectNavigatorViewController]];
	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_projectNavigatorDidAddNodes:) name:WCProjectNavigatorDidAddNodesNotification object:[windowController projectNavigatorViewController]];

	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_projectNavigatorDidRemoveNodes:) name:WCProjectNavigatorDidRemoveNodesNotification object:[windowController projectNavigatorViewController]];

	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowWillClose:) name:NSWindowWillCloseNotification object:[windowController window]];
}

+ (BOOL)canConcurrentlyReadDocumentsOfType:(NSString *)typeName {
	if ([typeName isEqualToString:WCProjectFileUTI])
		return YES;
	return NO;
}
- (BOOL)canAsynchronouslyWriteToURL:(NSURL *)url ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation {
	if ([typeName isEqualToString:WCProjectFileUTI])
		return YES;
	return NO;
}

+ (BOOL)autosavesInPlace {
    return YES;
}

+ (BOOL)preservesVersions {
	return NO;
}

- (NSFileWrapper *)fileWrapperOfType:(NSString *)typeName error:(NSError **)outError {
	NSMutableDictionary *projectPlist = [[[[self projectContainer] plistRepresentation] mutableCopy] autorelease];

	[projectPlist setObject:[[self buildTargets] valueForKey:RSPlistArchivingPlistRepresentationKey] forKey:WCProjectDocumentBuildTargetsKey];
	[projectPlist setObject:[[[self breakpointManager] allFileBreakpoints] valueForKey:RSPlistArchivingPlistRepresentationKey] forKey:WCProjectDocumentFileBreakpointsKey];

	NSMutableDictionary *projectSettings = [NSMutableDictionary dictionaryWithDictionary:[self projectSettings]];

	for (id <WCProjectDocumentSettingsProvider> settingsProvider in [self projectSettingsProviders])
		[projectSettings setObject:[settingsProvider projectDocumentSettings] forKey:[settingsProvider projectDocumentSettingsKey]];

	[self unblockUserInteraction];

	NSFileWrapper *projectWrapper = [[[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil] autorelease];
	NSData *projectData = [NSPropertyListSerialization dataWithPropertyList:projectPlist format:NSPropertyListXMLFormat_v1_0 options:0 error:outError];
	if (!projectData)
		return nil;

#ifndef DEBUG
	projectData = [NSData gtm_dataByGzippingData:projectData];
#endif

	[projectWrapper addRegularFileWithContents:projectData preferredFilename:WCProjectDataFileName];

	NSData *settingsData = [NSPropertyListSerialization dataWithPropertyList:projectSettings format:NSPropertyListXMLFormat_v1_0 options:0 error:outError];

	[projectWrapper addRegularFileWithContents:settingsData preferredFilename:[NSUserName() stringByAppendingPathExtension:WCProjectSettingsFileExtension]];

	return projectWrapper;
}
- (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType:(NSString *)typeName error:(NSError **)outError {
	NSFileWrapper *projectDataWrapper = [[fileWrapper fileWrappers] objectForKey:WCProjectDataFileName];
	NSData *projectData = [projectDataWrapper regularFileContents];

#ifndef DEBUG
	projectData = [NSData gtm_dataByInflatingData:projectData];
#endif

	NSPropertyListFormat format;
	NSDictionary *projectDataPlist = [NSPropertyListSerialization propertyListWithData:projectData options:0 format:&format error:outError];

	if (!projectDataPlist || format != NSPropertyListXMLFormat_v1_0)
		return NO;

	WCProjectContainer *projectContainer = [WCProjectContainer projectContainerWithProject:[WCProject projectWithDocument:self]];

	for (NSDictionary *childPlist in [projectDataPlist objectForKey:RSTreeNodeChildNodesKey]) {
		RSTreeNode *childNode = [[[NSClassFromString([childPlist objectForKey:RSObjectClassNameKey]) alloc] initWithPlistRepresentation:childPlist] autorelease];

		if (childNode)
			[[projectContainer mutableChildNodes] addObject:childNode];
	}

	if (!projectContainer)
		return NO;

	[self setProjectContainer:projectContainer];

	NSMapTable *filesToFileContainers = [NSMapTable mapTableWithWeakToWeakObjects];
	NSMapTable *filesToSourceFileDocuments = [NSMapTable mapTableWithWeakToStrongObjects];
	NSMapTable *sourceFileDocumentsToFiles = [NSMapTable mapTableWithWeakToWeakObjects];
	NSMutableDictionary *UUIDsToFiles = [NSMutableDictionary dictionaryWithCapacity:0];
	NDMutableTrie *fileCompletions = [NDMutableTrie trie];

	for (WCFileContainer *fileContainer in [projectContainer descendantNodesInclusive]) {
		[filesToFileContainers setObject:fileContainer forKey:[fileContainer representedObject]];

		if ([fileContainer isLeafNode] &&
			[[fileContainer representedObject] isSourceFile]) {

			NSError *outError;
			WCSourceFileDocument *document = [[[WCSourceFileDocument alloc] initWithContentsOfURL:[[fileContainer representedObject] fileURL] ofType:[[fileContainer representedObject] fileUTI] error:&outError] autorelease];
			[document setProjectDocument:self];

			if (document) {
				[filesToSourceFileDocuments setObject:document forKey:[fileContainer representedObject]];
				[sourceFileDocumentsToFiles setObject:[fileContainer representedObject] forKey:document];
			}
		}

		if ([fileContainer isLeafNode])
			[fileCompletions setObject:[fileContainer representedObject] forKey:[[[fileContainer representedObject] fileName] lowercaseString]];

		[UUIDsToFiles setObject:[fileContainer representedObject] forKey:[[fileContainer representedObject] UUID]];
	}

	[self setFilesToFileContainers:filesToFileContainers];
	[self setFilesToSourceFileDocuments:filesToSourceFileDocuments];
	[self setSourceFileDocumentsToFiles:sourceFileDocumentsToFiles];
	[self setUUIDsToFiles:UUIDsToFiles];
	[self setFileCompletions:fileCompletions];

	NSMutableArray *buildTargets = [NSMutableArray arrayWithCapacity:0];

	for (NSDictionary *buildTargetPlist in [projectDataPlist objectForKey:WCProjectDocumentBuildTargetsKey]) {
		WCBuildTarget *buildTarget = [[[WCBuildTarget alloc] initWithPlistRepresentation:buildTargetPlist] autorelease];

		if (buildTarget) {
			[buildTargets addObject:buildTarget];
			[buildTarget setProjectDocument:self];
		}
	}

	[self setBuildTargets:buildTargets];

	for (NSDictionary *fileBreakpointPlist in [projectDataPlist objectForKey:WCProjectDocumentFileBreakpointsKey]) {
		WCFileBreakpoint *fileBreakpoint = [[[WCFileBreakpoint alloc] initWithPlistRepresentation:fileBreakpointPlist] autorelease];

		if (fileBreakpoint) {
			[fileBreakpoint setProjectDocument:self];

			[[self breakpointManager] addFileBreakpoint:fileBreakpoint];
		}
	}

	// WCProject needs to start observing our build targets and their properties, but it needs to happen on the main thread
	dispatch_async(dispatch_get_main_queue(), ^{
		[[projectContainer representedObject] performSetup];
	});

	NSFileWrapper *settingsDataWrapper = [[fileWrapper fileWrappers] objectForKey:[NSUserName() stringByAppendingPathExtension:WCProjectSettingsFileExtension]];
	if (!settingsDataWrapper)
		return YES;

	NSData *settingsData = [settingsDataWrapper regularFileContents];
	NSDictionary *settingsPlist = [NSPropertyListSerialization propertyListWithData:settingsData options:NSPropertyListImmutable format:&format error:outError];

	[self setProjectSettings:settingsPlist];

	return YES;
}

- (IBAction)saveDocument:(id)sender {
	[super saveDocument:nil];

	NSTabViewItem *selectedTabViewItem = [[[[[self currentTabViewContext] tabViewController] tabBarControl] tabView] selectedTabViewItem];
	if (selectedTabViewItem && [[selectedTabViewItem identifier] isDocumentEdited])
		[[selectedTabViewItem identifier] saveDocument:nil];
}
#pragma mark NSMenuValidation
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
	if ([menuItem action] == @selector(editActiveBuildTarget:)) {
		WCBuildTarget *buildTarget = [self activeBuildTarget];

		if (buildTarget)
			[menuItem setTitle:[NSString stringWithFormat:NSLocalizedString(@"Edit Active Build Target \"%@\"\u2026", @"Edit Active Build Target menu item title format string"),[buildTarget name]]];
		else {
			[menuItem setTitle:NSLocalizedString(@"Edit Active Build Target\u2026", @"Edit Active Build Target with ellipsis")];
			return NO;
		}
	}
	else if ([menuItem action] == @selector(toggleBreakpoints:)) {
		if ([[self breakpointManager] breakpointsEnabled])
			[menuItem setTitle:NSLocalizedString(@"Disable Breakpoints", @"Disable Breakpoints")];
		else
			[menuItem setTitle:NSLocalizedString(@"Enable Breakpoints", @"Enable Breakpoints")];
	}
	else if ([menuItem action] == @selector(toggleIssues:)) {
		if ([[self buildController] issuesEnabled])
			[menuItem setTitle:NSLocalizedString(@"Hide All Issues", @"Hide All Issues")];
		else
			[menuItem setTitle:NSLocalizedString(@"Show All Issues", @"Show All Issues")];
	}
	return [super validateMenuItem:menuItem];
}
#pragma mark WCOpenQuicklyDataSource
- (NSArray *)openQuicklyItems {
	NSMutableArray *retval = [NSMutableArray arrayWithCapacity:0];

	for (WCFileContainer *fContainer in [[self projectContainer] descendantLeafNodes]) {
		[retval addObject:[fContainer representedObject]];

		WCSourceFileDocument *sfDocument = [[self filesToSourceFileDocuments] objectForKey:[fContainer representedObject]];

		if (sfDocument)
			[retval addObjectsFromArray:[[sfDocument sourceScanner] symbols]];
	}

	return [[retval copy] autorelease];
}
- (NSString *)openQuicklyProjectName {
	return [self displayName];
}
- (WCProjectDocument *)openQuicklyProjectDocument {
	return self;
}
#pragma mark *** Public Methods ***

- (WCSourceTextViewController *)openTabForFile:(WCFile *)file tabViewContext:(id<WCTabViewContext>)tabViewContext; {
	WCSourceFileDocument *sfDocument = [[self filesToSourceFileDocuments] objectForKey:file];
	if (sfDocument)
		return [self openTabForSourceFileDocument:sfDocument tabViewContext:tabViewContext];
	else
		[[[self projectWindowController] projectNavigatorViewController] setSelectedModelObjects:[NSArray arrayWithObjects:file, nil]];
	return nil;
}
- (WCSourceTextViewController *)openTabForSourceFileDocument:(WCSourceFileDocument *)sourceFileDocument tabViewContext:(id<WCTabViewContext>)tabViewContext {
	if (!tabViewContext)
		tabViewContext = [self currentTabViewContext];
	return [[tabViewContext tabViewController] addTabForSourceFileDocument:sourceFileDocument];
}
- (id<WCTabViewContext>)currentTabViewContext; {
	id windowController = [[[NSApplication sharedApplication] keyWindow] windowController];
	if ([windowController conformsToProtocol:@protocol(WCTabViewContext)])
		return windowController;
	return [self projectWindowController];
}

- (WCSourceFileSeparateWindowController *)openSeparateEditorForFile:(WCFile *)file; {
	WCSourceFileDocument *sfDocument = [[self filesToSourceFileDocuments] objectForKey:file];

	return [self openSeparateEditorForSourceFileDocument:sfDocument];
}
- (WCSourceFileSeparateWindowController *)openSeparateEditorForSourceFileDocument:(WCSourceFileDocument *)sourceFileDocument; {
	WCSourceFileSeparateWindowController *windowController = [self createSeparateEditorForSourceFileDocument:sourceFileDocument];

	if (windowController) {
		[windowController showWindow:nil];
	}
	else {
		windowController = [[[WCSourceFileSeparateWindowController alloc] initWithSourceFileDocument:sourceFileDocument] autorelease];
		[self addWindowController:windowController];

		if ([[[[self projectWindowController] navigatorControl] selectedItemIdentifier] isEqualToString:@"project"]) {
			NSArray *files = [NSArray arrayWithObjects:[[self sourceFileDocumentsToFiles] objectForKey:sourceFileDocument], nil];
			NSTreeNode *item = [[[[[self projectWindowController] projectNavigatorViewController] treeController] treeNodesForModelObjects:files] lastObject];
			NSInteger itemRow = [[[[self projectWindowController] projectNavigatorViewController] outlineView] rowForItem:item];
			NSTableCellView *view = [[[[self projectWindowController] projectNavigatorViewController] outlineView] viewAtColumn:0 row:itemRow makeIfNecessary:NO];
			if (view) {
				NSRect zoomRect = [[view window] convertRectToScreen:[view convertRectToBase:[[view imageView] bounds]]];

				[[windowController window] makeKeyAndOrderFrontWithZoomEffectFromRect:zoomRect];
			}
			else
				[[windowController window] makeKeyAndOrderFrontWithPopEffect];
		}
		else
			[[windowController window] makeKeyAndOrderFrontWithPopEffect];
	}

	return windowController;
}

- (WCSourceFileSeparateWindowController *)createSeparateEditorForSourceFileDocument:(WCSourceFileDocument *)sourceFileDocument; {
	return [self _sourceFileSeparateWindowControllerForSourceFileDocument:sourceFileDocument];
}

- (WCFileContainer *)fileContainerForFile:(WCFile *)file; {
	return [[self filesToFileContainers] objectForKey:file];
}
#pragma mark IBActions
- (IBAction)openQuickly:(id)sender; {
	[[WCOpenQuicklyWindowController sharedWindowController] showOpenQuicklyWindowWithDataSource:self];
}

- (IBAction)build:(id)sender; {
	[[self buildController] build];
}
- (IBAction)buildAndRun:(id)sender; {
	[[self buildController] buildAndRun];
}

- (IBAction)editActiveBuildTarget:(id)sender; {
	WCEditBuildTargetWindowController *windowController = [WCEditBuildTargetWindowController editBuildTargetWindowControllerWithBuildTarget:[self activeBuildTarget]];

	[windowController showEditBuildTargetWindow];
}
- (IBAction)manageBuildTargets:(id)sender; {
	WCManageBuildTargetsWindowController *windowController = [WCManageBuildTargetsWindowController manageBuildTargetsWindowControllerWithProjectDocument:self];

	[windowController showManageBuildTargetsWindow];
}

- (IBAction)findInProject:(id)sender; {
	[[[self projectWindowController] navigatorControl] setSelectedItemIdentifier:@"search"];
	[[[self projectWindowController] window] makeFirstResponder:[[[self projectWindowController] searchNavigatorViewController] searchField]];
}

- (IBAction)toggleBreakpoints:(id)sender; {
	[[self breakpointManager] setBreakpointsEnabled:(![[self breakpointManager] breakpointsEnabled])];
}
- (IBAction)toggleIssues:(id)sender; {
	[[self buildController] setIssuesEnabled:(![[self buildController] issuesEnabled])];
}

- (IBAction)changeRomOrSavestateForRunning:(id)sender; {
	[[self debugController] changeRomOrSavestateForRunning];
}
#pragma mark Properties
@synthesize projectContainer=_projectContainer;
@dynamic projectWindowController;
- (WCProjectWindowController *)projectWindowController {
	return [[self windowControllers] objectAtIndex:0];
}
@synthesize filesToSourceFileDocuments=_filesToSourceFileDocuments;
@dynamic sourceFileDocuments;
- (NSArray *)sourceFileDocuments {
	return [[[self filesToSourceFileDocuments] objectEnumerator] allObjects];
}
@synthesize sourceFileDocumentsToFiles=_sourceFileDocumentsToFiles;
@dynamic filePathsToFiles;
- (NSDictionary *)filePathsToFiles {
	NSMutableDictionary *retval = [NSMutableDictionary dictionaryWithCapacity:0];

	for (WCFile *file in [[self sourceFileDocumentsToFiles] objectEnumerator])
		[retval setObject:file forKey:[file filePath]];

	return [[retval copy] autorelease];
}
@dynamic filePaths;
- (NSSet *)filePaths {
	NSArray *files = [[[self UUIDsToFiles] objectEnumerator] allObjects];
	NSMutableSet *retval = [NSMutableSet setWithCapacity:[files count]];

	for (WCFile *file in files)
		[retval addObject:[file filePath]];

	return [[retval copy] autorelease];
}
@synthesize unsavedFiles=_unsavedFiles;
@synthesize filesToFileContainers=_filesToFileContainers;
@synthesize openFiles=_openFiles;
@dynamic openSourceFileDocuments;
- (NSArray *)openSourceFileDocuments {
	NSMutableArray *retval = [NSMutableArray arrayWithCapacity:[[self openFiles] count]];

	for (WCFile *file in [self openFiles]) {
		WCSourceFileDocument *sfDocument = [[self filesToSourceFileDocuments] objectForKey:file];

		if (sfDocument)
			[retval addObject:sfDocument];
	}

	return [[retval copy] autorelease];
}
@synthesize UUIDsToFiles=_UUIDsToFiles;
@synthesize projectSettingsProviders=_projectSettingsProviders;
@synthesize projectSettings=_projectSettings;
#pragma mark *** Private Methods ***
- (WCSourceFileSeparateWindowController *)_sourceFileSeparateWindowControllerForSourceFileDocument:(WCSourceFileDocument *)sourceFileDocument; {
	for (id windowController in [self windowControllers]) {
		if ([windowController respondsToSelector:@selector(sourceFileDocument)] &&
			[windowController sourceFileDocument] == sourceFileDocument)
			return windowController;
	}
	return nil;
}
@synthesize fileCompletions=_fileCompletions;
@synthesize buildTargets=_buildTargets;
@dynamic mutableBuildTargets;
- (NSMutableArray *)mutableBuildTargets {
	return [self mutableArrayValueForKey:@"buildTargets"];
}
- (NSUInteger)countOfBuildTargets {
	return [_buildTargets count];
}
- (NSArray *)buildTargetsAtIndexes:(NSIndexSet *)indexes {
	return [_buildTargets objectsAtIndexes:indexes];
}
- (void)insertBuildTargets:(NSArray *)array atIndexes:(NSIndexSet *)indexes {
	[_buildTargets insertObjects:array atIndexes:indexes];
}
- (void)removeBuildTargetsAtIndexes:(NSIndexSet *)indexes {
	[_buildTargets removeObjectsAtIndexes:indexes];
}
- (void)replaceBuildTargetsAtIndexes:(NSIndexSet *)indexes withBuildTargets:(NSArray *)array {
	[_buildTargets replaceObjectsAtIndexes:indexes withObjects:array];
}
@dynamic activeBuildTarget;
- (WCBuildTarget *)activeBuildTarget {
	for (WCBuildTarget *buildTarget in [self buildTargets]) {
		if ([buildTarget isActive])
			return buildTarget;
	}
	return nil;
}
- (void)setActiveBuildTarget:(WCBuildTarget *)activeBuildTarget {
	for (WCBuildTarget *buildTarget in [self buildTargets]) {
		if (buildTarget == activeBuildTarget)
			[buildTarget setActive:YES];
		else
			[buildTarget setActive:NO];
	}
}
@dynamic buildController;
- (WCBuildController *)buildController {
	if (!_buildController) {
		_buildController = [[WCBuildController alloc] initWithProjectDocument:self];

		[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_buildControllerDidFinishBuilding:) name:WCBuildControllerDidFinishBuildingNotification object:_buildController];
	}
	return _buildController;
}
@dynamic breakpointManager;
- (WCBreakpointManager *)breakpointManager {
	if (!_breakpointManager)
		_breakpointManager = [[WCBreakpointManager alloc] initWithProjectDocument:self];
	return _breakpointManager;
}
@dynamic debugController;
- (WCDebugController *)debugController {
	if (!_debugController)
		_debugController = [[WCDebugController alloc] initWithProjectDocument:self];
	return _debugController;
}
@dynamic calculatorWindowController;
- (WCCalculatorWindowController *)calculatorWindowController {
	WCCalculatorWindowController *retval = nil;

	for (id windowController in [self windowControllers]) {
		if ([windowController isKindOfClass:[WCCalculatorWindowController class]]) {
			retval = windowController;
			break;
		}
	}

	if (!retval) {
		WCCalculatorWindowController *windowController = [[[WCCalculatorWindowController alloc] initWithCalculator:[[self debugController] calculator]] autorelease];

		[self addWindowController:windowController];

		retval = windowController;
	}

	return retval;
}

#pragma mark Notifications
- (void)_projectNavigatorDidAddNewGroup:(NSNotification *)note {
	WCGroupContainer *newGroupContainer = [[note userInfo] objectForKey:WCProjectNavigatorDidAddNewGroupNotificationNewGroupUserInfoKey];

	[[self filesToFileContainers] setObject:newGroupContainer forKey:[newGroupContainer representedObject]];
}
- (void)_projectNavigatorDidAddNodes:(NSNotification *)note {
	NSArray *newFileContainers = [[note userInfo] objectForKey:WCProjectNavigatorDidAddNodesNotificationNewNodesUserInfoKey];

	for (WCFileContainer *newFileContainer in newFileContainers) {
		[[self filesToFileContainers] setObject:newFileContainer forKey:[newFileContainer representedObject]];

		if ([[newFileContainer representedObject] isSourceFile]) {
			NSError *outError;
			WCSourceFileDocument *document = [[[WCSourceFileDocument alloc] initWithContentsOfURL:[[newFileContainer representedObject] fileURL] ofType:[[newFileContainer representedObject] fileUTI] error:&outError] autorelease];
			[document setProjectDocument:self];

			if (document) {
				[[self filesToSourceFileDocuments] setObject:document forKey:[newFileContainer representedObject]];
				[[self sourceFileDocumentsToFiles] setObject:[newFileContainer representedObject] forKey:document];
			}
		}

		if ([newFileContainer isLeafNode])
			[_fileCompletions setObject:[newFileContainer representedObject] forKey:[[[newFileContainer representedObject] fileName] lowercaseString]];

		[[self UUIDsToFiles] setObject:[newFileContainer representedObject] forKey:[[newFileContainer representedObject] UUID]];
	}
}
- (void)_projectNavigatorDidRemoveNodes:(NSNotification *)note {
	NSSet *removedFileContainers = [[note userInfo] objectForKey:WCProjectNavigatorDidRemoveNodesNotificationRemovedNodesUserInfoKey];

	for (WCFileContainer *fileContainer in removedFileContainers)
		[[self filesToFileContainers] removeObjectForKey:[fileContainer representedObject]];

	[_fileCompletions removeAllObjects];

	for (WCFileContainer *fileContainer in [[self projectContainer] descendantLeafNodes])
		[_fileCompletions setObject:[fileContainer representedObject] forKey:[[[fileContainer representedObject] fileName] lowercaseString]];
}
- (void)_windowWillClose:(NSNotification *)note {
	for (WCFile *file in [[self filesToSourceFileDocuments] keyEnumerator])
		[NSFileCoordinator removeFilePresenter:[file fileReference]];

	for (WCBuildTarget *buildTarget in [self buildTargets]) {
		for (WCBuildInclude *buildInclude in [buildTarget includes])
			[NSFileCoordinator removeFilePresenter:[buildInclude fileReference]];
	}

	[[self breakpointManager] performCleanup];
	[[self buildController] performCleanup];

	[[[self projectContainer] representedObject] performCleanup];
}
- (void)_buildControllerDidFinishBuilding:(NSNotification *)note {
	[[NSNotificationCenter defaultCenter] removeObserver:self name:WCBuildControllerDidFinishBuildingNotification object:nil];

	[[[self projectWindowController] navigatorControl] setSelectedItemIdentifier:@"issue"];
}
@end

redpajama_set_name: RedPajamaGithub


text:
Showing 19 results for 2013-04-27
German environmentalists mull red-green alliance against Merkel
Tax the rich, end the austerity, dump Merkel – the rallying cries at the German Greens party congress in Berlin. With a national election in
End to the impasse - Italy names a government
Italian centre-left politician Enrico Letta has managed to get agreement for a new government, ending two months of deadlock following inconclusive
Deadlock broken as Italy names a new government
Ending two months of political deadlock, Italy's centre-left prime minister designate Enrico Letta has confirmed he is able to form a coalition
Boeing 787 Dreamliner takes maiden commercial flight
Boeing's much-lauded Dreamliner flew into the skies and the history books on Saturday. An Ethiopian airlines flight to Kenya was Boeing's maiden
More arrests over Dhaka building collapse, owner on the run
Four more arrests have been made in the wake of the collapsed eight-story building in Bangladesh. They include the owner and managing director of
Italy close to ending political deadlock
In a sign that Italy is close to finally forming a government, Prime Minister-designate Enrico Letta has been updating the country's president on
The assassination that shook the world
Fifty years after his assassination, the glamorous US president John F. Kennedy continues to fascinate. His life and death are the focus of an
Iceland goes to polls in general election
Voters in Iceland are set to hit the polling booths to decide the next government. Social Democrat Prime Minister Johanna Sigurdardottir leads a
West Bank settlement protest
Israeli soldiers used tear gas and rubber bullets to disperse around 500 Palestinian villagers on Friday as they marched toward a Jewish settlement
Greece: public sector workers austerity protest
Public sector workers demonstrated in the Greek capital on Friday, as parliament prepared to vote on the latest round of government austerity
North Korea indicts US-Korean citizen
North Korea said on Saturday that it would put a US citizen on trial for committing crimes against the state. The move, which comes amid military
Piece of 9/11 plane found in New York
A piece of landing gear that is believed to come from one of the planes that struck the twin towers during the 9/11 attacks in 2001 has been found
Wanted Italian mafia man found in Colombia
Colombian police have announced the arrest of one of Italy's most wanted men. Domenico Trimboli, an alleged member of the Ndrangheta criminal
Brazil evicts indigenous people close to World Cup venue
Brazilian police have removed a group of indigenous people who had returned to an abandoned museum in Rio de Janeiro which is set to be demolished
Arrests made in Bangladesh building collapse
Amid angry protests over the deadly building collapse in Bangladesh, two people have now been arrested. Seventy-two hours after the eight-storey
British campaigners call for ban on bee harming pesticides
A busy group of bee campaigners were joined by British fashion designers Vivienne Westwood and Katharine Hamnett outside the houses of parliament on
President of Bosnia's Muslim-Croat federation arrested for corruption
The president of Bosnia's autonomous Muslim-Croat federation, Zivko Budimir, has been arrested with 19 others in the most high-profile
US and UK leaders warn Syria over WMDs
US President Barack Obama has given a staunch warning to the Syrian leader, Bashar al-Assad, saying the US would respond if his forces were found to
Work on new sarcophagus continues as Chernobyl marks 27 years
With the 27th anniversary of the nuclear disaster in Chernobyl, it is a time to reflect, but also a time to look to the future. Construction on a

redpajama_set_name: RedPajamaCommonCrawl


text:
Scoped style sheets
Scoped style sheets are a feature from HTML 5 (or the HTML Standard, if you prefer) that allows the effect of a style sheet to be limited to a subtree of the document. By placing a scoped attribute on a
looks like a link
Firefox 21, currently on the Nightly channel, supports scoped style sheets now that bug 508725 has landed. This feature is not prefixed or behind a pref. The scoped="" attribute can be placed on SVG


Bankruptcy – Get a Fresh Start!
Filing for bankruptcy is an important decision that has significant implications for your life. When mounting debt becomes unmanageable, bankruptcy can provide a much needed relief. Fresh Start Law Group can help you decide whether filing for bankruptcy is the most effective way for you to take control of your debt.
Filing a bankruptcy petition automatically triggers an automatic stay, meaning that creditors must immediately stop collections letters and phone calls. I correspond with your creditors from the moment you file for bankruptcy and act entirely on your behalf.
For most people, Chapter 7 is the preferred bankruptcy. It is cheaper, quicker, and allows people to get on with their lives. Under Chapter 7, people continue to pay the debt on assets they want to keep.
One phrase frequently used to describe Chapter 7 is "liquidation of assets." Most Chapter 7 cases do not "liquidate" anything. Most assets are protected under Tennessee exemption statutes. So long as the assets are properly disclosed, the exemptions protect all the assets in most cases. People lose assets only if they fail to disclose the assets or if the assets have too much value to protect under the statutes. If you make full and honest disclosure of all your assets and the value of your assets, the attorney can properly evaluate your asset protection so you can make an informed choice of how to proceed.
Attorney Fees: At the end of your free consultation the attorney will quote a flat fee for your Chapter 7 case.
Chapter 13 is an option for people facing foreclosure, need help paying off back taxes, or those whose income exceed the allowed limit under Chapter 7. Chapter 13 bankruptcy permits you to pay off debts under a court-ordered installment plan for a duration of three to five years. This option provides numerous advantages, including the possibility of keeping your home which is under foreclosure or vehicles facing repossession. Chapter 13 can also stop tax levies and allow people to pay off tax debt in a plan.
Attorney Fees: Fresh Start Law Group charges flat fees for Chapter 13 cases. This keeps you from worrying about increasing costs as your case progresses. These fees can be paid through the bankruptcy plan over a period of three to five years. Additionally, this office accepts a small down payment to file a chapter 13 case. Most offices require at least half of the attorney fees upfront.


Can you unlock my phone so I can move it.
Search 'carrier locked device'. Not sure on search but I read a post about someone putting in a sim card in and they couldn't swap out.
Or are you talking about 'porting' your phone no. ?


text:
Альфред Жан Батист Лемер (; 15 января 1842, Эр-сюр-ла-Лис, Франция — 24 февраля 1907, Тегеран) — франко-иранский композитор, основоположник академической музыки в Иране.

В 1863 г. окончил Парижскую консерваторию как флейтист и композитор, после чего поступил на военную службу. В 1868 г. был направлен в Персию, где остался на всю жизнь. Первоначально в обязанности Лемера входило преподавание в местном военном учебном заведении предмета под названием «военные марши»; он был третьим по счёту французом-преподавателем, но работа двух его предшественников была признана иранскими военными неудовлетворительной.

Постепенно сфера занятий Лемера расширялась. Его усилиями западная музыка сделалась до некоторой степени модной среди персидской аристократии. В 1873 г. он написал первый государственный гимн Ирана, исполнявшийся по разным официальным случаям на протяжении более чем 30 лет (новый гимн был утверждён в 1909 г.). Основной заслугой Лемера является первая более или менее адекватная попытка записи иранской народной музыки и её аранжировки для западных инструментов (главным образом, для фортепиано). В 1990 г. некоторые переложения Лемера были записаны на CD известным иранским пианистом Манучехром Сахбаи.

Учеником и главным продолжателем дела Лемера стал Голамреза Минбашиян.

Композиторы Франции
Композиторы Ирана
Академические музыканты Франции
Академические музыканты Ирана
Музыкальные педагоги Франции
Музыкальные педагоги Ирана
Родившиеся в 1842 году
Родившиеся 15 января
Умершие в 1907 году
Умершие 24 февраля
Персоналии по алфавиту

redpajama_set_name: RedPajamaWikipedia


Simpson's patients range from the richest to the poorest of this divided city. His house is like no other, full of visiting luminaries and daring experiments in the new medical frontier of anaesthesia. It is here that Raven meets housemaid Sarah Fisher, who recognises trouble when she sees it and takes an immediate dislike to him. She has all of his intelligence but none of his privileges, in particular his medical education.
I received a copy of this novel from Net Galley and Canongate in return for an honest review.
This novel tells the story of Raven and Sarah, an unlikely team who work together in 1840s Edinburgh to solve a series of murders. It's a gripping historical crime novel with a background of medicine and the discovery of anaesthetic.
This novel is the excellent work of 2 authors; Chris Brookmyre crime and sci-fi writer and Marisa Haetzman a consultant anaesthetist, who happen to be husband and wife! Here they have joined forces to write a novel full to the brim with action and excitement and incredible historical accuracy. Sometimes I find, that with two authors the writing can be fairly clunky and the different authors' work is very obvious which makes reading the novel difficult and jarring as the styles change. However, with this novel this was not an issue. The whole novel flows seamlessly. It is impossible to see the seams between what the two authors have written and where they link together.
The setting of the novel is well-crafted, the attention to detail is excellent. It's an atmospheric novel, and this well-created setting/atmosphere of 1840s Edinburgh is crucial in this. The authors perfectly manage the setting, it has depth and dimension and seems to come off the page and totally envelope the reader in the smoke of the city.
This is a very quick read. The plot is so fast-paced. The combination of historical novel and crime novel means the novel is difficult to put down! The plot twists and turns as suspects are met and dismissed, and the action takes the reader and the main characters on a rollercoaster of adventures and emotions as we all try to figure out "who-dunnit"!
I really loved the character in the novel too, Sarah was my particular favourite. I was so frustrated by the lack of options and opportunities available to her and other woman in similar situation in the past, and the way she felt during the novel was so understandable and made her very easy to relate to.
Overall I loved this novel. It's an excellent historical crime novel and the medical background makes it interesting and different from other historical crime novels set in the 1800s. If you like E.S Thomson or Laura Purcell you should check this novel out!!
Have you read this novel? What are your thoughts? Or what are you currently reading?


text:
The US-Japan 'Alliance', Okinawa, and Three Looming Elections 日米「同盟」、沖繩、目前に迫る三つの選挙
Gavan McCormack
Volume 8 | Issue 5 | Number 1
The US-Japan 'Alliance', Okinawa, and Three Looming Elections
1. Agreement after Agreement
World attention through the early months of 2010 focussed on the tiny hamlet of Henoko in Northern Okinawa as Prime Minister Hatoyama struggled to find a way to meet his (and the Democratic Party of Japan's) electoral commitment to see that no substitute for the existing Futenma Marine Air Station be constructed in Okinawa. Confronted by adamantine pressures from the US government, and surrounded by uncooperative (some would say even traitorous) bureaucrats who insisted there was no other way but to submit to the US-Japan agreement to construct a new base negotiated by the former LDP government. Hatoyama duly capitulated, reaching agreement on 28 May 2010 that the 2009 Guam International Agreement (or Treaty) would be implemented, and that Japan would pay $6.09 billion towards the cost of relocating 8,000 Marines and 9,000 of their family members from Futenma to Guam by 2014, while also constructing a "Futenma Replacement Facility" in the vicinity of Henoko, by the shores of the Oura Bay in Northern Okinawa. Details of the "location, configuration and construction method would be completed … no later than the end of August" by a joint committee of specialists.
The May 2010 US-Japan inter-governmental agreement replaced the February 2009 Agreement (formally adopted by the Diet of Japan as a treaty in May), which in turn reiterated the terms of the 2006 "United States-Japan Roadmap for Realignment Implementation," which in turn incorporated a pledge between the two governments that goes back to 1996: Futenma to be returned to Japan "within three to five years" when an appropriate replacement facility was ready. Fourteen years on, there is less sign than ever of this "world's most dangerous base" (as Donald Rumsfeld is said to have described it) being returned or liquidated any time soon, or a new base being constructed at Henoko, and the August deadline set in May was itself extended to November.
Hatoyama's resignation followed the most sustained and intense spell of abuse and intimidation to which any major US ally in modern times has been subject. It was a mark of his shame at having failed his promise and at having betrayed the hopes and expectations of Okinawans in particular. His successor, Kan Naoto, made sure to promptly telephone US President Obama to assure him that he would stick to Hatoyama's promise, i.e., that the pledges of submission dating back to 1996 would indeed be honoured. He made the call even before formally assuming office, and in his introductory policy speech to the Diet he pledged, as had Hatoyama before him, the "steady deepening of the alliance relationship."
Like Hatoyama, however, just three months into his government Kan finds that the deepening process is not so easy. There is no prospect in the months ahead, certainly up till the projected Obama visit to Japan for the November APEC leaders meeting, of any "50th Anniversary agreement on a bilateral statement on the way towards that "deepening" of the alliance. Instead, the US-Japan relationship steadily spirals back into the swamp of recrimination that marked the Hatoyama era. What neither government can accept, though it becomes increasingly clear, is that no Futenma Replacement Facility will ever be built in Okinawa.
By August both sides, while maintaining the facade of proceeding towards implementation, were stepping back from the agreement, each blaming the other. They agreed, however, to hold fire till the end of November. By then, Okinawa would have chosen a new Governor. That decision weighed so heavily on them that they could only postpone further attempts to resolve base matters till the result was known.
Agreement follows agreement, postponement follows postponement, in a pattern that has continued for 14 years. Neither side could admit that Okinawa's resistance constitutes a brick wall they could neither ignore nor breach. The failure of the two governments over so many years to solve their "Okinawa problem" left both frustrated and increasingly at odds with each other. As the Kan government struggled vainly to find a way forward, the same "magma" of resentment that was constantly threatening to burst its Okinawan banks seemed to be affecting the US-Japan relationship. The two governments contested each other's interpretation of the agreements, breaching one or other section of them. What was "deepening," in fact, was disagreement.
2. Disagreement
(a) Guam
The series of unimplemented agreements breeds rising conflict, notably over the Guam transfer and over the Henoko plan. In August 2010, Pentagon sources made an astonishing announcement: the Government of Guam – a semi-colonial US territory long burdened like Okinawa, by the base presence - was reneging on a promise to repay approximately 383 billion yen in credit advanced by the Japanese Bank for International Cooperation, the official government finance institute, for Guam infrastructural development (water, sewerage, power), saying it could not afford repayment. [1] For such a breach of contract, it would seem that the Government of Japan would be fully entitled to seek appropriate legal remedy from the Government of the United States, but instead it was reportedly considering an increase in its funding from the $6.01 billion agreed (and, presumably, a write-off of the roughly $4 billion on which Guam/the US had announced the intention to renege). [2]
Both sides agreed that the original Guam transfer agreed date, 2014, was impossible. The problems of infrastructure – water, power, roads on the scale necessary for the massive Guam expansion envisaged by Pentagon plans – were formidable and the labour force inadequate. The earliest possible date for a transfer from Futenma to Guam would be 2017, and one Pentagon official told the Yomiuri shimbun it might take until 2020, a delay of six years. [3] The Pentagon message was clear: it would only take steps to meet its obligations if Japan contributed more than the billions it had originally agreed to pay.
The environmental implications of the projected Guam transfer were at least as serious as the financial ones, yet mainstream Japanese and US media paid no attention to them. Guam citizens, including especially the indigenous Chamorro, have if anything less say in the determination of policy concerning their islands than do Okinawans in theirs. The governments that dictate to both islands plainly treat environmental considerations as a nuisance formality that, in the last resort, they could evade if they chose. However, the US Environmental Protection Agency in February 2010 declared that the Department of Defense's nine volume Draft Environmental Impact Statement of the build-up process planned for Guam was "environmentally unsatisfactory," citing a range of serious problems including the risk to the coral reef, and giving it the lowest possible rating of "EU-3." [4] This may not prove insoluble problem for Pentagon planners, but it is a hoop through which the US government must nevertheless jump before the Guam plan can proceed.
(b) Henoko
(i) Flight Path
The difficulties surrounding the Henoko project are similarly sharp. In 2006, the Government of Japan explained to residents in the vicinity of the projected site that the "V"-shaped pattern was the formula adopted in order to minimize noise nuisance. On that basis, local residents, and the City of Nago, consented. [5] In 2009, however, it became clear from submissions to the environmental assessment process that the minimum height of aircraft above residential areas might be 310 metres, and in Washington in August 2010 US negotiators insisted that the explanation the Japanese government had given its Okinawan citizens was misleading and should be corrected, i.e., that US military flights were going to pass much closer to them, causing much greater noise disturbance than they had anticipated.
One reason for this is that the Government of Japan chose to conceal from the environmental assessment process (and from Okinawans) the fact that the US planned to replace its helicopters at Futenma with MV22 Osprey VTOL (a vertical takeoff and landing aircraft sometimes known as the "widowmaker" because of its propensity to crash) from 2014. Since the Osprey functions in flight much as a normal fixed wing aircraft, its flight-path tends to be much wider than that of the helicopter. Foreign Minister Okada only belatedly admitted to awareness of the Pentagon's plan when announcing the 31 August experts' report in 2010.
Conflicting US and Japanese versions of the Flight Path and of areas likely to be affected by noise from the Futenma Substitute facility at Henoko
(Japanese in blue, American in red) [6]
If the US position calling for a "V"-shaped dual runway structure were adopted, the environmental assessment study would, according to Defense Minister Kitazawa, have to be re-done. That, he said, would take up to three years. [7] And although he did not say it, it would be much more likely, because of the more intense national and international interest that now surrounds the issue, to result in a negative overall finding than the one carried out from 2007 to 2009.
(ii) "V" vs "I"
In the months that followed the 28 May agreement, the US and Japan were also at odds on the basic design shape. The US insisted on the "V"-shaped design adopted in the Guam International Agreement (the "only viable way" according to Ambassador Roos) [8], while Japan preferred an "I"-shaped single runway design. The two designs would be different in their impact on coral, sea-grasses, and marine life, as well as in terms of noise levels and safety to settlements around the bay. The US-favoured design would occupy 205 hectares, of which 160 hectares would be reclaimed from the sea and the Japanese government's preferred design would occupy 150 hectares, of which 120 hectares would be reclaimed from the sea. [9] The question of approach routes, on which the two governments were far apart, was not mentioned in the August experts' report. Both plans outlined there were simply variants of a design to impose a huge military installation on Henoko and Oura Bay. Whether the "I" design might take nine months longer, cost 3 per cent less, and destroy 1.4 hectares less coral than the "V" design (as stated in the experts' report) was neither here nor there in that context. The report conveyed little sense of the fact that the two sides were at loggerheads on the what, the when, and the where, and almost none of the fundamental contradiction that either plan posed: that the majority of Okinawans are determined not to allow any base to be built. Foreign Minister Okada continued to hold to the view that "What is important is to gain the understanding of Okinawans – without it, we cannot move forward," [10] even though it was plain that the prefecture had achieved an unprecedented consensus to say "No" to the project in whatever variant it was offered, and that fury at the Japanese government for consistently ignoring its sentiment was widespread. Even the Governor had said the only way for the base to be built would be through use of "bayonets and bulldozers" (as when much of Okinawa's land was seized for base construction in the 1950s), the mayor of Nago insisted no base would ever be build in his city, on land or sea, and the prefecture's parliament, and the Prefectural Assembly, had passed a unanimous resolution on 9 July demanding the 28 May Agreement be cancelled. [11]
(iii) Sharing?
Aside from the many other problems and disputes that plagued the Henoko project, the two governments were also at odds over a Japanese request to have its Self Defense Forces share the projected Henoko facilities. This, the US government and the Marine Corps categorically refuses, pointing out that the 28 May agreement merely stipulates "increase opportunities for joint use." While that, to the Japanese side meant joint operational usage, to the US it meant an occasional permit for SDF forces to undertake weekend training camps, or equivalent. [12]
These differences over flight path, type and location of construction, mode of usage, were wrangles that the Ryukyu shimpo saw as exposing the "slipshod character and impracticability" of the plan and the "unchanged character of the two governments" – both ready to conceal or manipulate the truth in order to try to overcome the hostility of Okinawan society to their plans. [13]
Setting aside the diplomatic, political, and military considerations, on ecological grounds alone the idea that a huge new military installation should be constructed at Nago is implausible. To create the giant, combined forces military base (misleadingly described as a "Futenma replacement facility" when it was to combine, inter alia, a deep-sea port facility for docking nuclear submarines) the coral, dugong, turtles and other creatures were simply a nuisance. When the Marine Corps first developed its plans for militarizing the Bay, in 1962, they began to deal with the coral by bombing it. [14] Such a course is not open to them today, but the scale of militarization envisaged could be expected to have the same effect over the longer term. As with Guam, however, the Henoko project can only proceed when the necessary legal requirements for environmental protection (national and international) are addressed (whether by meeting or by evading).
The Japanese Assessment Law (Asesuho) simply mandates the party proposing works to consider their impact and take appropriate steps to protect the environment. [15] It does not stipulate an impartial, scientific process and includes no provision for a project to be stopped from going ahead on environmental grounds. In Okinawa the Japanese Defence Facilities Bureau (part of what was then the Defence Agency and is now the Ministry of Defence) reviewed its own project between 2007 and 2009.
The Assessment's Interim Report, in 5,400 pages, was issued in April 2009. The final version is being withheld till after the gubernatorial election of late November 2010, but it is generally assumed it will contain few changes in substance to the 2009 version. That Report paid no attention to the likely impact of typhoons, because none happened while the survey was in process. It concluded that "dugong are not in the area" since it saw none, though critics protested that the dugong were not to be seen precisely because the disturbances caused by the investigation process had driven them away (and one surfaced off Henoko on 12 May 2010, as if to give the lie to the assessment). Above all, as critics pointed out, an environmental assessment to which no information was available on the kinds or number of aircraft that would be using the facility, or the materials that would be stored or used on it, could scarcely be serious. Though the Government of Japan was to construct the facility, it would hand it over to be used at the total discretion of the US Marine Corps.
Dugong and sea turtle in Oura Bay
(Photograph by Higashionna Takuma)
No objection was more serious than the environmental. Under the Okinawa Prefectural Government's Guidelines for Environmental Protection, the coastal areas of Henoko, where the internationally protected dugong graze on sea grasses, turtles come to rest and lay their eggs, and multiple rare birds, fish, crustaceans, insects, and animals thrive, are classified as rank 1, warranting the highest level of protection. A colony of blue coral was discovered only in 2007 (and in 2008 placed on the IUCN's "Red," or critically endangered, list, joining the dugong) and a 2009 World Wildlife Fund study found an astonishing 36 new species of crabs and shrimps, [16] and in July 2010 Tokyo marine science researchers found an equally astonishing, "rain-forest"-like variety of 182 different species of sea grasses and marine plants, four of which were probably new species, in Oura Bay. [17] The discovery of the blue coral, new species of shrimps and crabs, and sea grass came after the survey and thus formed no part of it.
Some of the new crab and shrimp species discovered in Oura Bay
(Photograph: Fujita Yoshihisa)
The construction process (for the "V" version) would require 21 million cubic metres of fill, of which 17 million cubic metres would be sea sand. That means a staggering 3.4 million dump truck loads of sand, more than 12 times the current volume of sand extracted in a year from throughout Okinawa. The "I" version would require marginally less landfill, 18.9 million cubic metres. But how either could proceed without causing significant impact on Okinawa's fragile land and sea environment defies the imagination. [18]
The Okinawa Prefecture Environmental Impact Committee found multiple faults in the Assessment Interim Report and sought supplementary examination of 412 items in 59 categories (including dugong numbers). Inter alia, Governor Nakaima recommended a multi-year study of the dugong, though obviously aware that by allowing the Report to stand that would never happen. Okinawa's leading environmental law authority and a key figure in the court action, former Okinawa University president Sakurai Kunitoshi, declares the process was "unscientific" and fatally flawed. [19] In the International Year of Biodiversity, it was bizarre, he noted, that the Government of Japan should go to such lengths, and spend such amounts of taxpayer money, to push through a thoroughly unscientific justification for the destruction of one of its (and the world's) most precious concentrations of biodiversity.
The four newly discovered sea grasses of Oura Bay
(Photographs by Ohba Hideo of Tokyo University of Marine Science and Technology)
It seems probable not only that the Henoko Environmental Impact Assessment lacked scientific credibility by international standards but that it may have breached both Japanese and American law. [20] In San Francisco a federal court judge in 2008, hearing a suit against the Pentagon on behalf of the Okinawan dugong and their marine habitat, issued a ruling that the U.S. Department of Defense (DoD) had violated the National Historic Preservation Act (NHPA) by failing to "take into account" in the planning of the construction of a US military base in Henoko and Oura Bays the effects of the construction on the dugong (Dugong dugon), a Japanese "natural monument." She ordered the DoD to comply with the Act by generating and taking information into account "for the purpose of avoiding or mitigating adverse effects" on the dugong. [21] In Japan, 344 Okinawans launched a suit in the Naha District Court in August 2009 to have the assessment declared invalid.
As the 14-year struggle over Henoko ground on, civic and international organizations protested the implausibility of the region's largest military base being imposed on an environment whose extraordinary biodiversity was only slowly being understood: It was as if the Grand Canyon were being designated a military base, or in Australia, Kakadu.
4. Elections
Several important dates now loom: 12 September, 14 September, and 28 November, those, respectively, of the Nago City Assembly election, the Democratic Party of Japan leadership election, and the Governor of Okinawa election. When the Experts Committee of 31 August looked forward to a "2 + 2" joint ministerial meeting "within the next few months," (as the State Department briefing on 31 August put it) to make the political decisions on Futenma replacement, what all parties had in mind was this trifecta, of which undoubtedly the last was the most significant. The projected Obama visit to Japan for the APEC heads of government meeting on 13 November, before the Okinawan election, meant that no grand vision statement of the alliance could be contemplated before the end of its 50th anniversary year of 2010.
(i) Nago City
On 12 September the citizens of Nago (population ca 60,000, in which the hamlet of Henoko is located) go to the polls to elect a new City Assembly. The world beyond the city would be confounded if, as is possible, Nago City were to elect a majority ready to accept the base project. Such an outcome would be hard to relate to the evidence that has accumulated in recent months: the victory of a determinedly "anti-base" candidate in the mayoral election in January, the unanimous resolution of the prefectural assembly in February, the "all-Okinawa" mass meeting of April, the unanimous resolution of the Prefectural Assembly in April, and the continuing evidence of opinion polls following the advent of the Kan government in June showing that around 80 per cent of Okinawans oppose any new base construction. It would, however, should it happen, be explicable in local and historical terms. The city has a long history of alternating "progressive" and "conservative" governments and of relentless external pressures. On the only occasion when Nago citizens went to the polls to express a view on the single issue of the base, in 1997, they rejected it. But the then city mayor, Higa Tetsuya, overruled their decision, the government took his advice and ignored it, and has never given up the effort to have the people reverse it. As Nago city resident and prize-winning novelist, Medoruma Shun, put it, Nago people are "fed up to the back teeth" with the base and the incessant outside pressure that for so long has divided families and sown bitterness and hostility in their city.[22]
Just over 50 years ago, much of the lands currently forming the Camp Schwab Marine Base were seized in a process remembered locally as the terror of "bulldozers and bayonets." Dispossessed, and threatened to be cut off with nothing, many chose, however reluctantly, to try to negotiate a deal to alleviate their loss. Over time, some of these landowners flourished, receiving regular, substantial, and steadily rising incomes. A steady flow of "benefits" was directed to the areas targeted for expansion, notably the village of Henoko.
The pre-election balance of seats in the Nago Assembly is 12:12:3, with "anti-base" Mayor Inamine Susumu and his supporters holding 12, the group of associates of the former mayor Shimabukuro Yoshikazu, defeated in January, his patron, predecessor and Nago City "don" (who betrayed the city after its 1997 vote) being Higa Tetsuya, also with 12, and an independent (but inclined strongly towards Shimabukuro and Higa) group the remaining three. Both sides aimed for 15 to be able to control the future direction of the City. City elections are commonly tied closely to local family and business interests, and apart from the base, Nago faced unemployment running at around double the national figure, a business centre lined with bordered-up shops and strained services, including medical. Tamaki Yoshikazu, Vice-President of the Assembly, said in the lead up to the election, "It is utter nonsense to think that a national problem such as the base issue should be affected by a local election." [23] While the Inamine camp was resolutely anti-base - No new base, declared Inamine, would be built either on land or on sea in Nago City - the Shimabukuro group candidates refused to answer a local newspaper opinion survey on the base question, focussing their campaign entirely on local issues of jobs and benefits. [24] On the eve of the election, newspapers reported a slight majority apparently favouring Inamine but with the Assembly's largest (Shimabukuro) faction refusing to state its position, the suspicion of a secret backroom deal was rife.
The level of domestic (national) and foreign interest and intervention in this election was without precedent. The US Consul general in Okinawa, and senior Japanese government officials met secretly with local "pro-base" officials and business leaders to discuss ways to assist their campaign. [25] To Kan and his government, Nago City was akin to enemy territory that had to be re-conquered. To win favour, they hammered out a program of livelihood benefits – sewerage, education and welfare, kindergartens – that they informed Nago City people was conditional on their adopting the "right" attitude on 12 September. [26]
On the eastern side of Nago City lie the so-called "Kube districts," the three hamlets of Henoko, Toyohara and Kushi which are closest to the projected base construction site. The US Marine Corps base at Camp Schwab is separated by a narrow strip of beach from Henoko village. Henoko, population ca 2,100 or approximately 450 households, receives a base-related income each year of around 200 million yen, and at least half of its residents are recipients of rental income (in the range of several hundred thousand to several million yen annually) based on their family's share of the village commons that were handed over to the US military half a century ago. [27] Such is Henoko's "prosperity" that for its annual "Haare" or dragon boat festival in June 2010 it displayed four splendid boats, each costing about 900,000 yen. Sixty teams, including some from the adjacent Camp Schwab base, competed in an apparently relaxed and festive atmosphere. [28] The Henoko Exchange Plaza, completed in 2007 at a cost of just under one billion yen and featuring a 600-person hall, library, computer facilities, lavishly equipped sports facilities and massage equipment, was supposedly designed to invigorate the village (the motto on its home page reads: "We rely on no-one, living by our own efforts") but, like so many other local developments, was part of the price for its submission to base priorities. In apparent seriousness, local organizations in the Kube Districts discussed lodging a demand with the government for a 300 million yen payment per household in return for their consent to construction of the base, and were in favour of a formula for reclamation under which they would own the offshore island, once it was constructed, and lease it in perpetuity to the state for 500 million per year. [29]
That stance, however, was not uncontested. In June, Kushi village adopted a unanimous resolution of support for Nago mayor Inamine's anti-base stance, and base opponents set up an "all Kube" organization to carry his campaign into the heartland of Henoko. [30]
US Marines and locals compete in Henoko Dragon Boat Festival, 6 June 2010.
(Photo: Okinawa Times)
The sweetness of state largesse, once tasted, was difficult to quit. The distinguished Okinawan scholar Arasaki Moriteru thus refers to Tokyo's persuasion not as candy and whip but opium and whip. [31] The implicit contempt on Tokyo's part for those whose consent was assumed to be simply a matter of finding the right price bred a resentment and humiliation on the part of Henoko and its adjacent hamlets.
As anti-base elements sought to align Henoko with the rest of Okinawa and with Nago City, prominent local identity and head of the Nago fishing cooperative, Kohagura Hiroshi, presented a clinching argument: "What are you [opponents of the project] talking about? There is no way the Americans are going to do this anywhere but Henoko. Before the government carries out its plan over our heads, we have to get in with a struggle over conditions." [32] Earlier, Kohagura had played a key role in persuading villagers to refuse cooperation with the scheme for the new base to be constructed within the confines of Camp Schwab, that is, without reclamation. But with the reclamation project back on the table, he changed his tune. For him, it was a "preemptive punch" at the government. If the government did not cooperate, then Henoko would resist.
Henoko Exchange Plaza
(ii) DPJ Leadership//The Prime Ministership
The second looming election is that for leadership of the Democratic Party of Japan, which because of the party's majority in the House of Representatives carries with it the office of Prime Minister. Scheduled for 14 September 2010, current Party leader (and Prime Minister) Kan Naoto confronts challenger Ozawa Ichiro.
The two candidates contested Okinawa, in particular Futenma policy. While both had been notably silent during the fierce trans-Pacific exchanges that eventually brought Hatoyama down (save for Ozawa's enigmatic rhetorical question late in 2009: "Is it permissible to bury that beautiful, blue sea?"), once the Hatoyama surrender deal of May 2010 was in place, Kan clung to it and accused Ozawa of causing "confusion" by wanting to revisit it. [33] In essence, however, both presented a study in ambiguity: Kan insisted on honouring the Agreement while "reducing the base burden" on Okinawa and declaring that he would "not make a decision over the heads of local residents." [34] Somewhat remarkably, he was reported as saying, "I am fully aware that the agreement is unacceptable for the Okinawa people." [35] Ozawa struck a similar note, saying that the Agreement had to be revisited, because "[w]e cannot carry out the current plan as it is due to opposition from Okinawa residents," though he admitted he had no clear idea of how to revisit it. He seemed puzzled that Japanese leaders were apparently incapable of speaking their mind when meeting with US government officials. At that level, both were saying they would do what the agreement with the US required to be done but would not do it forcibly. This could only mean that it would not be done at all, under either, but given US pressures they could not bring themselves to say so.
It was the broader vision that Ozawa presented that filled Washington with fear and anger, as when he reiterated his controversial 2009 position that the US 7th Fleet home-based at Yokosuka should be sufficient to any Western Pacific security purpose, in which case not only Futenma but all other bases would presumably be returned to Japan (and Okinawa) as redundant. Washington's "Japan handlers" could not tolerate this. They were presumably also less than happy when Ozawa made an offhanded comment that he "liked" Americans though he found them tansaibo or unicellular, a gentle way of saying rather stupid. [36] When Ozawa took five plane loads of Japanese parliamentary and business leaders on a mission to Beijing shortly after the DPJ took office in 2009, Richard Armitage scathingly referred to "the Japanese People's Liberation Army descending on Beijing." [37]
Washington's hostility to Ozawa was reflected throughout almost the entirety of the Japanese national media. In sharp contrast to the irresponsible and corrupt profligacy of successive Japanese governments (of which the Cabinet Secretary's secret fund was characteristic), to which media and politicians readily turned a blind eye, actions by an Ozawa staffer, for which he himself denied personal knowledge, were trumpeted across the national media as corruption rendering him unworthy of public office.
Both Kan and Ozawa stressed the importance of the US relationship and were at pains to avoid anything that might be construed as serious doubt about the "alliance." Neither could openly admit that the series of agreements between the two countries on the Henoko construction dating back to 1996 but culminating in May 2010 no longer made sense. Not only was it impossible to impose an unwanted base on Okinawa but the idea that the Marines played a crucial "deterrent" role, such that the peace and prosperity of East Asia somehow depended on them, when many of them were actually absent fighting wars in Iraq and Afghanistan, and as of late 2009 there were only 14,958 US Marine Corps servicemen in total in Okinawa, with 9,035 family members. If 8,000 Marines and 9,000 family members were to be transferred to Guam as stipulated in the various Agreements, that would leave a few thousand Marines and no family members in Okinawa. It was laughable to suggest that their retention was crucial to the peace of the region, and perverse to ignore the fact that the Pentagon itself had decided to build its core Marine concentration for the Western Pacific and East Asia on Guam.
Neither Kan nor Ozawa could concede that the decision was not theirs to make because it was already being made by Okinawans. Neither had any answer to the problem. An Ozawa victory would lead to an immediate "crisis" as he would be obliged to return to the status quo of the Hatoyama government as it took office in 2009, i.e., to summon Washington to the negotiating table, while a Kan victory would postpone the crisis while he exhausted every possibility of "persuasion" and then began to take steps towards implementing the Agreement. In other words the 14 September DPJ choice (so far as the "alliance relationship" and the Okinawa issue was concerned) was to face the crisis immediately or to postpone it.
It is also worth noting that part of Ozawa's proposed alternative was for the Japanese Self Defense Forces to assume responsibility from the US for the defence of Okinawa and other island territories. The idea that a Japanese military presence might be acceptable in Okinawa where an American was not has a certain superficial attraction, but was based on ignorance of the deeply anti-military sentiments of Okinawans, who remember many centuries of peaceful coexistence with China and have little if any of the mainland sense of "China threat" while their memory of being exploited and betrayed by the Japanese military in 1945 is seared deep into the Okinawa soul. An expanded SDF military presence might therefore stir just as much opposition as an American Marine one.
(iii) Governorship of Okinawa
The Okinawa Governor election (28 November) pits the incumbent Nakaima Hirokazu against Ginowan City mayor Iha Yoichi. For any base construction project to proceed, the Governor's authorization is a legal requirement for reclamation of the sea, so the outcome of this election is of high interest to the governments of Japan and the United States. Nakaima is supported by both ruling and opposition national parties (Democratic Party (DPJ), Liberal Democratic Party (LDP) and Komeito), while Iha is backed by the Social democratic, Communist, and Okinawan Social Mass Parties. [38]
Nakaima, an Okinawa business leader who took office in 2006 with the support of the LDP and Komeito, has nevertheless protested on countless occasions at the way Tokyo ignored him in its deliberations on the base issue, stating that it was "meaningless for the two governments to think that just because they were in agreement the project would go ahead." [39] In April he told the "all Okinawa" mass anti-base meeting that he had the feeling Okinawa was being subjected to "something akin to discrimination." Later he told the Kan government that he would not enter any negotiations over a Futenma transfer or any putative new base construction and he described the 31 August "Experts" report as a "worthless scrap of paper" that would be "impossible to implement." [40] Nakaima's challenger, current Ginowan City mayor Iha has based his public career on the demand for reversion of Futenma and on opposition to any proposal to construct a substitute for it in Okinawa.
Tokyo's hope rests on the slender thread that in all his bitter and angry comment, Nakaima had not declared outright opposition to the base project and had not said he would absolutely forbid it. Tokyo understood that no candidate for office in Okinawa in the nearly thirty years since reversion to Japan had ever gone to the polls promising to maintain, let alone to reinforce or expand, the US base presence, and that the pressure in this case was extraordinarily heavy because no new base had been built in Japan since the 1950s and no local government anywhere in the country had showed any desire to relieve Okinawa of the burden. But it plainly hoped that once re-elected, Nakaima would be "reasonable," i.e, that he would be open to persuasion, given suitable incentives. He was Tokyo's best hope of an ally who would sell out Okinawa and betray his electors. Under the circumstances, the Kan government has little alternative but to interpret Nakaima's stance as one of careful ambiguity designed to keep the door open to cooperation with Tokyo. What was important was not Nakaima's declaring the construction "extremely difficult" but his not saying he would absolutely forbid it.
Tokyo will leave no stone unturned in the effort to ensure Iha's defeat. During 2009, it was revealed that the Cabinet Secretary controlled a fully discretionary (no receipts necessary) "slush fund" (kanbo kimitsuhi) which among other things had been customarily used to provide well-known media "intellectuals" and commentators with envelopes stuffed with cash (five million for the "Obon" festival occasion), a bonus of five to ten million yen monthly to LDP luminaries, and summer and winter presents of ten million each to former Prime Ministers. The fund has also been drawn upon to intervene in Okinawa to evade, manipulate or deceive the popular will. The full record of those interventions remains to be written but the veil has at least been partially lifted over episodes in 1965 and 1998. On the former occasion, while Okinawa was still under US control, then Ambassador Edwin Reischauer called for support to be secretly channelled to ensure the election of favoured conservative candidates in an Okinawan (Ryukyuan) election. As he put it then, "we should not incur ... the danger of exposure. … It would be risky to take clandestine political action in Okinawa using direct U.S.-Ryukyuan channels. It would be much safer to use only the Japanese route, permitting the Japanese LDP to handle the money." [41] On the latter occasion, the Obuchi government sent a campaign fund contribution of 300 million yen to ensure the defeat of Governor Ota Masahide who was then pursuing an unpalatable "Action Programme" for the return of US bases. That intervention set in place a series of base-cooperative provincial chief executives that has continued in Okinawa to this day. [42] The Kan government hopes that Mr Nakaima will prove as amenable to persuasion in the "national interest" as his predecessors (with the notable exception of Ota Masahide, Governor 1990-1998).
When pressed to deny that the (Kan) government today would resort to such interventions, the Cabinet Secretary refused to answer, [43] and Prime Minister Kan declined to order that the practice be stopped or to launch an investigation with a view to launching criminal proceedings. [44] Other, no less scandalous, discretionary funds are certainly maintained under the Kan government, including one used in July 2010 to host a state visit – charter flight, helicopter tour of Mt Fuji, and "additional remuneration" - to Japan by the convicted terrorist bomber, Kim Hyon-hui. [45] If, as Suzuki Muneo, Deputy Chief Cabinet Secretary in 1998, put it in 2010, "we made the judgement we did [to fund the anti-Ota campaign] because we had to win that election," the stakes today are plainly higher than they were then, and the Kan government is determined at all costs to see that Ginowan mayor Iha not be elected Governor.
5. Time to Rethink
Both in Washington and in Tokyo, the view is clear: to avoid immediate crisis in the US-Japan alliance, a pro-base majority must be installed in Nago City, Kan must be confirmed in office in Tokyo and Nakaima in Okinawa. Okinawans could not be allowed to determine the future of their islands and had to be either persuaded or bought off with the appropriate package of carrots and sticks.
In that deep, shared contempt for Okinawans lay the real problem of the Alliance. No defence of democracy or of a "free" world could rest on denial of freedom and democracy in a core territory. The political struggles of Nago City, Okinawa prefecture, and of the Kan-Ozawa contest for leadership of the DPJ and of the government, might not resolve the issues, but at least they focussed attention on the fact that the series of Agreements between the US and Japan were indeed mere scraps of paper. Serious attempt to resolve the "Okinawa problem" will have to begin by scrapping the Agreements and the many vain attempts to impose upon Okinawa something its people have rejected in every conceivable forum. Gradually a realization might be spreading, emanating from Okinawa, that to face and begin to resolve the current problem means to revisit the formula on which the post-war Japanese state has rested and to begin renegotiating its "Client State" dependency on the United States.
[1] "Guamu iten hiyo, keikaku to mo muri ga aru," editorial, Ryukyu shimpo, 29 August 2010.
[2]"As a long delay in the transfer could adversely affect the bilateral alliance, the Japanese government has not ruled out the possibility of shouldering the infrastructure-building costs." (US says it can't repay Japan to build infrastructures in Guam," Associated Press, 27 August.)
[3] "Iten sokushin e 'Futenma' no zenshin o," Yomiuri shimbun, editorial, 4 August 2010.
[4] Clynt Ridgell, "US EPA calls DEIS 'Environmentally unsatisfactory," Pacific News Center, 25 February 2010.
[5] "Menboku yusen, jimoto hairyo nashi," Ryukyu shimpo, 24 August 2010.
[6] "Futenma hikojo isetsu mondai – hiko keiro no setsumei ayamari, Henoko, Futenma daitai shisetsu an," Ryukyu shimpo, 24 August 2010.
[7] "Okinawa Nihongawa ruto kyohi," Ryukyu shimpo, 25 August 2010.
[8] "Yuitsu no jitsugen kano na an" quoted on "Bei no tenkan tomadou seifu," Okinawa Taimusu, 25 August 2010.
[9] "Futenma Replacement Facility Bilateral Experts Study Group Report," 31 August 2010.
[10] Quoted in Masami Ito, "Futenma replacement report leaves runway question open," Japan Times, 1 September 2010.
[11] "Okinawa kengikai Nichibei kyodo seimei minaoshi ketsugi o saitaku," Ryukyu shimpo, 9 July 2010 (English version in Peace Philosophy, 9 July 2010).
[12] "Henoko ni jieitai jochu," Ryukyu shimpo, 26 August 2010.
[13] "Jumin fuzai no Nichibei kyogi – Henoko hiko keiro de tairitsu," Ryukyu shimpo, 25 August 2010.
[14] Ryukyu Asahi Broadcasting and Norimatsu Satoko, "Assault on the Sea: A 50-Year U.S. Plan to Build a Military Port on Oura Bay, Okinawa," The Asia Pacific Journal, 5 July 2010.
[15] "Futenma hikojo isetsu mondai, 'iho' to 344 nin teiso Futenma asesu yarinaoshi sosho," Ryukyu shimpo, 20 August 2009.
[16] "Oura-wan ni 36 shinshu, ebi kani-rui, ken ni hozon hatarakikake e," Ryukyu shimpo, 25 November 2009 (and photo, here).
[17] "Henoko ni shinshu? Kaiso 4 shu 'umetatereba zetsumetsu no osore," Asahi shimbun, 16 July 2010 (English text: "4 new types of seaweed found at Henoko," Asahi shimbun, 17 July 2010).
[18] WWF (World Wildlife Fund), Japan, "Futenma hikojo daitai shisetsu jigyo ni kakawaru kankyo eikyo hyoka junbisho ni taisuru ikensho," 13 May 2009; also Urashima Etsuko, "Okinawa Yambaru, kaze no tayori, (10), Ikusa yo wa tsuzuku," Impaction, No 170, August 2009, pp. 128-141, at p. 137.
[19] Sakurai Kunitoshi, "Ronsho ketsujo surikae mo- tayosei toshi ni towareru shinka," Ryukyu shimpo, 23 August 2010 (see also the Sakurai comment quoted in Ryukyu shimpo, 25 August 2010.
[20] Sakurai Kunitoshi, "The Guam Treaty as a modern 'disposal' of the Ryukyus," The Asia Pacific Journal, 21 September 2009.
[21] Hideki Yoshikawa, "Dugong Swimming in Uncharted Waters: US Judicial Intervention to Protect Okinawa's 'Natural Monument' and Halt Base Construction," The Asia-Pacific Journal, 7 February 2009.
[22] Medoruma Shun, "Nago shigikai senkyo," Uminari no shima kara, 8 September 2010.
[23] Quoted in "Ippyo no butaiura – 2010 nen no toitsu chiho sen," Okinawa Taimusu, 26 August 2010.
[24] "'Ken-nai' dantai seron han'ei Nago shiji senritsu kohosha anketo," Okinawa Taimusu, 6 September 2010.
[25] "'2 homen kosho' ni hihan," Ryukyu shimpo, 19 August 2010.
[26] "Sajo no Henoko kaiki, chartozu," part 23, Zoku, Ame to muchi no kozu, Okinawa Taimusu, 22 August 2010.
[27] "Kichi yonin no soji ni," and "Kahan setai ga gunyo jinushi," parts 11 and 12, Zoku, Ame to muchi no kozu, Okinawa Taimusu, 1 and 2 August 2010.
[28] "Kyogaku no kane nichijo ni shinto," part 21, Zoku, Ame to muchi no kozu, Okinawa Taimusu, 20 August 2010.
[29] "Umetatete shiyuchi ka," part 16, Zoku, Ame to muchi, Okinawa Taimusu, 9 August 2010.
[30] "Jimoto bundan no akumu futatabi," part 9, Zoku, Ame to muchi no kozu, Okinawa Taimusu, 30 July 2010.
[31] "Kyogaku no kane nichijo ni shinto," cit.
[32] "Hanpatsu fuji joken toso yonin ketsugi isoida ku gyosei-i," part 1, Zoku, Ame to muchi no kozu, Okinawa Taimusu, 16 July 2010.
[33] On the Kan-Ozawa debate: Kentaro Kawaguchi, Kiichi Kaneko, and Hiroshi Ito, "Futenma relocation plan stuck between a rock and a hard place," Asahi shimbun, 2 September 2010; also ongoing coverage in Ryukyu shimpo and Okinawa Taimusu.
[34] Quoted in "Futenma relocation plan," editorial, Asahi shimbun, 4 August 2010.
[35] "Kan and Ozawa lock horns on key policy issues," Asahi shimbun, 4 September 2010.
[36] "Americans 'simple-minded'," Japan Times, 26 August 2010.
[37] See my "Ampo's Troubled 50th: Hatoyama's abortive rebellion, Okinawa's mounting resistance and the US-Japan relationship," part 2, The Asia-Pacific Journal, 31 May 2010.
[38] In a concession designed to win support of the local Communist Party, Iha's campaign adopted the slogan "Withdraw the Marines" (Kaiheitai tettai). It was broader than that of simply a return of Futenma without replacement and might expose him to the charges of anti-Americanism that the mainstream Okinawan movement has been at pains to avoid.
[39] "Okinawa fukureru seifu fushin," Asahi shimbun, 8 August 2010.
[40] "Henoko hokokusho jitsugen funo no kara shomon," Ryukyu shimpo, 2 September 2010.
[41] "U.S. Policy in the Ryukyu Islands," Memorandum of Conversation, July 16, 1965. US National Archives, Record Number 79651. See discussion in Steve Rabson, "'Secret' 1965 Memo Reveals Plans to Keep U.S. bases and Nuclear Weapons Options in Okinawa After Reversion," The Asia-Pacific Journal, 5-1-10, February 1, 2010.
[42] "Chijisen ni kimitsuhi? soho nattoku iku setsumei o," Okinawa Taimusu, 23 July 2010. Also "Okinawa kenchiji senkyo e no kanbo kimitsuhi ryuyo mondai," Uminari no shima kara (Medoruma Shun), 22 July 2010. On the eve of the collapse of the Aso government in 2009, 250 million yen in such "secret payments" was authorized and remains unaccounted.
[43] "Kimitsuhi tonyu hitei sezu," Ryukyu shimpo, 21 August 2010.
[44] For a file of newspaper editorial coverage on this matter, see this link.
[45] Debito Arudou, "The Victim Complex and Kim's Killer Con," Japan Times, 3 August 2010.
Gavan McCormack is a coordinator of The Asia-Pacific Journal, an emeritus professor of Australian National University, and author of previous studies in this journal of the US-Japan relationship and Okinawa, including the three-part "Ampo's Troubled 50th: Hatoyama's abortive rebellion, Okinawa's mounting resistance and the US-Japan relationship" (31 May 2010). He is author of Client State: Japan in the American Embrace. He wrote this article for The Asia-Pacific Journal.
Recommended citation: Gavan McCormack, "The US-Japan 'Alliance', Okinawa, and Three Looming Elections," The Asia-Pacific Journal, 37-1-10, September 13, 2010.
Articles on related themes:
Ryukyu Asahi Broadcasting and Norimatsu Satoko, Assault on the Sea: A 50-Year U.S. Plan to Build a Military Port on Oura Bay, Okinawa
Kensei Yoshida, Okinawa and Guam: In the Shadow of U.S. and Japanese "Global Defense Posture"
Makishi Yoshikazu, US Dream Come True? The New Henoko Sea Base and Okinawan Resistance
Ahagon Shoko and C. Douglas Lummis, I Lost My Only Son in the War: Prelude to the Okinawan Anti-Base Movement
Yoshio Shimoji, The Futenma Base and the U.S.-Japan Controversy: an Okinawan perspective
Iha Yoichi, Why Build a New Base on Okinawa When the Marines are Relocating to Guam?: Okinawa Mayor Challenges Japan and the US


text:
Pink Siifu and Ahwlee Announce B. Cool-Aid Album, Share New Song: Listen
Liv.e, Butcher Brown, Jimetta Rose, V.C.R., and Maurice II feature on Leather Blvd.'s "Cnt Go Back ( Tell Me )"
B. Cool-Aid's Ahwlee and Pink Siifu, photo by KubiKowboy
B. Cool-Aid, the duo of Pink Siifu and Ahwlee, have announced a new album: Leather Blvd. is due out March 31 via Lex Records. The group has also shared a new song, "Cnt Go Back ( Tell Me )," featuring Liv.e, Butcher Brown, Jimetta Rose, V.C.R., and Maurice II. Find it below.
B. Cool-Aid released their debut, Brwn, in 2017, following it with Syrup in 2019. Last year, the duo shared the songs "Coo" and "UsedToo."
Pink Siifu and Ahwlee are longtime collaborators, with the producer having contributed to Siifu's 2018 breakthrough, Ensley, as well as 2020's FlySiifu's, 2021's $mokebreak EP, and 2022's Gumbo'!
Read more about the $mokebreak EP in Alphonse Pierre's "7 Rap Mixtapes From 2021 That Deserve More Attention."
This article was originally published by Pitchfork.com. Read the original article here.


Penrice Academy/Latest News/Subjects/Performing Arts/Dance/Wizard of Oz: Lights and Sounds!
Wizard of Oz: Lights and Sounds!
Every great production needs a great Special Effects team – and the boys working on Lights and Sounds behind the scenes on The Wizard of Oz have got it covered.
From getting inside lessons and on school trips to reading all about successes, events and blogs from throughout the Penrice community - find all the latest news here.


And also extends some thoughts that I've had, particularly since Austin Kocher's presentation on the spaces inhabited by interpreters at this year's AAG.
Austin's paper was great – but also worrying. In it, he gave an outline of the level, and type of cultural theory (for that, don't read Cultural Theory à la Edward T. Hall – although that too, read cultural theory – i.e. knowledge about culture) that interpreter trainees are formally exposed to during training.
His conclusion, and that of those listening (well, me at least!) – that although Deaf cultural theory is steaming ahead into the realms of performativity, positionality, reflexivity, hybridity, postcoloniality and so on, interpreters may well be starting their active service with a cultural toolbox that is ten years out of date.
To clear up her easier question first – yes, I am interested in the "larger social questions any time a technology has overtaken a craft-based skill set". Like MB, I am quite a fan of the 'slow' life (in fact, we've been talking about this out of band) and would rather imagine a world that is less 'efficient' and more 'holistic' in many ways.
For what it's worth, I'm more of an 'adapter' with withdrawal tendencies than a 'smasher'… rather than assert that any one 'way' has the right to remain unquestionably unchanged, I prefer to play with the deeper questions about society that new methods provoke.
Perhaps that's a snobbish reluctance to get my hands dirty – perhaps I'm just more of an introvert?
She's also right – in many ways, I am "probing the idea that sign language interpreting qualifies as a special case in comparison to all the other previous cases of skill based technological change in that the relationship between signers and interpreters can be contentious".
Interestingly, it's not a need that is automatically between 'signers and interpreters' – the first case I can find in the historical record of an interpreter being needed wasn't to help a signer (who was quite happy to write messages) – it was to help the non-signing hearing people who were illiterate and so couldn't read the message!
But, yes – it appears that there is a direct 'need' relationship embedded in the interpreter/client relationship.
And given that Oralism, after all, was/is less about things 'oral' than it was/is about the discourses of control and capability that are woven around the Deaf community, the relationship of 'need', causes me all kinds of questions.
And all of this is why, I think it's fair to ask the question about Oralism and Interpreting… not because interpreters are a 'problem'… rather, they are the best place to start, for three main reasons.
Interpreters are one of the professions working in a 'need' dynamic with the Deaf community… and so will be impacted by the type of technology that an SL translation app (sorry for my unashamed use of the shortening *wink*) offers… So discussing the impact that technology like that might have is a way of exploring the larger social questions that MB outlines in her post.
Interpreters generally do have the level of reflexivity that MB (and Austin's paper) demonstrate. They see, and tread, the line between empowering and disempowering 'need' on a daily basis. So discussing this with them is immediately meaningful in a way that it might not be for, say, a more 'unthinking' Deaf-related industry – like audiology.
Interpreters are, almost all, deeply knowledgeable about the Deaf community and deeply committed to the community as people – and to the community's empowerment. At the same time, they juggle with their own jobs and responsibilities. So, ultimately, they're going to be looking to resolve questions like these in ways that are empowering to both sides. I can't think of a better place to start a discussion about something as emotive and as historically difficult as Oralism.
Much of my work hinges on explorations of possibility, tied to imagined realities – so I wonder if it's possible to run a thought experiment, and imagine that the SL translation App does actually work – and think about what might happen next *grins*.
Excellent post, Mike. Yes, my talk was a first stab at trying to analyze how theories about culture (in general) have been used to explain Deaf culture (in particular) to hearing people, and especially to interpreter training students. So not only do interpreters risk being, lets say, out of date with cultural theory. But they risk going down a road of cultural essentialism, whose genealogy is colonial to begin with. (See Qadri Ishmael's new book which will be released in a few months.) That's not to say that we should throw out Cokely and Mindess, but we should point out that they use a particular theoretical lens to view culture. And frankly, I'm not comfortable with it. I think Ladd has some good comments in Deafhood about being skeptical of post-modern theory, but I would have liked him to spend a bit more time on it. To put it collegially, I think he runs a bit loose over what he calls post-modernism. I'd love to have a longer chat over this topic with you and Mary Beth.
This entry was posted on March 15, 2012 by Mike Gulliver in Musings and tagged attitude, Interpreters, machine translation, Oralism, Sign Language Translation.


Poor old Explorers' tree. It's in a dreadful state.
Gregory Blaxland, William Wentworth and William Lawson.
In 1813 the three men pictured above set out to cross the Blue Mountains of New South Wales, keeping to the ridges, rather than the deep, forested valleys. Accompanied by five servants, they were the first European settlers to succeed.
Map of the journey drawn in 1913 by Frank Walker, with the path of the Great Western Road beside it.
I think we would all agree that the Explorers' Tree (Eucalyptus oreades ) outside Katoomba is a sad sight. But to be honest, t'was (almost) ever thus. By the 1880s it was dead, and posing a danger to visitors and passers by. It was said that the explorers had carved their initials on the trunk, but if true they had long vanished.
The tree standing tall, but already lifeless.
In 1904 the top was chopped off and taken to the newly built Hydro Majestic Hotel. The plan was for it to be fashioned into a relic for guests to admire. Unfortunately it was destroyed during a bush fire, in 1922.
Did Blaxland, Wentworth and Lawson, really carve their initials on the trunk in 1813? It seems unlikely. There is no documented evidence, and the first mention of it did not appear until the 1860s. Some people have suggested it was all a hoax, to lure visitors up the mountains in those early days.
We passed in the first mile a much over-rated and doubtful relic – "Wentworth's Tree". I have seen a good many better trees. Why the tree next to it is better. The thing isn't a tree at all; it is an old dead stump, a fraud, not worth the trouble of putting a railing around. There are said still to remain upon it the initials of the three explorers. Three? Wentworth must have had a big party. John Smith, Annie Smith (ladies, too), Henry Jones, William Mulqueeney – and dozens of others. At all events, Wentworth, though he may have been a good explorer, had no knowledge of timber.
Graffiti remained a problem down the years. In 1939 a local newspaper reported; It is a matter for regret that 'visitors' have found means of hacking their initials on the coping of this monument. Left alone in Westminster Abbey, such fiends would not hesitate about scratching their worthless names on the tomb of the Unknown Warrior.
The Mayor – The glass case would not last a week up there!
Alderman Collins – And half eaten by white ants.
The Mayor – It has been suggested that it should be cut down and removed to the Town Hall.
Alderman Collins – But it's loaded with white ants.
Alderman Hendry – Why not remove it to the Town Hall and substitute a model at the present site?
Alderman Collins – I move that we advise the Town Planning Association of the condition of the tree and suggest that it should erect a monument to mark the spot.
At some point the rotted core was filled with concrete and steel bands were placed to hold the increasingly flimsy shell together. A car crashed into the surrounding wall of the stump in 2012 and since then it has become a bit of an eyesore.
In the end it doesn't really matter whether the explorers carved their initials on the tree or not. It still stands as a memorial to their great achievement. Perhaps what's left needs to be incorporated within another monument. I understand the Blue Mountains Council applied for and received a $100,000 grant from the State Government to do something, so we can only hope.
There is another complication in all this. If there is to be a replacement monument, should it remain at the Katoomba site, or be placed where the 1813 expedition ended? Oddly enough there were claims of another marked tree at Mount Blaxland, and photos as well.
UPDATE – The Blue Mountains Council responded to this story. The government grant was awarded in August 2018. Council are currently formulating plans for an upgrade of the whole site.
Excellent. You do such a good job, Chris.