jueves, 28 de marzo de 2019

How To Download Prince Of Persia Shadow



Welcome to my channel. My name is Ashik.


Awesome screenshots in this game---








First you will download this apk
APK : https://oceanofapk.com/HereYouGo.php

Then you will install this apk. After installing you will click your apk and enjoy this game. So friends plzz
my channel 
               Tnx!!!! 

Explore Simple Game Algorithms With Color Walk: Part 8

We're continuing this ongoing saga of different game algorithms using the simple game Color Walk. In the last post we started exploring the fundamental graph search algorithms with breadth-first search (BFS), because after all, the full set of move choices and resulting board positions of any game can be arranged as a graph. After looking at BFS and finding that we can nominally improve the search for shortest number of moves, on average, it's time we look at the close sibling of BFS: depth-first search (DFS). We'll quickly run into performance issues just like we did for BFS, but let's see if we can come up with a reasonable way to limit DFS so that it can be a useful algorithm.

DFS in Theory


We saw in the last post that BFS searches a graph (or in the case of games like Color Walk, a tree of board positions generated from moves) one level at a time. All child nodes of the root are searched before any of the children's child nodes are searched, and so forth until the desired search criteria is met. In the case of DFS, the opposite is done. One branch of the tree is searched all the way down to its left-most leaf node, which in the case of game move trees is the end-of-game condition, and then the algorithm backs up and searches down the next branch. The process is repeated until the entire tree is searched, and then the optimal node or path to that node is returned as the result. The following picture illustrates how a tree of height 3 would be searched with DFS:

Tree searched with depth-first search

This move tree is drawn for Color Walk assuming there are three colors to pick from, and the numbers in each node show the order that each node is visited during the search. Comparing this to BFS, we'll notice that while BFS has the desirable property that the first node found satisfying the search criteria is also the node with the shortest sequence of moves to reach it, DFS does not have this property. If node 7 is an end-of-game position, but node 13 is also an end-of-game position (assuming nodes 14 and 15 are removed), then after finding node 7, we have to continue searching to be sure we find the best move sequence at node 13.

So why would we want to use DFS if it doesn't find the best node first, like BFS does? First of all, an application may not require the solution with the shortest path, only a solution with a reasonable path, and DFS may be able to find it faster than BFS. This doesn't apply in the case of Color Walk because we are interested in the shortest path, but even in this case we could be satisfied with a path shorter than any others that we've found by other methods.

Secondly, DFS uses less memory than BFS, especially as the tree grows to more and more levels. Searching the above binary tree with a height of 10 using BFS would require a queue with space for 1,024 nodes to hold all of the nodes at the 10th level. On the other hand, DFS keeps track of which path its on using a stack—normally the call stack if it's implemented recursively—and only requires space for 10 nodes to search the same tree. The divergence in memory requirements between the two methods is exponential.

Even though it uses significantly less memory, DFS runs into another problem with Color Walk that can be seen if you think about the extension of the above graph. What happens to that far left path of alternating blue and red moves in the actual game? After not too many moves, we will stop making forward progress in the game because no more blocks will be removed. All of the remaining blocks bordering the grey area would be yellow. We're avoiding choosing the same color multiple times in a row, but that is not enough to avoid searching down a path of infinite length. In fact, the very first path we'll take will be infinite! In addition to that, any path that never chooses one of the colors will go on forever. There are an infinite number of paths in this tree that are infinitely long. Yikes! We could be searching for a long time.

To avoid the problem of infinite paths, we'll have to be careful with implementing DFS for Color Walk. We'll need to either limit the number of moves that we'll search down the tree before giving up on that path, or cut off the search on a given path as soon as we try a move that doesn't remove any blocks, because such a move path can't possibly be optimal. It's likely beneficial to limit the search both ways.

While this problem may seem specific to Color Walk, it is in fact a common problem for DFS to get trapped in loops. Care must be taken to make sure loops are detected and the search of those paths terminated so that the algorithm doesn't run on forever.

DFS in Practice


With the general theory covered, we are ready to start implementing our DFS algorithm. We'll start with the tactic of limiting the search by the number of moves and terminating search paths when a move is encountered that doesn't remove any blocks. We also need to limit the total search time in some way because otherwise we'll be searching at least as long as the pure BFS algorithm, which was thousands of years. We'll limit the search time to a minute and see what a run on a single board can find. Then we can look at optimizations to search more of the tree in that time before doing a batch run of 100 boards.

The first thing we need to do is add a DFS algorithm to the list of algorithms:
  function Solver() {
// ...

this.init = function() {
// ...

$('#solver_type').change(function () {
switch (this.value) {
// ...
case 'dfs':
that.solverType = that.dfs;
that.metric = areaCount;
break;
default:
that.solverType = that.roundRobin;
break;
}

// ...
});

// ...
}
The normal heuristic that will be used is again areaCount() because we'll want to count blocks removed when checking if we should give up on a search path. We'll be able to call the endOfGame() check directly when we need to, but we'll get into that more in a bit. First, let's look at the high-level setup function of dfs():
    this.dfs = function() {
var state = {min_moves: 50, moves: null, stop_time: performance.now() + 60000};

_.each(controls, function(control) {
var matches = control.checkGameBoard(1, that.metric);
if (matches === 0) return;
state = dfsNext(2, control, matches, state);
});

markers = state.moves;
doMarkedMoves();
}
The first thing this algorithm does is initialize a state object that will hold some important information on the progress that's being made during the search. It contains the minimum number of moves found so far initialized to 50 moves, a copy of the match record of the board that led to that minimum number of moves, and a time that indicates when we should cut off the search. The match record is the same one used to keep track of sequences of moves in the BFS queue. The stop time doesn't necessarily need to be in this state object because it'll never change, but it's included for convenience.

Then the algorithm runs through each control, checking the board for matching blocks. If there are none, it skips to the next control. Otherwise, it calls the recursive function of DFS so that it can search deeper down that path. Each call to dfsNext() passes the state object and returns the state object so that it can be continually passed down to each searched node to be used to limit search depth and get updated as necessary. The current control and number of matches are also passed down to limit searches if the same control is used twice or no new matches are found in the child node.

The algorithm wraps up by copying the move markers from the minimum number of moves found during the search back into the markers array, and then calling doMarkedMoves() to run through those moves on the board. All of this stuff is fairly straightforward, so the real meat of the algorithm remains to be seen in dfsNext():
    function dfsNext(move, prev_control, prev_matches, state) {
if (performance.now() > state.stop_time) return state;

for (var i = 0; i < 5; i++) {
var control = controls[(i + move) % 5];
if (control === prev_control || move >= state.min_moves) continue;

var matches = control.checkGameBoard(move, that.metric);
if (matches === prev_matches) continue;

if (endOfGame()) {
state.min_moves = move;
state.moves = markers.slice();
continue;
}

state = dfsNext(move + 1, control, matches, state);
};

return state;
}
Half of this function is actually checks to limit the search so as to speed up the algorithm. The core of the algorithm is actually just eight lines of code (including closing braces). The function first checks if it should stop because it's over time. Once the stop time is reached, this line will quickly end all further searching on any leftover branches in the move tree.

If there's still time, we'll look at each of the five controls. I implemented this as a for loop instead of a _.each() because I wanted to rotate through the controls, starting with a different control each time, as the search went deeper into the tree. Otherwise, the same controls would always be searched first, giving a long search path and a huge tree to start with that would just waste time because the search wouldn't be making progress towards the end of the game fast enough. Selecting the next control with controls[(i + move} % 5] neatly produces this behavior of rotating through the controls with increasing search depth.

Then we start checking if we should terminate the current search path. If the control is the same as the last control or if this move has already reached the minimum number of moves found so far, we should bail right away. Similarly, if the current control doesn't remove any new blocks, the current path is a dud.

The last check is directly related to the DFS algorithm. If we've reached the end-of-game condition, then we can update the state object with a new minimum moves and the marker array containing the sequence of moves. How do we know for sure that the number of moves is a new minimum? Because if it wasn't, we would have already quit this search path. At this point we quit this search path anyway because we reached the end.

If all of those checks fail, then we drop down to the next level of the tree by calling dfsNext() again with the same parameters, except for incrementing the move number. This algorithm should look very familiar because we've used it extensively already. It has the exact same structure as the Greedy Look Ahead (GLA) algorithm with the only differences being that in GLA we parameterized the search depth so that the user could pick it, and we did a full DFS to that depth so that we could pick the path that maximized some heuristic. Here we're looking for a specific end condition instead of maximizing a metric.

The hope in using the DFS algorithm to its full depth is that the short-path solutions in the move tree are relatively evenly distributed and plentiful, so that even though we can't search the entire tree, we would expect to find a reasonably short solution without searching for too long. How does our algorithm perform in practice? Not too great. On the first board the GLA algorithm finds a solution in 34 moves when looking ahead 6 moves. Letting DFS run for a minute, which is longer than GLA-6 takes to find its solution, turns up a solution in 42 moves. Letting it run for a full 10 minutes doesn't find anything better than that.

DFS in Reality


As a sanity check for the performance of the algorithm, I decided to put in a counter to track how many nodes were visited during a run. It turns out that over a minute only about 550 nodes were checked, and after 10 minutes about 5,000 nodes were checked. That means it took over 100 milliseconds to check a node, which seems high, even for JavaScript. I put a stop watch in to see how long it was taking to check each node, and I found that when the move depth was shallow, checking a node for removed blocks was quite fast, but as the move depth increased, the time it took to check a node increased rapidly:
  • Move depth of 20: < 1 msec
  • Move depth of 30: 15 msec
  • Move depth of 40: 100 msec
  • Move depth of 47: 500+ msec
It appears as though function calls take a huge hit in performance as the call stack gets deeper. If I limited the move depth to 30 moves, DFS could search over 6,800 nodes in a minute. That's over an order of magnitude improvement! Of course, it didn't find any solutions, but it could not find a solution much faster.

Two important things that we've learned so far are that (1) short-path solutions are probably not as evenly distributed in the tree as we had hoped, and (2) those solutions are not as plentiful as we would like. We're going to have to set up DFS so that it will have a better chance of success. To get this algorithm to a point where it would actually be usable, we should try combining it with our good-old workhorse, GLA. We can even do the same thing as we did for BFS, and run with GLA for the first 18 moves before switching over to DFS. Then see if we can find a good solution in the next 30 moves so as to keep the call stack short and the searching fast.

This change is super easy to make, as almost everything we need is already available. All we have to do is add a few lines to dfs():
    this.dfs = function() {
if (moves < 18) {
this.greedyLookAhead();
return;
}

var state = {min_moves: 30, moves: null, stop_time: performance.now() + 60000};

_.each(controls, function(control) {
var matches = control.checkGameBoard(1, that.metric);
if (matches === 0) return;
state = dfsNext(2, control, matches, state);
});

markers = state.moves;
doMarkedMoves();
}
Now the algorithm will use GLA to whatever look-ahead depth the user specifies for the first 18 moves before switching to DFS for the last moves. It should be able to find a solution for every board by allowing a depth of 30 moves for the DFS phase because the maximum solution of moves found for GLA-5 was 41, and this setup allows for up to 48 moves. The batch run of 100 iterations is going to take over an hour and a half to finish, but I want to give DFS its best chance at success. How did it perform?

Color Walk with depth-first search for 100 iterations


We have an average shortest-path of 34.8 moves with a standard deviation of 3.85 moves. This run was decent—not quite as good as the BFS hybrid algorithm, but still pretty good. Here's how it stacks up against a selection of the rest of the algorithms:

AlgorithmMinMeanMaxStdev
RR with Skipping 37 46.9 59 4.1
Random with Skipping 43 53.1 64 4.5
Greedy 31 39.8 48 3.5
Greedy Look-Ahead-2 28 37.0 45 3.1
Greedy Look-Ahead-5 25 33.1 41 2.8
Max Perimeter 29 37.4 44 3.2
Max Perimeter Look-Ahead-2 27 35.0 44 2.8
Perimeter-Area Hybrid 31 39.0 49 3.8
Deep-Path 51 74.8 104 9.4
Path-Area Hybrid 35 44.2 54 3.5
Path-Area Hybrid Look-Ahead-4 32 38.7 45 2.7
BFS with Greedy Look-Ahead-5 26 32.7 40 2.8
DFS with Greedy Look-Ahead-5 25 34.8 43 3.9

We can see that DFS was able to find a minimum move sequence of 25 moves, just like GLA-5, but it didn't perform as well for the mean or maximum. It also had a wider distribution of results than either GLA-5 or BFS. The fact that DFS performs better when the shortest path is shorter and not as well when the shortest path is longer would be due to the DFS taking much longer to search for more optimal paths when the first path it finds is longer and the depth limit for searching the tree is correspondingly deeper. When the algorithm has to search to a depth of 30, it has to search a much larger tree to find a shorter path than if it can start searching to a depth of 15 or so. It may even be able to complete its search of the sub-tree if it finds a very short path early that can limit the depth of the search for the rest of the tree.

A couple ways to improve this hybrid DFS algorithm immediately come to mind. First, we could speed up the search implementation by creating our own stack instead of using JavaScript's call stack. This iterative approach would likely substantially outperform the recursive approach because it shouldn't slow down excessively for deeper search depths. That would allow for searching significantly more nodes in the same amount of time. Second, we could do a preliminary quick search to see how deep the paths are for a few seconds of searching, and then continue using GLA if the path found was too long so as to reduce the search tree height some more before running DFS for the full minute. This strategy would likely bring down the shortest paths for boards that have the longest shortest paths and tighten up the distribution more.

At some point an optimized DFS starts to perform a lot like BFS because it will fully search the section of the tree that it comes to after GLA, and it will end up finding the same shortest-path that BFS would. The advantage of DFS may come from being able to squeeze more performance out of it than BFS, and thus being able to search a larger section of the move tree in the same amount of time. Remember, a DFS algorithm only needs a stack with a size equal to the height of the tree, while BFS will need a queue with a size of at least 4height, making it much less efficient to search large sub-trees.

In either case the improvement of DFS would likely be only marginally better than GLA-5, so we'll move on from BFS and DFS to explore a new shortest-path algorithm next time: Dijkstra's Algorithm.


Article Index
Part 1: Introduction & Setup
Part 2: Tooling & Round-Robin
Part 3: Random & Skipping
Part 4: The Greedy Algorithm
Part 5: Greedy Look Ahead
Part 6: Heuristics & Hybrids
Part 7: Breadth-First Search
Part 8: Depth-First Search
Part 9: Dijkstra's Algorithm
Part 10: Dijkstra's Hybrids
Part 11: Priority Queues
Part 12: Summary

miércoles, 27 de marzo de 2019

PG 206, Bobby Is Going Home!

Today for the first time I delve into what I originally thought was a PAL exclusive game, Bobby Is Going Home by Bit Corporation. Music and fun, what more could you want? Special thanks to Flanders 72, a punk band from Brazil. They are a great band that has a song called Bobby Is Going Home, which they let me use for the show. You can buy the track at their Bandcamp site, as well as all of their other music, so please support them! Next up will be Crypts of Chaos by 20th Century Fox. Please send your feedback to 2600gamebygame@gmail.com by the end of the day, 30 September. Thank you all so much for listening, and for your patience.

Pertinent Links

Bobby Is Going Home on Atarimania
Ample Ace Co. web site
Supergame VG 2800
Supergame VG 3000
No Swear Gamer 413 - Bobby Is Going Home
No Swear Gamer Bobby Is Going Home gameplay
Kulihat ibu pertiwi
Flanders 72 - Bobby Is Going Home video
Flanders 72 on Bandcamp

martes, 26 de marzo de 2019

Secret Agents And Operations

Abstract: In quite a few video game set in Hong Kong, we can find secret agents from around the world executing various kinds of secret operations in the city. In this article, we will go through them one by one, and explain why they are not mere coincidence but the consequence of the actual city's uniqueness.

在多個以香港做背景的電子遊戲中﹐我們會見到來自世界各地的特勤人員,執行各式各樣的秘密行動。在這篇文章中, 我們將逐一檢視它們,並解釋它們並非巧合,而是現實香港獨特的地理位置和政治地位使然。

Secret agents and operations in video game Hong Kong

In video games set in Hong Kong, one can found secret agents from local and around the world. Hired by individuals, criminal organizations or governments, these agents carry out various secret missions in the virtual city.

In quite a few cases, these agents are acting as spies, infiltrating into their target organizations silently in order to collect and report information on the activities, movement, and plans of enemies or competitors.

Inspector Tequila Yuen (right) talking with Jerry Ying (left) who has infiltrated into the Dragon Claw triad group in Stranglehold (Midway Games/Success. Microsoft Windows/PlayStation 3/Xbox 360: 2007)
Undercover Wei Shen (middle) talking with inspector Teng (left) in Sleeping Dogs (Square Enix. Microsoft Windows/PlayStation 3/Xbox 360: 2012)
Undercover Kit (right) talking with police officer Victor(left) to exchange news of a triad in Jet Li: Rise to Honor (Sony Computer Entertainment America. PlayStation 2: 2004). At the end, Victor revealed that he was the mastermind of the triad.
Sometimes, these agents trespass on the hideouts of these organizations right away to collect information about the target or steal sensitive materials. The hideouts could be restaurants, bath houses, offices, factories and even embassies. While many of these hideouts are merely for their members to gather and discuss matters, some others are where we can find various secret operations. These operations could be typical illegal businesses such as drugs, smuggling and human trafficking, while others could involve surprisingly advanced technologies such as a high-precision diamond cutter, a virus that could kill all people in the world, the DNS sample of the world's leaders.

A secret agent infiltrating into a building of a private biotech company in Hong Kong in Deus Ex (Eidos Interactive. Microsoft Windows/Mac OS/PlayStation 2: 2000) 
The factory of Hong Kong-based Identicon, a botanical research firm thought to be a possible front for a weapon-smuggling ring, in 007: Agent Under Fire (EA Games. PlayStation 2: 2001, GameCube/Xbox: 2002). A CIA agent infiltrating into the corporation was discovered and captured. James Bond thus trespasses the factory in attempt to rescue her., while at the same time retrieves a courier case.
In Soldier of Fortune II: Double Helix (Activision. Microsoft Windows/OS X/Xbox: 2002), a mercenary is hired to deal with an international gang who is developing a virus with the aim of threatening the world.
In Scenario B of Wreckless: The Yakuza Missions (Activision. Xbox/GameCube/PlayStation 2: 2002), the player plays as a pair of spies hired to take down the head of the Hong Kong Yakuza.
The CIA agent Sydney Bristow secretly getting into the secret laboratory of an embassy in Hong Kong in Alias (Acclaim Entertainment. PlayStation 2/Microsoft Windows/Xbox: 2004)
If needed, these secret agents are ready to carry out armed missions such as street chases, kidnappings, assaults, assassinations, and even city destruction.

James Bond involving in a street chase to disable an armored van of a weapon-smuggling ring in 007: Agent Under Fire (EA Games. PlayStation 2: 2001, GameCube/Xbox: 2002)
In Wet (Bethsda Softworks. PlayStation 3/Xbox 360: 2009), the player acts as a mercenary who is hired to kidnap the head of a drug ring in Hong Kong according to the order of another gang.
Secret agents planning to kidnap an agent of the private conspiracy group Beholder Initiative in Phantom Doctrine (Good Shepherd Entertainment. PlayStation 4/Xbox One/Microsoft Windows: 2018). Appeared as a US lobbying firm that conducts business internationally, it is indeed steering politics to their will through underhanded means and toxic influence.
Secret agents shooting a guard of the Hong Kong restaurant which is the target's hideout in Phantom Doctrine (Good Shepherd Entertainment. PlayStation 4/Xbox One/Microsoft Windows: 2018)
A hitman is sent by the International Contract Agency to Hong Kong to assassinate the Triad leader Lee Hong in Hitman: Codename 47 (Eidos Interactive. Microsoft Windows: 2000)
A former MI6 agent being employed by an international criminal organization to assassinate his rival Dr. No. in GoldenEye: Rogue Agent (EA Games. GameCube/PlayStation 2/Xbox: 2004, Nintendo DS: 2005)
Secret agents from governments in the world coming to Hong Kong to assassinate an international trader who is in a global corporation that is weakening the power of the governments in Rouge Agent (Jorge Aires. Microsoft Windows: 2018).
In Näkemiin, Hongkong (T&T-Soft. Commodore 64: 1989), a British secret agent gets into Hong Kong which has been handed over to China in 1997. The agent is trying to destroy the city with a nuclear bomb. 
To support these secret projects and armed missions, hi-tech equipment are smuggled into the city.

The spies in Wreckless: The Yakuza Missions (Activision. Xbox/GameCube/PlayStation 2: 2002) could use a tank to hit their rival Yakuza members in a dock of virtual Hong Kong. 
The modified BMW 8Z smuggled to Hong Kong for James Bond in 007: Agent Under Fire (EA Games. PlayStation 2: 2001, GameCube/Xbox: 2002) 
The special equipment of the modified BMW 8Z smuggled to Hong Kong for James Bond in 007: Agent Under Fire (EA Games. PlayStation 2: 2001, GameCube/Xbox: 2002) : forward-mounted rockets, retractable machine guns, dual-side vent-deployed missiles, titanium armor, a rocket boost concealed behind the real license plate, and of course a refrigerated beverage holder 
The former MI6 agent will be provided weapon for the assassination of Dr. No. in Hong Kong in GoldenEye: Rogue Agent (EA Games. GameCube/PlayStation 2/Xbox: 2004, Nintendo DS: 2005)
One thing to note is that while most of these secret missions and operations are criminal in nature (among individual entities in society, or between individual entities and law enforcement organizations), there exists few that are political which means among governments.

The plot of Rouge Agent (Jorge Aires. Microsoft Windows: 2018). While it appears to be an cooperation of governments, the fact that the agents are also allowed to kill the agents from other governments, which is the hidden agendas of these governments to attempt to take control of the whole world.
Another thing is that video game Hong Kong is not only where secret agents work but also flee. The game Snowden Run 3D is based on the real case of Edward Snowden, a former CIA worker, who ran away all the way from US to Russia via Hong Kong.

Edward Snowden. Photo source: Wikipedia
Helping Edward Snowden to run through obstacles and collect items on Hong Kong streets in Snowden Run 3D (MTS Freestyle. Android/PC/Mac: 2013)

Secret agents and operations in actual Hong Kong

Game developers don't and can't come up with the above secret agents and operations from pure imagination. They are likely to be based on the stories they learn about secret agents and operations in actual Hong Kong.

For spying activities, 
  • In 1960s, John Tsang Siu-fo (曾昭科), the highest-ranking Chinese member of the Hong Kong police force in colonial Hong Kong at that time, was believed to be a spy working for communist China. He was then deported after he was suspected (蕭少滔, 2013, June 25; Wikipedia, 2018, October 28).
  • In 1997 when Hong Kong was handed over from Britain to China, quite a lot of spying devices were found in the various garrisons and Governor's House (now the Government House) when these facilities were taken over from the British colonial government (Chen, F., 2014, July 21).  
  • In 2003, Cai Xiao-hong (蔡小洪), a communist Chinese official stationed in Hong Kong, was accused of transferring confidential Chinese government information to Britain during the handover period from 1990s to 2000s (Wikipedia, 2018, July 11).
  • When Edward Snowden stopped by in Hong Kong in 2013, he claimed that his former employer, the US government, was secretly collecting info from communications around the world, including those in China and Hong Kong (Greenwald, G., MacAskill, E., & Poitras, L., 2013, June 11). 
  • In 2017, Jerry Lee Chun Shing (李振成), a former CIA who later resided in Hong Kong, was accused of passing classified US national defense information to China, leading to the breakdown of the US spy network in China in the 2010s (Mordock, J., 2018, January 16).
  • From time to time, there are news reports on police successfully taking down illegal businesses of the triads with the help of local undercover police officers (鄧栢良、楊婉婷, 2017, August 08). There are also conspiracy theories that CIA of the US and MI6 of Britain are operating branches in the US Consulate and British Consulate in Hong Kong (羅先亞, 2013, September 16). 
John Tsang Siu-fo. Photo source: 人过五十网 
Cai Xiao-hong. Photo source:  OPEN 開放網
Jerry Lee Chun Shing. Photo source: The New York Times
The Consulate General of the United State, Hong Kong and Macau on No. 26, Garden Road, Central, Hong Kong. Source: Wikipedia
The British Consulate-General, Hong Kong on 1 Supreme Court Road, Admiralty, Hong Kong. Source: Wikipedia
For secret operations, it is believed by some that certain illegal businesses are running in the background of actual Hong Kong.
  • The U.S. State Department's Office to Monitor and Combat Trafficking in Persons placed Hong Kong in "Tier 2 Watchlist" in 2017 (U.S. State Department's Office, 2017). 
  • The U.S. Treasury Department claimed that certain commercial Hong Kong-based companies were disguises of underground businesses such as money laundering (Berlinger, J., 2018, November 06).  
  • From time to time, we can hear news stories on smuggling sensitive technologies via Hong Kong (Griffiths, J., 2018, October 02).
Street chases, kidnappings, assault and assassinations are indeed quite rare in actual Hong Kong. Nonetheless, every time when a case exposes, the media headlines are occupied for several days.
  • Lee Hysan (利希慎) was shot on a street in the Central district in Hong Kong. Some believed the assassination was due to the conflict he had with the Macau government over the right to sell opium in Macau (Wikipedia, 2018, October 21).
  • In 1955, the Kashmir Princess aircraft departed from Hong Kong was bombed during its flight to Jakarta. Originally planned for carrying the Chinese premier Zhou Enlai (周恩來), it was widely believed that the bomb was placed on the plane in Hong Kong by some Taiwan special service organization. (Butt, R., 2010, January 2; Wikipedia, 2018, January 18)
  • In 2002, businessman Hot-lit Harry Lam was shot dead while eating breakfast in the Hong Kong famous tea house and dim sum restaurant Luk Yu (陸羽茶室). The murderer was rumored to be due to a business disputes (Hu, Y., 2007, July 10).
  • In December 2015, Lee Bo (李波) mysteriously disappeared from Hong Kong territory and later reappeared to be in mainland China. Many feared that he may have somehow be abducted by mainland China's public security bureau and brought to mainland China (Wikipedia, 2018, November 22).
Lee Hysan (right) with his son (left). Photo source: 立場新聞
A Lockheed Constellation similar to The Kashmir Princess. Photo source: Wikipedia
Zhou Enlai, the supposedly assassination target of  The Kashmir Princess bombing. He was the first Premier of the People's Republic of China serving from 1949 to 1976. Photo source: Wikipedia
Hot-lit Harry Lam. Photo source: 蘋果日報
Luk Yu. Photo source: Wikipedia
Lee Bo being interviewed by media in mainland China after his mysterious disappearance from Hong Kong and later reappearance in Mainland China. Photo source: 立場新聞
You may be surprised by the pieces of smuggled hi-tech equipment that Hong Kong Custom and Excise found in cargoes in the past years (杜宗熹, 2016, November 24):
  • Year 2000: an armored vehicle from Italy, intended to go to mainland China. 
  • Year 2004: 2800 real guns from Malaysia, intended to go to US. 
  • Year 2006: a former Soviet-made MiG 29 fighter jet, from Ukraine, intended to go to US. 
  • Year 2010: a tank from Saudi Arabia, intended to go to South Korea.
An armored vehicle found in Kwai Chung container port of Hong Kong in 2000. Source: Appledaily
The MiG 29 fighter jet found in Hong Kong container port in 2006. Source: 聯合影音網

What brings secret agents and secret operations in?

As for why real Hong Kong attracts secret agents and secret operations from all around the world, I believe it is due to the unique geographical location and political position of the city.

Unique geographical location

Excellently located at the heart of the Asia Pacific region, Hong Kong gradually becomes a logistic, trading and finance center after Britain took over the place and set up a free port in the 1840s. Attracted are not only legal businesses from all around the world, but also the underground ones, thereby the illegal operations that need to be kept secret. To collect information on these secret activities without catching targets' attention, sending spies out is the only way.

Always associated with businesses are disputes. Sometimes, people may decide that doing nasty or shady things to settle the disputes. Secret agent is the only way to do them without leaving obvious fingerprints.

As a popular transit hub with millions of visitors and goods transiting at Hong Kong every day, it is not surprising that some people try to smuggle through the city.

Unique political position

In 1949, mainland China was taken over by the communists. As a free port located right next to this key communist country and handling the in-and-out of thousands of mainland Chinese and foreigners every day, Hong Kong became a prime location that both the Communist block and the Western bloc shall station secret agents for information collection and possibly secret operations against each other.

After the 1997 handover of Hong Kong to mainland China, foreign political secret agents appear to remain intact. Quite a few people have expressed their discontent with it and would like to pass the national security law in the city as soon as possible so as to provide legal basis to handle these agents if needed. However, there are practical considerations such as the potential opposition from the citizens, and whether the legislation would provide an excuse for other countries to sanction mainland China for reducing the freedom enjoyed by the people in the city.

The website conveying the Hong Kong government's proposals to implement Article 23 of the Basic Law which expects Hong Kong to enact laws on its own to protect national security. The implementation is indefinitely postponed due to its a great controversy and a massive demonstration on 1 July 2003.
Nonetheless, it was the Chinese rule over Hong Kong that contributed to the dramatic flee of Edward Snowden. Hong Kong authorities said that Snowden had not been detained for the U.S. because the request had not fully complied with Hong Kong law, and there was no legal basis to prevent Snowden from leaving (Hong Kong Information Services Department, 2013, June 23; Hong Kong Information Services Department, 2013, June 24; Chen, F., 2014, July 21). The government would not have been that confident not to detain Edward and make such responses if the city had not been ruled by China who thought herself increasingly comparable with the Western bloc.

Final Remarks

There are good reasons for Hong Kong to be popular among secret agents and operations. The unique geographical location of Hong Kong contributes to the establishment of a free port and later a logistic, trading and financial center in the city, which has brought in local and international criminal organizations and hence illegal operations running secretly. Whether you wish to collect insider information about these secret operations, or do nasty things against your rivals, you need secret agents to get them done secretly. Meanwhile, the unique political status of Hong Kong in both British colonial era and Chinese rule era has also made the city a platform of dramatic political espionage activities between governments.

While many of us are complete outsiders of these ongoing espionage activities, we are all surprised and excited whenever any of them is exposed to public, and be reminded of potentially hundreds or even thousands of secret agents that are running in the background every day.

References

杜宗熹. (2016, November 24). 香港海關查獲軍品非首次 坦克戰機應有盡有 | 時事. Retrieved November 12, 2018, from https://video.udn.com/news/600982

鄧栢良、楊婉婷. (2017, August 08). 【無間道】臥底潛伏一年打殘元朗黑幫 區議員田雞東等299人落網|香港01|港聞|. Retrieved October 15, 2017, from https://www.hk01.com/%E6%B8%AF%E8%81%9E/110643/-%E7%84%A1%E9%96%93%E9%81%93-%E8%87%A5%E5%BA%95%E6%BD%9B%E4%BC%8F%E4%B8%80%E5%B9%B4%E6%89%93%E6%AE%98%E5%85%83%E6%9C%97%E9%BB%91%E5%B9%AB-%E5%8D%80%E8%AD%B0%E5%93%A1%E7%94%B0%E9%9B%9E%E6%9D%B1%E7%AD%89299%E4%BA%BA%E8%90%BD%E7%B6%B2

羅先亞. (2013, September 16). 英國在港的間諜活動 總領館大樓設MI6分局. Retrieved November 4, 2018, from http://news.takungpao.com.hk/hkol/politics/2013-09/1906525.html

蕭少滔. (2013, June 25). 香港從來都是間諜中心. Retrieved September 12, 2018, from https://www.vjmedia.com.hk/articles/2013/06/25/42023

Berlinger, J. (2018, November 06). Asia's meth boom. Retrieved November 11, 2018, from https://www.cnn.com/2018/11/02/asia/asia-methamphetamine-golden-triangle-intl/index.html

Butt, R. (2010, January 2). Hong Kong's First. Retrieved November 4, 2018, from http://hongkongsfirst.blogspot.com/2010/01/assassinations.html

Chen, F. (2014, July 21). Cold facts about an espionage capital. Retrieved November 4, 2018, from http://www.ejinsight.com/20140721-hong-kong-espionage-edward-snowden-spy-war/

Hong Kong Information Services Department. (2013, June 23). Snowden left HK lawfully: CE. Retrieved November 4, 2018, from http://www.news.gov.hk/en/categories/law_order/html/2013/06/20130624_163906.shtml

Hong Kong Information Services Department. (2013, June 24). No delay in Snowden case: SJ. Retrieved November 4, 2018, from http://www.news.gov.hk/en/categories/law_order/html/2013/06/20130625_175835.shtml

Greenwald, G., MacAskill, E., & Poitras, L. (2013, June 11). Edward Snowden: The whistleblower behind the NSA surveillance revelations. Retrieved November 4, 2018, from https://www.theguardian.com/world/2013/jun/09/edward-snowden-nsa-whistleblower-surveillance

Griffiths, J. (2018, October 02). Chinese national jailed in US over space tech smuggling scheme. Retrieved November 23, 2018, from https://www.cnn.com/2018/10/01/politics/china-california-space-smuggling-intl/index.html

Hu, Y. (2007, July 10). Ex-TV star gets life for tea-house murder. Retrieved November 4, 2018, from https://www.scmp.com/article/600116/ex-tv-star-gets-life-tea-house-murder

Lam, L. (2013, June 13). Edward Snowden: US government has been hacking Hong Kong and China for years. Retrieved November 4, 2018, from https://www.scmp.com/news/hong-kong/article/1259508/edward-snowden-us-government-has-been-hacking-hong-kong-and-china

Mordock, J. (2018, January 16). Former CIA officer arrested for keeping classified records. Retrieved November 4, 2018, from https://www.washingtontimes.com/news/2018/jan/16/ex-cia-officer-arrested-keeping-classified-records/

U.S. State Department's Office. (2017). Trafficking in Persons Report 2017: Tier Placements. Retrieved November 23, 2018, from https://www.state.gov/j/tip/rls/tiprpt/2017/271117.htm

Wikipedia. (2018, May 28). Chinese Assassination Corps. Retrieved November 4, 2018, from https://en.wikipedia.org/wiki/Chinese_Assassination_Corps

Wikipedia. (2018, October 21). 利希慎. Retrieved November 4, 2018, from https://zh.wikipedia.org/wiki/利希慎

Wikipedia. (2018, January 18). 谷正文. Retrieved November 4, 2018, from https://zh.wikipedia.org/wiki/谷正文

Wikipedia. (2018, July 11). 蔡小洪. Retrieved November 4, 2018, from https://zh.wikipedia.org/zh-hk/蔡小洪

Wikipedia. (2018, October 28). Tsang Siu-Fo. Retrieved November 4, 2018, from https://en.wikipedia.org/wiki/Tsang_Siu-Fo

Wikipedia. (2018, November 22). Causeway Bay Books disappearances. Retrieved November 22, 2018, from https://en.wikipedia.org/wiki/Causeway_Bay_Books_disappearances

Pics From Fall In! 2018

I ran a Warmaster Revolution tournament this past Friday down at Fall In!, and played in an Epic Armageddon tournament on Saturday. Great games and great armies. Enjoy the pics!


Fall In! 2018 Warmaster Tournament



Fall In! 2018 Epic Armageddon Tournament

Tye Harris Artist Cartoon Tattoo


Design Tattoo Games

This Tattoo game Design Gallery From Pinterest And Pinspire Pictures

sábado, 23 de marzo de 2019

ouo.io - Make short links and earn the biggest money



Shrink and Share

Signup for an account in just 2 minutes. Once you've completed your registration just start creating short URLs and sharing the links with your family and friends.
You'll be paid for any views outside of your account.

Save you time and effort

ouo.io have a simple and convenient user interface, and a variety of utilities.
We also provides full mobile supports, you can even shorten the URL and view the stats on a mobile device.