How to come up with an idea for your research?
iDEC has designed different tracks to accept various types of research.
You may get some inspiration here!
Your research project can participate in the following Tracks:
The first class usually refers to the directed evolution in a narrow and more conventional sense where the targets are typically individual biomacromolecules: protein- and nucleic acid-binders, or their enzyme variants. Any directed evolution project with molecules as an object meets the definition of this track.
Including projects dedicated to developing new technologies related to molecular directed evolution, such as screening assays or variant generation.
There are no requirements for novel evolutionary output, but iDEC requires the original design of molecular directed evolution technology or optimization of existing technology.
Inlcuding projects dedicated to applying directed evolution technology to valuable target molecules. The goal of the project should be obtaining directed evolutionary output with scientific or industrial value.

The second class is for the directed evolutionary strategies aimed at optimization of metabolic pathways and/or regulatory synthetic circuits.
Simply put, this type of project would involve construction, genetic diversification and screening, of the most robust, orthogonal to the host physiology and efficient in the production of desired trait molecules. This type of a project may not necessarily involve genetic changes of any component of genetic circuit but it should be directed to improve their relative ratios, order and kinetics of their expression, feedback control mechanisms and other types of their co-regulation.
Including projects dedicated to developing new technologies related to pathway directed evolution.
There are no requirements for novel evolutionary output, but iDEC requires the original design of pathway directed evolution technology or optimization of existing technology.
Including projects dedicated to applying directed evolution technology to valuable target pathways. The goal of the project should be obtaining directed evolutionary output with scientific or industrial value.

The last is kind of projects would relate to the umbrella term of ‘directed evolution of the genome’. The works in this section may include development of novel strategies in the field of adaptive laboratory evolution, new means in the introduction of programmed targeted or random changes on a genomic scale, construction of effective selection screens for genomes and organisms with a desired trait. As opposed to the ‘pathway directed evolution’, a defined set of specific genes would not be typically targeted unless it would favor further planned changes in the genome of a given organism (e.g. SCRaMbLE tool for changes in the yeast genome).
Including projects dedicated to developing new technologies related to genome directed evolution.
There are no requirements for novel evolutionary output, but iDEC requires the original design of directed evolution technology or existing technology optimization.
Including projects dedicated to applying directed evolution technology to valuable target chassis. The goal of the project should be obtaining directed evolutionary output with scientific or industrial value.

For this track, the Scientific Advisory Group and the Industry Advisory Group will propose a challenge. Participating teams can employ different platforms to conduct directed evolution research on designated scientific or industrial goals. The challenging advisory groups will evaluate the results according to the corresponding standards set by them.
Note:
Judges Handbook: Coming soon
The general awards are mainly to encourage the participating teams to participate in all aspects of iDEC fully. Actively completing all aspects of iDEC will result in higher scores.
Gold Award (For Track I to III)
The team that ranks in the top 10% of the total score will receive a Gold award.
Silver Award (For Track I to III)
The team that ranks in the top 20%-10% of the total score will receive a Silver award.
Bronze Award (For Track I to III)
The team that ranks in the top 40%-20% of the total score will receive a Bronze award.
Scientific Contribution Award (For Track I to III)
For all the other qualified teams. The essential qualification condition is that the four display items are complete and conform to academic standards.
The professional judges will nominate the candidates for this award and select the final winners after discussion and voting. The definition of this award is to reward innovative, proven, and feasible directed evolution technology.
The nomination criteria are:
The professional judges will nominate the candidates for this award and select the final winners after discussion and voting.
The definition of this award is to reward the best-directed evolution achievement.
The nomination conditions are:
The judges will consider the above conditions together to vote on the nominated project, and the team with the most votes wins.
(1) Best Hardware
To reward the most original hardware design. The hardware should improve the convenience of directed evolution through innovative design, including improving efficiency, simplifying operations, reducing costs, etc.
(2) Best Software
To reward the most original software design. The software should improve the convenience of directed evolution through innovative design, including improving efficiency, simplifying operations, reducing costs, etc.
(3) Best Algorithm
To reward the most original algorithm, which has universal significance for improving the predictability of directed evolution.
(4) Best target molecule
To reward the most exciting target molecule selection.
(5) The most potential tool
To reward the most novel directed evolution tool, which is currently proved to have no advantages but has the potential to be further optimized.
(6) Best community building (Executive Committee Award)
To reward the team that has made the most significant contributions to the iDCE community building.
(7) Best Presentation
To reward for presentation with precise logic, attractive and impressive content.
(8) Best Wiki
The iDEC wiki will focus on introducing science to the public. This award rewards the most creative scientific promotion content.
(9) Funniest Evolution
To reward the funniest research topic.
(10) Industry advisory group award
To reward the project with the most industrial application value.
Besides the above awards,iDEC also offers special awards. Special awards will be given to teams that make outstanding accomplishments in a particular field.
Each special award can be given to more than one team in iDEC.
Mysterious Award 1
A reporter system is commonly used in biology research to quantify biological activity, especially in genetic engineering. Designing and choosing an appropriate reporter system can facilitate the screening and identification process in directed evolution. Inspired by the 2008 Nobel prize in chemistry, iDEC presents an award to teams who develop or optimize a reporter system and use it in their iDEC projects.
Mysterious Award 2
The discovery of Taq polymerase from Thermus aquaticus brought a revolutionary method to the field of molecular biology. In directed evolution, error-prone PCR is typical to create mutations in target genes for constructing the library, which shows the importance of diversification tools. Thus, iDEC presents an award to teams that optimize or establish novel methods for genetic diversification in their research.
Mysterious Award 3
Screening and selecting the mutants with desired phenotypes from the mutated library is crucial in directed evolution. Thus, iDEC presents an award to teams who establish or optimize screening assays in their projects.


The result Object
The result object contains the phrase matched by the pattern in the input string along with other information. It has the location in the string where the match was found and parsing information. It also has the location and phrase matched for all matches to all pattern syntax rules.
Syntax
var exp = new ApgExp(pattern[, flags]); var result = exp.exec(input);
Properties
| [0] | string/array | the matched phrase |
| input | string/array | a copy of the input string |
| index | integer | the index or offset from the beginning of the input string to the matched phrase |
| length | integer | the length of the matched phrase |
| treeDepth | integer | the actual maximum depth reached in the parse tree by the parser during the match |
| nodeHits | integer | the actual number of unit steps required by the parser to make the match |
| rules | object | An object with phrase information for each of the named rules defined in the pattern syntax. The first rule in the pattern defines the entire phrase to be matched. The property, result[0], is just an alias for the first-named phrase. |
| rules[name] | null if no match to rule "name" was found | |
| rules[name] | an array of phrase objects, one item for each phrase | |
| rules[name][0] | {phrase: string/array, index: integer} |
If Unicode mode is true, i.e. flags = "u", phrase is an array of integer character codes, otherwise it is a string.
Methods
- toText()
- displays the result object in text format, suitable for output with console.log()
- toHtml()
- displays the result object in HTML format, suitable for display on a web page
- toHtmlPage()
- displays the result object in HTML format as a complete, stand-alone web page
Example 1
The following set up is used for all three examples. Example 1 is figurative. It illustrates the format of the rules object.
var pattern, str, exp, result; pattern = 'word = 1*(alpha / num)\n'; pattern += 'alpha = %d65-90 / %d97-122\n'; pattern += 'num = %d48-57\n'; str = "ab12"; exp = new ApgExp(pattern); result = exp.exec(str); /* result */
| item | value |
|---|---|
| [0] | ab12 |
| input | ab12 |
| index | 0 |
| length | 4 |
| tree depth | 6 |
| node hits | 26 |
| rules["word"][0] | {phrase: "ab12", index: 0} |
| rules["alpha"][0] | {phrase: "a", index: 0} |
| rules["alpha"][1] | {phrase: "b", index: 1} |
| rules["num"][0] | {phrase: "1", index: 2} |
| rules["num"][1] | {phrase: "2", index: 3} |
Example 2
Example 2 shows the same result object as example 1, but shows how it is actually displayed with the toText() function.
console.log(result.toText()); /* result */ result: [0]: ab12 input: ab12 index: 0 length: 4 tree depth: 7 node hits: 26 rules: word : 0: ab12 : alpha : 0: a : alpha : 1: b : num : 2: 1 : num : 3: 2
Example 3
Example 3 shows the same result object as example 1, but shows how it is actually displayed with the toHtml() function. The toHtmlPage() function would give the same output but wrapped in a complete HTML page header and footer.
$("#this-page").html(result.toHtml()); /* result */
| item | value | phrase |
|---|---|---|
| [0] | 0 | ab12 |
| input | 0 | ab12 |
| index | 0 | |
| length | 4 | |
| tree depth | 7 | |
| node hits | 26 | |
| rules | index | phrase |
| word | 0 | ab12 |
| alpha | 0 | a |
| alpha | 1 | b |
| num | 2 | 1 |
| num | 3 | 2 |


{% extends "_base.html" %} {% load static %} {% block title %} Day 1 | eSplash {% endblock %} {% block banner %} {#
Remaining: {{ remaining_water }} litre
(Day: {{ day.number }} of 7)
What do you plan to do today?
{{ task.title }}?
{{ task.water_qty }} ltr
YES NO
DONE FOR TODAY
Pending Tasks Today


The Site Name
The Temperature for Monday was
The Temperature for Tuesday
The Temperature for Wedenesday was
The Temperature for Thursday was
The Temperature for Friday was
The Temperature for Saturday was
The Temperature for Sunday was


BATMAN FOREVER A film review by Burton and Rachel Copyright 1995 Burton and Rachel
Bottom line: 2 - 2.5 out of 4
The special effects were okay, but as with past Batman movies, it was filmed without sufficient light for them to be appreciated (or for much else to be appreciated at that!). Most of them were actually quite poor, the best one is the one in the Adverts--helicopter through the explosion. There was tremendous emphasis on the sound effects during the fight scenes, it was almost like the original TV version with the POW, and BAM, words written on the screen--they were *that* noticeable. The movie was fairly long (two or so hours) and some parts were VERY slow (I even looked at my watch once!).
Val Kilmer just didn't work for me as the main man. He didn't have (or show) enough inner turmoil, the conflict between Bruce and Bat was really lost. Although my soon-to-be wife like Val better than Michael Keaton. She thought Keaton spent too much time *morbidly* pondering the turmoil and hence Val was better (and cuter--go figure).
Jim Carrey was *superb* as the Riddler, didn't overplay as much as I was expecting which was refreshing.
Tommy Lee Jones was well-cast as Two-Face, but also seemed to lose the split personality this character traditionally had.
Robin (Chris O'Donnell) was--well--probably unnecessary. He didn't do a bad job, I just think the movie wasn't made better with the character, and wouldn't be worse without it. My fiancee liked him and thought the character specifically and significantly contributed to the plot--and yes, also thinks he's hot.
Nicole Kidman, the blond love interest, was very good. She had guts, personality, good lipstick and good hair--this according to my blond love interest. I found her character tawdry and much too predictable. Her lines were stilted--not the delivery--the actual lines. And yes, she is hot.
I think it will do well in term of $$, but wont be the summer SMASH everyone is expecting. But as with most movies, it is a matter of expectations going in to see it--mine were high and Im disappointed.
[My fiancee and I apologize to those easily offended by political INcorrectness :-) ]
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Welcome to Flack. You can get in by creating a new display name
or using an existing display name. When inside, you'll be able to
create new channels or join existing channels
Create a brand-new site for you and your group
to socialize
Sign in and find you teams work space.
© 2020-2021


VIM Redux - Start thinking like a vimmer
I got introduced to VIM when I started my graduate school. My first job had me use Linux as our primary machine and I continued to use VIM for Python development.
Once I moved to my new (current) job, we all use Mac as our main system and I decided to try out some of the popular GUI editors specifically TextMate and Sublime Text 2.
After investing considerable amount of time between the two to learn, understand use it the way they visioned - I found something was missing. Not sure which part I didn’t like about the “GUI” editors but even with features like project management, grepping within multiple files etc. working out of box, editing was not as fun.
So I looked around to found inspiration to use VIM again. Luckily, as with everything else Google never fails and here are series of articles that you should really read upon whether you are beginner or an experienced VIM user. I believe they are able to give a very new understanding to the problem of editing with VIM.
- Your problem with VIM is that you don’t grok vi
- Why, oh WHY, do those #?@! nutheads use vi?
- The Vi/Ex Editor
I hope these links inspire you to look into VIM again or just improve your knowledge.


{% extends "webpage/base.html" %} {% load staticfiles %} {% load webpage_extras %} {% block title %} Imprint {% endblock %} {% block content %}
Last updated: Dec 15th, 2017
CBAB is intended to be an open share database free to use for everybody interested in cremation burials dating to the European Bronze Age.
You can browse the data for basic information on burial sites (location, number of burials, literature, scientists in charge of the material, etc.), specific burials (eg. Grave 15 in Franzhausen-Kokoron, Austria) and create maps for e.g. talks or papers.
Furthermore you have the opportunity to make enquiries about certain data e.g. burial
features like grave types combined with anthropological data or grave goods. In order to use
this service you need an account that gives you full access to the CBAB-Database.
With
this account you can not only customise your enquiries but also create burial sites and
burials in the database yourself.
Because more data available in CBAB will give you and others more research options, better enquiry results, more accurate mappings and bring your own work in front of a bigger audience.
If only part of a cemetery was excavated, you can create a new Burial Site and enter the excavated cremations (see How to create a Burial Site?)
The CBAB-Database asks for very detailed information on Bronze Age cremation burials in order to provide researchers with detailed information on this specific burial form. Therefore CBAB demands excavated burials to maximize the knowledge on cremations.
Go to https://cbab.acdh.oeaw.ac.at and log in with your personal credentials on the right side of the top bar.
Click Curate and Browse the Data and choose Locations.
Check if the burial site you want to create is in or close to any of the mentioned locations. Locations are not equal to archaeological sites! A location is a geographical place (e. g. a village or town) which can include several archaeological sites.
If there is no location for the burial site you wanted to enter, create first a new place (location) with add another Place.
Enter the name of the place (location) and start typing the country's name into Province. The drop down list has an autocomplete function and you should be able to find the province in seconds SAVE.
After having saved the new place (location) click Curate and Browse the Data and choose Burial Site. Press the button Create New Site.
Start filling out the form by using the official name of the burial site and (if existing) its alternative name (eg. Bügeleisenschnitt, Walter 81, Ugly Tree, etc.).
Start filling out every box as exactly as possible with the help of the
drop down lists.
Please notice: all drop down lists come with an autocomplete
function and you have to choose one option. If you find a specific term
missing in a list please contact the database-team.
Latitude and Longitude are both mandatory for creating a burial site.
If the literature or excavation documentation do not provide you with Latitude
and Longitude, please use google maps to complement them.
Disturbance and Absolute Dating need to be filled out, if you have anything to report. If you have C14-dates please quote the sample numbers (eg. KIA 4382).
Dating is the only drop down list, where you can choose several terms. So if the urn field contains Bz D, Ha A and Ha B burials you choose these three options.
Location of archaeological material and contact information are not mandatory. If you don’t have the information who is in charge of the material or where it is kept, please mention this in the box.
Reference is a drop down as well, which functions with the literature in the Zotero-database. Just remember, if you like to add references, you first have to be put in the Zotero-databse by the CBAB-Team (send us an email).
By Save you will come to the overview of the Burial Site that you just created. If you want to change any of Burial Site properties (Disturbance, Dating, Location of archaeological material etc.) please click the button Edit Burial Site and save again the changes that you made.
Click Curate and Browse the Data and choose Burial Site. This will bring you to All Burial Sites with the list of all Burial Sites in the database (on the right of the screen). Click on the Name or cbab-id and you will see a general page with all the information regarding this specific burial site, including the list of all entered Burials.
Or: You can enter the name of the specific Burial Site in the box Burial Site name (first box on the top left) and click Search.
If you look for burial sites with special properties:
You can choose every property concerning burial sites (Location, Topography etc.) in boxes by filtering in the left of the page.
Pick the things you are interested in (e. g. hillside in Location, Ha A in Dating and <100m in Distance to next settlement) and click Search.
This will give you a list of all the burial sites featuring the properties you picked. From there you can again go to the burial site by clicking on the Name or cbab-id. This will bring you to the general information page on this burial site.
Definition:
A Burial group is number of graves being connected to each other by
either some architectonic feature (e.g. a grave hill or fencing) or just a close spatial
arrangement and being named by the excavation team “burial group”.
There are two ways to create a Burial group.
At the top of the Burial Site general page you find Create Objects in this Burial Site, where you have two buttons Burial Group and Burial. Click Burial Group and follow C).
Fill out all of the boxes thoroughly and click Save.
Caution: If the Burial group is not separated from the rest of the
graveyard by an architectonic feature (e.g. grave hill, rock chamber or
enclosure) please describe it in the box Name.
By saving you will come to the general page on Burial Group/Burial Site. From there you can create burials by clicking the button Burial in Create Objects in this Burial Site on top of the page.
Click Curate and Browse the Data and choose Burial group. This will bring you to All Burial Groups with the list of all Burial Groups in the database (on the right of the screen). Click on the ID or Burial Group Number and you will see a general page with all the information regarding this specific burial group, including the list of all associated Burials.
If you look for burial groups with special properties:
You can choose every property concerning burial groups by filtering in boxes on the left of the page (Burial group type, Material etc.). Pick the things you are interested in (e.g. Burial site in Burial group type and soil/stone in Material) and click Search.
This will give you a list of all the burial groups featuring the properties you picked. From there you can go to the burial groups by clicking on the ID or Burial Group Number. This will again bring you to the general information page on this burial group.
There are two ways to create a Burial.
Clicking on the Name (e. g.
Athens, Franzhausen-Kokoron) brings you to the general page on the Burial
site you chose.
At the top of the general page you find Create
Objects in this Burial Site, where you can click the button Burial.
Both ways (A or B) bring you to the page Create/Edit Burial.
Try to fill out as many boxes as it is possible. Not all boxes are mandatory (e.g. Burial group is not mandatory, since not every grave belongs to one Burial group).
If there is a drop down list choose one option, except from the box Filling objects where you can put multiple terms.
There are several text boxes which allow you to express certain
properties of the grave more in detail. If the grave does not feature them just leave the
text boxes empty.
This concerns the following boxes:
Click Save and you will be directed to the general overview on the Burial.
Click Curate and Browse the Data and choose Burials. This will bring you to All Burials with the list of all Burials in the database (on the right of the screen). Clicking on the one specific Burial from the list brings you general page with all the information on the burial.
If you look for burials with special properties:
First go to Curate and Browse the Data and choose Burials.
This brings
you again to the All Burials page. You can choose every property concerning
burials in boxes by filtering on the left of the page.
Pick the things you are interested in (e.g. urn burial in Burial type and burial mound made of soil in Construction) and click Search.
This gives you a list of all the burials featuring the properties you picked. From there you can go to the different burials just by clicking on specific burial that you are interested in, which will bring you to the general information page on this burial.
There are two different ways to create an Urn.
There is the category Create objects in this Burial where you choose the button Urn. Continue with C).
First click Curate and Browse the Data and choose Urns. This will bring you
to the All Urns with the list of all Urns in the database (on the right of the
screen).
You can find urns and check their properties (Urn type, Objects in the
urn) by clicking on the ID or Urn Inventory Number. This brings you to a
general page with all the information on the urn vessel. If you click on one of the
Burials from the list on the right you will get all general information
regarding this specific burial.
If you look for urns with special properties:
First go to Curate and Browse the Data and choose Urns. This brings you
again to the All Urns. You can choose every property concerning urns in boxes by
filtering in the left of the page.
Pick the things you are interested in (e.g. vessel with a cone shaped neck in Basic shape) or write the terms you are interested in in the text boxes (e.g. Variation contains). Click Search. This gives you a list of all the urns featuring the properties you picked. From there you can go to the specific Urn by clicking ID or Urn Inventory Number. Clicking on the name of the Burial (under Burial) will bring you to the general information page on this burial.
There are two different ways to create an Urn cover.
Then go to the general page on this specific urn burial. In the category Create objects in this Burial you choose the button Urn Cover. Continue with C).
This will bring you to the sheet Create/Edit Urn Cover. The first field is
Urn. Here you must choose a specific Urn from the drop down list that
correlates with the Urn cover you are entering!
After that you can proceed with the Urn cover properties (Basic shape, Upside Down,
Fragment, Inventory number). SAVE
First click Curate and Browse the Data and choose Urn cover. This will
bring you to All Urn Covers with the list of all Urn covers in the database (on
the right of the screen).
You can find urn covers and check their properties by clicking on the ID or Urn
cover Inventory Number. This brings you to a page with all the information on
the specific urn cover that. If you click on one of the Burials from the list on
the right you will get all general information regarding this specific burial.
If you look for urn covers with special properties:
First go to Curate and Browse the Data and choose Urn cover. This brings
you again to the All Urn covers page. You can choose every property concerning
urn covers in boxes by filtering in the left of the page. Pick the things you are
interested in (e.g. lid in Basic shape and Yes in Upside
down). Click Search.
This gives you a list of all the urn covers featuring the properties you picked. From there you can go to the specific Urn cover by clicking ID or Urn Inventory Number. Clicking on the name of the Burial (under Burial) will bring you to the general information page on this burial.
Important to know:
You can just add one type of grave good in each
entry.
Example: You do have a grave with a knife, two vase-headed pins and an accessory vessel.
You will then have to enter grave good three times: one entry for the knife, one
entry for the two vase-headed pins and one entry for the accessory vessel.
Caution: If you have a grave with two pins both vase-headed but different variations, you will have to make two different grave good entries.
There are two different ways to create Grave Good.
Go to Curate and Browse the Data and choose Grave good. It brings you
to the page All Grave Goods, where you can use the button Create New Grave
Goods. This will bring you to sheet Create/Edit Grave Goods.
First two fields are Burial and Urn. Here you must choose a specific
Burial/Urn which correlates to the Grave good you are entering!
After that you
can proceed with the Grave Good properties (Type, Material, etc.). SAVE
The variety and number of Grave Goods can be overwhelming if you just look for something unspecific. If you want to browse the grave good data with no closer result in mind, there are two ways:
First click Curate and Browse the Data and choose Grave Goods. This will bring you to All Grave Goods with the list of all Grave Goods in the database (on the right side of the screen). You can find Grave Goods and look at their properties by clicking on ID or Type in the list. This brings you to a page with all the information on the specific Grave Good. If you click on one of the Burials from the list on the right you will get all general information regarding this specific burial.
If you look for specific grave goods or grave goods with special properties:
First go to Curate and Browse the Data and choose Grave Goods.
This brings you to the All Grave Goods page. You can choose every property
concerning burials in boxes by filtering in the left of the page.
Pick the things you are interested in (eg. urn burial in Burial type and
burial mound made of soil in Construction) and click
Search.
This gives you a list of all the grave goods featuring properties
you picked. From there you can go to the specific Grave Good by clicking ID or
Type. Clicking on the name of the Burial (under Burial) will bring you
to the general information page on this burial.
Important to know:
You can just add one deceased of the burial in each
entry.
Example: You have a grave with an adult man and an Infans 1. You will then have to make two different entries in Anthropology for each person.
There are two different ways to create an Anthropology result.
Go to Curate and Browse the Data and choose Anthropology. It brings you
to the page All Anthropology where you can use the button Create New
Anthropology. This will bring you to sheet Create/Edit Anthropology.
First two fields are Burial and Urn. Here you must choose a specific
Burial/Urn which correlates to the Anthropology you are entering!
After that you
can proceed with the Anthropology properties (Age, Gender etc.). SAVE
Weight means just the weight of the person you are entering in this moment and
not the total amount of all human remains (= Total weight of Human
Remains).
In the text box Comment you can add important details (e.g.
the inventory number mentioned in the catalogue/excavation documentation or grave
good objects being found among the cremated human remains).
First click Curate and Browse the Data and choose Anthropology. This brings you to the All Anthropology with the list of all Anthropologies in database (on the right side of the screen). By clicking on the ID you will see Description of the specific Anthropology with all properties (Age, Gender etc.). Clicking on the one of the Burials from the list Burial, you will get all general information regarding this specific burial.
If you look for specific age groups or persons with special properties:
First
go to Curate and Browse the Data and choose Anthropology. This brings you
to the All Anthropology page. You can choose every property (Age, Gender etc.)
concerning Anthropology in boxes.
Pick the things you are interested in (eg.
Infans 1 (0-6) in Age and I (200-300 Celsius) in Temperature).
Click Search.
This gives you a list of all the burials featuring the properties you picked. From there you can go to the specific Anthropology by clicking ID. Clicking on the name of the Burial (under Burial) will bring you to the general information page on this burial.
There are two different ways to create an Organic Grave Good.
On the general page of the burial there is the category Create objects in this Burial where you choose the button Organic Grave Goods (continue with C). Since this is the easier way, we highly recommend using this method! By following it you cannot mix up the burials.
Go to Curate and Browse the Data and choose Organic Grave
Good.
It brings you to the page All Organic Grave Goods, where
you can use the button Create New Organic Grave Goods.
You will be directed to Create/Edit Organic Grave Good. First two fields
are Burial and Urn. Here you must choose a specific Burial/Urn
which correlates to the Organic Grave Goods you are entering!
After that you
can proceed with the Organic Grave Goods properties (Food etc.).
Especially Other organic grave good text gives you space to describe it in detail, while the text box Comment is for adding important details (e.g. the inventory number mentioned in the catalogue/excavation documentation or grave good objects/ human remains being found together with).
First click Curate and Browse the Data and choose Organic Grave
Goods.
This brings you to the All Organic Grave Goods with the list
of all Organic Grave Goods in database (on the right side of the screen). By
clicking on the ID you will see Description of the specific Organic
Grave Goods with all properties (Food etc.). Clicking on one of the
Burials from the list Burial, you will get all general information
regarding this specific burial.
If you look for specific Organic Grave Good:
First go to Curate and
Browse the Data and choose Organic Grave Goods. This brings you again
to the All Organic Grave Goods page. You can choose from just a few
properties concerning the corresponding burials in boxes by filtering in the left of
the page.
Pick the drop-down options you are interested in (eg. Yes in Age and
No in Other organic grave good).
This gives you a list of all
the burials featuring the properties you picked. From there you can go to the
specific Organic Grave Good by clicking ID. Clicking on the name of
the Burial (under Burial) will bring you to the general information page on
this burial.
There are two different ways to create an Animal Remains.
On the general page of the burial there is the category Create objects in this Burial where you choose the button Animal Remains Goods (continue with C). Since this is the easier way, we highly recommend using this method! By following it you cannot mix up the burials.
Go to Curate and Browse the Data and choose Animal Remain.
This
brings you to the page All Animal Remains, where you can use the button
Create New Animal Remains.
You will be directed to Create/Edit Animal Remains. First two fields are Burial and Urn. Here you must choose a specific Burial/Urn which correlates to the Animal Remains you are entering!
After that you can proceed with the Animal Remains properties (Age, Sex etc.).
In the text box Comment you can add important details (e.g. the inventory
number mentioned in the catalogue/excavation documentation or the body side
being reflected in the animal remains).
Caution: Age and Sex
are rarely analysed. If you do not have any information on this, just leave the
boxes empty.
Browse the database:
First click Curate and Browse the Data and choose Animal Remains.
This
brings you to the All Animal Remains with the list of all Animal Remains in
database (on the right side of the screen). By clicking on the ID you will
see Description of the specific Animal Remain with all properties
(Age, Sex etc.). Clicking on one of the Burials from the list Burial, you
will get all general information regarding this specific burial.
If you look for Animal Remains with special properties:
First go to Curate and Browse the Data and choose Animal
Remains.
This brings you to the All Animal Remains page. You can
choose the specie you are looking for and combine this with different terms
concerning the Burial, Age, Sex, Weight, Position
and Amount in boxes by filtering in the left of the page.
Pick the things
you are interested and click Search.
This gives you a list of all the
burials featuring the properties you picked. From there you can go to the specific
Animal Remain by clicking ID. Clicking on the name of the Burial
(under Burial) will bring you to the general information page on this
burial.
You can search for basically anything in the cbab-database and combine different queries. E. g., you can search for all female graves with bronze bracelets originating from burial sites located on a terrace.
For the inquiries of the database go to analyze the Data and from there to search database.
Then there will open a window where you can search for all the properties that you are interested in.
Each box on the left in the window can be opened and you can pick the properties.
You can also combine all the properties (Burial Site, Grave Good, Anthropology, etc.) you are interested in.
There is the possibility to do a multiple choice from the lists by pressing CTRL and picking several options (e.g. Female, Female uncertain, Female very uncertain).
Afterwards you can additional property (e.g. knife from the box Grave Good search options) and press Search. This will narrow down your previous choice and you will get a map and a list of urn burials containing knife.
From there you can continue as long as you like by choosing additional properties. For instance, you can filter your list of urn burials with knifes by picking anthropological information (Box Anthropology search options) or other grave goods or any other criteria form the boxes.
From your filtered list you can go to the single burials by clicking on the grave you are interested in. It will bring you to the general information page on this burial.
If you want to start a new search just click Reset Search and you can start from the beginning.


Hi! I'm Ross, a Software Engineer for Qualtrics. I have experience working across a wide range of tech stacks, using multiple languages including Python, Java, PHP, NodeJS and react. I own projects at every phase of the lifecycle, from scoping through to delivery. Prior to this I graduated from DCU with a Bsc in Computer Applications and Software Engineering, with a 4.0 GPA / 1st class honours.
Software Engineer
At Qualtrics, I scope and deliver complex, varied projects as the sole engineer, for a number of global clients such as Google, L'Oreal, HSBC and Adidas.
I work on a large scale SMS distribution product, sending 4 million weekly messages, on which I have added a 700% performance increase through batching messages and an improved queuing system.
Received internal award for developing "Survey as Code" System, allowing users to manage surveys through Git.
Designed and delivered a CCPA data privacy API
Technical Skills: Python, Java, PHP, Javascript, NodeJS, React, Terraform, Docker, AWS, Docker, MongoDB, SQL
Software Engineering Intern Summer 2017
Cellusys is a Tier 1 vendor in Signalling Firewall, Steering of Roaming and SMS Firewall in independent research, with 700 million subscribers worldwide.
At Cellusys, I worked on an SMS product in Java, Clojure and Clojurescript, where I worked on filtering between Arabic and English messages.
I also worked on front-end using functional programming language, Clojure.
Worked on AGILE team, with weekly sprints, standups, SCRUM and retrospectives.
Technical Skills: Java, Clojure / Clojurescript, Puppet, Git, AGILE
Braikout is a Machine Learning Trading Platform for Crypto and FX Currencies.
Braikout was built using python Django, and utilises Python Machine learning capabilites, Amazon's AWS for NoSQL storage, and Java for the android application portion of the project.
Technical Skills: Python, Java, JavaScript, HTML, CSS, JQuery, AWS
Securipi is a Motion Detection Security System built using a mobile application and Raspberry Pi.
Making use of python motion detection libraries, Google drive APIs, and Android push notifications.
Technical Skills: Python, Java, HTML, CSS, IOT (Raspberry Pi)
Dublin City University (DCU)
At DCU I was a Student ambassador for new students:


Electromagnetic waves interacting within media is a problem that can be roughly solved by considering two fundamental phenomena. The first is boundary conditions; namely that the E and B fields must be continuous throughout all space, including at a dielectric boundary. These conditions are summed up via: $$\mathbf{E_{i}+E_{r}} = \mathbf{E_{t}} $$
$$\mathbf{B_{i}+B_{r}} = \mathbf{B_{t}} $$
Continuity is a fundamental physical law derived from maxwell's equations, and is visually represented above.


ProQ3 is a Model Quality Assessment (MQA) program that predicts
the quality of model structures based on a single model. It
employs both the structural information derived from the
three-dimensional (3D) structure of the model to be predicted
and the evolutionary information derived from the amino acid
sequence of this model. ProQ3 is based on a combination of our
previously developed ProQ2 and two newly developed methods
ProQCenFA and ProQRosCen, where ProQCenFA uses full-atom model
and ProQRosCen uses centroid model. Our benchmark based on the
CASP11 dataset and CAMEO dataset shows that ProQ3 outperforms
the best previously developed MQA method, ProQ2. ProQ3 server
outputs results for ProQ3, ProQCenFA, ProQRosCen and ProQ2
methods.
The original ProQ2/ProQ3 were trained using Support Vector
Machines (SVM) with a linear kernel. Recently, we have
retrained these methods using the Deep Learning approach,
implemented in Python with the Keras library using the Theano
backend. This approach has significantly improved the performance
of our methods. The Deep Learning versions of ProQ2/ProQ3,
i.e. ProQ2D/ProQ3D have been implemented in both this web-server and
the stand-alone program on github.
To use ProQ2D/ProQ3D on the web-server, you need to check the
option "Using deep learning". For the stand-alone program, you
need to set the option "-deep" to "yes".
{% include "pred/egi_acknowledgement.html" %}
2. Usage
Input to the server are structure models in the PDB format.
You can input the model structures by either paste your data in the first text area
or upload a text file containing your data.
You may upload multiple models (up to 5) in one model file. Multiple models should be recognized by the tag "MODEL N" and "ENDMDL" (see format description below).
If all your models are based on the same target sequence, you are recommended to input
your target sequence in FASTA format. You can input your target sequence by either paste your sequence in the second text area or upload a text file containing your sequence under this text area. In that case, profiles are calculated only once for this target sequence, and the global scores are normalized by the length of the target sequence as well.
To generate an example input, just click the button in the panel New query and then click .
Format of an input model with multiple models
MODEL 0
ATOM 1 N ILE 25 20.054 -1.774 13.539 1.00 13.86
ATOM 2 CA ILE 25 19.853 -1.767 12.074 1.00 13.86
ATOM 3 C ILE 25 19.368 -0.432 11.629 1.00 13.86
...
ENDMDL
MODEL 1
ATOM 1 N THR 2 6.845 39.808 112.651 1.00 7.56
ATOM 2 CA THR 2 7.837 40.283 113.642 1.00 7.56
ATOM 3 C THR 2 8.964 39.313 113.764 1.00 7.56
ATOM 4 O THR 2 8.919 38.204 113.232 1.00 7.56
ATOM 5 1H THR 2 6.111 40.299 112.478 1.00 7.56
ENDMDL
3. Output
The server outputs both the global and local scores of the
models to be predicted. ProQ3 server outputs results for ProQ3,
ProQCenFA, ProQRosCen and ProQ2 methods.
If the target sequence is not given nor the target length is provided, the global scores are normalized by the length of the model sequence. Otherwise, the global scores are normalized by the target length.
A link to the dumped text file with both global scores and local scores is also provided in the result page given the successful prediction.
Additionally, a zipped folder with all intermediate result files is also downloadable.
An example of the predicted result can be found here


SVGCanvas
Introduction
SVGCanvas is a JavaScript implimentation of most of the Canvas drawing API which creates SVG grapics elements instead of drawing to a pixel buffer. I wanted a way of scripting the creation of SVG graphics without always explicitly managing the DOM tree. Since Canvas is becomming a de facto web standard and the two interfaces are similar (e.g. linear and radial gradients of the same form) I took advantage of the API.
Canvas is a pixel-based representation like a paint program. You can draw shapes over each other and they will modify the pixels. SVG is more like a drawing program where shapes are always there even if they get covered up.
Canvas is a stack-based API where you set the color and line style, move to a spot, draw some lines, set another color, draw more lines, etc. Almost all graphical libraries impliment this becuase in many situations it's more convenient and efficient than passing the parameters with each call. SVG is a tree representation where you can group objects and apply fill color, for example, to the whole group that get applied for every member that doens't explicitly specify their own fill color. Some things are cleaner to do in one model or the other. See Canvas and SVG slides by Robert O'Callahan at mozilla.org for a good overview about why the web needs both.
It was easiest to get SVGPlot to efficiently generate clean SVG code using a combination of DOM tree manipulation and Canvas calls. Why would you want this?
- The Canvas API is a nice API to build up an SVG without explicit DOM manipulations.
- SVG (with JavaScript) is a W3C standard, but canvas is not.
- When your browser supports SVG not canvas.
- Code written for canvas can be usedto create an SVG.
- Save the result of canvas calls to an SVG file for later display, conversion to PDF or PNG, or printing at high-res.
- Can apply events to objects (shapes) rather thanhave to translate the (x,y) coordinates like you do in Canvas.
When wouldn't you use this?
- When speed matters. With this, you just stack SVG shapes on top of each other forever. Even you clear it, those others will still be around taking memory and rendering time. For things like games and photographic content, you want the "blast it to the screen and forget it" model.
- Sometimes the simplest representation of a graphic is a program to draw it (e.g. fractals, function plotting) rather than an XML-like description.
- When your browser supports canvas but not SVG
Live Demos
- live demo - Table of tests that you can modify and re-run client side. These can take up to a minute to render in Firefox.
- live demo 2 - More of the same.
- canvas extensions - Table of demos for extensions that added on top of the basic Canvas functionality.
Browse Code in SVN Repository
Related Work
- Batik impliments the Java AWT API to draw directly to SVG.
-
CanvaSVG
goes the other way, rendering SVGs onto a canvas. SVG has a richer
(more complicated) set of things like arcs, andstroke-dasharray that are not
built into the Canvas API making it hard on them and easy on me.
Other things like shadows and
globalCompositeOperation
are not straight forward to impliment without native SVG support. - Cairo can render to bitmaps, PDF, PS, SVG, OpenGL, and others. It's API is similar to Canvas.
- PostScript is really a programming language. You can write a PostScript program to print out arbitrarily many digits of pi, or have the printer calculate fractals. Canvas and SVG provide this level of programing using JavaScript.
Background/History
PostScript was a vector drawing state-machine-based language, PDF is a subset without the programming language pieces (conditionals and loops). Canvas is a drawing API inspired by PS and PDF. SVG is a scenegraph representation. It's like the difference between OpenGL and Open Inventor. All drawing of windows and widets in NeXT was done used PostScript, and in OS X using PDF. The advantage was that the same code that is drawing to the window can be used to draw to the printer without any translation.
Canvas, though simple, is quite powerful, supporting transparency, gradients, clipping, blending, bezeir curves, and others that Win32/GDI and QuickDraw2D, and Java's AWT do not. Except for transparency, these features come from PostScript.
| State-Machine / Stack-Based / immediate-mode | Scenegraph / retained mode | |
| 2D | PostScript Canvas Quartz 2D / QuickDraw 2D on OS X Qt, GDK Java AWT java.awt.Graphics2D Windows Win32/GDI |
SVG |
| 3D | OpenGL RenderMan |
Open Inventor/ Performer
/ Coin3D OpenGL++ / Cosmo 3D / Fahrenheit Java3D VRML / X3D VTK |
Sometimes you want direct access to the pixels. In photo manipulation, 3D per-pixel lighting and shading, non-linear transformations, displaying image or video, a smoke or fire effect, filters, or interval graphing techniques. Dealing with a 2D array of pixels is more efficient than drawing a rectangle for each pixel using vector-graphics techniques. Some of these are addressed in the SVG filters -- you can have your drop shadow and the advantage of SVG. The other advantage is being able to both read and write the pixel array.
Overview of Canvas API
- WHATWG
<canvas>
API specification. - Apple
<canvas>
documentation - Mozilla
<canvas>
tutorial
Overview of my Canvas Implementation using SVG
There is a single object SVGCanvas
which acts like Canvas's 2D context
that you get from getContext("2d")
. Maybe I should have called it
SVGCanvas2dContext to keep my options open for 3D, but X3DCanvas is
probably a better route.
There were some decisions to be made regarding trading off speed to create the SVG, speed to render the SVG, generating clean factorized SVG. What happens when you draw, transform, draw, transform, draw, etc.
- Should SVGCanvas keep an explicit current transformation matrix and multiply each incomming coordinate by it and write out the transformed coordinates? This is what the Canvas and SVG renderers do internally? This produces ugly SVG with lots of decimal digits that have no relation to the often simple coordinates provided.
- Another option would be to construct a huge string of
transformations and include them in the SVG element:
transform="translate(75, 75) scale(0.4, 0.4) rotate(6)"
This is how you would write SVG "by hand." The problem with this is that the transformations can get longer and longer. Another problem is that you lineTo() rotate() lineTo() before you emit a path with fill() and there is no way specify a single transformation for the whole path.
fill()
,
stroke()
or clip()
or things like fillRect()
that call one of
these.Gradients, clipping paths, markers, patterns, and other objects that you define and use many times are created by standard Canvas methods or a Canvas inspired SVG-only one.
Overview of SVG Extensions
Since I want to be able to use this as an easy way to draw into an SVG rather than just a pure Canvas implimentation, there are several SVG specific features.
- You can pick the SVG group you're drawing into by setting
drawGroup
. It lives in the state. All elements go into this group. (They have transformations applied to them from higher-level goups.) - Actions like
stroke()
andfill()
return the DOM element of the path or group that was created. Usually you ignore it. - You can manipulate the state dictionary yourself with
getState
andsetState
. applyStyles
is part of the state. If you have an SVG group that already has styling properties you need, you can set this to just output the shape elements and let the styles be inherited.- Every SVG element can be created directly with the current
transformation and style applied by passing appropriate arguments to,
for example,
strokeCircle()
,fillCircle()
, ordrawCircle()
. -
text()
funtion that takes a string and a position. A big shortcoming of canvas is its lack of integrated text. I've also added font and textAnchor properties to the state. draw()
action: To draw a shape that has both afill()
andstroke()
, in Canvas you set up the path, then callfill()
thenstroke()
to stroke on top of the fill. You can do that here too, but it would generate two seperate SVG elemtns rather than a single one with both fill and stroke properties. If you edit the SVG and drag around the fill, the stroke won't come with it. Withinstroke()
I can look to see if I've just done afill()
, but this check is inneficient. Every time you do a stroke you have to compare the current state and the element you're trying to fill (path, rect, etc) with the previous thing. Maybe this is worth doing rather than defining a whole new non-canvas-API function, but it's far easier to add a draw function to the canvas context that callsfill()
thenstroke()
.


Advance participants
From
to
Select top
0
1
2
4
8
16
32
fighters
0
participants selected
Overall ranking
Pool
Name
Club
OK
Cancel


My Blog
Peter N Wood
Home
Blog
Projects
About Me
Resume
Contact Info
Dev Bootcamp Phase 1
dd mmm yyyy
The crash-course begins
[first paragraph]
[second paragraph]


Provides wrapper functions to the Java Robot class to automate user input, like mouse movements, clicks and keyboard input.
| Version: | 0.1 |
| Depends: | R (≥ 3.4.0) |
| Imports: | rJava (≥ 0.9-8) |
| Suggests: | knitr, roxygen2, rmarkdown |
| Published: | 2017-06-22 |
| Author: | Dejan Prvulovic [aut, cre] |
| Maintainer: | Dejan Prvulovic <dejan.prv at gmail.com> |
| License: | CC0 |
| NeedsCompilation: | no |
| SystemRequirements: | Java >= 7 |
| CRAN checks: | rMouse results |
| Reference manual: | rMouse.pdf |
| Vignettes: |
rMouse - Introduction |
| Package source: | rMouse_0.1.tar.gz |
| Windows binaries: | r-devel: rMouse_0.1.zip, r-release: rMouse_0.1.zip, r-oldrel: rMouse_0.1.zip |
| OS X binaries: | r-release: not available, r-oldrel: not available |
Please use the canonical form https://CRAN.R-project.org/package=rMouse to link to this page.


The methods of the Lua class are listed below. For a complete list of Lua class members, see the Lua Members topic.
| Call | Overloaded. Calls a specified function which is declared inside LUA script. |
| CreateThread | Creates a new Lua coroutine (thread) from the context of the current object. |
| Dispose (inherited from LuaState) | Closes the LUA state to clean up all unmanaged handles. |
| Equals (inherited from Object) | |
| Execute | Overloaded. Starts the execution of the previosly loaded script chunks. |
| GetHashCode (inherited from Object) | |
| GetType (inherited from Object) | |
| Load | Loads the script from a given string. |
| LoadFile | Loads the script from a given file. |
| LoadLibrary | Overloaded. Loads the given file as a library for LUA. |
| Register | Registers a callback function. Every callback function is being registered in the global namespace. |
| ToString (inherited from Object) |


This plugin allows notifications to be sent through Slack. The targets are Slack Chat IDs (@ for a private message and # for a channel message) and you can specify more than one target by separating them with commas.
Remember to configure your SlackURL and Bot Token in System Configuration.


Pipeline
A Pipeline is where all the media processing takes place in PiTiVi.
In order to hide the complexity of the underlying GStreamer pipeline, we only have to work with 3 concepts:
- Producer(s), responsible for providing data streams and the associated GStreamer elements
- Consumer(s), responsible for consuming data streams and the associated GStreamer elements
-
Action(s), which brings in the combination of:
- Which Consumer(s) and Producer(s) to use, and how to link the associated GStreamer elements
- What the overall Action is, useful for the UI to provide the adequate interface for each action
Pipeline
Properties
- Actions, the list of Actions currently being used in the pipeline
- Producers, the list of Producers being used
- Consumers, the list of Consumers being used
Signals
-
action-added
, a new Action was added to the pipeline -
action-removed
, an Action was removed to the pipeline
Producer
Properties
- Factory, the ObjectFactory being controlled by this Producer
- Pipeline, the Pipeline in which this Producer is being used
Class Properties
- CompatibleFactory, a list of ObjectFactory types this Producer can manage
Signals
factory-changed
Consumer
Properties
- Factory, the ObjectFactory being controlled by this Consumer
- Pipeline, the Pipeline in which this Consumer is being used
Class Properties
- CompatibleFactory, a list of ObjectFactory types this Consumer can manage
Signals
factory-changed
Action
Properties
- Pipeline, on which it is being used, or going to be used
- Producers, that this Action is controlling
- Consumers, that this Action is controlling
- State, whether it is activated or not
Class Properties
- CompatibleProducer, a list of Producer types this Action can handle
- CompatibleConsumer, a list of Consumer types this Action can handle
Signals
state-changed
Use Cases
Viewing a File
This is the simplest use-case for a Pipeline, which is viewing a File.
As can be seen in the Schema, there is only one action (ViewAction) which connects a SourceProducer to a LocalSinksConsumer.
Rendering a Timeline
In this example, we are doing 2 actions at the same time:
- Viewing the Timeline and,
- Rendering the Timeline.
Setting up the render
Supposing we already had our Timeline Pipeline (With the TimelineProducer, LocalSinksConsumer and ViewAction), we just had to:
- Create a 'RenderAction' with our existing TimelineProducer as that action's producer,
- Set that Action on the Timeline
- UI: We get notified of a new Action set on the Pipeline, we open the adequate UI for that Action (if needed).
- Configure the newly created 'LocalRenderConsumer' which is the
Consumer to which our RenderAction is linked to.
- UI: The Render Timeline interface linked to our action has access to the configured Consumer and can open the adequate Configuration Widget for that Consumer.
Actually Rendering
- We activate the Action on the pipeline
- The pipeline gets reconfigured with all activated actions
- We set the pipeline to PLAYING
Finish rendering
When we are done rendering (because we got an EOS or such), we can then:
- Remove that Action from the Pipeline (which will deactivate the
action first, resetting the pipeline internally at the same time)
- UI: We get notified an action has been removed, we close the related interface/widgets.
Relationship with GStreamer
The results of the search are


Patterns by Alexandru Marinescu
Hello everyone and welcome to my personal site, where you can find some of my photography projects.
I'm a 33 year old University of Construction's graduate who was born and raised in Bucharest. I love seeing the world through my camera's lens. It gives me a different perspective on the things that surround us.
Every day that passes has at least one beautiful moment to be cherished for a long time, and unless we take a picture of it, we risk to forget it on the long run. Just like Eudora Welty said: "A good snapshot keeps a moment from running away".
So get out there, enjoy life and make some good memories along the way!
One love,
Alex


Editing Filepool File Entries
This dialog is for editing the description of a file stored in the file directory of your topic (as opposed to one imported from the filepool).


Mix v1.3.4 Mix
Mix is a build tool that provides tasks for creating, compiling, and testing Elixir projects, managing its dependencies, and more.
Mix.Project
The foundation of Mix is a project. A project can be defined by using
Mix.Project
in a module, usually placed in a file named mix.exs
:
defmodule MyApp.Mixfile do
use Mix.Project
def project do
[app: :my_app,
version: "1.0.0"]
end
end
The project/0
function is where the project information is defined
and it allows developers to configure many tasks.
After the project above is defined, there are many tasks one can run directly from the command line:
mix compile
- compiles the current projectmix test
- runs tests for the given projectmix run
- runs a particular command inside the project
Each task has its own options and sometimes specific configuration
to be defined in the project/0
function. You can use mix help
to list all available tasks and mix help NAME
to show help for
a particular task.
The best way to get started with your first project is by calling
mix new my_project
from the command line.
Mix.Task
Tasks are what make Mix extensible.
Any project can extend Mix behaviour by adding their own tasks. For example, you can add the task below inside your project and it will be available to everyone that uses your project:
defmodule Mix.Tasks.Hello do
use Mix.Task
def run(_) do
Mix.shell.info "hello"
end
end
Now they can invoke it with mix hello
.
Dependencies
Another important feature in Mix is that it is able to manage your dependencies and integrates nicely with the Hex package manager.
In order to use dependencies, you just need to add a :deps
key
to your project configuration. We often extract the dependencies
listing to its own functions:
defmodule MyApp.Mixfile do
use Mix.Project
def project do
[app: :my_app,
version: "1.0.0",
deps: deps]
end
defp deps do
[{:ecto, "~> 0.2.5"},
{:plug, github: "elixir-lang/plug"}]
end
end
You can run mix help deps
to learn more about dependencies in Mix.
Environments
Mix provides environments.
Environments allow developers to prepare and organize their project specifically for different scenarios. By default, Mix provides three environments:
:dev
- the default environment:test
- the environmentmix test
runs on:prod
- the environment your dependencies runs on
The environment can be changed via the command line by setting
the MIX_ENV
environment variable, for example:
$ MIX_ENV=prod mix run server.exs
Aliases
Aliases are shortcuts or tasks specific to the current project.
In the Mix.Task
section, we have defined a task that would be
available to everyone using our project as a dependency. What if
we wanted the task to only be available for our project? Just
define an alias:
defmodule MyApp.Mixfile do
use Mix.Project
def project do
[app: :my_app,
version: "1.0.0",
aliases: aliases]
end
defp aliases do
[c: "compile",
hello: &hello/1]
end
defp hello(_) do
Mix.shell.info "Hello world"
end
end
In the example above, we have defined two aliases. One is mix c
which is a shortcut for mix compile
. The other is named
mix hello
, which is the equivalent to the Mix.Tasks.Hello
we have defined in the Mix.Task
section.
Aliases may also be lists, specifying multiple tasks to run at once:
[all: [&hello/1, "deps.get --only #{Mix.env}", "compile"]]
In the example above, we have defined an alias named mix all
,
that prints hello, then fetches dependencies specific to the
current environment and compiles it.
Arguments given to the alias will be appended to the arguments of the last task in the list, if the last task is a function they will be given as a list of strings to the function.
Finally, aliases can also be use to augment existing tasks.
Let’s suppose you want to augment mix clean
to clean another
directory Mix does not know about:
[clean: ["clean", &clean_extra/1]]
Where &clean_extra/1
would be a function in your mix.exs
with extra clean up logic.
Note aliases do not show up on mix help
.
Environment variables
Environment variables can be used to modify Mix behaviour.
Mix responds to the following variables:
MIX_ARCHIVES
- allows specifying the directory into which the archives should be installedMIX_DEBUG
- outputs debug information about each task before running itMIX_ENV
- allows specifying which environment should be used. see EnvironmentsMIX_EXS
- allows changing the full path to themix.exs
fileMIX_HOME
- stores configuration files and scripts shared by multiple implementationsMIX_PATH
- allows expanding the code pathMIX_QUIET
- does not print information messages to the terminal
Variables which do not take a value should be set to either 1
or true
, for example:
$ MIX_DEBUG=1 mix compile
Summary
Functions
Returns the default compilers used by Mix
Sets Mix debug mode
Returns true if Mix is in debug mode
Returns the Mix environment
Changes the current Mix environment to env
Raises a Mix error that is nicely formatted
Returns the current shell
Sets the current shell
Functions
Returns the default compilers used by Mix.
It can be used in your mix.exs
to prepend or
append new compilers to Mix:
def project do
[compilers: Mix.compilers ++ [:foo, :bar]]
end
Changes the current Mix environment to env
.
Be careful when invoking this function as any project configuration won’t be reloaded.
Returns the current shell.
shell/0
can be used as a wrapper for the current shell. It contains
conveniences for asking information to the user, printing things and so
forth. The Mix shell is swappable (see shell/1
, allowing developers to use
a test shell that simply sends messages to the current process instead of
doing IO (see Mix.Shell.Process
.
By default, this returns Mix.Shell.IO
.
Sets the current shell.
After calling this function, shell
becomes the shell that is returned by
shell/0
.


Outlier genes are defined as being more than N IQRs away
from the median.
The maximum number of genes returned is 5% of the total number
of genes. If there are more than 5% of the total number of
genes that are outliers, only the top 5% of the outliers will
be returned.
{{> afQuickField name="data_set_id"
options=patientAndDataSets type="select" search=true
placeholder="Select a data set..."}}
{{#if afFieldValueIs name="data_set_id" value=undefined}}
{{> afQuickField name="sample_labels" type="select"
placeholder="Select a data set to continue" disabled=true}}
{{else}}
{{! use basic-select if there's a whole lot of samples}}
{{#if firstGreater (length sampleOptions) 500}}
{{> afQuickField name="sample_labels" type="basic-select" search=true
placeholder="Select a sample..." options=sampleOptions
multiple=true}}
{{else}}
{{> afQuickField name="sample_labels" type="select" search=true
placeholder="Select a sample..." options=sampleOptions
multiple=true}}
{{/if}}
{{/if}}


This post overrides the name page variable again, this time by defining it as part of the front matter directly in the Markdown file content/2.posts/2014-03-27-another-blog-post/body.md
name
content/2.posts/2014-03-27-another-blog-post/body.md


If the user chooses to disconnect, the app must delete all stored
information retrieved from Google for the given user.
This section will be hidden by JQuery. If you can see this message, you
may be viewing the file rather than running a web server.
The sample must be run from http or https. See instructions at
https://developers.google.com/+/quickstart/javascript


A Famous ICPC Team
问题描述 :
Mr. B, Mr. G, Mr. M and their coach Professor S are planning their way to Warsaw for the ACM-ICPC World Finals. Each of the four has a square-shaped suitcase with side length Ai (1<=i<=4) respectively. They want to pack their suitcases into a large square box. The heights of the large box as well as the four suitcases are exactly the same. So they only need to consider the large box’s side length. Of course, you should write a program to output the minimum side length of the large box, so that the four suitcases can be put into the box without overlapping.
输入:
Each test case contains only one line containing 4 integers Ai (1<=i<=4, 1<=Ai<=1,000,000,000) indicating the side length of each suitcase.
输出:
Each test case contains only one line containing 4 integers Ai (1<=i<=4, 1<=Ai<=1,000,000,000) indicating the side length of each suitcase.
样例输入:
2 2 2 2 2 2 2 1
样例输出:
Case 1: 4 Case 2: 4HintFor the first case, all suitcases have size 2x2. So they can perfectly be packed in a 4x4 large box without wasting any space. For the second case, three suitcases have size 2x2 and the last one is 1x1. No matter how you rotate or move the suitcases, the side length of the large box must be at least 4.
#include<stdio.h> #include<stdlib.h> int cmp(const void *a,const void *b) { return *(int *)b-*(int *)a; } int main() { int op=1,a[4],sum; while(scanf("%d",&a[0])!=-1) { scanf("%d%d%d",&a[1],&a[2],&a[3]); qsort(a,4,sizeof(a[0]),cmp); sum=a[0]+a[1]; printf("Case %d: %d\n",op++,sum); } return 0; }
版权声明：本文为博主原创文章，未经博主允许不得转载。
参考：http://blog.csdn.net/aixiaoling1314/article/details/8892760
(adsbygoogle = window.adsbygoogle || []).push({});
Senso
奥 还指望太阳热度减小点？？！ 250 把你搂去当实验品，然后展览 哈哈 把你jj喂婴儿


Whether to apply a stroke to the style
Whether auto leading is enabled for a style
The baseline shift value for a style
The fill color of a style
Font of the style
Font size of the style
Whether all caps is enabled for a style
Whether faux bold is enabled for a style
Whether faux italic is enabled
Whether small caps is enabled for a style
The leading value for a style
The stroke colour of a style
The stroke width for a style
Tracking value for a style
Set the all caps property for a style
Enable or disable the fill for a style
Enable or disable the stroke for a style
Set the auto leading property for a style
Set the baseline shift value for a style
The baseline shift to set
Set the faux bold property for a style
Set the faux italic property for a style
Set the fill color for a style
The color to set
Set the font for a style
The typeface to set
Set the font size for a style
Font size in pixels
Set the leading value for a style
Set the small caps property for a style
Set the stroke colour for a style
The color to set
Set the stroke width for a style
The stroke width to set
Set the text content of a sourceText property, used when you need to return a style
object an set the value
The string to set
Set the tracking style for a style
Generated using TypeDoc
Whether to apply a fill to the style


usage: cara2tab [-h] --in cara.peaks [--spinID cara.spins] [--ft test.ft2]
[--order ORDER] [--cal [C [C ...]]] [-e EXP [N ...]]
[-c VAR FMT DEFAULT] [--out cara.tab]
Convert a CARA anchor or strip peak list to NMRPipe .tab file
Assignment
----------
CARA uses the Xeasy format for its peak lists. This format does not
contain assignment data directly. Instead, it includes a spin ID
number for each chemical shift in the peak list, where each spin ID
number corresponds to a spin within CARA.
Assignment data must be added to STRIP peak lists using a spin ID file.
Spin ID files are generated using the CARA Lua script included in the
nmrpeaklists library. Use the --spinID option to provide this spin ID
file.
If no spin ID file is provided, it will be assumed that the peak list is
an ANCHOR peak list. CARA anchor peak lists include the assignment data
for each data line as a comment immediately following it. In this case,
the assignments can be extracted directly from the peak list. No spin ID
file is required.
Correspondence to an NMRPipe spectrum
-------------------------------------
If you plan to use the NMRPipe .tab file with nlinLS to fit data, then
the peak list will correspond to a particular NMRPipe spectrum. The
script needs access to the header of that spectrum to correctly
calculate the location of each peak in units of points. Use the --ft
option to provide the spectrum. It can be either a monolithic file or
the first plane from a series.
Beware, the order of the columns in the peak list may not match the
order of dimensions in the spectrum. Use the option --order to specify
which column of the peak list (from left to right) corresponds to which
dimension in the NMRPipe spectrum (XYZA).
Use the --cal option to enter the calibration for each dimension in PPM.
The order here should match the order of dimensions in the NMRPipe
spectrum. These values should be the same as the calibration values in
CARA.
nlinLS Columns
--------------
If you plan to use the .tab file for fitting data with nlinLS, then you
will need to add the appropriate fitting columns. Columns can be added
in pre-set groups based on common experiments, or they can be added
individually.
Use the '-e' option to add all the fitting parameters needed for one of
the experiment types listed. Use the '-c' option to specify individual
parameter columns. Columns specified with the '-c' option will
overwrite corresponding columns set with '-e'.
You must provide three values when specifying a column with '-c'. The
first two are the values that appear in the VARS and FORMAT lines of
the NMRPipe .tab file, respectively. The final value will be the default
value used for each peak in the column.
In some cases, several columns are related to one another. These fall
into two categories, either there is one column for each dimension
(e.g. XW, YW, ZW) or there are multiple columns for a single dimension
(e.g. Z_A0, Z_A1 ...). In these cases, use '%s' or '%d' in the VARS
string to indicate that the string should be expanded with dimension
labels (X, Y, Z ...) or with list indices (0, 1, 2 ...), respectively.
The default values for these columns must be specified as a Python list.
List multiplication and addition syntax is supported here
(e.g. [1]+[0.5]*64), but the list MUST NOT include any spaces.
Supported Experiments
---------------------
The following pre-made experiment types are available. Use the given
experiment name with the '-e' option to add the corresponding nlinLS
fitting columns to the .tab file. Some experiments take a second
argument to the '-o' option. See the notes for an explanation.
The columns HEIGHT and XW, YW, etc. are added for all experiments.
Experiment Columns Notes
---------- ------- -----
Volume VOLUME
R1 Z_A
R2 Z_A
Het-NOE Z_A0, Z_A1
CEST N Z_A0 - Z_A(N) N = profile points+1 (for reference)
RD N Z_A0 - Z_A(N) N = profile points+1 (for reference)
The default value for each column added is provided in the table below.
These values can be overridden with the '-c' option.
Column Default
------ -------
HEIGHT 5e7
XW, YW, ZW, AW 2
VOLUME 0
Z_A (R1) -1
Z_A (R2) -10
Z_A0 (Het-NOE, CEST, RD) 1.0
Z_A1 (Het-NOE) 0.75
Z_A1, Z_A2, ... (CEST, RD) 0.7
Examples
--------
cara2tab --in strip.peaks --spinID cara.spins --ft NOESY.ft3
--order ZXY --cal 0.01 -0.05 0.11 -e Volume
cara2tab --in anchor.peaks --ft test.ft2 -e R1
cara2tab --in anchor.peaks --ft test.ft2 -e R1 -c HEIGHT %12.5e 1e8
cara2tab --in anchor.peaks --ft test.ft2 -e R2 -c %sW %6.3f [8,5]
cara2tab --in anchor.peaks --ft test.ft2 -e CEST 33
-c Z_A%d %8.5f [1]+[0.6]*32
optional arguments:
-h, --help show this help message and exit
--spinID cara.spins CARA spin ID file
--ft test.ft2 NMRPipe spectrum
--order ORDER correspondence between CARA peak list columns (left to
right) and spectrum dimensions (XYZA), default XYZA
--cal [C [C ...]] calibration for each dimension of the .ft file (in PPM)
-e EXP [N ...] Pre-made experiments: Volume R1 R2 Het-NOE RD CEST
-c VAR FMT DEFAULT Create custom column
--out cara.tab NMRPipe .tab file (default cara.tab)
required arguments:
--in cara.peaks CARA peak list


--- layout: post title: ! 'Rails 2.1.1: Lots of bug fixes' categories: - releases author: David published: true date: 2008-09-05 09:19:00.000000000 +01:00 ---
Rails 2.1.1 is another maintenance release that includes a bunch of bug fixes and a fix for the REXML vulnerability. I’ve extracted all the changes from the CHANGELOGs into a single Gist. Enjoy!
To install, just do: gem install rails --version 2.1.1
.
Next upcoming release will be Rails 2.2 beta which is quite close.


Learnings
I like the analogy of a man on the road asking a rider of a horse where he is going. The rider replies with 'Ask the horse'. Our emotions need to be understood before they can be steered.
Emotions are like monsters in the mind. They can't be stopped from coming and they can't be forced to leave. We feed them with negative thoughts and stories so they stay. To be scared of them is to give them power. If they don't get fed, they'll get hungry and look for food elsewhere. A good way to think of negative thoughts is to image that they are being written on water and so when they appear is when they dissipate. We can also think of ourselves as being mesh and the thoughts just pass through.
The Siberian North Railroad can be used to separate a person from reacting in an unhelpful way. It stands for Stop, Breath, Notice, Reflect and Respond. In a real setting this may take only seconds, so it needs to be practiced to be effective. If the situation is passed then going through the steps afterward will help create the neuro pathways for the next time. Of great importance is the recognition of triggers. If not acknowledged and dealt with then they will just keep popping up as they are a response to a perceived insufficiency in ourselves. Reframing and reinterpreting the situation, while looking at it objectively and with humor/kindness to all involved will have a big impact on the response.
2 minutes of mindfulness
I found it quite hard to think of times when I've been triggered as I tend to try and bury these occasions so deep that they will never see the light of day. I have been practicing my meditation and have found that focusing on breathing has been helpful to mitigate stress even while out and about.


Chiefs Striker Leapfrogs Erasmus And Grobler On Charts
by Soccer LadumaThe Absa Premiership goalscoring chart has a new man on top after his hat-trick at the weekend.
Samir Nurkovic’s three goals for Kaizer Chiefs in a 5-3 win over Bloemfontein Celtic on Saturday evening, saw the Serbian being placed as one of the top goalscorers in the league.
Read more: Where Does Middendorp Rank Among Top Coaches In The World?
Nurkovic, Peter Shaluilile of Highlands Park and Knox Mutizwa of Golden Arrows all occupy the number one spot with eight goals each.
After missing just two league fixtures for Chiefs due to a head injury, the 27-year-old returned to action with a bang, scoring seven goals in his last five appearances.
However, following closely behind the Amakhosi marksman, is Cape Town City’s Kermit Erasmus and AmaZuluFC’s Bongi Ntuli on seven goals so far in the Absa Premiership, while SuperSport United’s Bradley Grobler and Orlando Pirates’ Tshegofatso Mabasa has scored six goals each.
Who do you think will push right until the end for the Absa Premiership Golden Boot? Let us know in the comments section below.
Post Selfie’s On Soccer Laduma’s Social Media App & Earn Airtime and more! Download Now


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/dictionary.20.2F.20map.20type.3A.20ordset.html ---
I've been playing around with conventional programming in lean lately (thank you Advent of Code), and it has made me realize that our capabilities with finite maps is quite limited. Currently, we have:
native.rb_map
: meta interface to a C++ implementation of red black treesrbmap
: lean implementation of red black trees in corefinmap
: maps via association lists (in mathlib)finsupp
: finitely supported functions (non computational)The only one which is really suitable for computation is rbmap
(finmap
is too slow, since it is implemented with lists, although it is useful for specifications and verified computation), and it is implemented in core with basically only two operations: insert
and find
. And because the well-formedness condition is incorrect, you can't even implement more operations, like erase
.
So I decided to start anew with weight balanced trees, as a direct port from Haskell's Data.Set
. The result is the ordnode A
type, which has a very complete set of operations for working with sets and maps. The library for ordset A
is still under development but will incorporate the correct invariants on top of ordnode A
so that the usual properties are provable.
PS: The names ordnode
, ordset
, ordmap
are a bit inelegant, I'm open to suggestions.
ordset α
does not seem to be isomorphic to finset α
---is this intentional?
I added the equivalence relatively recently (ordnode.equiv
). I will change ordset
to be a quotient of the current subtype
Also it's not going to be isomorphic to finset A
anyway, because of preorder stuff
I think the ordset
s over a linear order should be isomorphic to finset A
(more precisely, over a total preorder, a ordset A
can only represent a comparability antichain, i.e. x, y \in s
and x <= y
and y <= x
implies x = y
)
Yeah, with the quotient they should be isomorphic for total orders.
I had my own version of rb trees while back (https://github.com/joehendrix/lean-containers/). It uses quotients so we can get a decidable equivalence relation.
I had to put it on hold for other projects, and only got around to insert (so it's close to the existing rbmap capabilities). I think it also probably doesn't work with the latest lean 3. Maps are implemented on top of sets.
I ported Coq's implementation of RB trees (sans proofs). I also didn't test it much so has bugs.
https://github.com/EdAyers/edlib/blob/master/rb.lean
For naming, I vote table
Last updated: Apr 24 2020 at 19:02 UTC


[Gecode] Diff between gecode head and gecode fs branch merged withhead
Gabor Szokoli
szokoli at ps.uni-sb.de
Fri Apr 2 13:08:14 CEST 2004
Christian Schulte wrote:
>Some quick questions:
> - Why did you change the use of Arith::max (and min)? Don't, Arith::max and
>min avoid branching.
>
>
They give unexpected results for integers that are big.
We can change back, but we have to figure out in what range they work,
and limit domains of variables to be smaller than that.
> - Please adhere to the indentation style as used elsewhere (so we can all
>read easily)
>
>
2 spaces instead of tabs, right?
Do you use any automatic code formatter/beautifyer?
> - NEVER USE MALLOC! Please use Memory::alloc (that gives us central control
>over allocation)
>
>
We'll look at the allocation of the dummy varmodboard again.
> - Why have <iostream> in the kernel? If you used for testing, remove.
>
>
>
Because I am forgetful. (And dependent on a little button titled
"Organise Imports" my current IDE does not have :-) ) Sorry.
>That's it.
>
>Christian
>
>--
>Christian Schulte, http://www.imit.kth.se/~schulte/
>
>-----Original Message-----
>From: gecode-bounces at ps.uni-sb.de [mailto:gecode-bounces at ps.uni-sb.de] On
>Behalf Of Gabor Szokoli
>Sent: Thursday, April 01, 2004 5:41 PM
>To: gecode at ps.uni-sb.de
>Subject: [Gecode] Diff between gecode head and gecode fs branch merged
>withhead
>
>
>Hi!
>
>Here's a diff between the current head, and what would be in CVS if we
>decided to merge.
>Except gcc has issues with some of the examples that use the new
>ArgArray interface, and our examples do not compile because they use the
>old one.
>The merge itself was automatic, painless, but we have not tried if it
>still works yet, compiles "just as good" as the head.
>
>It's 70KB, should fit in everyones mailbox unless some people have
>friends with a strange sense of humor on April 1st.
>Most of it is the Alice binding though as our new files were omitted.
>(the whole fs subdirectory)
>
>$ diff -r -x CVS -I "\*[ ]*\\$" gecodeHead gecode >difference
>
>
>
>_______________________________________________
>Gecode mailing list
>Gecode at ps.uni-sb.de
>http://www.ps.uni-sb.de/mailman/listinfo/gecode
>
>
More information about the gecode-users
mailing list


Audio Guide
TAP IMAGES TO LISTEN
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
Untitled
party marshall
WORK BY
I. Robinson
D. Pratt
K. Adams
M. Moyal
L. Ewings
M. Lee
C. Hellichus
D. Ashtaev
M. Bush
G. Mcmullin
M. Woodward
MW JK IR JR


FAST
Low overhead, jasmine-core has no external dependencies.
BATTERIES INCLUDED
Comes out of the box with everything you need to test your code.
NODE AND BROWSER
Run your browser tests and Node.js tests with the same framework.
{% highlight javascript %}
describe("A suite is just a function", function() {
let a;
it("and so is a spec", function() {
a = true;
expect(a).toBe(true);
});
});{% endhighlight %}
Sample Code
Jasmine is a behavior-driven development framework for testing JavaScript code.
It does not depend on any other JavaScript frameworks.
It does not require a DOM.
And it has a clean, obvious syntax so that you can easily write tests.


Physics - Steering Behaviors
Click to add new vehicle! Select behavior:
Align
Separate
Mouse Seek
Mouse Flee


Tic-Tac-Toe
Start Game
1 Player
2 Players
Choice a mark you want.
X
O
Please wait until computer choice..
Click a spot you want.
New Game
Restart Game


Beyond the End
He is shamelessly happy
to take out the trash.
He descends the spiral staircase
and follows the stone path
laid out to the can.
Well, no longer a can-
more like giant Tupperware
with wheels. Late October,
winter on the way.
He has a smoke in the alley.
The neighborhood is dying-
everyone is moving closer
to downtown, closer
to the ache of the city.
He doesn't mind-
popularity is unusable.
This row of Victorians
used to be elegant, similar
to the photograph of an actress
long dead, or almost there.
Only a matter of time before
the block is bought up
and leveled for something
monstrous and profitable.
We must be brave when everything
is taken away. He exhales
and looks up to where
the moon should be, but is not.
His beard is more white
than gray, his eyes
more closed than open.


OTA announces the 3rd Monthly Junior Tennis Tournament 2019
by Times News ServiceMuscat: Oman Tennis Association will organise the third monthly junior tennis tournament 2019 from November 7 to 9.
The association aims to give regular playing opportunity to junior players. Promising players are expected to join and confirm their status.
The categories are under-8 Unisex Mini Tennis, 10, 12 , 14, 18 under boys and girls singles. The deadline of entries will be November 5 by 12pm which will be followed by a draw.
All registration forms of the tournament are available at OTA office in Al Ghubra Oman Olympic Committee (Spors) building and Sultan Qaboos Sports Complex, Bausher Tennis Court.


Detection of materials and waste from a fixed point
Detection of materials and waste in the bays
Detection of materials and waste in gulfs
The device is applied in different marine areas from the coasts to the open sea with the aim of detecting and classifying the wastes and materials that are in those determined areas
The objective of this project is to take data for future collection of them by the determined location of these wastes and also their classification
The ecological approach of this device is the care of the oceans and the protection of marine life
How do you want to be contacted?
If you choose phone, select the date and hour to get conctact


WITNESS LIST
General Investigating & Ethics Committee
March 29, 2018 - 9:00 AM
Charge 4: Judicial Campaign Fairness Act
On:
Jones, Dave (Self; Clean Elections Texas)
Richards, Joanne (Texas Fair Courts Network)
Slayton, David (Texas Judicial Council)
Steusloff, Ian (Texas Ethics Commission)
Charge 7: SB 73 (85R) Implementation (Leave Policies/Procedures)
On:
Coleman, Rob (Comptroller of Public Accounts)
Crawford, Amanda (Office of the Attorney General)
Fallon-Brown, Katy (Legislative Budget Board)
Tai, Lara (State Auditor's Office)
Registering, but not testifying:
On:
Elliott, Verma (State Auditor's Office)
Young, John (State Auditor's Office)
1


Hi, As a C/ C++ novice was just wondering the process that I need to follow to make my custom ICONS to display on my emonglcd.
I understand the code displaying then but am curious of the hex code for each pixel, is an external programmed used or is there a simple solution to modify/ create your own.
Thanks Paul
Re: emonglcd icons
Hello Paul, the icons where designed by drsdre, the original forum thread is here http://openenergymonitor.org/emon/node/888 and blog post http://openenergymonitor.blogspot.co.uk/2012/07/emonglcd-icons-by-drsdre.html. Im not sure what program he used, maybe worth trying to get in contact with him
Re: emonglcd icons
It's not exactly obvious how these icons are coded so I knocked up a spreadsheet to help me when I made my divert icon.
You should be able to see the file using this link. If not I can post a copy.
Alternative link.
Re: emonglcd icons
Hi Brain, not wanting to seem like a fool I have looked at the spreadsheet for a while and the internet and have worked out the hex to decimal and where it fits in. :)
A few questions why in the icons.ino file is the code repeated 5 times while other icons only have the code once.and finally how do read/ write the code when you have an icon that doesn't fit neatly in the bit, byte 1-8, 0-7 format like some of the other icons in the icon.ino file.
Thanks Paul


You have 25 attempts to vote for the best products :
Select The Number Of Attempts To Get Your Best Products:


| Apache Struts 2 Documentation > Home > Guides > Contributors Guide > Creating and Signing a Distribution > Creating and Signing a Struts 2.3.x Distribution > Building Struts Annotations |
svn co https://svn.apache.org/repos/asf/struts/maven/trunk/struts-annotations struts-annotations
mvn release:prepare -Dusername=yourSvnUsername -Dpassword=yourSvnPassword
Accept the suggested tag name
| For some reason, when using svn client 1.5, the release plugin might fail to tag the release, if it fails, run: svn up -r head mvn release:prepare -Dresume |
mvn release:perform -Dusername=yourSvnUsername
Log in to Nexus and close the staging repository.
A sample template is at Sample announcements page (and DO wait for the 72 hours period)
If the Vote passed log in again to Nexus and promote the repository - it will be automatically synced with Maven Central Repository.


Description: {{currentListing.lease_description}}
County: {{currentListing.county}}
Year built: {{currentListing.year_built}}
Lot size: {{currentListing.lot_size_acres}} acres
Cross streets: {{currentListing.cross_streets}}
Location description: {{currentListing.location_description}}
Sale Price: ${{currentListing.sale_price_dollars}}
Sale Price: Please see the external listing.
External listing: {{currentListing.lease_listing_url}}


Based on reports to Noonsite from cruisers, petty theft from yachts is on the rise in the Caribbean in general. Cruisers should take basic safety precautions and use common sense when leaving the boat or going ashore at night. Dinghy thieves operate throughout the Caribbean and best advice is to place your dinghy on deck and chain it overnight.
Free Cruising Guides have completed the Caribbean Security Index (CSI) review of 2013 and updated the country ratings. The latest update of the CSI contains new information that may be important to you to “route around crime.”
See this report athttp://www.noonsite.com/General/Piracy/caribbean-crime-caribbean-security-index-csi-review-of-2013
Check the Noonsite Piracy Pages and the Caribbean Safety & Security Net for information on the current island situation.


Check out Blipshift's Black Flag Friday sale
New products and new holiday t-shirt designs are all on sale
by Autoblog StaffBlipshift is running "Black Flag Friday" and "Driver Monday" sales starting today. It's mostly focused on new products like clocks and wall banners but there are some new holiday t-shirt designs that are worth checking out. Socks are $12 per pair. Wall clocks are on sale for $35. Get phone cases for $25. And wall banners are currently $29.
The sale runs from Friday, 11/28 @ 11:59 PM ET thru Monday, 12/2 @ 11:59 PM ET.
Autoblog may earn from qualifying purchases.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Priorities.20of.20.C3.97.20and.20.E2.89.83.html ---
Hi, currently α × β ≃ γ
is parsed as α × (β ≃ γ)
while it seems more natural to interpret it as (α × β) ≃ γ
.
I realize this looks odd, but type constructors deliberately have low precedence. The ×
symbol has approximately the same precedence as ∧
, because they are used to put together basic types. This is below =
, which is near ≃
, and *
lies above that
Consider also α → β ≃ γ
That one is just clearly ambiguous and needs parentheses.
(because neither interpretation would be "dumb")
For →
this order makes sense because it is often used in the sense "implies".
α × (β ≃ γ)
also makes sense if you want to produce two things
then you should have defined a structure with named fields, so people didn't need to listen to .1
and .2
:-)
/me wonders if it's possible to require explicit parentheses in some cases.
Sadly no
although we can certainly try to impose a convention
Conventions don't help newbies.
There is no reason that ≃
has a precedence near =
.
≃
only acts on types, so it makes sense for it to have lower precedence than (some) type formers. This is not the case for =
, which should (almost) never be used on types, so it should have a precedence higher than all type formers.
In the Lean 2 HoTT library the precedence of ≃
was 25, compared to ×
having 35 and =
having 50.
https://github.com/leanprover/lean2/blob/master/hott/init/equiv.hlean#L304
https://github.com/leanprover/lean2/blob/master/hott/init/reserved_notation.hlean#L145-L208
This results in some nice statements, like
definition prod_equiv_prod [constructor] (f : A ≃ A') (g : B ≃ B') : A × B ≃ A' × B'
https://github.com/leanprover/lean2/blob/master/hott/types/prod.hlean#L215
I do not recall ever running into issues/confusion because of these conventions.
Note: →
did (and should) have a lower precedence than ≃
, and you still require parentheses for them. This can cause confusion, but that's no reason to have the (in my opinion) wrong order for ×
and ≃
. Example :
definition arrow_equiv_arrow_right' [constructor] (f1 : A → (B ≃ B')) : (A → B) ≃ (A → B')
(the parentheses in the type of f1
are only for readability)
https://github.com/leanprover/lean2/blob/master/hott/types/arrow.hlean#L51
I think we should change the precedence of ≃
to 25. I have also run against this issue before (maybe with two different tokens). This is only a mathlib change, not a core change.
Oh, if it's a mathlib-only change then go ahead. I agree that the precedence in equiv.lean feels consistently the wrong way around
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


$title
$base_url
Tags: $tags
Type: $type
Bookmarked:
$bookmarked
Archived:
$updated
Original
$base_url
Local Archive
archive/$timestamp/$domain
PDF
archive/$timestamp/output.pdf
Screenshot
archive/$timestamp/screenshot.png
HTML
archive/$timestamp/output.html
Archive.Org
web.archive.org/web/$base_url


Click here to learn more.
The Salesforce option
Click here to learn more.
Strictly tracking - does its job
Click here to learn more.
An all-in-one marketing platform. Save time and money using their enterprise level functionality that has been designed for ease of use.
Click here to learn more.
Campaign Monitor makes it easy to attract new subscribers, send them beautiful email newsletters and see stunning reports on the results.
Click here to learn more.
A top of the line conversion optimization tool.


|
My Project
|
Public Member Functions | |
| def | __init__ (self, argv, executable, shell, env, cwd) |
| def | run (self) |
| Public Member Functions inherited from pymake.process.Job | |
| def | __init__ (self) |
| def | notify (self, condition, result) |
| def | get_callback (self, condition) |
Public Attributes | |
| argv | |
| executable | |
| shell | |
| env | |
| cwd | |
| parentpid | |
| Public Attributes inherited from pymake.process.Job | |
| exitcode | |
| done | |
Additional Inherited Members | |
| Static Public Attributes inherited from pymake.process.Job | |
| bool | done = False |
A job that executes a command using subprocess.Popen.
Definition at line 309 of file process.py.


RT @jamesiry: Some days I think programming is hard. Other days...well, there are no other days.
3/2/2011, 1:33:01 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @jamesiry: Some days I think programming is hard. Other days...well, there are no other days.
3/2/2011, 1:33:01 PM
Favs: 0
Retweets: 0
link