Making the (sad) case for a hard Brexit
It’s not very frequently that I write about politics in this blog. It’s not very frequently that I write about anything really, but here’s an attempt to change that!
 I did not vote for it. I’d much rather have the UK in the European Union. It simplifies life for the movement of goods and people.
But Brexit’s here. And the Conservative party have, from the very beginning, made it clear that they would make “the will of the people” heard and Brexit would happen one way or another.
And now here’s the kicker: they’re right. Whether you like it or not, the people voted for this. It was a fairly marginal vote. Some people will try and make the case that marginal votes on such big issues should have a rerun (i.e., a second referendum), especially once it’s become more concrete what they are voting on.
But here’s the thing: the people voted for Brexit despite all the uncertainties, and despite all the flat out lies that they were being told. If the people of a country can’t recognise such lies, that makes you wonder why we’re allowing direct votes (i.e., referendums) on anything. Yes, I am saying that people who vote for something based on a lie and don’t do their own research are thick. The reality is though that the current British political system allows for direct voting, no matter how involved the topic is, and no matter the lies being told about it.
Are the liars to blame? Yes, partially. Although if a political system doesn’t protect itself against lies (and it’s not only the British one that doesn’t, many don’t, see the USA) it’s just a matter of time before they’re abused to gain political advantage.
But Brexit’s here.
And why is hard Brexit truly the only way forward?
The European Union have made it implicitly clear that allowing the UK to leave the union with a better deal than what they had within the union is a non-starter. It would open the door for more countries to leave and would effectively be the beginning of the end for the European Union as a thing.
The European Union is also larger than the UK and as such probably has a higher chance at being self-sustainable without the UK-related trade, or with it severely hampered. This puts the UK between a rock and a hard place. The EU refuses to give the UK a better (or even an as-good-as) deal, and they have the upper hand in the negotiations.
Also, with the number of backtracks the Conservative government was cornered into by the House of Commons, the EU has also realised that there is unrest within the UK towards a hard Brexit and they’ve been using that to their advantage in the negotiations. It is true that a negotiation is give and take, but if you’re certain that your counterpart will fold if you stand your ground (by a vote in the House of Commons effectively forbidding a hard Brexit), then the only negotiation strategy that you need is really to… stand your ground.
Is it negotiating in bad faith?
Negotiations are conceptually bad faith endeavours. You have two parties trying to maximise the benefits they will get out of a deal.
Selling a house? As a seller you want to maximise the value you sell it for (maximising your monetary benefit). The buyer will want to minimise the amount they have to pay (maximising the value for money they’re getting).

Damn right you’re going to negotiate in bad faith and get the best out of the situation.
Damn right the government is going to do their best to make sure you’re not aware that this is the case.
All this to say that the UK’s only possible strategy (whether it does want a deal or not, which is a separate discussion in itself) is to do everything to show that it is ready and to ideally truly be ready. It needs to literally be ready to leave without a deal, because it might, because a proper negotiation takes things all the way through, and because it shows the other party that you’re dead serious and is your best bet at getting them to fold and give you better terms.
And this is the key argument: if the UK is going to have Brexit, and if it has a number of key topics it sees as sticking points in the negotiation that it wants the EU to fold on it must take it all the way through. We might leave without a deal and when we do I’d rather there are measures in place to try as much as possible to ease the friction of trade, even if prices go up, than if we do nothing and show no readiness whatsoever.
I’ll end this post with the same disclaimer I started with: I’d rather we did not have Brexit. As a citizen of the EU, who’s lived in three different countries over the past decade this absolutely stinks.
But at this stage, there’s not enough momentum for reversing Brexit. And with it happening either way, negotiating for a better deal (and possibly folding at the last second) is a sensible thing to do. Depending on how confident the government is in the readiness, taking it all the way without a deal might be the only way to show the EU that not even being listed as a third country (as other countries are with the EU) will only push the UK further away from the negotiating table.
Comments


MeteoPal is an application built on top of openweathermap API. The application is both web browser and mobile browser friendly. The application allows users to search any city in the open weathermap data base. The application fetches the city's current info, forecast for 5 days and shows the UVIndex (color coded e.g Red means harmful, Violet means Extreme and Green means safe) of the city.
A game of Rock, Paper Scissors created using Html and inline JavaScript.
I made use of flexbox to understand the flex and other positioning in CSS.
Who should fork the GitHub repo of this project?
Those who want to:
understanding flexbox and positioning,
understand how to make modal using plain old JavaScript(ES5).
Code Quiz is a user friendly and developer friendly Quizzing application. User Friendly : because , user just have to select options. User can store scores and compare overall performance. Developer Friendly : Code Quiz. Referred as CQ is developer friendly application. Developer can easily add new quizzes or even change the question sources without even touching the HTML. CQ is completely JavaScript based application and uses JSON syntax for creating quiz question sources.


Sensitive Systems Isolation
First:, a system should never be used, to enter, process, or store data (i.e.
domain admin hashes) if the data is more sensitive than the system itself
(Johansson, 2009). So domain administrators' accounts should not login
directly to any system other than domain controllers (Metzler, 2008). In
case there is a need to use a domain admin account to access other systems
within the network, a temporary account can be created and then deleted
upon the completion of its use. An exception to this rule would be for a
few trusted and designated systems used for domain administrator logons
only. These systems should only have management tools installed on
them, and they should have no access to the internet (Metzler, 2008).
Second: A system that is less sensitive should never be used to administer
a sensitive system (Johansson, 2009).
Enforce Least User Access (LUA)
Giving users administrative rights on their systems can increase the risk of
malicious software significantly. A user navigating the web with administrator privileges,
visiting a compromised web site or clicking a link in an email message can
unintentionally and unknowingly run malicious code that can lead attackers to have
complete control over the user's system or the entire network (Microsoft, 2006).
A study showed that 92 percent of critical Microsoft
software vulnerabilities can be mitigated by the elimination of admin rights that are
usually given to users who don't even need them (Beyondtrust, 2009).
Avoid LM and NTLM challenge-response
LM and NTLM challenge-response are considered weak by today's standards, and
should be avoided. A better approach would be the use of NTLMv2 or Kerberos.
The best setting should be "Send NTLMv2 responses only/refuse LM and
NTLM". This will force the client to only send NTLMv2 response, while the DC will
accept NTLMv2 and ignore both LM and NTLM (Minsai, 2008).
Limit Cached Credentials
With cached credentials, users' hashes are cached indefinitely. The default
number of logins cached on all Windows versions except Windows 2008 is 10, on
Windows 2008 the number increased to 25 (Microsoft, 2009)
Some organizations use the same password for all their admin accounts on all
their systems. This practice can cause very serious damages in case one of the systems
gets compromised, as it may lead to the compromise of all the organization's systems. If
a domain administrators logs on into a system even once, her hash will be cached on that
system. If this system then gets compromised, the attackers will gain domain admin
within seconds. To avoid this scenario and avoid the potential damages it may cause, the
cached credentials should be set to 0 for desktops and servers and 1 for laptop
Disable "Debug Programs" User Right
Debug program is a "user right" that provides the user with the ability to attach a
debugger to any process, even those he does not own, or to the kernel. This gives the user
access to sensitive and critical operating system components (Microsoft, 2009).
This right can be exploited by attackers through tools that allow them to extract
passwords hashes, or inject rootkit code, among other things. This right is assigned by
default only to administrators (Microsoft, 2009).
The "Debug Programs" user right is rarely required on a production system, so
revoking it should not have effect on the system
Use token based authentication
Using token-based authentication as a solution is not feasible for all organizations,
due to the money needed to implement such a solution, and the complexity of
implementation.
Smart Card and Kerberos
Kerberos and smart cards can provide an excellent solution to prevent reply
attacks or attacks that depend on capturing sensitive information (e.g. logon credentials)
off the wire.
Smart card information is stored in a similar way to passwords. If smart cards are
required for login, the DC will create a random password for that card, hash it, and store
it in the user object (Johansson, 2009).
When the user logs in with a smart card, the Key Distribution Center (KDC),
which is used in Kerberos authentication, will provide the client with the user's hash
during the login process. This information will be sent encrypted using the public key of
the client. On the client side, the Kerberos Security Support Provider (SSP) will decrypt
the hash, and then will cache it in the same way as if the user had entered his credentials
at the login prompt. These credentials would then be used by the computer to login
silently to computers, whenever they are unreachable using Kerberos (Johansson, 2009).
This means that even when using smart cards, the hashes on the client are still
exposed to any malicious software that runs with administrator rights. So using smart cards does not provide more protection to the password-based credentials than the one
provided by password-based login.
At TechED 2007, security researcher Marcus Murray from Truesec claimed that
smart cards can be attacked using hash injection in the same way passwords are attacked.
HIDS and NIDS Monitoring
Hosts should be monitored on a daily basis for newly created accounts and local
administrator group memberships. The results should be compared against an approved
list. Any account found that is not listed in the approved list should be removed and an
alert should be sent


Fecha_Creacion: 2017-11-18T20:58:15.178Z
Dimension: Dimension C-500A
Id_Locacion: 23
Nombre: Earth (C-500A)
Residentes: ['https://rickandmortyapi.com/api/character/37', 'https://rickandmortyapi.com/api/character/91', 'https://rickandmortyapi.com/api/character/176', 'https://rickandmortyapi.com/api/character/183', 'https://rickandmortyapi.com/api/character/195']
Tipo: Planet
URL: https://rickandmortyapi.com/api/location/23


Privacy And Cookies Policy
Use Of Cookies
This website uses cookies to better the users experience while visiting the website.
Cookies are small files saved to the user's computers hard drive that track, save and store information about the user's interactions and usage of the website. This allows the website, to provide the users with a more tailored experience and third party advertisers to provide more relevant and targeted advertising throughout the site. Cookies cannot scan or retrieve your personal information.
Users are advised that if they wish to deny the use and saving of cookies from this website on to their computers hard drive they should take necessary steps within their web browsers security settings to block all cookies from this website and its external serving vendors. Cookies can be managed in the relevant browser settings or by managing preferences in programs such as Norton Internet Security The followig link lets you manage cookies on Google Chrome - Manage Cookies in your browser
Measuring Our Visitors
We measure visitors to our website using Awstats and Google Analytics. This records what pages you view within our site, how you arrived at our site and some basic information about your computer. All of that information is anonymous – so we don’t know who you are; just that somebody visited our site.
The information we collect from analytics helps us understand what parts of our sites are doing well, how people arrive at our site, from which country and so on. Like most websites, we use this information to help us make our website better.
You can learn more about Google Analytics or opt out if you wish.
Third Party Advertisements
Some third-party advertisements such as Google Adsense may be provided by Google, which uses cookies to serve ads on this site. Google uses the DoubleClick or DART cookie, which enables it to serve ads to our users based on their visits to this site and other sites on the Web. You may opt out of the use of these cookies by visiting the Google ad and content network privacy policy.
You may come accross some links to products from an affiliate partners such as Amazon.com which use cookies. More information on Amazon.com use of cookies can be found at Amazon.com Privacy Notice
Deleting cookies does not mean you are permanently opted out of any advertising program. Unless you have settings that disallow cookies, the next time you visit a site running the advertisements, a new cookie will be added.
Embedded Videos
The embedded Youtube videos on the site can also leave tracking cookies on your computer to facilitate efficient choice af ads on the videos. More info at Google Ads link.
Links To Other Websites
Goodtricks.net contain links to third party websites and services. The fact that we link to a website or service is not an endorsement, authorization or representation that we are affiliated with that third party, nor is it an endorsement of their privacy or information security policies, use of cookies or practices. Other websites and services follow different rules regarding the use or disclosure of the personal information. We encourage you to read the privacy policies or statements of the other websites you visit.
Resources About Cookies And Managing Cookies.
Google Chrome – Manage your cookies and site data
Microsoft Internet Explorer – Deleting and managing cookies


In battle, there
are not more than two methods of attack - the direct and the indirect;
yet these two in combination give rise to an endless series of maneuvers.
[Sun Tzu, The Art of War - V.10]
The rules of Go are so simple and deep, that a game inventor like myself hesitate to propose some variations on them. However, the goal is not to enhance a (nearly) perfect game, but just to present some different ideas based on Go in order to people enjoy the strategic and tactical endless ways of abstract games. I'm not talking about different interpretations of the rules of Go like what happens in Japan, China or New Zealand (!) (to read about this subject, check the British Go Association in here). I'm presenting rules that change the game producing a specific Go variant (other variants and lot of ideas can be found at Gregory Patten's website and at Andre Engels website). Don't forget to check this page with many Go proverbs.
I will divide these rules by sections, depending on how they affect game play in tactical or strategic planning. This page starts with some regional variations of the old game.
Tibetan Go is a two player game played on a 17x17 square board, with the following setup:
- DROP - Each player drops one stone of his own color on an empty cell, following the following restriction: the stone must be placed on a cell near the previous dropped enemy stone or own of his initial stones, this means an adjacent cell (orthogonal or diagonal) a 1 orthogonal jump or a Keima (a chess knight's jump).
- The first dropped stone must be adjacent to one of the 4 corner stones.
- Ko rule - A stone cannot be placed on a cell where a friendly stone was just removed.
- TENGEN - The player that achieves the center cell get 5 extra points at the end.
- 1-1 CORNER POINTS - If the player looses both is 1-1 cells near his initial 2-2 cell stones, he gets a 20 points penalty.
- GOAL - Same as Go, wins the player with more points (Chinese rules for territory count).
An example After Black's first move, White may choose to play around one of his initial stones, or play near the dropped black stone, where the possible options are given by the green dots.
Old Korean Rules - Sun-Chang Go (also called sun-chang pa-tuk)
From an article of John Fairbairn:[...] the game was played on a specially marked traditional board, of which several examples survive. The 17 starting-stone points are marked. It appears that both players placed eight stones each on the points shown in the game below, and Black then played first. But as he was obliged to play his first move on the center point, we can effectively regard this as a starting stone too. These stones have no special status, unlike their equivalents in Tibetan go.
The basic rules are the same as in modern Japanese go, which no doubt encouraged players to abandon the old form. [...] The real difference in sun-chang go, apart from the starting position, is in the counting rules. Ko and seki are treated exactly as in Japan (no points are counted in a seki). There was traditionally no komi, so clearly Black had a big advantage - yet another factor favoring adoption of Japanese rules.
These variants are based on board/rule restrictions. The soldier deployment must obey a set of predefined rules.
Density (by Joćo Pedro Neto) Mutator Density(N,M) is a rule stating that for each NxN cell (N odd) inside the board should have at most M pieces on it. With no restrictions, i.e., Density(N,N*N) we get standard Go. I estimate that M > N*sqrt(N) to create an interesting game. In the example, the game has Density(3,5), so White can protect is soldier by playing at [2] for example, since Black cannot play [1] or else the density would be 6 on that 3x3 square.
 Capture(1) is like Go, but with some remarkable differences. For example, two connected internal liberties count as two eyes instead of one. In the picture there are two nice handicap positions.
Anti-Square (by Joćo Pedro Neto) Any four stones of the same color cannot form a square. In the example, White cannot play at [1] since it would form a square with other three white stones already in the board. So, the white stone at north of [1] cannot escape.
Simultaneous Capture (by John Tromp) After placing a stone, remove ALL (i.e. both black and white) stones that have no liberties (read more). If White plays at [1], both center stones are captured.
 The winner is the person who captures more stones. So, both players may drop a white stone at [1] to capture the left black stone.
In Impartial Othello, both players may drop any stone and flip stones of the opposite color. The winner is determined by the color of the last piece. So if there are more white pieces, and the last player played white, he wins.
Knight Jump Go. (described by Bill Shubert) Every move must be exactly a Knight's move (two spaces horiz/vert, then one space vert/horiz) from the previous. There was no reference for what happens when all such spaces are occupied, two possibilities: the game ends, or a stalemate is a loss (that means a no pass rule).
In [1] and [2] there are two possible playing sequences for placing stones.
Dagger Go (described by Henry Segerman) Instead of handicap stones, the weaker player gets a number of 'daggers', which can be played at any time, and give the player a free move. Generally it seemed that 1 dagger is worth at least 2 handicap stones. The stronger player has to play far more solidly - the dagger can very easily kill things which would otherwise be very alive.
The [1] structure (if surrounded by Black pieces) is not safe. Chain [2] is safe since it has 3 eyes.
Balanced Go (described by Eric Osman) The board is balanced on top of a spindle. One must take care to make plays that keep the board physically balanced enough so as not to topple off the spindle. This should not be played by email unless you have a physics simulation.
Let's say, that the board may support a maximum of stone in the edge (or two stones at half a distance between Tengen and the edge, and so on...). If Black drops at [1], White should choose a move around [2].
 However, call one particular side the "Life Wall". The rules of this game are exactly like regular Go, except for scoring the game. At the end of the game, the only groups of your stones which give you points are those groups containing stones on the Life Wall, or whose territory contains intersections on the Life Wall. If we call these groups "Life groups", then your score is equal to the number of your stones which form Life groups, plus the number of territory points contained in your Life groups.
In the sample, the top edge is the Life Wall, and so group [1] is alive, group [2] is not.
Progressive 9x9 Go (described by Bill Taylor) The rules are even simpler than normal Go.  Suicide is legal. Ko cannot exist! You may pass any of your turns. When both pass a full move it ends. Wins by usual area scoring. Note that stones are dropped in a sequence, not simultaneous, or else it would be impossible to create living groups! In the sample, Black started at e5, then White played c7, g7, and Black c3, g3 and e7. White then may move into cells [1], for example.
A Scottish variant include the following rule: "Whenever you put any opponent group into Atari, your sequence stops.". This extra rule enables more safe structures like in Go.
Another possible interesting variant is "Choice Progressive":- at each turn, the player *chooses* how many moves he will make, which can be anything from 0 to one more than the opponent's immediately preceding choice.
Onboard Go (by Ed Pegg Jr) Given a 5x5 board. Black has 12 stones, White has 10. There is no pass, no suicide, no repeated positions. First to get all their stones on the board, wins. I assume that prisoners are returned to the owner. In the top example, Black lost the game since he was unable to control a sufficient number of cells, leaving White with too many choices. In the bottom example, Black captured 2 stones, which gave enough time to win the game.
This can be extended to bigger boards. A possible formula could be: for a NxN Go board (odd N), Black has (N^2-1)/2 stones, and White has the same minus 2 stones.
Btw, even if it is a bit out of context, do not forget to visit Ed's fabulous puzzle site at www.mathpuzzle.com.
Goal Go (by Graham Lamont) Each player is given a list of goals to achieve. The player who first achieves all goals wins. Alternatively points can be awarded for goals, player with most points at the end wins.
Example goals: [(x,y) denotes a value range]
* Capture (x,y) stones
* Create (x,y) groups
* Limit opponent to (x,y) territory
* Create a seki
* Don't create more than n kos
* Don't let opponent create groups bigger than n stones.
* Create a dragon!
* Don't play any stones on the nth line.
* Capture n corners
* Win/lose by (x,y)
* Don't create groups with more than n eyes
A lot of the skill will be in generating sets of goals which are challenging, only marginally exclusive of each other, and appropriately handicapped.Royal Atari Go (by Jianying Ji) Each player in addition to regular pieces have a King piece.
In the first move each player drop their King piece.  Once decided the player play the regular pieces. Black go first. In each turn the player drops a piece according to the rules of Go, except no passing. The winner is the one who captures the opponent's King.
Perhaps the game should be played on a small Go board, since it's very likely that the King will only be captured at the endgame.
Alak (by Alan Baljeu) This game is played on a 1-D Go board (or line...)
Black and white alternate in placing single stones on a line of n points. If placing a stone thereby removes all the go-liberties of any group of stones of the opposite color, those stones are immediately removed. It is illegal to place a stone where one was just removed. Placing is compulsory if legal, and the game ends when the player having the move cannot legally place anywhere. The winner is the player with the most stones on the board at game end.
A sample game follows where black wins 6-5.
Check this site with more about linear Go.
No Pass Go All rules like Go, except no passing is allowed. A player loses if it cannot make a valid move.
The game ends when only one player is left on the board, with all his interior spaces being single points. In practice, it will end long before this by resignation, when the Go-like part has finished, then the "cold" (check next paragraph) part has finished, (all territories reduced to solid stones with 2 eyes each), so that finally someone has to fill in one of an only 2-eyed group and his opponent captures it; thus gaining a huge amount of extra territory and free moves, till the loser has to self-destruct another group, and so on till all are gone. The best way of filling in opponent territory and own territory make very intriguing Combinatorial Game Theory (CGT) example puzzles.
A hot position is one where both players really want to move, where no-one would pass even if it were legal. Most positions in chess and Go are such, and all in Hex, Moku, etc etc. A cold position is one where no-one wants to move, and would pass if it were legal. e.g. Zugwang positions in chess, post-dame (fill-eye) moves in Gonnect, and a great many positions in Nim and so forth. There may also be lukewarm positions where no-one cares if they or their opponent moves first, such as filling in dame in (territory scoring) Go. It is a very useful term in CGT.
Sliding Go (by Morten Pahle?) Morten Pahle says: The placement of stones is carried out by a slide on the board. The stone is initially placed on a free intersection on the edge closest to the player (home edge) or next to a group connected to the home edge, and then slid to its final position. A slide can only follow the gridlines, and only 'turn' at right angles on intersections. Any number of turns are allowed, as long as the stone always follows the gridlines and only moves through unoccupied intersections. As a consequence, kos are impossible, placement tesujis will be out, most big eyes are alive etc.
On the left, Black has no eye at the circles, since White can fill it up without Black responding. (Black cannot 'get in there'.)
Slidey Go (by Tamsin Jones 1999) Like Go, except that a player may also move a friendly stone to an orthogonally adjacent empty cell.
Line Go (by Joćo Pedro Neto) Black drops the first stone. After that, each stone must be dropped at the same row or column as the previous stone, and without any stone inbetween.
 From the author: I didn't know what else to call this. I haven't tried it yet, but my idea was to create a variant to practice using thickness and influence. [...] I suspect that the best opening move is probably at tengen, after which some interesting fighting should break out as both players try to claim some territory and connect to their sides.
Choice Go (?) On each turn, each player states two possible moves. The opponent chooses what move he prefers.
Another similar variant, Forced Takeback Go, the player may force his opponent to take back the most recent move and replace it with another, but only once per turn.
Proselytes Go I (André A’) There are no prisoners. Stones who's last liberty is taken, are transformed into stones of the enclosing color. At the end of the game the same is done with the stones surrounded on large scale. Chinese counting.
Mission Go (André A’) There are no prisoners. Stones who's last liberty is taken, are transformed into stones of the enclosing color and redropped on any empty cell in the board. At the end of the game the same is done with the stones surrounded on large scale. Chinese counting.
Compensation Go (André A’) There are no prisoners. Stones who's last liberty is taken, are given to his owner that redropped them on any empty cell in the board. If more stones lose their liberty the process repeats until it stabilizes.
At the end of the game the same is done with the stones surrounded on large scale. Chinese counting.
One liberty Go (André A’) Groups are captured when they have just one liberty.
When this happens simultaneously to groups of both colors, then it is only the non-mover that is captured.
Bill Taylor suggests that suicide should be legal, especially if it results in a capture.
Progressive Liberties Go (André A’) Groups are captured when they have a number of liberties defined by their own size. The author proposes that a group should be captured when he has less than one tenth rounded down of its size.
Other criteria are possible.
ZenGo (Bob Sloane) Players change colors always after N moves.
note: I do not know when the game should end.
DanGo (Caspar Nijhuis and Robin Upton, 1991) Stones once captured, are not removed from play but relocated on the board by the capturer. The game starts with two stones of each colour on opposite corners.
Environment Go (check this webpage) From the site: Environmental Go is Go played in the normal way, but with a stack of forty cards, numbered [ from bottom to top] ½, 1, 1½, .., 19½, 20 as well as the normal board and stones. For a player's move, they may either play a stone on the board in the usual way, or take one of the cards. At the end of the game, a player's score is the sum of their score on the board and the cards that they have taken.
Paper and Pencil Go (Luis Bolańos Mures) cf. webpage [author's words] The rules are exactly those of Go, with the following exceptions:
- Surrounded stones are not captured, but just marked. Points occupied by marked stones count as territory for the surrounding player, but neither player can play on them for the remainder of the game. This implies that any group which touches a marked stone is unconditionally alive.
- Suicide is allowed, i.e., you can make a play such that one or more of your own stones, including the one you just played, become marked.
- Area scoring is used.
 Instead, it's illegal to make a capture if your opponent made a capture on his previous move.
All other rules are the same as in Go. Suicide of one or more stones is not allowed, and area scoring is used.
All known forced Go cycles (basically those described in the Sensei's Library article plus the funny pinwheel ko) are impossible with this rule. The nature of the rule itself suggests that forced cycles are either impossible or astronomically rarer than they are in Go when the superko rule is not used.
It's interesting that, while ko fights are usually not possible in finite Go variants, here not only are they possible, but also ko threats have an additional use compared to Go: when a player wants to answer a capture with another capture, he has to make ko threat before being able to do so.A while ago, I posted on LifeIn19x19.com about this rule, which I then called "passive ko", and it generated some discussion. One player illustrated the rule with this simple position:
White to play kills if Black doesn't have any suitable ko threats available. In Go, Black is simply alive.
I've also programmed the game for Zillions of Games. I've implemented all odd-sized boards from 7x7 to 19x19, as well as the option to use neutral blocking pieces to change the shape of the board.
These variants have the following common goal: To achieve a specific pattern in order to obtain some extra advantage. I give some possibilities, but million others are possible:
Cross (by Joćo Pedro Neto) Each N cell cross is transformed into a N outlined square. All pieces inside the future square are removed (if they belong to the same player) or captured (otherwise). In the example, if White play at [2], he captures 4 black stones.
Line (by Joćo Pedro Neto) When a player creates a line of 5 soldiers (vertical or horizontal), he can append an extra soldier to one of the extremes, capturing any eventual enemy soldier. In the example, if White plays at [1], he can extend south and capture the black soldier. If he plays at [2], he can extend at [1] or [3] but does not capture the black soldier. In the other example, Black can capture 2 white soldiers if he plays at [4]. If he plays at [5], he can only extends at [4] and does not capture any white soldier.
Pentaminoes (by Joćo Pedro Neto) When a player creates a pentaminoe, he must append an extra soldier to create an hexaminoe, capturing any eventual enemy soldier. In the left example, White can capture the Black piece by forming a pentaminoe. In the other example, if Black capture the top white soldier, then the white structure is again a pentaminoe and can capture a black stone. Therefore there is a special Ko rule, that forbids those pentaminoes swaps on two sequential moves.
These variants are based on local features, usually at soldier level:
Electric GO or Magnetgo (by Ralf Gering) If you play a move, in all 4 directions the closest stone is attracted (if your opponent's) or repelled (if your own). That is, it is moved in a straight line away from or to the stone just played, until it reaches the edge or another stone (in the case of attraction always the stone just played). In the example, if a white soldier is dropped at [1], the 4 pieces (2 whites and 2 blacks) go to cells [2].
A variant may define a maximum length of this magnetic effect (only attract pieces closer than N cells and repel pieces at most to N cells).
 So, if a group of stones dies then all surrounding stones are removed, too.
Rotating GO (by Joćo Pedro Neto) When a stone is dropped on a cell l that has a friendly adjacent neighbor (including diagonals) the player may rotate all neighbors (including diagonals) one cell clockwise. A stone cannot be dropped in a cell with no liberties, even if the stone gets some liberty after the rotation. In the example, a white soldier dropped at [1] will produce the rotation of its 3 neighbors. In the other example, the black stone dropped at [2] rotates the 3 stones, and because of that, captures the white stone.
Push GO (by Joćo Pedro Neto) This one is similar to Abalone's push rules. A line of N stones can push another line of M<N opponent stones, at a distance of 1 cell, if that next cell is empty. In the example, the black line can push the white stone to [1]. The triple black line can push the double white line into [2], thus capturing two white stones. The triple white line cannot push the black stone, because there is another white stone above [3]. There is a KO rule, that forbids to drop a stone on a cell just made vacant by a push move.
The game can be improved by giving a limited number of neutral stones, for each player, that cannot be pushed, but don't count in the score.
Switch GO (by Joćo Pedro Neto) When a stone is dropped, the player can swap it with one (if any) of the adjacent opponent stones, if after the opponent stone, in the same direction there is a friendly stone. A stone cannot be dropped in a cell with no liberties, even if the stone gets some liberty after the swap. In the example, White played [1], and since the south black stone is between two white stones, it can be swapped with white stone at [1].
 However, rather than removing the dead group, its stones are "flipped" to the opposite color, just as in Reversi. Since no stones are ever removed, the game never repeats. The winner, just as in Reversi, is the player with the most stones of his own color on board at game end. [The author says that this rule was disappointing in practice]
In the upper example, when Black drops at [1], the white pieces is not captured, but changes color. In the other example, after white move at [2], Black may turn all pieces into black, if he plays at the [3] cells.Persistent GO (by Gregory K. Van Patten)
If a move creates dead groups of both colors, then all these "dead" groups are left on the board, and may be used to capture other groups. As soon as one of these becomes live again (as a result of capturing something), the dead groups of the opposite color die. [The author says that this rule was disappointing in practice]Step Go (by Joćo Pedro Neto) Stones may not be dropped in cells having exactly one adjacent friendly stone.
On the top left, only the green dots are valid cells where black can move. On the right, to connect both white stones, White must drop three extra stones (so, knight connections are not that good in step Go). On the other example, Black cannot escape the Atari, because he cannot play at [4].
Caution Go (by Joćo Pedro Neto) Stones may not be dropped in cells having more adjacent enemy stones than friendly ones.
On the top left, Black cannot drop on the red dots. On the other example, White cannot plat at [1] and Black to drop at [3] must first drop in one of the [2] cells.
Go Life Game (by Ted Drange) One player construct a position with Black and White stones. The other player decides which side he plays. If he plays White, he must create a safe position, otherwise if he chooses Black, he must prevent any opponent's safe structures.
One possible position (called the corner game) is where Black has a solid wall of black stones all along the 10th rows out from the corner. White must live within one of those corners. According to Ted, White usually starts on 3-3 and Black answers with 4-2.
Goof (by ??) Played on a small board, perhaps 9x9.
On each turn, Black drops two stones. Then White swaps one of those into a white stone. The winner is the player who captured more stones.
At first move, Black cannot put his stones onto adjacent cells.
Tenuki Go (by Chess Whiz) Same as go but no drops (orthogonally or diagonally) adjacent to the opponent's last move. Basically a "forced tenuki".


Loading
We work as the bridge between the customer and the supplier or integrator to ensure a seamless transition
Be it for your home or for large corporations, we can help you get the best product that suits your exact purpose. Be it a security system for your home or finding the best routers for your office, we can do it all for you. Just give us a call or come visit us
Technology can be confusing and overwhelming. But that's why you have Technometrics by your side! We understand your needs and simplify a tailored solution for you that is user friendly. We can also help maintain and upgrade the systems as required
Certain situation demands a complete strategic and design consultancy. We can help you conceptualize and develop a skeletal design based on which you will be able to build your system. We can also help developing Integrated systems which work best.
Bangladesh Association of Software and Information Services (BASIS) is the national trade body for Software & IT Enabled Service industry of Bangladesh. Established in 1997, the association has been working with a vision of developing vibrant software & IT service industry in the country. BASIS started its journey with only 17 charter members. Today the membership stands more than eleven hundred. Members of BASIS account for the lion share of the total software & IT services revenue of the country.
ISO/IEC 27001:2013 specifies the requirements for establishing, implementing, maintaining and continually improving an information security management system within the context of the organization. It also includes requirements for the assessment and treatment of information security risks tailored to the needs of the organization. The requirements set out in ISO/IEC 27001:2013 are generic and are intended to be applicable to all organizations, regardless of type, size or nature.
Supply individually or on a turnkey basis, various security equipment for monitoring and detection.
State of the art Cybersecurity solution for all types of enterprises.
Provide complete solutions to the armed forces and law enforcement agencies to combat terror and improve on-field efficiency.
Extensive expertise in helping with any kinds of security printing requirements including complex security features.
Starting from ERP, data and network management, we can provide complete consulting, implementation and training service
Experience in spares maintenance and emergency aircraft maintenance services within the airport
We use new, fast and frequently changing technology to solve problems increasing reliance on cloud computing rather than user owned hardware to ensure integrity and performance
Rangs Naharz, 14 Shah Jalal Avenue, Sector: 04, Uttara, Dhaka, 1230


Home
Page-1
Page-2
Page-3
Read-Me
by Tom Swan
http://www.tomswan.com
Main Page. Source text at: Source Text. Instructions at: Read-Me. Select a page from the above menu, or choose among the following links:


Match Play. Red trails 5-9 to 11. How should Red play 44?
pips Red=174 White=152
(CorrectAnswer= 0/0, ErrorScore= 0)
Hopefully it is clear that the first two fours should be 8/4(2)*.
Given that Red doesn't many checkers in the attack zone, 11/3* is too big a play with only 1's, 9's and 18's to cover. Red must bring more checkers to the zone and 13/9(2) is the right move by a big margin.
22/18(2) is not aggressive enough but it is the move Kikiko chose over the board.
Given that Red doesn't many checkers in the attack zone, 11/3* is too big a play with only 1's, 9's and 18's to cover. Red must bring more checkers to the zone and 13/9(2) is the right move by a big margin.
22/18(2) is not aggressive enough but it is the move Kikiko chose over the board.
1. Cubeful 2-ply 13/9(2) 8/4*(2) Eq.: +0.753 0.593 0.220 0.017 - 0.407 0.138 0.008 2. Cubeful 2-ply 11/3* 8/4*(2) Eq.: +0.675 (-0.077) 0.583 0.226 0.018 - 0.417 0.156 0.010 3. Cubeful 2-ply 22/18(2) 8/4*(2) Eq.: +0.651 (-0.102) 0.583 0.191 0.012 - 0.417 0.145 0.006 4. Cubeful 0-ply 13/5 8/4*(2) Eq.: +0.417 (-0.336) 0.538 0.191 0.014 - 0.462 0.152 0.009 5. Cubeful 0-ply 13/9 11/7 8/4*(2) Eq.: +0.376 (-0.377) 0.530 0.192 0.014 - 0.470 0.188 0.014


Gamma ramp.
More...
#include <glfw3.h>
List of all members.
|
Public Attributes |
| unsigned short * | red |
| unsigned short * | green |
| unsigned short * | blue |
| unsigned int | size |
Detailed Description
Gamma ramp.
This describes the gamma ramp for a monitor.
- See also:
- monitor_gamma
glfwGetGammaRamp glfwSetGammaRamp
- Since:
- Added in version 3.0.
Definition at line 1169 of file glfw3.h.
Member Data Documentation
An array of value describing the response of the red channel.
Definition at line 1173 of file glfw3.h.
An array of value describing the response of the green channel.
Definition at line 1176 of file glfw3.h.
An array of value describing the response of the blue channel.
Definition at line 1179 of file glfw3.h.
The number of elements in each array.
Definition at line 1182 of file glfw3.h.
The documentation for this struct was generated from the following file:
- C:/Users/New/Documents/Games_Technology/Year4_Semester1/ICT397/~My Work/Assignment2/ICT397Carre/CarreGameEngine/Dependencies/GLFW/include/GLFW/glfw3.h


This page is meant to make possible to anyone who wants to plug-in personally developed or third party software into the information flow, and the trading systems of Directa S.I.M.p.A. The services are essentially three:
The method used is the typical one of the server socket, that is the connection to a port via the own local host (<IP_ADDRESS>). Three channels are available:
| PORT | SERVICE |
|---|---|
| 10001 | DATAFEED connection |
| 10002 | TRADING connection |
| 10003 | HISTORICAL CALLS connection |
It is in structuring phase the offer to the retail customers to run their own or third parties' software
in proximity, that is within the network of the same infrastructure in which Directa's servers connected to markets are located.This service is subject to legal and technical compliance assessments, made to make sure the respect of the current regulations;its cost and timing can greatly vary, depending on the user requests.
Note that, apart from the significant advantage of cutting the internet times in the round trip owing to the distance between the server and the user location, this arrangement does not provide an alternative channel and/or a preferential one in the order placement.
For further information about this option, please refer to the contacts below:
011 53.01.01
It is in structuring phase the possibility to create a Darwin tile.
The user, according to his own system, can interact with the current Darwin interface.
For further information on this option, please refer to the contacts below:
011 53.01.01
TRADING
while subject to a monthly fee of € 20 for DATAFEED
. The service is controlled by Directa.
For qualifications it is necessary to switch from the account on the "Scoreboard" page and click on info> 5a> 3h.
The current regulations do not allow in any circumstances the access to the services provided
by the Exchange Markets without the appropriate credentials,
and without agreeing to comply with some, very precise, disciplinary norms.
This is why Directa provides no trial account for the purpose of developing external applications:
it is necessary, first of all, that the programmer interested in using the interfaces and Darwin's API
to have a regular account number at Directa.
Price flow receiving
Service currently available
An external program can be connected to a specific local IP port of Darwin. By giving the appropriate subscription commands for the desired financial instruments, it will be possible to obtain from the program the realtime prices' data.
Orders' placement
Service available on the operating server
Darwin allows an external program to reach a second local IP port, different from the one reserved to the prices' flow, through which the program can transfer operational instructions to Directa servers (order, order modification, order cancellation) and receive related information (availability, portfolio, etc.).
Darwin tile creation
An under development service The programmer can create their own plug-ins for Darwin (which may become a tile in the platform, integrated with Darwin workspaces and other existing tiles), by using the instructions for the Darwin's API and the development kit, as supplied by Directa. The development kit and the instructions will be available as soon as possible.
The Prices Service plugin allows the user to export data from Darwin. The method used is the typical one of the server socket pending on one or more ports of the local host (localhost or <IP_ADDRESS>, according to the operative system) of one or more TCP/IP connections from the client.
The messages, both for the subscription (client-->Darwin) and for the reception (Darwin-->client) are in string format (UTF-8) and end with the NEWLINE character (depending on the operating system).
In order to send/receive messages it is enough to use, respectively, a writeline or a readline (an instruction available in the most programming languages).
The plugin subscribes automatically on the Darwin system to the securities requested; in case of subscribing to the same security more than once, an error message would be received; analogously, an error occurs when trying to unsubscribed from a security that was not subscribed to before.
The maximum number of subscribable securities is the one set forth by Darwin platform.
If the user is enabled to the plug-in, the service is automatically started together with the Darwin platform; otherwise, the service is not available.
The service opens two sockets TCP/IP (one for the information and the other for the trading) ?Listening? on the set ports (by default 10001 and 10002 respectively) and waits for the messages from the client.
It is possible to open more than one connection on the same socket. The plugin will automatically manage the forwarding of the messages to the client that requested them.
The heartbeat is used to keep the connection active. In fact, in presence of poor quality connections, the socket may close unexpectedly.
In order to avoid this behaviour the prices' service sends and receives an "Heartbeat" packet composed of the character H (Ascii code 72).
Of course implementing the dispatch of the heartbat to Darwin is taken care of by the developer. The prices' service automatically sends the heartbeat every 10 seconds.
Heartbeat messages format:
H\NEWLINE
It's possible to request the prices' service information about the portfolio situation, by running some specific commands on the trading channel.
<ACTION CODE>\n
The possible values for <ACTION CODE> are the following:
| CODE | FLOW | ACTION |
|---|---|---|
| INFOSTOCKS | TRADING |
List of stocks in the portfolio and in negotiation |
| INFOAVAILABILITY | TRADING |
Situation of the availability in the portfolio |
| DARWINSTATUS | ALL |
Returns information about version and connection status |
| GETPOSITION | TRADING |
Returns information about the position of a single segurity in the same format as the INFOSTOCKS command |
| INFOACCOUNT | TRADING |
Returns information about the asset balance of the account |
| ORDERLIST | TRADING |
Returns the orders list (all) |
| TABLELIST | ALL |
Restituisce le tabelle impostate sul proprio conto |
| TABLE | ALL |
Restituisce l'elenco dei tickers presenti in una determinata tabella |
NB
part of the reason for creating these commands is that, we've decided not to weigh down further on the initial connection to the trading system, and therefore, if the order list is greater than or equal to 100, the order list will be equivalent to the ORDERLISTNOREV command, so, you will have, as an initial detail: the executed orders, and any pending orders, if there were no pending or executed orders, but the list of the cancelled orders exceeds 100. then an error code 1019 will be sent, even though the list is not actually empty. needless to say that,the possibility to check with the native ORDERLIST command, including all orders is always guaranteed.
The prices' service sends to the client the informative messages on the trading socket in the form of a string, and, ending with the NEWLINE (ASCII 10 \n) character.
The general format of the message is the following:
<MESSAGE_TYPE> ; <TICKER> ; <TIME HH:MM:SS>;<DATA...> \n
The possible values for <MESSAGE TYPE> are the following:
| CODE | FLOW | MEANING |
|---|---|---|
| STOCK | TRADING |
Information about the portfolio (owned stocks and in negotiation) |
| AVAILABILITY | TRADING |
Portfolio availability (with and without leverage) |
| DARWIN_STATUS | ALL |
String with information about the connection and the version |
| INFOACCOUNT | TRADING |
Information about the account status |
| ORDER | TRADING |
Orders list |
NB
: The STOCK data flow is triggered by the commands:NB
: Indication of the field <TRADING QUANTITY>| VALUE | MEANING |
|---|---|
| TRUE | user enabled for datafeed |
| FALSE | user not enabled for datafeed |
| CODE | MEANING |
|---|---|
| CONN_UNAVAILABLE | Unavailable connection |
| CONN_SLOW | Slow connection |
| CONN_OK | Available connection |
| CONN_TROUBLE | Connection with troubles |
NB
The time of the ORDER flow indicates the exact placing time of the order.
| CODE | MEANING |
|---|---|
| 2000 | In negotiation |
| 2001 | Entry error |
| 2002 | Trading after validation received |
| 2003 | Filled |
| 2004 | Cancelled |
| 2005 | Waiting for validation |
NB
: For to use the command TABLE <name_table> it's necessary to call before the command TABLELIST.
Below are the codes displayed to the client in case of ERR message:
| COD | NAME | DESCRIPTION | FLOW |
|---|---|---|---|
| 0 | ERR_UNKNOWN | Generic error | ALL |
| 1000 | ERR_MAX_SUBSCRIPTION_OVERFLOW | Reached the maximum number of subscribable securities | DATAFEED |
| 1001 | ERR_ALREADY_SUBSCRIBED | Requested security already subscribed | DATAFEED |
| 1002 | ERR_EMPTY_LIST | No security sent in the command | DATAFEED |
| 1003 | ERR_UNKNOWN_COMMAND | Unknown command | ALL |
| 1004 | ERR_COMMAND_NOT_EXECUTED | Command not executed | ALL |
| 1005 | ERR_NOT_SUBSCRIBED | Subscription error | ALL |
| 1006 | ERR_DARWIN_STOP | Darwin closure in progress | ALL |
| 1007 | ERR_BAD_SUBSCRIPTION | Non existing security error | ALL |
| 1008 | ERR_DATA_UNAVAILABLE | Requested flow unavailable | DATAFEED |
| 1009 | ERR_TRADING_CMD_INCOMPLETE | Incomplete trading command | TRADING |
| 1010 | ERR_TRADING_CMD_ERROR | Wrong trading command | TRADING |
| 1011 | ERR_TRADING_UNAVAILABLE | Trading unavailable | TRADING |
| 1012 | ERR_TRADING_REQUEST_ERROR | Order entry error | TRADING |
| 1013 | ERR_HISTORYCALL_PARAMS | Error number params inseto into command | HISTORICAL CALLS |
| 1015 | ERR_HISTORYCALL_RANGE_INTRADAY | Error range date for intraday request | HISTORICAL CALLS |
| 1016 | ERR_HISTORYCALL_DAY_OR_RANGE | Days or range date errors | HISTORICAL CALLS |
| 1018 | ERR_EMPTY_STOCKLIST | No security in the portfolio | TRADING |
| 1019 | ERR_EMPTY_ORDERLIST | No order is present | TRADING |
| 1020 | ERR_DUPLICATED_ID | Duplicated order ID | TRADING |
| 1021 | ERR_INVALID_ORDER_STATE | Order status inconsistent with the required operation | TRADING |
| 1024 | ERR_TRADING_PUSH_DISCONNECTED | Directa trading is disconnected | TRADING |
| 1030 | ERR_MARKET_UNAVAILABLE | Market not unavailable fot ticker request | DATAFEED |
| 1031 | CONTACT_NOT_ACTIVE | Contact not active to directa trading server, to need restart the application for trading operation | TRADING |
SUBSCRIPTION/UNSUBSCRIPTION COMMANDS
NB
It's important to remember that, regardless of the number of connections established with the 10001 port, the maximum limit of subscribable securities by Darwin is currently 100.
| CODE | FLOW | PORT | TYPE | DATA |
|---|---|---|---|---|
| SUB | DATAFEED |
10001 | Standard subscription | Filled orders + 5 levels book |
| SUBALL | DATAFEED |
10001 | All the flows | Filled orders + 5 levels book + Bidask |
| SUBPRZ | DATAFEED |
10001 | Prices only | Filled orders |
| SUBPRZALL | DATAFEED |
10001 | Prices and bidask | Filled orders + Bidask |
| SUB10 | DATAFEED |
10001 | All the flows | Filled orders + 5 levels Book + 10 levels Book + Bidask |
| SUB15 | DATAFEED |
10001 | All the flows | Filled orders + 5 levels Book + 10 levels Book + 15 levels Book + Bidask |
| SUB20 | DATAFEED |
10001 | All the flows | Filled orders + 5 levels Book + 10 levels Book + 15 levels Book + 20 levels Book +Bidask |
| CODE | TYPE | PORT | DATA |
|---|---|---|---|
| UNS | Unsubscription | 10001 | All the flows |
NB
: The subscription/unsubscription codes are case sensitive; it is not possible to change the type of subscription to a stock. It is necessary to unsubscribe the security and resubscribe it with the desired code..
FORMAT OF THE MESSAGES
| CODE | FLOW | DESCRIPTION |
|---|---|---|
| ANAG | DATAFEED |
Registry information |
| PRICE | DATAFEED |
Filled order |
| PRICE_AUCT | DATAFEED |
Filled in auction (all the auctions) |
| BOOK_5 | DATAFEED |
1 - 5 levels book |
| BOOK_10 | DATAFEED |
6 - 10 levels book |
| BOOK_15 | DATAFEED |
11 - 15 levels book |
| BOOK_20 | DATAFEED |
16 - 20 levels book |
| BIDASK | DATAFEED |
Bid/ask |
NB
: The data regarding the number of PROPOSALS may not be available depending on the market.NB
: The element related to the number of offers could be unavailable, according to the market to which the stock belongs.HISTORICAL CALLS
section, and use the Tickers in the above-mentioned list.
NB
: For the historic calls, you must use the indices' Tickers in Uppercase, if you type them differently the tickers will not be recognized.
It is possible to manage the LOG detail by sending some specific commands on the prices channel.
<COMMAND CODE> {<OPTIONS>}\n
The possible values for <COMMAND CODE> are the following:
| CODE | FLOW | ACTION |
|---|---|---|
| ENABLELOG | DATAFEED |
Enables the maximum detail log. |
| DISABLELOG | DATAFEED |
Disables the LOG. Only important messages and errors will be tracked |
The prices' service sends diagnostic messages to the client on the prices socket in a string form, ending with the NEWLINE (ASCII 10 \n) character.
The generic format of the messages is the following:
<MESSAGE_TYPE>\n
The possible values for <MESSAGE_TYPE> are the following:
| CODE | MEANING |
|---|---|
| LOG_ENABLED | The maximum detail LOG is enabled. |
| LOG_DISABLED | The maximum detail LOG is disabled. |
HISTORICAL CALLS
To perform trading operations, it is necessary to send a message in the following format:
<ACTION CODICE> &nbps;{<ORDER_ID>},{<TICKER>,<QUANTITY>},{<PRICE>}\n
The Prices' Service may request the client the order confirmation. In this case, it is necessary to answer with the correct code, as indicated in the following chart, and the corresponding <ORDER_ID>.
<ORDER_ID> must be generated by the client, and be univocal for the current session of connection to the socket.
The possible values for <ACTION CODE> are the following:
| CODE | FLOW | ACTION |
|---|---|---|
| ACQAZ | TRADING |
Buy stocks at the specified limit price |
| VENAZ | TRADING |
Sell stocks at the specified limit price |
| ACQMARKET | TRADING |
Buy stocks at the market price |
| VENMARKET | TRADING |
Sell stocks at the market price |
| ACQSTOP | TRADING |
Buy stocks with stop market price |
| VENSTOP | TRADING |
Buy stocks with stop market price |
| ACQSTOPLIMIT | TRADING |
Buy stocks with limit price and trigger price |
| VENSTOPLIMIT | TRADING |
Sell stocks with limit price and trigger price |
| REVORD | TRADING |
Cancel the specified order |
| REVALL | TRADING |
Cancel all the orders for the specified ticker |
| CONFORD | TRADING |
Confirm the specified order |
| MODORD | TRADING |
Change price for the specified order |
NB
The REVALL applies only to the regular orders and not for those with the limit condition,
where it's necessary to
carry out a timely cancellation of the order through REVORD <id_ordine>,
as it's the same behavior as that of Darwin.
https://www1.directatrading.com
The Prices Service sends the client the result of trading operations in a string format, ending with the NEWLINE (ASCII 10 \n) character.
The generic message format is the following:
<MESSAGE_TYPE> ; <TICKER> ; <ORDER_ID> ; <CODE> ; <SENT COMMAND> ; <ASKED QUANTITY|FILLED QUANTITY> ; <PRICE ENTRY> ; <ERROR DESCRIPTION>\n
The possible values for <MESSAGE TYPE> are the following:
| CODE | FLOW | MEANING |
|---|---|---|
| TRADOK | TRADING |
Positive outcome of the operation (PLACEMENT, EXECUTION, CANCELLATION) |
| TRADERR | TRADING |
Negative outcome |
| TRADCONFIRM | TRADING |
Needed order confirmation from the client |
| CODE | MEANING |
|---|---|
| 3000 | Request correctly received |
| 3001 | Request executed |
| 3002 | Request cancelled |
| 3003 | Order confirmation needed |
TRADING
After several suggestions, we have made an efffort to create some commands to extend the set of information retrievable through the API.
At the moment, special attention has been given to the expansion of the trading related information.
The chioce was made to safeguard the Trading Systems currently in use, and to create commands that can be activated and deactivated to access the features.
The following are the new available commands:
| COMMAND | MEANING | VALUE | DEFAULT |
|---|---|---|---|
| FLOWPOINT | Start & End markers of the data flow packages | FALSE / TRUE | FALSE |
| UPDATEORDER | Possibility, at order submission, to receive updates without having to send specific commands | FALSE / TRUE | FALSE |
| PRICEEXE | fields related to the trade execution price are added, quantity and Order_ID relating to the TRADOK and ORDER packages | FALSE / TRUE | FALSE |
| LOGCMD | added at the end of TRADOK and TRADERR packages of the command that has generated the package | FALSE / TRUE | FALSE |
| POINTUPDATEORDER | a new way to have an automatic update on one's own situation with regard to trade operation. | FALSE / TRUE | FALSE |
| AUTOREC | an automatic method of restoring trading connection because of line drops | FALSE / TRUE | FALSE |
FLOWPOINT COMMAND
UPDATEORDER COMMAND
| OPERATION | DESCRIPTION |
|---|---|
| PLACING ORDER | In addition to the package TRADOK (with the code 3000) the ORDER package will be sent, relating to the entered order, and the information on the balance status of the account, the package INFOACCOUNT |
| CHANGED ORDER | in addition to TRADOK (with the code 3000) the ORDER package will be sent relative to the changed order, the STOCK of the financial instrument, the details of the command AVAILABILITY-Liquidity portfolio (with or without margin) and information on the balance status of the account, the package INFOACCOUNT (this will appear twice, having been made an change). |
| EXECUTED ORDER | when an order should be executed TRADOK detail comes out (with code 3001) and in addition, the detail of the order through the package ORDER, the relative STOCK of the security, the detail AVAILABILITY-Liquidity of the portfolio (with or without margin) and information on the balance status of the account, the INFOACCOUNT package. |
| CANCELED ORDER | in addition to the TRADOK package (with the 3002 detail) moreover, there will be the STOCK package related to the financial instrument, the detaile: AVAILABILITY-Liquidity portfolio (with or without margin) and the information on the balance situation of the account, the INFOACCOUNT package. |
COMMAND PRICEEXE
NB
The fields will be added later on in the order in which they were described, the other fields will be in the same original order, that's without the activation of the PRICEEXE command.COMMAND LOGCMD
POINTUPDATEORDER COMMAND
NB
The fields are all initialized with a U to highlight the fact that, the field is related to the update, and so to avoid confusion compared to the other fields.
Below, a usage example is given: (in blue will be identified the lines sent to the socket, those received in black, and in bold type we will instead highlight the new fields)2006
;0.0;0.0;0;S4216523407947NB
by activating this command, the changed orders will have, as a detail for the order status the value of 2006, and this' was required to have a distinguishing detail compared to the standard codes of 2000/2002,
this code will also have an effect on the ORDERLIST command, if the command will gets disabled, the detail in 2006 will no longer be available and you will return to the default of (2000/2002))
NB
We recommend, to to avoid errors, to keep enabled only one update method, therefore, either the command UPDATEORDER, or the command POINTUPDATEORDER should be active. If both the commands are activated
POINTUPDATEORDER will have higher priority, and, in case one becomes disabled, both of them will then be disabled,This is to avoid the risk of requesting inaccurate updates.
THE AUTOREC COMMAND
(currently in a testing phase)| TIME FRAME | Maximum Depth(historical maximum available) |
|---|---|
| 1 and 5 seconds | Maximum 1 day |
| 10 and 30 seconds | Maximum 3 days |
| 1, 2, 3 and 4 minutes | Maximum 100 days |
| END OF DAY | Maximum 15 years |
To enable the connection you need to connect with the socket on the 10003 port
You can use four commands:
To use the commands you need to insert a space between the arguments.
The Usage 1 and Usage 2 commands are related to the historical calls of TickByTick type, while the
Usage 3 and Usage 4 commands are specific for the Candles.
Usage 1:
TBT stock number_of_days
stock: The code of the stock
number_of_days: The number of days (including today) of history depth
Usage 2:
TBTRANGE stock start_date end_date
stock: The code of the stock
start_date_time: The starting date of the requested time range, in the format yyyyMMddHHmmss
end_date_time: The ending date of the requested time range, in the format yyyyMMddHHmmss
Usage 3:
CANDLE stock number_of_days candle
stock: The code of the stock
number_of_days: The number of days (including today) of history depth
candle: The period in seconds for a candlestick representation.
Usage 4:
CANDLERANGE stock start_date_time end_date_time candle
stock:The code of the stock
start_date_time:The starting date of the requested time range, in the format yyyyMMddHHmmss
end_date_time: The ending date of the requested time range, in the format yyyyMMddHHssmm
candle: The period in seconds for a candlestick representation.
If the arguments are not correct you will receive an error reply
If the number of days is wrong you will receive the following error reply: Wrong number_of_days value
If the period is wrong you will receive the following error reply: Wrong candle value
If the data range is wrong you will receive the following error reply: Wrong start_date and/or end_date value.
If some arguments are missing you will receive the following error reply: Not enough parameters.
SETTING THE DETAIL OF VOLUMES DURING AFTERHOURS
Description for the command VOLUMEAFTERHOURS
Command to set the detail of the volumes during AFTERHOURS (AH), for securities that are AH.
By default the phase of AH the service responds to the detail of the volumes with the sum of the volumes of the more continuous volumes of the AH.
If you wanted to change this detail is at our disposal the command:
VOLUMEAFTERHOURS
Can be used in two different ways:
Only typing VOLUMEAFTERHOURS which response will tell how is the choice set.
the choices are as follows:
| PARAMETER | DESCRIPTION |
|---|---|
| CNT | retail volume continuous phase |
| AH | Retail volumes during afterhours |
| CNT+AH | sum of the volumes continues + afterhours |
Examples for the information of the setting: typing VOLUMEAFTERHOURS you can have three types of responses:
| VOLUME_AFTERHOURS CNT+AH default indicates the sum of the volumes in the volumes continues with the volumes AH |
| VOLUME_AFTERHOURS AH setting that indicates that the volumes will be displayed in AH |
| VOLUME_AFTERHOURS CNT setting that indicates that the volumes will be displayed in continuous |
Examples for changing the setting of retail volumes:
|
Set as volumes CNT + AH
command: VOLUME_AFTERHOURS CNT+AH reply: VOLUME_AFTERHOURS CNT+AH, indicates that the setting in the CNT + AH was performed |
|
Set as volumes CNT
command: VOLUME_AFTERHOURS CNT reply: VOLUME_AFTERHOURS CNT, indicates that the setting in the CNT was performed |
|
Set as volumes AH
command: VOLUME_AFTERHOURS AH reply: VOLUME_AFTERHOURS AH, indicates that the setting in the AH was performed |
Example for the use of the command VOLUMEAFTERHOURS:
in this example are shown with TX b> commands sent while with RX b> answers.
17:58:50 TX Connection socket localhost port:100003
17:58:52 RX DARWIN_STATUS;CONN_OK;TRUE;Release 1.2.1 build 01/08/2020 14:10:00 more info..
18:00:11 TX VOLUMEAFTERHOURS
18:00:12 RX VOLUME_AFTERHOURS CNT+AH
18:00:23 TX CANDLE FCA 1 86400
18:00:23 RX BEGIN CANDLES
18:00:33 RX CANDLE;FCA;20141106;09:00:00;8.82500;8.80000;9.01500;8.85000;11597547
18:00:33 RX END CANDLES
18:00:41 TX VOLUMEAFTERHOURS CNT
18:00:41 RX VOLUME_AFTERHOURS CNT
18:00:47 TX CANDLE FCA 1 86400
18:00:47 RX BEGIN CANDLES
18:00:57 RX CANDLE;FCA;20141106;09:00:00;8.84500;8.80000;9.01500;8.85000;11597147
18:00:57 RX END CANDLES
18:01:02 TX VOLUMEAFTERHOURS AH
18:01:02 RX VOLUME_AFTERHOURS AH
18:01:29 TX CANDLE FCA 1 86400
18:01:29 RX BEGIN CANDLES
18:01:39 RX CANDLE;FCA;20141106;09:00:00;8.82500;8.80000;9.01500;8.85000;400
18:01:39 RX END CANDLES
18:01:57 TX VOLUMEAFTERHOURS CNT
18:01:57 RX VOLUME_AFTERHOURS CNT
18:02:01 TX CANDLE FCA 1 86400
18:02:01 RX BEGIN CANDLES
18:02:11 RX CANDLE;FCA;20141106;09:00:00;8.84500;8.80000;9.01500;8.85000;11597147
18:02:11 RX END CANDLES
18:02:38 TX VOLUMEAFTERHOURS CNT+AH
18:02:38 RX VOLUME_AFTERHOURS CNT+AH
18:02:43 TX CANDLE FCA 1 86400
18:02:43 RX BEGIN CANDLES
18:02:53 RX CANDLE;FCA;20141106;09:00:00;8.82500;8.80000;9.01500;8.85000;11597547
18:02:53 RX END CANDLES
The volumes are in bold, and you can see how detailed changes according to our setting,
NB
at the end of the connection will return to the default situation (CNT + AH)
In this section are reported some examples of the reply after having sent a command for the historical calls, each example is related to one of the four available commands.
1.83 - 13/0/2020.
13/07/2020 Update about 100 days history datas
27/04/2018 Fixed freeze on cancel order
21/07/2017 Update market order, autorec, update exit strategy
09/02/2017 Update history call out of range
13/01/2017 Update for Darwin Command Line
14/11/2016 Bugfixed study volume 1Day resolution
07/04/2016 Latest release available plugin Multicharts
1.1.17 - 02/02/2019
12/11/2018 IDOrder valid in all DCL Session
26/07/2018 Update for compatibility with Directa Multicharts plugin
08/06/2018 IdOrder valide in the entire DCL session
17/05/2018 General Update
05/01/2018 Update about inactive contact information
21/07/2017 Update about autore trading
07/06/2017 Update about Autorec command for datafeed connection
27/03/2017 Update book5 and bidask - price modify order - different timezone datafeed
09/03/2017 Bugfix to timezone into datafeed
19/01/2017 AUTOREC Command into Datafeed connection.
04/07/2016 First release of the Beta version
1.0.0 - 29/07/2016
.
29/07/2016 First release of the Beta version
It is possible, once started Darwin, to test whether the Prices Service is correctly working. It is enough to be connected on the pc locally using the TELNET function on the port of the service (default 10001).
It is possible to use the TELNET command for all the defined ports, i.e. the 10001 (DATAFEED
), 10002 (Trading) and 10003 (Historical calls).
Once connected, run the command and type enter (corresponding to the NEWLINE \n ascii 10 character). The system will start sending data.
The command to be typed in order to verify the connection is: telnet localhost -port-
Below is an example on a OSX system:
MacBook-Pro:~$ telnet localhost 10001
Trying ::1...
Connected to localhost.
Escape character is '^]'.

MacBook-Pro:~ $
//DarwinClient.cs Class that implements the functions Socket
//CLASS DARWINCLIENT
using System;
using System.Net.Sockets;
namespace DarwinClient
{
public class DarwinClient
{
private TcpClient clientSocket;
private String host;
private int port;
private NetworkStream serverStream;
private System.IO.StreamReader streamReader;
//Constructor - sets HOST and PORT connection
public DarwinClient (String host, int port)
{
this.host = host;
this.port = port;
clientSocket = new TcpClient ();
}
//Opens the connection to the server
public void startConnection ()
{
clientSocket.Connect (this.host, this.port);
serverStream = clientSocket.GetStream ();
streamReader = new System.IO.StreamReader (clientSocket.GetStream ());
}
//Terminates the connection
public void endConnection ()
{
clientSocket.Close ();
}
//Sends the command to the server ( automatically adds the NEWLINE )
public void sendCmd (String msg)
{
byte[] outStream = System.Text.Encoding.ASCII.GetBytes (msg + "\n");
serverStream.Write (outStream, 0, outStream.Length);
serverStream.Flush ();
}
//Reads a line from the server
public String readLine ()
{
String returndata = streamReader.ReadLine ();
return returndata;
}
}
}//end class
//Main.cs Main program that uses the class DarwinClient and print console data for 120 seconds before closing the connection
//CLASS MAIN
using System;
namespace DarwinClient
{
class MainClass
{
public static void Main ()
{
Console.WriteLine ("Starting client...");
try {
//Instantiate the class that server to handle the socket
DarwinClient dClient = new DarwinClient ("localhost", 10001);
//Open the connection
dClient.startConnection ();
Console.WriteLine ("Connection to localhost:10001 successfull");
//Send the command (standard subscription Fiat Book + Price + Bidask)
String cmd = "SUBALL F";
dClient.sendCmd (cmd);
Console.WriteLine (" --> " + cmd);
String line = null;
long start = DateTime.UtcNow.Ticks;
bool continua = true;
//Read for 120 seconds
while (continua) {
//Read the next line
line = dClient.readLine ();
if (line != null) {
Console.WriteLine (" <-- " + line);
}
long now = DateTime.UtcNow.Ticks;
long sec = (now - start) / 10000000;
if (sec > 120) {
continua = false;
}
}
//End the subscription
Console.WriteLine ("Terminating subscriptions");
dClient.sendCmd ("UNS F");
Console.WriteLine ("Connection closed");
//Close the socket
dClient.endConnection ();
} catch (Exception exx) {
//If there are errors we display them
Console.WriteLine ("Error in DarwinClient: " + exx.Message);
Console.WriteLine (exx.StackTrace);
}
}
}
}//end class
//Example in java for connection to the receiving port of the flow rates 10001
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
/**
*Class example to connect to port 10001 DataFeed .
*Makes into connection is called a command input,
*given this command will start the disclosure of the title/s for 60 seconds.
*Past the minutes will be signed on the title/s and closed the connection.
*
*Obviously if you enter an invalid command there will be error code and closing.
*/
public class ConnectDataFeed{
Socket s; //use the socket for connection
PrintWriter pW; //provides methods print and println , which allow you to write any given Java , converting it automatically in string.
BufferedReader bfr; //uses a buffer to temporarily store the characters to read / write
int porta; //port on which to access
String host; //host on which to access
//variables for code development
static String tick;
static boolean verifica=true;
/**
*Constructor,in this case we initialize the host and port to connect
/*
public ConnectDataFeed(int porta,String host){
this.porta=porta;
this.host=host;
}
/**
*Connection to the socket.
*Create the socket PrintWriter and the buffer.
*/
private void Connection(){
try{
s = new Socket(host, porta);
pW = new PrintWriter(s.getOutputStream(), true);
bfr = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("Connection successful");
System.out.println(RLine());
} catch (Exception e) {
System.err.println("Unable to connect to the DataFeed: " + e );
}
}
/**
*Method for the closing of the connection.
*/
private void closeConnection(){
try {
System.out.println("Shutting.");
pW.close();
bfr.close();
s.close();
System.out.println("closing performed!");
} catch (Exception e){
System.err.println("Error disconnecting from the DataFeed: " + e);
}
}
/**
* Method to do the send command given input
* @param cmd the command
/*
private void sendCommand(String cmd){
pW.println(cmd);
}
/**
* Method to print the contents of the buffer.
* @return string containing the string buffer
*/
private String RLine(){
String line = null;
try {
line = bfr.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return line;
}
/**
* Method used for the printing of the buffer for a number of seconds taken into input
*/
private void sott_nsec(){
int timer=120;//seconds
boolean continue=true;
String line="";
long start= System.currentTimeMillis();//variable for the timer
System.out.println("Print for -->"+timer+"<-- seconds the subscriptions for "+tick);
while(continue){
line=RLine();//takes the message from the buffer
if(line.startsWith("ERR")){
continue=false;
verifica=false;
}
System.out.println(line);//printing the answer
long now=System.currentTimeMillis();//management of the timer
long tot= (now-start)/1000;
if(tot>timer) continue=false;
}
}
/**
* Method used to derive the ticker of the title by the command input
* This method is not essential but it serves to show how unsubscribe a title .
* It is not important because when you close the connection securities underwritten are unsubscribe.
* @param cmd input command
* @return ticker
*/
private String formatTick(String cmd){
String formats=cmd.replace(" ", "\t\t\t\t\t\t\t\t");
String tick=formats.substring(formats.length()-8,formats.length()).trim();
return tick;
}
//The main class
public static void main(String args[]){
System.out.println("TEST DATAFEED");
ConnectDataFeed t=new ConnectDataFeed(10001,"localhost");//object creation
t.Connection();//Connection
Scanner scanner = new Scanner(System.in); //Variable management input
System.out.print("Type the command:");
String cmd = scanner.nextLine();//input command
t.sendCommand(cmd);//sending the command
//Call of the print buffer, with controls
if(cmd.startsWith("SUB")){
tick=t.formatTick(cmd);//To take the ticker
t.sott_nsec();//method for the subscription for n seconds
if(verifica==true){
System.out.println("\n unsubscription the title---> UNS "+tick);
}
}
else
System.out.println(t.RLine());
t.closeConnection();//close connection
}
}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
//A method for handling errors,not essential for the connection
void error(const char *msg)
{
perror(msg);
exit(0);
}
//Main class
int main(int argc, char *argv[])
{
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;
int i=0;
char buffer[256];
char command[256];
int nb;
int nLine=100;
printf("Connection to DATAFEED\n\n");
char host[20];
sprintf(host,"localhost");
//variable containing the port number
portno=10001;
//opening socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
//to set the host variable in this case localhost(<IP_ADDRESS>)
server=gethostbyname(host);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
//connection management to the socket
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);
serv_addr.sin_port = htons(portno);
//Management for any errors in connection with the socket
if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
error("ERROR connecting");
bzero(buffer,256);
n = write(sockfd, command, strlen(command));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,256);
n = read(sockfd, buffer, 255);
if (n < 0)
error("ERROR reading from socket");
//Printing successful connection
printf("CONNECTION SUCCESSFUL on port%d\n",portno);
printf("%s\n", buffer);
//send the client's control in this case as the subscription of FCA
nb=sprintf(buffer,"SUB FCA\n");
write(sockfd,buffer,nb);
while(i<=nLine){
//Reading and printing the buffer or the server response
//Print the first 100 rows, then exits the loop
nb=read(sockfd,buffer,256);
buffer[nb]=0;
printf("%d Message from server: %s\n",i,buffer);
i++;
}
//Closing the connection to the socket.
printf("Closing the connection\n");
close(sockfd);
return 0;
}//end main
NB
: SAFETY For this example shows a command invented that does no order.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Vector;
/**
* Class of example for connecting to the Trading through port 10002.
* This example connects the situation and printing portfolio and the list of orders.
* Then he makes an example of a command to send trading, for safety you entered a command that does NOTHING.
* After sending the command you will get the answer to video and will close the connection and terminate the program.
*
* LOOK OUT:having put a command NULL obviously the answer is NULL, screen will display an H (HeartBeat),
* but this is not the answer, but what goes on at that time, that is NULL.
* /
public class TradingConnect{
Socket s; //we use the socket for connection
PrintWriter pW; //provides methods print and println, which allow you to write any given Java, converting it automatically in string.
BufferedReader bfr; //uses a buffer to temporarily store the characters to read/write
int porta; //port on which to access
String host; //host on which to access
Vector ordini=new Vector();
TradingConnect(int porta,String host){
this.porta=porta;
this.host=host;
}
/**
* Connection to the socket.
* To create the socket PrintWriter and the buffer.
/*
private void Connessione(){
try {
s = new Socket(host, porta);
pW = new PrintWriter(s.getOutputStream(), true);
bfr = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("Connection Successful");
System.out.println(RLine());
System.out.println(RLine());
boolean state=true;
System.out.println("List orders");
System.out.print("Loading");
while(state){
String line=RLine();
if(line.startsWith("ORDER")){
System.out.print(".");
ordini.add(line);
}
else if(line.startsWith("ERR")){
System.out.println(line);
state=false;
}
else
state=false;
}
System.out.println(".");
int i=0;
while(i
System.out.println(ordini.get(i));
i++;
}
System.out.println("end List");
} catch (Exception e) {
System.err.println("Unable to connect to the DataFeed: " + e );
}
}
/**
* Method for the closing of the connection.
*/
private void closeConnection(){
try {
System.out.println("Shutting.");
pW.close();
bfr.close();
s.close();
System.out.println("Closing connection successful!");
catch (Exception e){
System.err.println("Error disconnecting from the DataFeed: " + e);
}
}
/**
* Method to print the contents of the buffer.
* @return string containing the string buffer
*/
private String RLine(){
String line = null;
try {
line = bfr.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return line;
}
private void sendCommand(String cmd){
pW.println(cmd);
}
public static void main(String[] args){
TradingConnect t=new TradingConnect(10002,"localhost");
t.Connessione();
System.out.println("---End list orders----\n");
//Try to control trading
//Taking a sendcmd you could try a command trading,
//precaution we put an example that does nothing.
//enter the command
//command acqz: ACQAZ <order>,<ticker>,<quantity>,<price>
String cmd="ACQAZ ORD001,PIPPO,10,0.000";
t.sendCommand(cmd);
System.out.println(cmd);
String risposta;
//in this case the answer will be a heartbeat because our command does nothing
//specifies that the answer is not the heartbeat but having nothing, print what passes or a H
risposta=t.RLine();
System.out.println(risposta);
t.closeConnection();
}//end class
example trading with C Sharp -in development-
example trading with C -in development-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* Class example for calls historical socket connection on port 10003
* Connection on port and connect message occurred through line Darwinstatus,
*Once connected sends the command via a send and print to video content required.
*/
public class TbtConnect{
Socket s; //The socket for connection
PrintWriter pW; //provides methods print and println, which allow you to write any given Java, converting it automatically in string.
BufferedReader bfr; //uses a buffer to temporarily store the characters to read/write
int porta; //port on which to access
String host; //host on which to access
public TbtConnect(int porta,String host){
this.porta=porta;
this.host=host;
}
/**
*Connection to the socket.
*To create the socket PrintWriter and the buffer.
*/
public void Connessione(){
try {
s = new Socket(host, porta);
pW = new PrintWriter(s.getOutputStream(), true);
bfr = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("Connessione avvenuta");
System.out.println(RLine());
} catch (Exception e) {
System.err.println("Unable to connect to the DataFeed: " + e );
}
}
/**
*Method for the closing of the connection.
*/
public void closeConnection(){
try {
System.out.println("Shutting.");
pW.close();
bfr.close();
s.close();
System.out.println("Closing connection successful!");
} catch (Exception e){
System.err.println("Error disconnecting from the DataFeed: " + e);
}
}
/**
* Method to do the send command given input
* @param cmd the command
*/
public void sendCommand(String cmd){
pW.println(cmd);
}
/**
* Method to print the contents of the buffer.
* @return string containing the string buffer
*/
public String RLine(){
String line = null;
try {
line = bfr.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return line;
}
public static void main(String args[]){
TbtConnect t=new TbtConnect(10003,"localhost");
t.Connessione();
String cmd="CANDLE FCA 1 60";
//String cmd="TBT FCA 1"; command commented, if you want to try the tbt uncomment
//TBT <ticker> <nday>
t.sendCommand(cmd);
boolean stato=true;
while(stato){
String line=t.RLine();
if(line.equals("END TBT") || line.equals("END CANDLES")){
System.out.println(line);
stato=false;
}
else
System.out.println(line);
}
t.closeConnection();
}
} //end class
import socket
import time
import threading
import Queue
def worker(socket, stopper, rx_queue):
"""thread worker function"""
message = ""
while not stopper.is_set():
data = client_socket.recv(512)
if data == "":
time.sleep(1)
else:
message = message + (data)
if "END " in data:
print("Message Received");
rx_queue.put(message)
message = ""
return
###########################################
###########################################
if __name__ == "__main__":
rx_queue =Queue.Queue() # create a Thread Safe Queue
stopper = threading.Event() # create a Thread Safe Event
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 10003)) # connect to HISTORICAL DATA socket
t = threading.Thread(target=worker, args=(client_socket, stopper, rx_queue ) )
t.start()
time.sleep( 5 )
print("Extract 1 hour candles")
print("Extract EOD pricesfor last 5 years")
cmd="CANDLE MSE 1250 86400"
client_socket.send(cmd+"\n")
time.sleep( 5 )
print("Wait for 15 seconds")
time.sleep( 15 )
stopper.set() # force thread stop
t.join();
client_socket.close()
f = open("MSE.txt", 'w')
while not rx_queue.empty():
message = rx_queue.get()
f.write(message)
f.close()
print("Done!")
example trading with C Sharp -in development-
example trading with C -in development-
01/08/2020 Update datafeed service, multicharts
12/11/2018 Update Darwin Command Line section
26/07/2018 Update Plugin Directa section
05/02/2018 Add details abot book levels
05/02/2018 Aggiornamento Tutorial - Esempi di codice (codice per chiamate storiche)
13/10/2016 Information of Connection Darwin
13/10/2016 Close Darwin with API command
13/10/2016 Directa plugin Multicharts information
13/10/2016 New trading command
03/12/2015 General Update
31/03/2015 Introduction a table for Utility History Calls
19/01/2015 Introduction Mail image and update page
26/12/2014 Introduction English documentation
15/12/2014 Update commands section Trading
10/11/2014 Update introduction activation link in the email
16/10/2014 Update examples
08/10/2014 Update Calls section Historical command TBT
07/10/2014 Update Calls section Historic
26/08/2014 First release of the page on


|
We are resurrecting the Aryan Nations, from the original intent, tried to
contact you for months but couldn’t... So as to avoid competition, we should
talk.....<PHONE_NUMBER>
I was going to attempt to merge groups if possible, perhaps we still can,
but this week, www.AryanNationsRevival.org will
be up and running.... We consist of some from the Penn, South Carolina and the
Alabama factions.... The objective is to resurrect the integrity of the
Aryan Nations, and proceed with business without the usual traitors that always
seem to trail around behind us...
I am available for the phone until 10:00 PM EST....
If not, I am willing to call you....
Pastor Jay Faber - Aryan Nations General
|


You can't create any instance of Drag(). When the javascript file has been loaded, '''innovaphone.ui.Drag''' is an instance of the class '''Drag'''.
The class exposes just one function:
makeDraggable(element, grabber)
after calling this function the element is draggable with the grabber
element
the element, which is dragged
grabber
the grabber element which is used to drag the above element


In this example, we try to set the Canvas size in CSS. We successfully make the canvas larger, but we don't change the size of the drawing surface. To fix the problem, click the button.


Tic-Tac-Toe
Blue Player to move!
Blue Player Wins!
Red Player to move!
Red Player Wins!
It's a draw!
Start
Begin New Game?
New Game
Created by
Kevin Kim


Use PageDown/PageUp or the arrow keys to navigate
This presentation illustrates how to use a template to put an image into the top left corner of every slide.
Transparency can be used in images to make them look non-rectangular, or to allow what is underneath to show through.


How To Cut A Mango Without Cutting Your Hand
by Gina TrapaniEating a mango is like taking a mini vacation in your mouth—all of a sudden, you’re transported somewhere sunny and warm, even if you’re not.  Luckily, this instructional video demonstrates how to cut off big, clean slices from a mango around its flat, oval pit (yes, mangoes have pits).
The video’s a bit shaky, so if you’re prone to vertigo, consider yourself warned. Also, enjoy the credits.
Once the mango is cut, if you want to cube it, you can score it in a box pattern and push the cubes of the skin by inverting your slices. That part isn’t shown in the video, but this photo tutorial covers it well.


This provides an in-page image flipper designed to allow a page to give a user many images without taking up too much room on the page and to keep them from having to reload the entire page just to view a different image.


Tenant Rights in the Time of COVID-19
There is currently a state-wide eviction moratorium in place. According to a state law called the Tenant Safe Harbor, if you have experienced financial hardship anytime on or after March 7, 2020, you cannot be evicted through January 1, 2021 for failing to pay rent. However, the Tenant Safe Harbor Act does not cancel rent payments. Therefore, you still owe whatever rent payments you have not been able to pay. For more information click here.
Under no circumstances can your landlord ask you to leave your apartment or discriminate against you because you have tested positive for COVID-19, or may be displaying symptoms, according to the Mayor’s Office to Protect Tenants. If you’re facing harassment by your landlord, report it to the City’s commission on human rights by filling out this form.
There is nothing that a landlord can legally do to evict you. In March, the city’s Department of Investigations (DOI) suspended all eviction proceedings until October. Therefore, if a marshal tries to execute an eviction warrant, report it to the DOI’s Bureau of City Marshals at<PHONE_NUMBER>.
Sources
These Are The Protections New Yorkers Have From Eviction-Curbed NYC
What NYC renters need to know during the coronavirus pandemic
By Shervin Abdolhamidi, Class of 2021


Introduction
OpenDevStack allows to set up required infrastructure and continuous delivery processes for new projects in less than 5 min. OpenDevStack creates the required Confluence spaces, Jira projects, Bitbucket projects and repositories and the required OpenShift resources. And all is tightly integrated. Simply provision a new project, commit and then run your code.


UAVSAR Tools
UAVSAR
Use drawing tool on the map to select the region of interests.
You can also search by flight name or flight path:
(Optional) Event date (YYYY-MM-DD):
X
Fade/Reset Display:
Experimental feature:
enable coloring if available
Start Lat:
Start Lon:
End Lat:
End Lon:
Azimuth:
Length:


Rapper T.I. says he was joking about daughter's annual hymen check
by The Associated PressNEW YORK -- Rapper T.I. says he was joking when he said he goes to the gynecologist with his daughter every year to make sure her hymen is "still intact."
The performer, who received backlash when the comments went viral earlier this month, told Jada Pinkett-Smith on Monday's episode of "Red Table Talk" that he also apologized to his daughter.
Says T.I.: "I began to embellish and exaggerate, and I think a lot of people kind of took it extremely literal."
Planned Parenthood and others blasted T.I. when he told the "Ladies Like Us" podcast that he takes "yearly trips to the gynecologist" with his now 18-year-old daughter.
T.I. says he went to the gynecologist with his daughter when she was 15 and 16, not 18. He adds that his daughter's mom was present at the appointments.


It's no secret that there is a dearth of women in tech. This is a topic that has remained a fixture in my household ever since my fiance (also a developer) and I started dating.
As a woman entering the tech field for the first time, I am keenly aware of the fact that I am underrepresented in the industry. This is especially obvious to me coming from dietetics, a field dominated by women. I can think of five male dietitians whom I met personally. Thankfully, I can think of far more female devs with whom I've crossed paths, so I do have hope that it's getting better. There has also been a huge push from groups like Girls Who Code, write speak code, and Black Girls Code to get more girls and women interested in tech (and specifically women of color with regard to Black Girls Code, which also has partnered with Latino Startup Alliance to produce La TechLa, a program aimed to reach Latina youth).
All of these initiatives are wonderful. However there is another side to this story that isn't as loud in the media -- women are leaving the tech industry in droves. According to the LA times, "A Harvard Business Review study from 2008 found that as many as 50% of women working in science, engineering and technology will, over time, leave because of hostile work environments." HALF of us leave. Half. Not 10%, not 20%, but a full 50% of us will leave the field. That's incredible.
Here is an article from Fortune outlining why women leave tech. (The title makes me cringe -- really? We had to play into that trope to get people to read this?) Motherhood plays a role in some women's decision to leave, however as many point out in their interviews it's not motherhood itself, but the fact that is amplifies everything else that they've already had to put up with in the bro culture of tech. When you are trying to breastfeed an infant and you get pressured to come back to work early and the hours are inflexible and you get passed up for that promotion because you seem "preoccupied" or "not good enough" -- is it really hard to see why women find tech unsustainable? (In case you answered yes, that article also highlights casual racism in the form of the only black woman in the office being referred to as Halle Berry, "As in, 'Oh look, Halle Berry broke the website today.'" Ugh.)
Look, I get it. We've come a long way from Perform like a pr0n star (double ugh), but let's be honest: We have a long way to go. And as the articles that I've linked to point out, no number of workshops and classes for women will address the real issue: the culture. Empowerment of women is awesome, but we still need more men to get on board with the idea that a workplace shouldn't be hostile towards women. Remember that in this supposed meritocracy, women also have merit. And it's not enough to think it, we need men to act. When you see sexism, racism, ageism, ableism, or discrimination based on sexual orientation or gender identity, call it out! The best thing you can do in a privileged position is to use your privilege to improve conditions for others.
I have a great deal of hope for the tech industry, as so many voices have already started to join together to demand better. We live in a time when this information is more widely available than ever, so let's use it well.


3rd test example: IndirectCooling
A prescribed heat sources dissipates its heat through a thermal conductor to the inner coolant cycle. It is necessary to define the pressure level of the inner coolant cycle. The inner coolant cycle is coupled to the outer coolant flow through a thermal conductor.| output | explanation | formula | actual steady-state value |
| dTSource | Source over Ambient | dtouterCoolant + dtCooler + dTinnerCoolant + dtToPipe | 40 K |
| dTtoPipe | Source over inner Coolant | Losses / ThermalConductor.G | 10 K |
| dTinnerColant | inner Coolant's temperature increase | Losses * cp * innerMassFlow | 10 K |
| dTCooler | Cooler's temperature rise between inner and outer pipes | Losses * (innerGc + outerGc) | 10 K |
| dTouterColant | outer Coolant's temperature increase | Losses * cp * outerMassFlow | 10 K |


What’s new
v0.0.7 (June 2018)
- Command line scripts attached to the distribution.
check_mutants
script adapts itself to the number of sequences.
DesignFrame
function for sequence/structure global frequencies are key_residue
aware.
DesignFrame
mutant functions can work with list-type key_residue
.
- Added ability to read phi/psi angles from Rosetta output and plot Ramachandran.
- Added ability to read HMMsearch output.
- Descriptions to load silent files can be provided as YAML.
- Read json-formated Rosetta score files.
- Select a different
seqID
for fasta reading.
- Sequence distance can be calculated against a different
DesignFrame
.
- Plot data from a 96-well microplate.
- Read and plot SPR data.
- Formatted plots for Thermal Melt, CD, and MALS.
- Read and process Next Generation Sequencing data.
- Function to plot per residue score after applying a similarity matrix
v0.0.6 (April 2018)
- First version of the documentation.
- Generate frequency and pssm matrix from
FragmentFrame
.
- Generate sequence transition networks for the frequency matrices.
- Fixed LOGO plot and added multi-line option.
- Labels are read as
Selection
.
- Write FASTA can generate multiple individual files.
- CLUSTALW format outputs
- Plot alignments with mutants highlight.
- New check_mutants script


{% extends "base.html" %}
{% load wagtailcore_tags static i18n %}
{% block content %}
{% include "widgets/hero.html" %}
{% include "sections/project_diary.html" %}
{% include "sections/case_study.html" %}
{% include "sections/newsletter.html" %}
{% include "sections/twitter-timeline.html" %}
{% endblock %}