In Utopian.io we have a lot of development streams in place and many to come. Keep reading to know the main future milestones and what we are working on right now and it is ready to be rolled out!
Functionalities Already Under Development / Ready to be Rolled Out
- Utopian Registration Module
@therealwolf is working on the most important step in our roadmap, the utopian registration module, that will let users to signup for Steem/Utopian directly from Utopian.io.
The registration module is under development and will be deployed soon.
Have a look: https://signup.utopian.io/
The registration module is Open Source https://github.com/utopian-io/utopian-registration-frontend
- Integrate Your App With Utopian
@samrg472 has refactored the API and the DB in order to let external applications to post into Utopian. This possibility was initially suggested by @good-karma and we are ready to roll it out. A full public documentation will be soon released on Apiary.
- New Moderation Functionalities
Thanks to @mooncryption and @samrg472 the Utopian Moderators will be soon be able to:
- Edit the repository on behalf of the user
- Edit the category cross-site on behalf of the user
- Edit tags on behalf of the user
This is extremely important to reduce the waiting times in the moderation process.
- Automation Utopian Weekly
The Utopian Weekly is a newsletter we publish every week, bringing visibility to the best projects, the newest projects and the best contributions. The Utopian Weekly has been stopped for a while now since we had issues finding a curator. We decided to automate it. It is ready to go and will be published on a weekly basis.
Thanks to @mkt for this. The Utopian Weekly is Open Source: https://github.com/utopian-io/utopian-weekly.
- The Utopian NPM Package
Thanks to the great spontaneous work of @wehmoen Utopian now has an official NPM package.
Read the original contribution
- A Bunch Of Bots / Automation Scripts
Thanks to the amazing work being made @emrebeyler Utopian has rolled out and is rolling out a bunch of bots and automation scripts
- The utopian.tip bot that up votes the Utopian Moderators top comments: https://github.com/utopian-io/utopian-tip
- A bot that automatically moves 1K from utopian-io to utopian.org overtime 10K Steem are generated in curation rewards. This will serve to donate to charities and for the Utopian Edu programs.

- The Utopian Roadmap
Our main priority for this month will be to create the final Utopian Roadmap that we will follow to go from the current Utopian version to Utopian V2.
- The Kickstarter Video And Campaign
The Kickstarter video being produced by @dougkarr is almost ready. We are working on the contents of the Kickstarter campaign that will be hopefully out this January.
- Utopian V2
Do you want to see how Utopian will look like in the new version 2?
The Development of Utopian V2 will start after the Kickstarter campaign and may take up to 6 months to be finalised. Releases will be incremental.
Discover Utopian V2 on Invision: https://invis.io/MSEWW3A6Z
- Internal Delegation Split
Internal Delegation Split that will let sponsors to split the delegated power to the different projects using Utopian.
The development of the Internal Delegation split has been postponed and will happen after the Kickstarter campaign.
- Utopian Bounties
Will be possible to create bounties in liquid Steem on task requests and to assign bounties to a single contributor or to a list of beneficiaries. (development will start after the Kickstarter campaign)
- Utopian Promotional Placements
As a contributor or project owner you will be able to promote your contributions, yourself or your project in Utopian by buying placements on the main sections of the website, using a pay per click model, payable with liquid Steem. (development will start after the Kickstarter campaign)
- Utopian Contributions Automation
Utopian will soon implement third party integrations, Github first, that will let contributors to automate their submissions to Utopian while working on their favourite platforms. (development will start after the Kickstarter campaign)
- Utopian Browser Extension
Utopian has been working on a browser extension to bring the Utopian functionalities directly into Github. This is still part of our roadmap and the development will be resumed after the Kickstarter campaign.
Quality Quality Quality And Quality Again
Utopian has one dream: To become the first mover for top quality contributions in the entire Steem blockchain. We work hard every day to get there and this is our long term commitment and promise to never stop trying to achieve the best quality possible!
Utopian Community-Driven Witness
We are made of developers, system administrators, entrepreneurs, artists, content creators, thinkers. We embrace every nationality, mindset and belief.
Utopian.io is the first Community-Driven Witness. Every decision will be taken as per the consensus of the entire community using our public Discord server and soon via a public voting system.
- Go here Steem Witnesses
- Scroll to the bottom
- Write utopian-io and vote or set utopian-io as a proxy
- Use Steem Connect for Voting Utopian as a Witness
- Or Use Steem Connect for proxying your vote to Utopian Witness
A Special Thanks to The Sponsors
| @freedom (Vote for Witness) @misterdelegation @ned @transisto @wackou (Vote for Witness) @xeldal (Vote for Witness) @lafona-miner (Vote for Witness) @cnts @steempty (Vote for Witness) @thecryptodrive (Vote for Witness) @netuoso (Vote for Witness) @furion (Vote for Witness) @minnowbooster @jesta (Vote for Witness) @blakemiles84 @tarekadam @ajvest (Vote for Witness) @reggaemuffin (Vote for Witness) @materia @walterjay @da-dawn @yabapmatt (Vote for Witness) @forykw (Vote for Witness) @flauwy @delegate.lafona (Vote for Witness) @imanisraelirick @jedau @agoric.systems (Vote for Witness) @teamsteem (Vote for Witness) @yehey (Vote for Witness) @deanliu @masterofcoin @lavater @gold84 @decebal2dac @eastmael @dylanhobalart @temponaut @jerzy @dragosroua (Vote for Witness) @rival (Vote for Witness) @gokulnk @aymenz @velimir @rosatravels @fabiyamada @jomeszaros @randomli @bycz (Vote for Witness) @rehan12 @helo (Vote for Witness) @mcfarhat @drakos (Vote for Witness) @espoem @mendezand @mooncryption @maxse @marshalllife | @scottweston @steemj @oendertuerk @cervisia @evildido (Vote for Witness) @dimitrisp (Vote for Witness) @zapata42 @lykkejay @icaro @hadimemories @sevlom777 @dinasapitri @dodybireuen @ragepeanut @jatinhota (Vote for Witness) @abh12345 @theb0red1 @jznsamuel @snug @h4ck3rm1k3st33m @danisgat @koinbot @ironmanmatt @alanzheng @katamori @celestal @daiky69 @alexsm @vitasource365 @allowisticartist @omar-hesham @kslo @shreyasgune @dubem-eu @yandot @ilvstranger @adfizz @fakire1sadaka (Vote for Witness) @steemfunding @lusanamaya @knowledges @simulasyon @baroen96 @azwarrangkuti @a-alice @adasq @bobdos @zonguin @idlebright @michaelstellaire @rizal.konoha2 @tanvirrahman @nehomar @robin-ho @thesteemdream @iqbaladan @jpederson96 @nizam8089 @ajayyy @kumaran444 |
A Special Thanks to The Moderators
|
@knowledges @ruah @espoem @damla @arie.steem @drigweeu @rosatravels @shreyasgune @elear @omeratagun @manishmike10 @simnrodrguez @mcfarhat @redjepi @flauwy @jefpatat @favcau @yandot @syedumair @omersurer @cnts @vladimir-simovic @emrebeyler @thegoldenphoenix @scipio @deveerei @slempase |
@daiky69 @ejemai @codingdefined @howo @zikra @podanrj @umais @kiaazad @julstamban @isfar @deathwing @mkt @reggaemuffin @fabiyamada @siersod @abh12345 @mooncryption @justyy @kit.andres @toffer @gktown @stoodkev @dutch @gerginho @jedigeiss @crokkon |
This page is synchronized from the post: A Sneak Peek On What Is Going To Happen Next


| S | stats toolbox needed | I | interactive (user input required) |
| B | bioinformatics toolbox needed | M | matlab needed (will not work in octave) |
| O | optimization toolbox needed | W | windows needed (will not work in linux) |
| X | currently broken | * | slow (two stars indicates very slow) |
| File Name | Brief Description | Page Number(s) | Tags |
|---|---|---|---|
| gibbsDemoNoBlindspot | Denoising an Image Using Gibbs Sampling | 647 | |
| mcmcMvn2d | MCMC Sampling from a 2d Gaussians | 632, 637, 639, 644 | |
| mhGmmDemo | MH Sampling from a mixture of two 1d Gaussians | 639 | |
| randomWalk0to20Demo | Perform a random walk on the integers 0:20 | 642 |


Shuffle algorithm is more common than you imagine in our daily life. Besides card shuffling, there are a lot of scenarios requiring shuffle algorithm to guarantee fairness. For instance, it's critical to shuffle the training set in the realm of machine learning to prevent over-fitting.
However, how could we evaluate the performance of a shuffle algorithm? Is it truly fair regarding randomness? Is it efficient to execute when the scale increases?
The Fisher–Yates shuffle, in its original form, was described in 1938 by Ronald Fisher and Frank Yates in their book Statistical tables for biological, agricultural and medical research.
Pseudo code:
xxxxxxxxxx
51To shuffle an array a of n elements (indices 0..n-1):
2
3for i from n−1 downto 1 do
4j := random integer such that 0 ≤ j ≤ i
5exchange a[j] and a[i]
The procedure of Fisher-Yates shuffle is visualized below left.
Each step in this visualization is a swap. Due to the design of Fisher-Yates, an entire shuffle always requires strictly n swaps. But what's the calculations done on the right hand side?
In the last visualization, the right hand side is showing a synchronous calculation of Shannon Entropy. Shannon Entropy of a shuffled sequence (of size ) is calculated as:
How can this magic metric help us tell if Fisher-Yates is good or bad?
Well, let's introduce some comparisons. Say we apply a sort function on, whose compare function returns random comparison result (in other words, can only make the array messy). We call it Randomsort. Let's see their Shannon Entropy Distributions when array size = 50.
Given that each shuffled permutation has equal probability to appear, Shannon entropy distribution should be a normal distribution. However, we can clearly see that Randomsort has an skewed asymmetric shape. On the other hand, Fisher-Yates' is approaching a normal distribution with more sampling. Thus, Fisher-Yates' gives more fair shuffled results.
Now let's take a look at where the elements go after shuffling. The visualization below is the distribution of original position vs. shuffled position. At first, there's no obvious distinction.
If you drag the slider to to see tests of larger scale, the Fisher-Yates has a uniform distribution. Each position has almost equal probability to end at. However, Randomsort has apparent patterns on the diagonal, which means that elements are more likely to stay on their original position, which is not a satisfying randomness performance.
https://github.com/tianyi-ge/shuffle-vis
[1] https://medium.com/@oldwestaction/randomness-is-hard-e085decbcbb2


Stele.io is an open-sourced website interface for ethereum contracts.
You can post anything here and will not be modified ever. It will last til the end of ethereum network, just like an ancient stele.
The site is still in beta version, any feedback or issue can post: Github Issue.


Start
Stop
Toggle Loop
Enter new time here:
Seconds
Ticks
Set new time
Wet Gain
Feedback
Toggle Effect


Unlimited Games. How should Red play 44?
pips Red=147 White=111
(CorrectAnswer= 0/0, ErrorScore= 0)
I used this position in one of my articles for The Times (every Friday). So, for a change, here is the full article:
One of the most common pieces of advice given to students of the game is simply, “when ahead in the race, race”. The converse is obviously that if you are behind in the race, you should not make a dash for home.
Like all adages there are exceptions to the rule. The trick is to spot them. This week’s position is but one example. I have given this position to many of my students as a test and, almost without exception, they choose to move 8/4(2), 6/2(2) with Red’s roll of double fours. That move would be the choice of many experts as well as it looks to be the obvious choice.
To understand why it is incorrect we need look more deeply into the position. Firstly, after 8/4(2), 6/4(2) Red’s position is very inflexible with every outer board point stripped (no spare checkers on any of the points). Another concept in backgammon is connectivity. The checkers work better when they are in close communication with each other. 8/4(2), 6/2(2) leaves the rear checkers on the 20-pt somewhat stranded and in need of a big double to move them safely.
Now let us look at the correct move, 20/12(2). After that play Red has a very strong blockade of the White checkers on Red’s bar-point. 44 and 22 are good rolls for White but those are the only rolls he can run with. Meanwhile, Red can decide later which points to keep and which to dismantle, thus giving him a very flexible position. In this instance connectivity outweighs racing considerations. 20/16(2), 8/4(2) is the second-best play with connectivity and blockade still being the key themes.
It is highly unusual to select what appears to be a racing play when you will still be twenty pips behind after making your move, so it is not surprising that not many players find the right move in this position. It is just too easy to make what looks like a strong move without giving any great thought to the overall game plan. That is something we are all guilty of from time to time. The very best players spot these exceptions and adjust their play accordingly.
One of the most common pieces of advice given to students of the game is simply, “when ahead in the race, race”. The converse is obviously that if you are behind in the race, you should not make a dash for home.
Like all adages there are exceptions to the rule. The trick is to spot them. This week’s position is but one example. I have given this position to many of my students as a test and, almost without exception, they choose to move 8/4(2), 6/2(2) with Red’s roll of double fours. That move would be the choice of many experts as well as it looks to be the obvious choice.
To understand why it is incorrect we need look more deeply into the position. Firstly, after 8/4(2), 6/4(2) Red’s position is very inflexible with every outer board point stripped (no spare checkers on any of the points). Another concept in backgammon is connectivity. The checkers work better when they are in close communication with each other. 8/4(2), 6/2(2) leaves the rear checkers on the 20-pt somewhat stranded and in need of a big double to move them safely.
Now let us look at the correct move, 20/12(2). After that play Red has a very strong blockade of the White checkers on Red’s bar-point. 44 and 22 are good rolls for White but those are the only rolls he can run with. Meanwhile, Red can decide later which points to keep and which to dismantle, thus giving him a very flexible position. In this instance connectivity outweighs racing considerations. 20/16(2), 8/4(2) is the second-best play with connectivity and blockade still being the key themes.
It is highly unusual to select what appears to be a racing play when you will still be twenty pips behind after making your move, so it is not surprising that not many players find the right move in this position. It is just too easy to make what looks like a strong move without giving any great thought to the overall game plan. That is something we are all guilty of from time to time. The very best players spot these exceptions and adjust their play accordingly.
1. Cubeful 2-ply 20/12(2) Eq.: -0.252 0.418 0.024 0.000 - 0.582 0.045 0.000 2. Cubeful 2-ply 8/4(2) 6/2(2) Eq.: -0.278 (-0.027) 0.404 0.066 0.000 - 0.596 0.069 0.001 3. Cubeful 2-ply 10/6(2) 8/4(2) Eq.: -0.347 (-0.095) 0.381 0.059 0.000 - 0.619 0.063 0.001 4. Cubeful 2-ply 10/2(2) Eq.: -0.348 (-0.096) 0.382 0.056 0.000 - 0.618 0.064 0.001 5. Cubeful 2-ply 20/16(2) 8/4(2) Eq.: -0.354 (-0.103) 0.382 0.038 0.000 - 0.618 0.063 0.000


Act II: Scene iv
Summary
Last scene, Romeo went to ask Friar Lawrence if he could knead himself with Juliet. Later in the morning, after the events of scene iii, Mercutio and Benvolio converse about Romeo's lust for Rosaline. Eventually, they gossip about the challenge Tybalt had sent to Romeo for a duel. Once belated Romeo enters, he and Mercutio exchange sexual puns in an ostentatious fashion. Soon after, the Nurse and Peter enter. The three Montagues make fun of the Nurse until Mercutio and Benvolio think that the Nurse is asking Romeo on a date. She almost goes berserk at how saucy Mercutio is, as well as how Peter did nothing to stop them from tormenting her. Afterwords, the Nurse references how she will be watching Romeo because she knows about his affairs with Rosaline and he cannot delude her (the nurse).


setThemeByRoute
. See example by adding
?customQueryParam=sap_fiori_3_dark
to URL. To make it work properly, you need to have imported
RouterModule
into the project. In case you want to handle theming only once, after page is loaded, use
getThemesFromURL
method.


FUNERAL MASS (option A)
Outside the Easter Time
ENTRANCE ANTIPHON
Eternal rest
grant unto them, O Lord, and let perpetual light shine upon them.
Or:
Eternal rest grant unto him (her), O Lord, and let perpetual light shine upon him (her).
COLLECT
O God,
almighty Father, our faith professes that your son died and rose again;
mercifully grant, that through this mystery your servant N., who has fallen asleep in Christ, may rejoice to rise again
through him. Who lives and reigns with you in the unity of the Holy Spirit, one
God, for ever and ever.
Or:
O God, whose nature is always to forgive and to show mercy, we humbly implore you for your servant N., whom you have called (this day) to journey to you, and, since he (she) hoped and believed in you, grant that he (she) may be led to our true homeland to delight in its everlasting joys. Through our Lord Jesus Christ, your Son, who lives and reigns with you in the unity of the Holy Spirit, one God, for ever and ever.
PRAYER OVER THE OFFERINGS
As we humbly present to you these sacrificial offerings, O Lord, for the salvation of your servant N., we beseech your mercy, that he (she), who did not doubt your Son to be a loving Saviour, may find in him a merciful judge. Who lives and reigns for ever and ever.
PREFACE of Christian Death I-V
COMMUNION ANTIPHON
Let perpetual
light shine upon them, with your Saints for ever, for you are merciful. Eternal
rest grant unto them, O Lord, and let perpetual light shine upon them, with
your Saints for ever, for you are merciful.
Or:
Let perpetual light shine upon him (her), with your Saints for ever, for you are merciful. Eternal rest grant unto him (her) O Lord, and let perpetual light shine upon him (her), with your Saints for ever, for you are merciful.
PRAYER AFTER COMMUNION
Lord God,
whose Son left us, in the Sacrament of his Body, food for the journey,
mercifully grant that, strengthened by it, our brother (sister) N. may come to the
eternal table of Christ. Who lives and reigns for ever and ever.


Toggle navigation
Live
Council
SignIn/SignUp
Contact Us
Ready to get started?
Contact us
Want to chat? Send us a message. We'd love to hear from you!
Name
Email
Message
Send


Our products
Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.
Newton-Class Perpetual Motion Machine
Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Lorem ipsum dolor, sit amet consectetur adipisicing elit. Enim omnis eum modi voluptatem maxime commodi laboriosam. Ullam accusamus voluptatibus tenetur?
Buy Now'I Love BJ' Shirt - Size XXL
Show you love for the beautiful city of Beijing with this incredible shirt! Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy NowTesla Roaster - Dr. Brown Edition
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae, doloribus? Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy NowTouch Sensitive Boxes
Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy NowPerfectly-Working Nuclear Fusion
Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy NowFlying Cars
Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition.
Buy NowDisclaimer
None of our products are meant for unboxing, handling, activation, or observing. Also note that none of our products are guaranteed to work. Buyers cannot derive any rights from purchasing.


Sagarmatha Tax Service is a tax and accounting firm established in 2010.we provide tax, accounting, bookkeeping, payroll ,sales and used tax services for individual, business and non-profit organizations. We are committed to exceeding our customers’ expectations and provide excellent professional service in a cost effective manner. We open throughout the year and handle all of your accounting and tax needs. We provide partnership relation with our clients by providing professional services.
Why Sagarmatha Tax Services?Friendly agent with professional background
Competitive price for our service
Statisfaction garunteed!
Available year around
Bishnu karki is Registered Tax Preparer in the state of California and Accredited Tax Preparer, credential from Accreditation Council for Accounting and Taxation Inc. He has Master Degree in Accounting from T.U. Nepal. He is the retired Under Secretary (account), Government of Nepal. He is providing Accounting and Tax Preparation service in USA since 2009.He is Certified Insurance Agent in the state California and providing health insurance service from Covered California health insurance market place.


Sat 18 January 2014
Objective: A single plot with box plots of multiple data sets side by side.
I recently wanted to plot each of several groups of data (stored in a single column in my data frame) as a single plot with the box plots corresponding to each group of data lined up side by side.
Pandas provides for this with the pandas.DataFrame.boxplot()
method and use of the column
and by
arguments, which can be used to form the desired groups (assuming that the data frame contains only the groups you want displayed on the plot).
However, before coming across this functionality I produced the same plot using the following method, which requires a little more work but allows for greater flexibility (e.g. not plotting all the groups present in the data frame).
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> n= 10000
# Generate group labels
>>> grp_one= np.random.choice(['A', 'B'], n)
>>> grp_two= np.random.choice(['i', 'j', 'k'], n)
>>> grp_three= np.random.choice(['w', 'x', 'y', 'z'], n)
# Generate two columns of data points
>>> data_one= np.random.randint(0, 100, n)
>>> data_two= np.random.randint(37, 137, n)
# Create the data frame
>>> df= pd.DataFrame({'lbl_one': grp_one, 'lbl_two': grp_two, 'lbl_three': grp_three,
'data_one': data_one, 'data_two': data_two})
# Group the second column of data using all three labels
>>> grpd_data_two= df.groupby(by= ['lbl_one', 'lbl_two', 'lbl_three'])['data_two']
There are 24 groups, and the code df.boxplot(column= ['data_two'], by= ['lbl_one', 'lbl_two', 'lbl_three'])
would produce a plot with 24 different box plots side by side. However, what if you only wanted a subset of those box plots, and plotted in a particular order?
First generate a list of labels of the groups you do want plotted. The pandas SeriesGroupBy
object can be used to obtain a list of all 24 group labels,
>>> group_labels= [label for label, groups in grpd_data_two]
or a custom ordered list of labels can be defined,
>>> group_labels= [('B', 'j', 'w'), ('A', 'k', 'y'), ('B', 'j', 'x'),
('A', 'i', 'z'), ('B', 'k', 'z')]
First use the list of labels and a list comprehension to place the group data into the form required by the plt.boxplot()
method, then deal with the labels for each box plot:
>>> plt.boxplot([grpd_data_two.get_group(lbl) for lbl in group_labels])
>>> locs, __= plt.xticks()
>>> plt.xticks(locs, group_labels)
>>> plt.show()
Hope this was helpful, let me know if you know of better ways to produce box plots with Pandas!
blog comments powered by Disqus


#include <calculate_embedded_nodal_variable_from_skin_process.h>
|
|
| static const Variable< TVarType > & | GetUnknownVariable () |
| | Get the Unknown Variable object This method returns a reference to the unknown variable. For double embedded nodal variables this is a reference to NODAL_MAUX. In case of array type embedded nodal variables, it returns a reference to NODAL_VAUX. These are the variables used when solving the embedded nodal values least squares minimization problem. More...
|
| |
| static void | AddUnknownVariable (ModelPart &rModelPart) |
| | Add the unknown variable to a model part This method adds the unknown variable to the model part of interest. More...
|
| |
| static void | AddUnknownVariableDofs (ModelPart &rModelPart) |
| | Add the unknown variable DOFs to a model part This method adds the unknown variable DOFs to the model part of interest. More...
|
| |
◆ AddUnknownVariable() [1/3]
template<class TVarType >
Add the unknown variable to a model part This method adds the unknown variable to the model part of interest.
- Parameters
-
| rModelPart | Reference to the model part to which the variable is added |
◆ AddUnknownVariable() [2/3]
◆ AddUnknownVariable() [3/3]
◆ AddUnknownVariableDofs() [1/3]
template<class TVarType >
Add the unknown variable DOFs to a model part This method adds the unknown variable DOFs to the model part of interest.
- Parameters
-
| rModelPart | Reference to the model part to which the variable DOFs are added |
◆ AddUnknownVariableDofs() [2/3]
◆ AddUnknownVariableDofs() [3/3]
◆ GetUnknownVariable() [1/3]
template<class TVarType >
Get the Unknown Variable object This method returns a reference to the unknown variable. For double embedded nodal variables this is a reference to NODAL_MAUX. In case of array type embedded nodal variables, it returns a reference to NODAL_VAUX. These are the variables used when solving the embedded nodal values least squares minimization problem.
- Returns
- const Variable<TVarType>& Reference to the unknown variable
◆ GetUnknownVariable() [2/3]
◆ GetUnknownVariable() [3/3]
◆ KRATOS_CLASS_POINTER_DEFINITION()
template<class TVarType >
The documentation for this class was generated from the following file:


Appliances featuring the latest technology can make every aspect of your life infinitely easier and even save you a few dollars in the process.
Find New AppliancesRestless nights are a thing of the past with a brand new mattress that fits your sleep style.
Find Your Best Night's Rest


Hello world, I have pursued an MSc from the Department of Computer Science, University of Delhi, and I'm currently working as a Software Development Engineer 2 at Healthians, and previously worked as a Software Development Engineer at ShopClues, and Viva Online Learning Technologies (vivavolt.in). If you're interested in knowing about my technical experience, check out my projects.
CGPA: 7.531
CGPA: 7.486
Hey there, Click here to view source code.
Simulated the buffer cache and get block algorithm as a python application, project in the operating system.
Developed and Deployed a blog posting site from scratch featured with the blogging service, user authentication, weather report, news, and geolocation coordinate system.
Developed a PHP Mailer System using PHPMailer library, which is embedded in a web application used to send emails safely and easily via PHP code from a web server.
Built a blood bank web application task provided by Internshala to hire web developer intern for 2020-2021 session.
The Karaoke is an instrumental version of a well-known popular songs. Lyrics are usually displayed on a video screen, along with a moving symbol, changing colour.
This online generator helps with creating shapes for images using the css clip-path property.
A word search is a puzzle that uses words and puts them in a grid. The point of the game is to find all of the words hidden in the grid.
Conversion of images of typed, handwritten or printed text into machine-encoded text, whether from a scanned document, a photo of a document, a scene-photo.
VOLT is a comprehensive educational programme covering the school curriculum, learning at school, self-learning and assessment.
Pre-Primary Module of the Viva VOLT
It's an admin-specific platform in an application that allows for access and manipulation of data within the user interface of the site.
...
 In the winter, I love to wear fashionable outfits. During the warmer months here in New Delhi, I enjoy several kinds of beverages, regional foods and explore a lot of people, and even want to travel through different Cultures.
When forced indoors, I follow several sci-fi and fantasy genre movies and television shows.
Hey there, Click here to view.


This week, we’ve been focusing on making our Translation category better. We’re working on a new questionnaire, and performing an audit of our teams. We’ve also got some pretty amazing tasks for you! Check it out!
In this post:
- Translation Questionnaire!
- EFTG Task!
- Utopian V2 Tasks
- Anti-abuse is BACK
- Awesome radio show episode!
Translations Questionnaire
The Translations category is Utopian’s biggest and most active category, with teams from many languages actively working on numerous projects. When a category is this busy, and grows this fast, there are bound to be growing requirements. That’s what we’ve been dealing with here, in association with our partners from @davinci.witness. We’ve had an all-hands moderator meeting this week, and are actively working on a new and improved questionnaire. Check out the details in @davinci.witness’s post.
EFTG Task
Our friends from the European Commission EFTG Project (European Financial Transparency Gateway) have an exciting new task over at @utopian.tasks: Data Entry Webpage on a Private STEEM Blockchain - Experienced Developers needed. We’re running this task for them, and we’re looking for a developer to create a data entry page (posting page) for OAMs to input data and upload documents to the private Steem blockchain available at www.eftg.blkcc.xyz.
Utopian V2 Tasks
We’re also going full Steem ahead with our own tasks for Utopian V2. Our CTO @gregory.latinier has posted the following three tasks: Profile module: skills, Profile module: Education, and Profile module: Work experiences.
Anti-abuse is BACK
Last week, we announced that our Anti-abuse category’s trial has ended, and that we intend to do an audit of the category and relaunch it soon. Well, it’s back. You should be able to see our new and improved Anti-abuse guidelines soon, and we’ve already got our first post-hiatus post up.
Utopian.io Open Source Radio Show on MSP Waves
We had a terrific episode of the Open Source Radio Show this week, as @hispeedimagins came in to talk about Steem Lite, and Cryptocurrency maven @lukestokes visited to talk about EOSDAC. A great and lively discussion took place, and great fun was had by all. Also @techslut reported the open source news, and @imacryptorick won a Humble Bundle game package in our raffle.
Join the community on Discord: https://discord.gg/azdmM3v
First Time Contributing in Utopian.io?
Learn how to contribute on our website
This page is synchronized from the post: Utopian.io Weekly - [November 23 2018] - Found In Translation


After the CALL statement has been executed by the JSON server action, one of two things should be done:
Two new tasks and a new parameter access type that you have yet to encounter will be required to complete these actions.
The tasks should be straight forward:
For the local parameter the new attribute value of 'returnObject' allows you to access return data from a given action. Object or array access is done using dot-separated parameters. In this case, we are accessing the actions 'delUser'/'delMembership'/'delGroup' with the return value of 'returnValue'--which is an object in this case--and the value of the string 'STMTMSG'. This may make more sense by looking at the return object of the executeSQL action


Turkish tobacco, or Oriental tobacco, is a highly aromatic, small-leafed variety of tobacco which is sun-cured. Historically, it was cultivated primarily in Thrace and Macedonia, now divided among Bulgaria, Greece, the Republic of Macedonia and Turkey, but it is now also grown on the Black Sea coast of Turkey, in Egypt, in South Africa and elsewhere. The name "Turkish" refers to the Ottoman Empire, which ruled the historic production areas until the late 19th/early 20th century.
Tobacco originated in the Americas and was introduced to the Ottoman Turks by the Spanish. The Ottoman people over time developed their own method of growing and using tobacco.Many of the early brands of cigarettes were made mostly or entirely of Turkish tobacco; today, its main use is in blends of pipe and especially cigarette tobacco.Turkish tobacco is sun-cured, which makes it more aromatic and, like flue-cured tobacco, more acidic than air or smoke-cured tobacco, thus more suitable for cigarette production.
Turkish tobacco has a much milder flavour and contains less nicotine and fewer carcinogens than other varieties.[2] Cigarettes containing only Turkish tobacco, like Murad, Helmar, Balkan Sobranie or those supplied by urban tobacconists like Fribourg & Treyer or Sullivan Powell in London, are no longer available.[3] Blends, however, persist: the American Blend cigarette, in particular, uses Turkish mixed with more robust tobacco such as Virginia tobacco and Burley. Turkish tobacco plants usually have a greater number and smaller size leaves. These differences can be attributed to climate, soil, cultivation and treatment methods.


Message Symbols of Engine Object
"Message Symbol" is a symbol to operate a chess engine object.
- Generate a chess engine object by
(gen-engine)
function. - Use the engine object as function and give "Message Symbol" to its 1st argument.
Contents
- Getting squares
- Getting pieces
- Getting states of game
- Setting states of game
- Placing pieces
- Getting candidate moves
- Predicate functions
- Taking a move
- UCI Command
- Searching the best move
- Hash and threads
- Analyse Position
- Generate Feature Vector
- Customizing Search Algorithm - Material
- Customizing Search Algorithm - Quiescence Search
- Customizing Search Algorithm - Repetition Check
- Customizing Search Algorithm - Check Extension
- Customizing Search Algorithm - YBWC
- Customizing Search Algorithm - Aspiration Windows
- Customizing Search Algorithm - Aspiration Windows
- Customizing Search Algorithm - History Heuristics
- Customizing Search Algorithm - Killer Move Heuristics
- Customizing Search Algorithm - Hash Table
- Customizing Search Algorithm - Internal Iterative Deepening
- Customizing Search Algorithm - Null Move Reduction
- Customizing Search Algorithm - ProbCut
- Customizing Search Algorithm - History Pruning
- Customizing Search Algorithm - Late Move Reduction
- Customizing Search Algorithm - Futility Pruning
- Customizing Evaluation Function - Piece Square Table
- Customizing Evaluation Function - Attack
- Customizing Evaluation Function - Defense
- Customizing Evaluation Function - Pawn Shield
- Customizing Evaluation Function - Mobility
- Customizing Evaluation Function - Controlling Center
- Customizing Evaluation Function - Controlling Sweet Center
- Customizing Evaluation Function - Development
- Customizing Evaluation Function - Attack around Enemy King
- Customizing Evaluation Function - Pawn Structure
- Customizing Evaluation Function - Piece
Getting squares
Returns List of Symbols of squares where specific pieces are on.
@get-white-pawn-position
@get-white-knight-position
@get-white-bishop-position
@get-white-rook-position
@get-white-queen-position
@get-white-king-position
@get-black-pawn-position
@get-black-knight-position
@get-black-bishop-position
@get-black-rook-position
@get-black-queen-position
@get-black-king-position
@get-empty-square-position
Example
(define my-engine (gen-engine))
(display (my-engine '@get-white-pawn-position))
;; Output
;; > (A2 B2 C2 D2 E2 F2 G2 H2)
Getting pieces
-
@get-piece <Square : Number>
- Returns a side and type of the piece on
<Square>
as List.
- Returns a side and type of the piece on
-
@get-all-pieces
- Returns pieces of each square on the board as List.
Example
(define my-engine (gen-engine))
(display (my-engine '@get-piece D1))
;; Output
;; > (WHITE QUEEN)
(display (my-engine '@get-all-pieces))
;; Output
;; > ((WHITE ROOK) (WHITE KNIGHT) (WHITE BISHOP) (WHITE QUEEN)
;; > (WHITE KING) (WHITE BISHOP) (WHITE KNIGHT) (WHITE ROOK)
;; > (WHITE PAWN) (WHITE PAWN) (WHITE PAWN) (WHITE PAWN) (WHITE PAWN)
;; > (WHITE PAWN) (WHITE PAWN) (WHITE PAWN) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY)
;; > (NO_SIDE EMPTY) (NO_SIDE EMPTY) (NO_SIDE EMPTY) (BLACK PAWN)
;; > (BLACK PAWN) (BLACK PAWN) (BLACK PAWN) (BLACK PAWN) (BLACK PAWN)
;; > (BLACK PAWN) (BLACK PAWN) (BLACK ROOK) (BLACK KNIGHT) (BLACK BISHOP)
;; > (BLACK QUEEN) (BLACK KING) (BLACK BISHOP) (BLACK KNIGHT) (BLACK ROOK))
Getting states of game
@get-to-move
- Returns turn to move as Symbol.
@get-castling-rights
- Returns castling rights as Symbol.
@get-en-passant-square
- Returns en passant square as Symbol if it exists now.
@get-ply
- Returns plies of moves from starting of the game.
- 1 move = 2 plies.
@get-clock
- Returns clock(plies for 50 Moves Rule).
@get-white-has-castled
- Returns Boolean whether White King has castled or not.
@get-black-has-castled
- Returns Boolean whether Black King has castled or not.
@get-fen
- Returns FEN of current position.
@to-string
- Returns visualized board.
 n .  B .  N . .|
;; |P P P P . P P P|
;; |R N B Q .  n .  B .  N . . |
;; > 2| P P P P . P P P |
;; > 1| R N B Q . R K . |
;; > +-----------------+
;; > a b c d e f g h
;; > To Move: w | Clock: 0 | Ply: 8
;; > En Passant Square: d6
;; > Castling Rights : kq
Setting states of game
@set-to-move <Side : Number>
- Sets turn to move.
- Returns previous setting.
@set-castling_rights <Castling rights : List>
- Sets castling rights.
- Returns previous setting.
@set-en-passant-square <<Square : Number> or <Nil>>
- Sets en passant square.
- Returns previous setting.
@set-ply <Ply : Number>
- Sets plies(a half of one move).
- Returns previous setting.
@set-clock <Ply : Number>
- Sets clock(plies for 50 moves rule).
- Returns previous setting.
@set-white-has-castled <Has castled : Boolean>
- Sets whether White has castled or not.
- Returns previous setting.
@set-black-has-castled <Has castled : Boolean>
- Sets whether Black has castled or not.
- Returns previous setting.

- Returns #t.
@set-fen <FEN : String>
- Sets position with FEN.
- Returns #t.
@place-piece <Piece : List> <Square : Number>
- Sets a
<Piece>
on<Square>
and returns the previous piece placed on<Square>
. <Piece>
is(<Side : Number> <Type : Number>).
- For example, White Pawn is
(list WHITE PAWN)
.
- For example, White Pawn is
- Sets a
Example
(define my-engine (gen-engine))
(display (my-engine '@set-new-game))
;; Output
;; > #t
(display (my-engine '@set-fen
"r1bqkb1r/pppp1ppp/2n2n2/4p3/2B1P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 0 1"))
;; Output
;; > #t
;; Sets Black Rook on D1 where White Queen is placed.
(display (my-engine '@place-piece (list BLACK ROOK) D1))
;; Output
;; > (WHITE QUEEN)
Getting candidate moves
@get-candidate-moves
- Generates and returns List of candidate moves.
Example
(define my-engine (gen-engine))
(display (my-engine '@get-candidate-moves))
;; Output
;; > ((H2 H4 EMPTY) (H2 H3 EMPTY) (G2 G4 EMPTY) (G2 G3 EMPTY)
;; > (F2 F4 EMPTY) (F2 F3 EMPTY) (E2 E4 EMPTY) (E2 E3 EMPTY) (D2 D4 EMPTY)
;; > (D2 D3 EMPTY) (C2 C4 EMPTY) (C2 C3 EMPTY) (B2 B4 EMPTY) (B2 B3 EMPTY)
;; > (A2 A4 EMPTY) (A2 A3 EMPTY) (G1 H3 EMPTY) (G1 F3 EMPTY) (B1 C3 EMPTY)
;; > (B1 A3 EMPTY))
Predicate functions
Judges each state of the current position.
@correct-position?
- If Pawn is on 1st or 8th rank, it returns #f.
- When turn to move is White, if Black King is checked, then it returns #f.
- When turn to move is Black, if White King is checked, then it returns #f.
- Otherwise, returns #t.
@white-checked?
@black-checked?
@checkmated?
@stalemated?
Example
(define my-engine (gen-engine))
;; Put Pawn on 1st rank.
(my-engine '@place-piece (list WHITE PAWN) D1)
(display (my-engine '@correct-position?))
 p .  b .  N . .|
;; |P P P . P P P P|
;; |R N B Q K B . R|
;; +---------------+
(my-engine '@input-uci-command
"position startpos moves d2d4 e7e6 g1f3 f8b4")
(display (my-engine '@white-checked?))
;; Output
;; > #t
(display (my-engine '@black-checked?))
 p .    P|
;; |R N B Q K B N R|
;; +---------------+
(my-engine '@input-uci-command
"position startpos moves f2f3 e7e5 g2g4 d8h4")
(display (my-engine '@checkmated?))
;; Output
;; > #t
(display (my-engine '@stalemated?))
;; Output
;; > #f
Taking a move
A move is represented by List. The List is
(<From : Number> <To : Number> <Promotion : Number>)
.
-
@play-move <Move : List>
- Moves one piece legally.
- Returns #t if it has succeeded, otherwise returns #f.
-
@undo-move
- Undoes previous move.
- Returns previous move.
-
@play-note <PGN move text : String>
- Moves one piece legally with
<PGN move text>
. - Returns #t if it has succeeded, otherwise returns #f.
- Moves one piece legally with
-
@move->note <Move : List>
- Translates Move into PGN move text according to the current position.
-
@note->move <PGN move text : String>
- Translates PGN move into move according to the current position.
 - If success, returns #t. Otherwise, returns #f.
- If you have input "go" command, the engine starts thinking in background. So control will come back soon.
- Executes
@add-uci-output-listener <Listener : Function>
- Registers Function to receive UCI output from the engine.
<Listener>
is Function that has one argument(UCI output).
@run
- Runs as UCI Chess Engine until the engine gets "quit" command.
- The control doesn't come back while the engine is running.
Example
(define my-engine (gen-engine))
;; Create a listener.
(define (listener message)
(display "I'm Listener : " message))
;; Register the listener.
(my-engine '@add-uci-output-listener listener)
(display (my-engine '@input-uci-command "uci"))
;; Output
;; > I'm Listener : id name Sayuri 2015.03.27 devel
;; > I'm Listener : id author Hironori Ishibashi
;; > I'm Listener : option name Hash type spin default 32 min 8 max 8192
;; > I'm Listener : option name Clear Hash type button
;; > I'm Listener : option name Ponder type check default true
;; > I'm Listener : option name Threads type spin default 1 min 1 max 64
;; > I'm Listener : option name UCI_AnalyseMode type check default false
;; > I'm Listener : uciok
;; > #t
Searching the best move
Thinks and returns the information of PV Line in each condition.
Unlike "go" command,
the control won't come back until the engine have found the best move.
-
A return value is
(<Score> <Mate in N> <PV Move>...)
<Score>
is advantage for the engine.- About
<Mate in N>
.- If that is a positive number, checkmate in N by engine.
- If that is a negative number, the engine is checkmated in N.
- If that is Nil, the engine couldn't find checkmate.
-
@go-movetime <Milliseconds : Number> [<Candidate move list : List>]
- Thinks for
<Milliseconds>
.
- Thinks for
@go-timelimit <Milliseconds : Number> [<Candidate move list : List>]
- Thinks for
<Milliseconds> / 40
- Thinks for
@go-depth <Ply : Number> [<Candidate move list : List>]
- Thinks until to reach
<Ply>
th depth.
- Thinks until to reach
@go-nodes <Nodes : Number> [<Candidate move list : List>]
- Thinks until to search
<Nodes>
nodes.
- Thinks until to search
Example
(define my-engine (gen-engine))
;; Starting position.
(display (my-engine '@go-movetime 10000))
;; Output
;; > (31 () (E2 E4 EMPTY) (E7 E5 EMPTY) (G1 F3 EMPTY) (G8 F6 EMPTY)
;; > (B1 C3 EMPTY) (B8 C6 EMPTY) (F1 B5 EMPTY) (F8 B4 EMPTY) (E1 G1 EMPTY)
;; > (B4 C3 EMPTY) (D2 C3 EMPTY))
;; Mate in 2.
(define fen
"2bqkbn1/2pppp2/np2N3/r3P1p1/p2N2B1/5Q2/PPPPKPP1/RNB2r2 w - - 0 1")
(my-engine '@set-fen fen)
(display (my-engine '@go-movetime 10000))
;; > (1000000 2 (F3 F7 EMPTY) (E8 F7 EMPTY) (G4 H5 EMPTY))
Hash and threads
@set-hash-size <Size : Number>
- Sets size of Hash Table(Transposition Table) and returns the previous size.
- The unit of size is "byte".
@clear-hash
- Reinitialize Hash Table.
@set-threads <Number of threads : Number>
- Sets
<Number of threads>
and returns the previous number.
- Sets
Example
(define my-engine (gen-engine))
;; Set size of Hash Table to 128 MB.
(my-engine '@input-uci-command "setoption name hash value 128")
(display (my-engine '@set-hash-size (* 256 1024 1024)))
;; Set size of Hash Table to 256 MB and return 128 * 1024 * 1024 bytes.
;; Output
;; > 134217728
;; Set the number of threads to 3.
(my-engine '@input-uci-command "setoption name threads value 3")
(display (my-engine '@set-threads 4))
;; Set the number of threads to 4 and return 3.
;; Output
;; > 3
Analyse Position
-
@analyse-diff
- Returns List of difference of pieces.
- 1st : Empty (It is always 0)
- 2nd : Difference of Pawns
- 3rd : Difference of Knights
- 4th : Difference of Bishops
- 5th : Difference of Rooks
- 6th : Difference of Queens
- 7th : Difference of Kings
- If the element is '0', each side has same number of the pieces.
- If the element is a positive number, White has them more than Black's.
- If the element is a negative number, Black has them more than White's.
- Returns List of difference of pieces.
-
@analyse-mobility <Piece square : Number>
- Returns List of squares that the piece on
<Piece square>
can move to.
- Returns List of squares that the piece on
-
@analyse-attackers <Square : Number>
- Returns List of squares of pieces that
attacks
<Square>
.
- Returns List of squares of pieces that
attacks
-
@analyse-attacking <Piece square : Number>
- Returns List of squares of pieces that
the piece on
<Piece square>
is attacking.
- Returns List of squares of pieces that
the piece on
-
@analyse-attacked <Piece square : Number>
- Returns List of squares of pieces that
the piece on
<Piece square>
is attacked by.
- Returns List of squares of pieces that
the piece on
-
@analyse-defensing <Piece square : Number>
- Returns List of squares of pieces that
the piece on
<Piece square>
is defensing.
- Returns List of squares of pieces that
the piece on
-
@analyse-defensed <Piece square : Number>
- Returns List of squares of pieces that
the piece on
<Piece square>
is defensed by.
- Returns List of squares of pieces that
the piece on
-
@analyse-center-control <Piece square : Number>
- Returns List of Center squares that
the piece on
<Piece square>
attacks.
- Returns List of Center squares that
the piece on
-
@analyse-sweet-center-control <Piece square : Number>
- Returns List of Sweet Center squares that
the piece on
<Piece square>
attacks.
- Returns List of Sweet Center squares that
the piece on
-
@analyse-open-fyle
- Returns List of open fyles.
-
@analyse-development (<Piece side : Number> <Piece type : Number>)
- Returns List of squares that the developed(Not on starting position)
(<Piece side> <Piece type>)
on.
- Returns List of squares that the developed(Not on starting position)
-
@analyse-double-pawn <Side : Number>
- Returns List of squares that Double Pawns of
<Side>
on.
- Returns List of squares that Double Pawns of
-
@analyse-iso-pawn <Side : Number>
- Returns List of squares that Isolated Pawns of
<Side>
on.
- Returns List of squares that Isolated Pawns of
-
@analyse-pass-pawn <Side : Number>
- Returns List of squares that Pass Pawns of
<Side>
on.
- Returns List of squares that Pass Pawns of
Example
;; Set position.
;; +-----------------+
;; 8| . . . . k . . r |
;; 7| . b .  n . . |
;; 5| q . . . . r .  P B . . N .  N R . K . .
 n . . n . . |
;; > 5| . . . . p . . . |
;; > 4| B . . .  N . . |
;; > 2| P P P P . P P P |
;; > 1| R N B Q R . K . |
;; > +-----------------+
;; > a b c d e f g h
;; > To Move: b | Clock: 5 | Ply: 11
;; > En Passant Square: -
;; > Castling Rights : kq
;; >
;; > ("material" (0 0 0 0 0 0))
;; > ("pawn_position" (0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0))
;; > ("knight_position" (0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0))
;; > ("bishop_position" (0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0
;; > 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0))
;; > ("rook_position" (0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0))
;; > ("queen_position" (0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0))
;; > ("king_position" (0 0 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
;; > 0 0 0 0))
;; > ("pawn_attack" (0 0 0 0 0 0))
;; > ("knight_attack" (0 0 0 0 0 0))
;; > ("bishop_attack" (0 1 0 0 0 0))
;; > ("rook_attack" (0 0 0 0 0 0))
;; > ("queen_attack" (0 0 0 0 0 0))
;; > ("king_attack" (0 0 0 0 0 0))
;; > ("pawn_defense" (-1 -2 0 0 0 0))
;; > ("knight_defense" (0 0 -1 1 -1 0))
;; > ("bishop_defense" (1 -1 0 0 -1 0))
;; > ("rook_defense" (0 1 -1 0 1 0))
;; > ("queen_defense" (0 1 -1 1 0 -1))
;; > ("king_defense" (1 0 -1 0 -1 0))
;; > ("mobility" (2 -4 -2 -1 1 0))
;; > ("center_control" (2 0 -1 1 0 0))
;; > ("sweet_center_control" (0 -1 0 0 0 0))
;; > ("development" (-1 -1 0 1 0 1))
;; > ("attack_around_king" (0 0 0 0 0 0))
;; > ("pass_pawn" (0))
;; > ("protected_pass_pawn" (0))
;; > ("double_pawn" (0))
;; > ("iso_pawn" (0))
;; > ("bishop_pair" (0))
;; > ("bad_bishop" (0))
;; > ("rook_pair" (0))
;; > ("rook_semiopen_fyle" (0))
;; > ("rook_open_fyle" (0))
;; > ("early_queen_starting" (0))
;; > ("weak_square" (0))
;; > ("castling" (1))
;; > ("abandoned_castling" (0))
Customizing Search Algorithm - Material
@material [<New materal : List>]
- Returns List of material.
- 1st : Empty (It is always 0)
- 2nd : Pawn
- 3rd : Knight
- 4th : Bishop
- 5th : Rook
- 6th : Queen
- 7th : King
- If you specify
<New materal>
, the material is updated.
- Returns List of material.
Example
(define my-engine (gen-engine))
(display (my-engine '@material (list 111 222 333 444 555 666 777)))
;; Output
;; > (0 100 400<PHONE_NUMBER> 1000000)
(display (my-engine '@material))
;; Output
;; > (0 222 333 444 555 666 777)
Customizing Search Algorithm - Quiescence Search
@enable-quiesce-search [<New setting : Boolean>]
- Returns whether Quiescence Search is enabled or not.
- If you specify #t to
<New setting>
, Quiescence Search is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-quiesce-search #f))
;; Output
;; > #t
(display (my-engine '@enable-quiesce-search))
;; Output
;; > #f
Customizing Search Algorithm - Repetition Check
@enable-repetition-check [<New setting : Boolean>]
- Returns whether Repetition Check is enabled or not.
- If you specify #t to
<New setting>
, Repetition Check is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-repetition-check #f))
;; Output
;; > #t
(display (my-engine '@enable-repetition-check))
;; Output
;; > #f
Customizing Search Algorithm - Check Extension
@enable-check-extension [<New setting : Boolean>]
- Returns whether Check Extension is enabled or not.
- If you specify #t to
<New setting>
, Check Extension is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-check-extension #f))
;; Output
;; > #t
(display (my-engine '@enable-check-extension))
;; Output
;; > #f
Customizing Search Algorithm - YBWC
-
@ybwc-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, YBWC is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
-
@ybwc-invalid-moves [<New number of moves : Number>]
- YBWC searches with one thread during this parameter of candidate moves.
- Return this parameter.
- If you specify
<New number of moves>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@ybwc-limit-depth 10))
;; Output
;; > 4
(display (my-engine '@ybwc-limit-depth))
;; Output
;; > 10
(display (my-engine '@ybwc-invalid-moves 10))
;; Output
;; > 3
(display (my-engine '@ybwc-invalid-moves))
;; Output
;; > 10
Customizing Search Algorithm - Aspiration Windows
@enable-aspiration-windows [<New setting : Boolean>]
- Returns whether Aspiration Windows is enabled or not.
- If you specify #t to
<New setting>
, Aspiration Windows is set to be enabled. Otherwise, it is set to be disabled.
@aspiration-windows-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter at the root node, Aspiration Windows is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@aspiration-windows-delta [<New delta : Number>]
- Return Delta.
- If you specify
<New delta>
, Delta is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-aspiration-windows #f))
;; Output
;; > #t
(display (my-engine '@enable-aspiration-windows))
;; Output
;; > #f
(display (my-engine '@aspiration-windows-limit-depth 10))
;; Output
;; > 5
(display (my-engine '@aspiration-windows-limit-depth))
;; Output
;; > 10
(display (my-engine '@aspiration-windows-delta 20))
;; Output
;; > 15
(display (my-engine '@aspiration-windows-delta))
;; Output
;; > 20
Customizing Search Algorithm - Aspiration Windows
@enable-see [<New setting : Boolean>]
- Returns whether SEE is enabled or not.
- If you specify #t to
<New setting>
, SEE is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-see #f))
;; Output
;; > #t
(display (my-engine '@enable-see))
;; Output
;; > #f
Customizing Search Algorithm - History Heuristics
@enable-history [<New setting : Boolean>]
- Returns whether History Heuristics is enabled or not.
- If you specify #t to
<New setting>
, History Heuristics is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-history #f))
;; Output
;; > #t
(display (my-engine '@enable-history))
;; Output
;; > #f
Customizing Search Algorithm - Killer Move Heuristics
@enable-killer [<New setting : Boolean>]
- Returns whether Killer Move Heuristics is enabled or not.
- If you specify #t to
<New setting>
, Killer Move Hiuristics is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-killer #f))
;; Output
;; > #t
(display (my-engine '@enable-killer))
;; Output
;; > #f
Customizing Search Algorithm - Hash Table
@enable-hash-table [<New setting : Boolean>]
- Returns whether Transposition Table is enabled or not.
- If you specify #t to
<New setting>
, Transposition Table is set to be enabled. Otherwise, it is set to be disabled.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-hash-table #f))
;; Output
;; > #t
(display (my-engine '@enable-hash-table))
;; Output
;; > #t
Customizing Search Algorithm - Internal Iterative Deepening
@enable-iid [<New setting : Boolean>]
- Returns whether Internal Iterative Deepening is enabled or not.
- If you specify #t to
<New setting>
, Internal Iterative Deepening is set to be enabled. Otherwise, it is set to be disabled.
@iid-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, Internal Iterative Deepening is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@iid-search-depth [<New depth : Number>]
- Internal Iterative Deepening searches until depth of this parameter.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-iid #f))
;; Output
;; > #t
(display (my-engine '@enable-iid))
;; Output
;; > #f
(display (my-engine '@iid-limit-depth 10))
;; Output
;; > 5
(display (my-engine '@iid-limit-depth))
;; Output
;; > 10
(display (my-engine '@iid-search-depth 10))
;; Output
;; > 4
(display (my-engine '@iid-search-depth))
;; Output
;; > 10
Customizing Search Algorithm - Null Move Reduction
@enable-nmr [<New setting : Boolean>]
- Returns whether Null Move Reduction is enabled or not.
- If you specify #t to
<New setting>
, Null Move Reduction is set to be enabled. Otherwise, it is set to be disabled.
@nmr-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, Null Move Reduction is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@nmr-search-reduction [<New reduction : Number>]
- When searching shallowly, the depth is the actual depth minus this parameter.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
@nmr-reduction [<New reduction : Number>]
- If the score is greater than or equals to Beta, the remaining depth is reduced by this parameter.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-nmr #f))
;; Output
;; > #t
(display (my-engine '@enable-nmr))
;; Output
;; > #f
(display (my-engine '@nmr-limit-depth 10))
;; Output
;; > 4
(display (my-engine '@nmr-limit-depth))
;; Output
;; > 10
(display (my-engine '@nmr-search-reduction 10))
;; Output
;; > 4
(display (my-engine '@nmr-search-reduction))
;; Output
;; > 10
(display (my-engine '@nmr-reduction 10))
;; Output
;; > 3
(display (my-engine '@nmr-reduction))
;; Output
;; > 10
Customizing Search Algorithm - ProbCut
@enable-probcut [<New setting : Boolean>]
- Returns whether ProbCut is enabled or not.
- If you specify #t to
<New setting>
, ProbCut is set to be enabled. Otherwise, it is set to be disabled.
@probcut-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, ProbCut is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@probcut-margin [<New margin : Number>]
- When Zero Window Search, ProbCut uses the current Beta plus this parameter as temporary Beta.
@probcut-search-reduction [<New reduction : Number>]
- When Zero Window Search, the depth is the actual depth minus this parameter.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-probcut #t))
;; Output
;; > #f
(display (my-engine '@enable-probcut))
;; Output
;; > #t
(display (my-engine '@probcut-limit-depth 10))
;; Output
;; > 4
(display (my-engine '@probcut-limit-depth))
;; Output
;; > 10
(display (my-engine '@probcut-margin 1200))
;; Output
;; > 400
(display (my-engine '@probcut-margin))
;; Output
;; > 1200
(display (my-engine '@probcut-search-reduction 10))
;; Output
;; > 3
(display (my-engine '@probcut-search-reduction))
;; Output
;; > 10
Customizing Search Algorithm - History Pruning
@enable-history-pruning [<New setting : Boolean>]
- Returns whether History Pruning is enabled or not.
- If you specify #t to
<New setting>
, History Pruning is set to be enabled. Otherwise, it is set to be disabled.
@history-pruning-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, History Pruning is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@history-pruning-move-threshold [<New threshold : Number>]
- If the number of the candidate move is less than the number of all moves times this parameter, History Pruning is invalidated.
- This parameter is between 0.0 and 1.0.
- Return this parameter.
- If you specify
<New threshold>
, this parameter is updated.
@history-pruning-invalid-moves [<New number of moves : Number>]
- If the number of the candidate moves is less than this parameter, History Pruning is invalidated.
- This parameter is given priority to
@history-pruning-move-threshold
. - Return this parameter.
- If you specify
<New number of moves>
, this parameter is updated.
@history-pruning-threshold [<New threshold : Number>]
- If the history value of the current candidate move is lower than the max history value times this parameter, History Pruning temporarily reduces the remaining depth.
- Return this parameter.
- If you specify
<New threshold>
, this parameter is updated.
@history-pruning-reduction [<New reduction : Number>]
- When History Pruning reduces the remaining depth, a new depth is the current depth minus this parameter.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-history-pruning #t))
;; Output
;; > #f
(display (my-engine '@enable-history-pruning))
;; Output
;; > #t
(display (my-engine '@history-pruning-limit-depth 10))
;; Output
;; > 4
(display (my-engine '@history-pruning-limit-depth))
;; Output
;; > 10
(display (my-engine '@history-pruning-move-threshold 0.8))
;; Output
;; > 0.6
(display (my-engine '@history-pruning-move-threshold))
;; Output
;; > 0.8
(display (my-engine '@history-pruning-invalid-moves 20))
;; Output
;; > 10
(display (my-engine '@history-pruning-invalid-moves))
;; Output
;; > 20
(display (my-engine '@history-pruning-threshold 0.8))
;; Output
;; > 0.5
(display (my-engine '@history-pruning-threshold))
;; Output
;; > 0.8
(display (my-engine '@history-pruning-reduction 10))
;; Output
;; > 1
(display (my-engine '@history-pruning-reduction))
;; Output
;; > 10
Customizing Search Algorithm - Late Move Reduction
@enable-lmr [<New setting : Boolean>]
- Returns whether Late Move Reduction is enabled or not.
- If you specify #t to
<New setting>
, Late Move Reduction is set to be enabled. Otherwise, it is set to be disabled.
@lmr-limit-depth [<New depth : Number>]
- If remaining depth is less than this parameter, Late Move Reduction is invalidated.
- Return this parameter.
- If you specify
<New depth>
, this parameter is updated.
@lmr-move-threshold [<New threshold : Number>]
- If the number of the candidate move is less than the number of all moves times this parameter, Late Move Reduction is invalidated.
- This parameter is between 0.0 and 1.0.
- Return this parameter.
- If you specify
<New threshold>
, this parameter is updated.
@lmr-invalid-moves [<New number of moves : Number>]
- If the number of the candidate moves is less than this parameter, Late Move Reduction is invalidated.
- This parameter is given priority to
@lmr-move-threshold
. - Return this parameter.
- If you specify
<New number of moves>
, this parameter is updated.
@lmr-search-reduction [<New reduction : Number>]
- When searching shallowly, the depth is the actual depth minus this parameter.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-lmr #f))
;; Output
;; > #t
(display (my-engine '@enable-lmr))
;; Output
;; > #f
(display (my-engine '@lmr-limit-depth 10))
;; Output
;; > 4
(display (my-engine '@lmr-limit-depth))
;; Output
;; > 10
(display (my-engine '@lmr-move-threshold 0.8))
;; Output
;; > 0.3
(display (my-engine '@lmr-move-threshold))
;; Output
;; > 0.8
(display (my-engine '@lmr-invalid-moves 10))
;; Output
;; > 4
(display (my-engine '@lmr-invalid-moves))
;; Output
;; > 10
(display (my-engine '@lmr-search-reduction 5))
;; Output
;; > 1
(display (my-engine '@lmr-search-reduction))
;; Output
;; > 5
Customizing Search Algorithm - Futility Pruning
@enable-futility-pruning [<New setting : Boolean>]
- Returns whether Futility Pruning is enabled or not.
- If you specify #t to
<New setting>
, Futility Pruning is set to be enabled. Otherwise, it is set to be disabled.
@futility-pruning-depth [<New depth : Number>]
- If the remaining depth is less than or equals to this parameter, Futility Pruning is executed.
- Return this parameter.
- If you specify
<New reduction>
, this parameter is updated.
@futility-pruning-margin [<New margin : Number>]
- If the material after the move is lower than Alpha minus this parameter, the move is not evaluated.
Example
(define my-engine (gen-engine))
(display (my-engine '@enable-futility-pruning #f))
;; Output
;; > #t
(display (my-engine '@enable-futility-pruning))
;; Output
;; > #f
(display (my-engine '@futility-pruning-depth 10))
;; Output
;; > 3
(display (my-engine '@futility-pruning-depth))
;; Output
;; > 10
(display (my-engine '@futility-pruning-margin 1200))
;; Output
;; > 400
(display (my-engine '@futility-pruning-margin))
;; Output
;; > 1200
Customizing Evaluation Function - Piece Square Table
Returns Piece Square Table for each piece type.
If you specify <New table>
, this parameter is updated.
score = weight * value_table[square]
@pawn-square-table-opening [<New table : List>]
@knight-square-table-opening [<New table : List>]
@bishop-square-table-opening [<New table : List>]
@rook-square-table-opening [<New table : List>]
@queen-square-table-opening [<New table : List>]
@king-square-table-opening [<New table : List>]
@pawn-square-table-ending [<New table : List>]
@knight-square-table-ending [<New table : List>]
@bishop-square-table-ending [<New table : List>]
@rook-square-table-ending [<New table : List>]
@queen-square-table-ending [<New table : List>]
@king-square-table-ending [<New table : List>]
Example
(define my-engine (gen-engine))
(display (my-engine '@pawn-square-table-opening
(list
1 2 3 4 5 6 7 8
11 22 33 44 55 66 77 88
111 222 333 444 555 666 777 888
1111 2222 3333 4444 5555 6666 7777 8888
11111 22222 33333 44444 55555 66666 77777 88888
111111<PHONE_NUMBER>33<PHONE_NUMBER>55<PHONE_NUMBER>77 888888
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888
11111111 22222222 33333333 44444444 55555555 66666666 77777777 88888888
)))
;; Output
;; > (0 0 0 0 0 0 0 0
;; > 0 0 0 0 0 0 0 0
;; > 5 10 15 20 20 15 10 5
;; > 10 20 30 40 40 30 20 10
;; > 15 30 45 60 60 45 30 15
;; > 20 40 60 80 80 60 40 20
;; > 25 50 75 100 100 75 50 25
;; > 30 60 90 120 120 90 60 30)
(display (my-engine '@pawn-square-table-opening))
;; Output
;; > (1 2 3 4 5 6 7 8
;; > 11 22 33 44 55 66 77 88
;; > 111 222 333 444 555 666 777 888
;; > 1111 2222 3333 4444 5555 6666 7777 8888
;; > 11111 22222 33333 44444 55555 66666 77777 88888
;; ><PHONE_NUMBER>22<PHONE_NUMBER>44<PHONE_NUMBER>66<PHONE_NUMBER>88
;; > 1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888
;; > 11111111 22222222 33333333 44444444 55555555 66666666 77777777
;; > 88888888)
Weights
Usage : Run (help "sayuri weight system")
- Opening Position
@weight-pawn-opening-position
@weight-knight-opening-position
@weight-bishop-opening-position
@weight-rook-opening-position
@weight-queen-opening-position
@weight-king-opening-position
- Ending Position
@weight-pawn-ending-position
@weight-knight-ending-position
@weight-bishop-ending-position
@weight-rook-ending-position
@weight-queen-ending-position
@weight-king-ending-position
Customizing Evaluation Function - Attack
Returns List composed of 7 values of attacking score.
1st: Not used. This is always 0. (for EMPTY)
2nd: Attacking Pawn.
3rd: Attacking Knight.
4th: Attacking Bishop.
5th: Attacking Rook.
6th: Attacking Queen.
7th: Attacking King.
If you specify <New table>
, this parameter is updated.
score = weight * value_table[attacking_piece][attacked_piece]
@pawn-attack-table [<New table : List>]
@knight-attack-table [<New table : List>]
@bishop-attack-table [<New table : List>]
@rook-attack-table [<New table : List>]
@queen-attack-table [<New table : List>]
@king-attack-table [<New table : List>]
Example
(define my-engine (gen-engine))
(display (my-engine '@pawn-attack-table (list 1 2 3 4 5 6 7)))
;; Output
;; > (0 10 12 14 16 18 20)
(display (my-engine '@pawn-attack-table))
;; Output
;; > (0 2 3 4 5 6 7)
Weights
Usage : Run (help "sayuri weight system")
@weight-pawn-attack
@weight-knight-attack
@weight-bishop-attack
@weight-rook-attack
@weight-queen-attack
@weight-king-attack
Customizing Evaluation Function - Defense
Returns List composed of 7 values of defense score.
1st: Not used. This is always 0. (for EMPTY)
2nd: Protecting Pawn.
3rd: Protecting Knight.
4th: Protecting Bishop.
5th: Protecting Rook.
6th: Protecting Queen.
7th: Protecting King.
If you specify <New table>
, this parameter is updated.
score = weight * value_table[defensing_piece][defensed_piece]
@pawn-defense-table [<New table : List>]
@knight-defense-table [<New table : List>]
@bishop-defense-table [<New table : List>]
@rook-defense-table [<New table : List>]
@queen-defense-table [<New table : List>]
@king-defense-table [<New table : List>]
Example
(define my-engine (gen-engine))
(display (my-engine '@pawn-defense-table (list 1 2 3 4 5 6 7)))
;; Output
;; > (0 10 0 0 0 0 0)
(display (my-engine '@pawn-defense-table))
;; Output
;; > (0 2 3 4 5 6 7)
Weights
Usage : Run (help "sayuri weight system")
@weight-pawn-defense
@weight-knight-defense
@weight-bishop-defense
@weight-rook-defense
@weight-queen-defense
@weight-king-defense
Customizing Evaluation Function - Pawn Shield
If King on f1(f8) f2(f7) g1(g8) g2(g7) h1(h8) h2(h7),
then Pawn Shield is pawns on f g h files.
If King on a1(a8) a2(a7) b1(b8) b2(b7) c1(c8) c2(c7),
then Pawn Shield is pawns on a b c files.
score = weight * value_table[square]
@pawn-shield-table [<New table : List>]
- Returns Piece Square Table for Pawn Shield as List composed of 64 numbers.
- If you specify
<New table>
, this parameter is updated.
Example
(define my-engine (gen-engine))
(define table
(list 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64))
(display (my-engine '@pawn-shield-table table))
;; Output
;; > (0 0 0 0 0 0 0 0
;; > 30 30 30 30 30 30 30 30
;; > 0 0 0 0 0 0 0 0
;; > -30 -30 -30 -30 -30 -30 -30 -30
;; > -60 -60 -60 -60 -60 -60 -60 -60
;; > -90 -90 -90 -90 -90 -90 -90 -90
;; > -60 -60 -60 -60 -60 -60 -60 -60
;; > -30 -30 -30 -30 -30 -30 -30 -30)
(display (my-engine '@pawn-shield-table))
;; Output
;; > (1 2 3 4 5 6 7 8
;; > 9 10 11 12 13 14 15 16
;; > 17 18 19 20 21 22 23 24
;; > 25 26 27 28 29 30 31 32
;; > 33 34 35 36 37 38 39 40
;; > 41 42 43 44 45 46 47 48
;; > 49 50 51 52 53 54 55 56
;; > 57 58 59 60 61 62 63 64)
Weights
Usage : Run (help "sayuri weight system")
@weight-pawn-shield
Customizing Evaluation Function - Mobility
About Sayuri's weight system : Run (help "sayuri weight system")
score = weight * num_of_squares_that_piece_can_move_to
@weight-pawn-mobility [<New weight : List>]
@weight-knight-mobility [<New weight : List>]
@weight-bishop-mobility [<New weight : List>]
@weight-rook-mobility [<New weight : List>]
@weight-queen-mobility [<New weight : List>]
@weight-king-mobility [<New weight : List>]
Customizing Evaluation Function - Controlling Center
About Sayuri's weight system : Run (help "sayuri weight system")
Center square are c3 c4 c5 c6 d3 d4 d5 d6 e3 e4 e5 e6 f3 f4 f5 f6.
score = weight * num_of_center_square_that_piece_attacks
@weight-pawn-center-control [<New weight : List>]
@weight-knight-center-control [<New weight : List>]
@weight-bishop-center-control [<New weight : List>]
@weight-rook-center-control [<New weight : List>]
@weight-queen-center-control [<New weight : List>]
@weight-king-center-control [<New weight : List>]
Customizing Evaluation Function - Controlling Sweet Center
About Sayuri's weight system : Run (help "sayuri weight system")
Sweet Center square are d3 d4 d5 d6 e3 e4 e5 e6.
score = weight * num_of_sweet_center_square_that_piece_attacks
@weight-pawn-sweet-center-control [<New weight : List>]
@weight-knight-sweet-center-control [<New weight : List>]
@weight-bishop-sweet-center-control [<New weight : List>]
@weight-rook-sweet-center-control [<New weight : List>]
@weight-queen-sweet-center-control [<New weight : List>]
@weight-king-sweet-center-control [<New weight : List>]
Customizing Evaluation Function - Development
About Sayuri's weight system : Run (help "sayuri weight system")
score = weight * num_of_minor_pieces_on_starting_position
@weight-pawn-development [<New weight : List>]
@weight-knight-development [<New weight : List>]
@weight-bishop-development [<New weight : List>]
@weight-rook-development [<New weight : List>]
@weight-queen-development [<New weight : List>]
@weight-king-development [<New weight : List>]
Customizing Evaluation Function - Attack around Enemy King
About Sayuri's weight system : Run (help "sayuri weight system")
score = weight * num_of_squares_around_enemy_king_attacked_by_pieces.
@weight-pawn-attack-around-king [<New weight : List>]
@weight-knight-attack-around-king [<New weight : List>]
@weight-bishop-attack-around-king [<New weight : List>]
@weight-rook-attack-around-king [<New weight : List>]
@weight-queen-attack-around-king [<New weight : List>]
@weight-king-attack-around-king [<New weight : List>]
Customizing Evaluation Function - Pawn Structure
About Sayuri's weight system : Run (help "sayuri weight system")
@weight-pass-pawn [<New weight : List>]
score = weight * num_of_pass_pawns
@weight-protected-pass-pawn [<New weight : List>]
score = weight * num_of_protected_pass_pawns
@weight-double-pawn [<New weight : List>]
score = weight * num_of_doubled_pawns
@weight-iso-pawn [<New weight : List>]
score = weight * num_of_isorated_pawns
Customizing Evaluation Function - Piece
About Sayuri's weight system : Run (help "sayuri weight system")
@weight-bishop-pair [<New weight : List>]
score = weight * if_bishop_pair_exists_then_1_else_0
-
@weight-bad-bishop [<New weight : List>]
score = weight * num_of_pawns_on_same_colored_square_as_bishop_on
-
@weight-rook-pair [<New weight : List>]
@weight-rook-semiopen-fyle [<New weight : List>]
@weight-rook-open-fyle [<New weight : List>]
@weight-early-queen-starting [<New weight : List>]
@weight-weak-square [<New weight : List>]
@weight-castling [<New weight : List>]
@weight-abandoned-castling [<New weight : List>]


Jeremy Little is a professional programmer based in Melbourne who co founded ManaTea Pty Ltd and also works as an IT Support Engineer at Kinrossfarm. he is proficient in C++ and C# but has experience with Java, JavaScript, VB, HTML/CSS, Python and SQL
Unfamiliar is a relaxing fantasy adventure game where you take the form of a cat-witch who sets out to acquire magic ingredients from storybook worlds to craft items and create enchanting costumes.
Challenges:
Working on a long term project
Releasing a game to Steam
Presenting a game at Pax
GoogleSheets Unity Intergration is a tool I created during my time at ManaTea. The tool creates
instances of objects from rows in a google sheet and pouplates the values of those objects with
from colunms in the spreadsheet
Challenges:
Working with Google Sheets API
Working with Unity's Editor time API
Creating a userfrendly front end
Creating a generic tool that could be used for other projects in the future
Divide is a turn-based strategy game set in a cyberpunk dystopia whilst moving along a hex
grid.
Challenges:
Working on a long term project
Working in a big team
Creating a turned based system
Working on environmental effects
OpenGL Engine is the last C++ project made at AIE, it uses OpenGL to draw OBJ to the Screen
Challenges:
Learning how to work with openGL
Creating a 3D envoriment with matrix maths
Working with GLSL and writing a PBR shader
Spectral Mafia Jam is the result of a 60 hour game jam conducted at AIE. it is a top down twin
stick shooter featuring complex camera movement, multi-functional character control and custom
AI.
Programmers:
Jeremy Little
Gene Collis
Artists:
Jason Hajal
William Thong
Bruno Mitrov
Designers:
Jake Brown
Jordan Dines
Challenges:
Creating a Camera Rig that is able calculate a location based on two independent players
positions
Creating a dynamic level manager
Facilitating feature rich Character Controllers
Developing a custom AI
Working in a team to create a game under time pressure
Client Updater is a library built to create a modular updating system. Client Updater collects
all files from a specific directory on the client and bundles them up into a file full of hash
values. This file is then sent to a server to compare and determine what files should be
returned and what files should be deleted
Challenges:
Learning raknet networking
Using file transfer
Learning hashing and encryption
Github
Easy Net is a unity editor plugin that is designed to make network programming easier for unity
developers. It eliminates some of the complexity when developing online games
Challenges:
Gaining proficiency with Unity networking
Designing custom editor scripts
Learning C# refections
Physics 2D is a physics simulation written in C++ using the AIE's graphics framework. All of the
collision detection for circles, squares and planes were written from scratch as were the
collision resolutions and gravity.
Challenges:
Learning collision detection, collision resolution and general physics.
Github
Echo Commander is top down 2D puzzle game developed during the 2018 Global Game Jam in Melbourne.
Participants had 48 hours to create a game from scratch based on the theme "Transmission"
"Plan out your moves to get to the terminal by passing instructions from robot to robot"
Credits:
CODE:
Jeremy Little @JezzaLittle
Aaron Smit @AaronDsmit
Art:
Emilee Ashe @emileegoulding
DESIGN:
Jarrod Sevior @Jarrod
Gene Collis @GeneCollis
AUDIO:
Jordan Dines @Slagathorr_
Matt Schenkel (Sub-Zero Sound) @hxctropious
THIRD PARTY ASSETS:
Unity Samples UI
Challenges:
Working in a team to create a game under time pressure
GGJ Page:
globalgamejam.org/2018/games/echo-command
Windows: Download
Android APK: Download
SlimeTime is a game I developed as part of my final assessment in my first year at AIE.
"Slime time is a three quarter view twin stick shooter where 2 - 4 players control a slime and
fight other players, collecting neutral slimes with the goal of being the largest slime for the
longest time."
A great deal of focus was put on the complete processes of game development. This included
different phases of development from alpha though to gold, a technical design document,
professional documentation and an industry pitch.
Credit:
Programmers
Jeremy Little
Liam Whitehouse
Josh Peake
Designer
Mark Glinatsis
Producer
Jarrod Sevior
Artists
Sarah Dyer
Mitchell Gordon
Challenges:
Developing a XInput wrapper for game controllers
Creating an all encompassing Game Manager
Making a complex camera rig to focus on Gameplay
Windows:
Download
VRunner is an endless runner that makes excellent use of virtual reality. while the game is
simple in concept, it becomes immersive in a VR environment.
Challenges:
Creating a VR camera in Unity
Creating an intuitive user interface in a VR world
Raycast collition detection
Building to android
2D Light Test is a technical demonstration created in my first year at AIE. It uses "line segment
box intersection" to calculate light paths (tris) that are then drawn to the screen.
Challenges:
Learning line segment box intersection
Sending tris to the GPU
Download
Flashlight game was my first game made in the Unity 3D engine. the project was made in 3 weeks for a schools competition called young ict. Challenges: Learning unity Learning c# Writing a first person controller Windows Download


mosquito control costs health public prevention cost invasive Asian species tiger nuisance survey impacts programs Health virus benefits {border-style cases px;} #ffffff;} []. socioeconomic Aedes associated data estimated native .[., Greece Nile West diseases risks study various WNV Zika chikungunya imported mainly private European based case experts important medical surveillance total Dengue Europe current mosquitoes problem related spread years Sciences activities annual average benefit dengue environmental high implementation management measures ;():–. Chikungunya [], controlling disease economic illness improved levels mosquito-borne reduction Italy Public albopictus approximately estimates impact order outbreak productivity px; recent {font-family According Control Disease IMS Medicine citizens’ concerning epidemic evaluate font-size integrated losses preferences regional relevant results risk studies year ;(): Athens Athens, Greece, Greece. Greek Region Table additional attributes care citizens conducted dengue, designed double; effectiveness higher household information main mosquito, national noted plan plans potential present programs, regarding review scenario stated vector working (Table (a) (b) ./journal.pntd..tTable ;:–. Biology Centre Emilia Europe. Eurosurveillance. Hellenic LIFE National Prevention Southern border-color border-width chikungunya, choice climate diseases, diseases. evaluation future health. hospitalization include increase incurred intensive measures. new pathogens period provide significant similar solid; species, species. terms transmission web {font-style {font-weight (i.e. BelliniR, Central Culex Emilia-Romagna Flaviviruses: Hospitalization Organization Reduction Results Romagna Species Specifically, Total Tropical Viral addition, age analysis area bold climatic considered courier; day directly em; establishment estimate estimation global hand, implemented implementing increased indirect interviews known lost measures, method methods million mosquito. multiplied number outbreaks overall paper pay people presented previous problem. program programs. provided pt;} range recorded reduced reported research respondents sample sciences selection specifically urban value vector-borne welfare €[,


A Little About Myself
I am a driven IT professional with industry experience and electrical background. Adept in troubleshooting a wide variety of hardware and software applications with a passion for learning new technologies and methods of implementation.
Over the years I have developed great interpersonal skills with extensive experience in communicating and coordinating with clients and peers to meet goals and expectations.
I take pride in my ability to learn concepts quickly and meet or exceed employer expectations.


28th November 2014
I have been battling with CSS all week - gradually uncovering more and more about the rules of specificity and inheritance. So in the spirit of discovery...
1. Margins really ARE different to Borders & Padding:
The CSS box model is well known - essentially every element can be represented by a box. If we take a simple piece of text in its content box, we can then style it by adding some space around the text, we can then add a border around it and then add a margin around that.
One key thing to note is that margins are collapsible - padding and borders are not. When two elements are styled side by side they will be separated by the amount of both their padding ad both their borders BUT only the greater of both their margins. In this way we can ensure that the space between adjoining elements is equal to the margin we set. This makes intuitive sense if we think of old school essays where we want 1.5 spacing on our essays. Effectively each line needs a margin (spacing) of 1.5xlines. But if we add the 1.5x margin of the top line to the 1.5x margin of the second line we would end up with a 3x spacing - double what we wanted. So we collapse the margins - ultimately both lines want to achieve a 1.5x margin.
2. IDs beat classes, but some classes beat other classes too:
Classes and ID's are used to select specific html elements. They are very similar - both provide a logical shorthand to select our elements in CSS. However, while we can have as many elements of a certain class type as we want we can only have one element of a certain id type. Thus, Classes are good for commonly recurring elements such as buttons. ID's are good for major structural elements like headers or other unique elements like navbars.
Confusingly, an element can have both classes and an id specified, so it is necessary to understand which style will be applied. When the two conflict the ID will win as it has greater specificity and CSS prioritises it. In the event that two classes are applied to the same element and they conflict, then the first listed class (in the html assignment) will win.


Forgot your password? No problem, enter your email below and I'll email you a password reset link. If you've forgotten your email, too, you can contact us at {{config.supportEmail}} and I can help you out.


Bylaws
Completed
Most important legal document of any organization, whether it is a corporation,association, or partnership.
SIGNERS
Sanjay Nediyara
<EMAIL_ADDRESS>Signed
Sandeep A S
<EMAIL_ADDRESS>Signed
DOWNLOAD BYLAWS


The xsl:for-each
element causes iteration over the nodes selected by a node-set expression.
It can be used as an alternative to xsl:apply-templates
where the child nodes of the
current node are known in advance. There is a mandatory attribute, select
, which defines
the nodes over which the statement will iterate. The XSLT statements subordinate to the xsl:for-each
element
are applied to each source node seleced by the node-set expression in turn.
The full syntax of node-set expressions is given in XPath Expression Syntax
The xsl:for-each
element may have one or more xsl:sort
child elements to define the order of
sorting. The sort keys are specified in major-to-minor order.
The expression used for sorting can be any string expressions. The following are particularly useful:
element-name, e.g. TITLE: sorts on the value of a child element
attribute-name, e.g. @CODE: sorts on the value of an attribute
".": sorts on the character content of the element
"qname(.)": sorts on the name of the element
Example 1:
<xsl:template match="BOOKLIST">

<xsl:for-each select="BOOK">

<xsl:value-of select="TITLE"/>
<xsl:value-of select="AUTHOR"/>
<xsl:value-of select="ISBN"/>

</xsl:for-each>

</xsl:template>
Example 2: sorting with xsl:for-each. This example also shows a template for a BOOKLIST element which processes all the child BOOK elements in order of their child AUTHOR elements.
<xsl:template match="BOOKLIST">

<xsl:for-each select="BOOK">
<xsl:sort select="AUTHOR"/>

AUTHOR: <xsl:value-of select="AUTHOR"/>

TITLE: <xsl:value-of select="TITLE"/>

</xsl:for-each>

</xsl:template>


| Trees | Indices | Help |
|
|---|
|
|
object --+ | DynamicSolver
Defines a solver for dynamic simulation.
The adaptive step size methods start with minimal step size. It is of interest to increase minimum step size as it speeds up the calculations. Generally, tolerance must be increased as well, or the integration will fail.
Based on rundyn.m from MatDyn by Stijn Cole, developed at Katholieke Universiteit Leuven. See http://www.esat.kuleuven.be/electa/teaching/ matdyn/ for more information.
|
|||
|
|||
| dict |
|
||
|
Inherited from |
|
|||
|
dyn_case Dynamic case. |
|||
|
method Integration method. |
|||
|
tol Specify the tolerance of the error. |
|||
|
minstep Sets the minimum step size. |
|||
|
maxstep Sets the maximal step size. |
|||
|
verbose Print progress output? |
|||
|
plot Draw plot? |
|
|||
|
Inherited from |
|
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
|
Runs dynamic simulation.
|
|
tolSpecify the tolerance of the error. This argument is only used for the Runge-Kutta Fehlberg and Higham and Hall methods. |
minstepSets the minimum step size. Only used by the adaptive step size algorithms: Runge-Kutta Fehlberg and Higham and Hall methods. |
maxstepSets the maximal step size. Only used by the adaptive step size algorithms: Runge-Kutta Fehlberg and Higham and Hall methods. |
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Jun 19 18:23:03 2010 | http://epydoc.sourceforge.net |


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object android.support.v4.view.AccessibilityDelegateCompat
public class AccessibilityDelegateCompat
Helper for accessing View.AccessibilityDelegate
introduced after
API level 4 in a backwards compatible fashion.
| Constructor Summary | |
|---|---|
AccessibilityDelegateCompat()
Creates a new instance. |
| Method Summary | |
|---|---|
boolean |
dispatchPopulateAccessibilityEvent(View host,
AccessibilityEvent event)
Dispatches an AccessibilityEvent to the host View first and then
to its children for adding their text content to the event. |
AccessibilityNodeProviderCompat |
getAccessibilityNodeProvider(View host)
Gets the provider for managing a virtual view hierarchy rooted at this View and reported to android.accessibilityservice.AccessibilityService s
that explore the window content. |
void |
onInitializeAccessibilityEvent(View host,
AccessibilityEvent event)
Initializes an AccessibilityEvent with information about the
the host View which is the event source. |
void |
onInitializeAccessibilityNodeInfo(View host,
AccessibilityNodeInfoCompat info)
Initializes an AccessibilityNodeInfoCompat with information about the host view. |
void |
onPopulateAccessibilityEvent(View host,
AccessibilityEvent event)
Gives a chance to the host View to populate the accessibility event with its text content. |
boolean |
onRequestSendAccessibilityEvent(ViewGroup host,
View child,
AccessibilityEvent event)
Called when a child of the host View has requested sending an AccessibilityEvent and gives an opportunity to the parent (the host)
to augment the event. |
boolean |
performAccessibilityAction(View host,
int action,
Bundle args)
Performs the specified accessibility action on the view. |
void |
sendAccessibilityEvent(View host,
int eventType)
Sends an accessibility event of the given type. |
void |
sendAccessibilityEventUnchecked(View host,
AccessibilityEvent event)
Sends an accessibility event. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public AccessibilityDelegateCompat()
| Method Detail |
|---|
public void sendAccessibilityEvent(View host, int eventType)
The default implementation behaves as View#sendAccessibilityEvent(int)
for the case of no accessibility delegate
been set.
host
- The View hosting the delegate.eventType
- The type of the event to send.View#sendAccessibilityEvent(int)
public void sendAccessibilityEventUnchecked(View host, AccessibilityEvent event)
sendAccessibilityEvent(View, int)
but takes as an argument an
empty AccessibilityEvent
and does not perform a check whether
accessibility is enabled.
The default implementation behaves as
View#sendAccessibilityEventUnchecked(AccessibilityEvent)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.event
- The event to send.View#sendAccessibilityEventUnchecked(AccessibilityEvent)
public boolean dispatchPopulateAccessibilityEvent(View host, AccessibilityEvent event)
AccessibilityEvent
to the host View
first and then
to its children for adding their text content to the event.
The default implementation behaves as
View#dispatchPopulateAccessibilityEvent(AccessibilityEvent)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.event
- The event.
View#dispatchPopulateAccessibilityEvent(AccessibilityEvent)
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event)
The default implementation behaves as
ViewCompat#onPopulateAccessibilityEvent(AccessibilityEvent)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.event
- The accessibility event which to populate.ViewCompat#onPopulateAccessibilityEvent(View, AccessibilityEvent)
public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event)
AccessibilityEvent
with information about the
the host View which is the event source.
The default implementation behaves as
ViewCompat#onInitalizeAccessibilityEvent(View v, AccessibilityEvent event)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.event
- The event to initialize.ViewCompat#onInitializeAccessibilityEvent(View, AccessibilityEvent)
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info)
AccessibilityNodeInfoCompat
with information about the host view.
The default implementation behaves as
ViewCompat#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfoCompat)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.info
- The instance to initialize.ViewCompat#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfoCompat)
public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child, AccessibilityEvent event)
AccessibilityEvent
and gives an opportunity to the parent (the host)
to augment the event.
The default implementation behaves as
ViewGroupCompat#onRequestSendAccessibilityEvent(ViewGroup, View, AccessibilityEvent)
for
the case of no accessibility delegate been set.
host
- The View hosting the delegate.child
- The child which requests sending the event.event
- The event to be sent.
ViewGroupCompat#onRequestSendAccessibilityEvent(ViewGroup, View, AccessibilityEvent)
public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View host)
android.accessibilityservice.AccessibilityService
s
that explore the window content.
The default implementation behaves as
ViewCompat#getAccessibilityNodeProvider(View)
for the case of no accessibility delegate been set.
AccessibilityNodeProviderCompat
public boolean performAccessibilityAction(View host, int action, Bundle args)
AccessibilityNodeInfoCompat
.
The default implementation behaves as
View#performAccessibilityAction(int, Bundle)
for the case of
no accessibility delegate been set.
action
- The action to perform.
View#performAccessibilityAction(int, Bundle)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


You can also use user ID: my profile page is https://online-go.com/user/view/197819/Chinitsu, meaning my user ID is 197819.


Panoptes, An assist glass for blind people which is kind of normal glass that people wear
today.
But one day this can help people with this disability to move freely like normal people.
It basically a glass consisting of a couple of cameras, with a microprocessor and a
earphone.
The basic functionality it could provide would be of giving the audio output to people about
the obstacles in front of them, with the character as well as object recognition and also a
navigator support.
In a scenario of a blind person going for having coffee to a nearby restaurant, this glass will guide them to the place with directions and obstacle avoidance, find them an empty spot in the restaurant, would read the menu for them and might also pay for the bill.
The application of this glass is limitless.


Add an Aggregate for Project {{ project.name }}
{% if aggregate_list.count %}
{% with "project/agg_add_actions.html" as action_template %}
{% include "aggregate/list_table.html" %}
{% endwith %}
{% else %}
Either this project has all aggregates or there are no aggregates
installed at this Expedient. Sorry, no aggregates to add.
{% endif %}