LENT 5 TUESDAY
Alternative
Readings for the 5th Week
Entrance Antiphon
Wait for the Lord; be strong; be stouthearted, and wait for the Lord!
Collect
Grant us, we pray, O Lord, perseverance in obeying your will, that in our days the people dedicated to your service may grow in both merit and number. Through our Lord. . .
FIRST READING Numbers 21:4-9
In those days: From Mount Hor
the Hebrews set out by the way to the Red Sea, to go around the land of Edom;
and the people became impatient on the way. And the people spoke against God
and against Moses, "Why have you brought us up out of
The word of the Lord
RESPONSORIAL PSALM Psalm 102
R. O Lord, hear my prayer, and let my cry come unto you.
O LORD, hear my prayer,
and let my cry come to you.  Turn your ear towards me; on the day when I call, speedily answer me.
R. O Lord, hear my prayer,
and let my cry come unto you.
The nations shall fear the name of the LORD, and
all the earth's kings your glory. When the LORD shall build up Sion, he will appear in all his glory. Then he will turn to
the prayers of the helpless; he will not despise their prayers.
R. O Lord, hear my prayer,
and let my cry come unto you.
Let this be written for ages to come, that a people
yet unborn may praise the LORD; the LORD looked down from his holy place on
high, looked down form heaven to the earth, to hear the groans of the prisoners,
and free those condemned to die.
R. O Lord, hear my prayer,
and let my cry come unto you.
VERSE BEFORE THE GOSPEL
R. Glory and praise to you, O Christ.
The seed is the word of God, and the sower is Christ; all who find him will abide for ever.
R. Glory and praise to you, O Christ.
GOSPEL John 8:21-30
At that time: Jesus said to the Pharisees, "I go away, and you will
seek me and die in your sin; where I am going, you cannot come." Then said the Jews, "Will he kill himself, since he says,
'Where I am going, you cannot come'?" He said to them, "You
are from below, I am from above; you are of this world, I am not of this world.
 They said to him, "Who are
you?" Jesus said to them, "Even what I have told you from the
beginning. I have much to say about you and much to judge; but he who sent me
is true, and I declare to the world what I have heard from him." They did
not understand that he spoke to them of the Father. So Jesus said, "When
you have lifted up the Son of man, then you will know that I am he, and that I
do nothing on my own authority but speak thus as the Father taught me. And he
who sent me is with me; he has not left me alone, for I always do what is
pleasing to him." As he spoke thus, many believed in him.
The Gospel of the Lord
Prayer over the Offerings
We offer you, O Lord, the sacrifice of conciliation, that, being moved to compassion, you may both pardon our offences and direct our wavering hearts. Through Christ our Lord.
Preface of Lent,
Communion Antiphon
When I am lifted up from the earth, I will draw all to myself, says the Lord
Prayer after Communion
Grant, we pray, almighty God, that ever seeking what is divine, we may always be worthy to approach these heavenly gifts. Through Christ our Lord.
Prayer over the People
O God, who choose to show mercy not anger to those who hope in you, grant that your faithful may weep, as they should, for the evil they have done, and so merit the grace of your consolation. Through Christ our Lord.


Answer these questions to find out which character you would be in the batman universe!
Joker!
Batman!
The Riddler!


--- layout: post date: 2012-05-19 time: "09:00:00" authors: ["Greg Wilson"] title: Space at Upcoming Events tags: ["Bootcamps"] ---
Here's how registration is going for upcoming events:
| University of British Columbia | May 22-23 | 39/40 |
| Johns Hopkins University | June 18-19 | 7/20 |
| Paris | June 28-29 | 9/25 |
| Boston | July 9-10 | 23/40 |
| University of Waterloo | July 12-13 | 1/40 |
| Halifax | July 16-17 | 8/40 |
| University of Toronto (Scarborough) | July 19-20 | 14/40 |
If you'd like to join us, there's still plenty of space—and if you have friends who could use some training in basic software skills, please point them our way.


Papers in Recommender System
For the convenience of reading, I collect some basic and important papers about recommender system.
Here is the main conferences within recommender system and some categories which I think is interesting:
- KDD the community for data mining, data science and analytics.
- ICDM draws researchers and application developers from a wide range of data mining related areas such as statistics, machine learning, pattern recognition, databases and data warehousing, data visualization, knowledge-based systems, and high performance computing.
- AAAI promotes research in, and responsible use of, artificial intelligence.
- WWW provides the world a premier forum for discussion and debate about the evolution of the Web, the standardization of its associated technologies, and the impact of those technologies on society and culture.
- NIPS has a responsibility to provide an inclusive and welcoming environment for everyone in the fields of AI and machine learning.
- ICML is the leading international machine learning conference and is supported by the International Machine Learning Society (IMLS).
- CIKM provides an international forum for presentation and discussion of research on information and knowledge management, as well as recent advances on data and knowledge bases.
- SIGIR is the Association for Computing Machinery’s Special Interest Group on Information Retrieval. Since 1963, we have promoted research, development and education in the area of search and other information access technologies.
- Recsys is the most famous conference in recommender system.
- Cold Start
- 2017 TKDE
- 2017 IS
- 2017 AAAI
- 2017 ACL
- 2017 IJCAI
- 2017 Multimedia
- 2017 NIPS
- 2017 Recsys
- 2017 WWW
- Survey
- Distribution
- Deep learning
- 2017 ACML
- PHD: A Probabilistic Model of Hybrid Deep Collaborative Filtering for Recommender Systems
- Code Link: https://github.com/daicoolb/PHDMF
- PHD: A Probabilistic Model of Hybrid Deep Collaborative Filtering for Recommender Systems
- 2017 Recsys
- 2017 CORR
- 2017 IJCAI
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction.
- Code Link: https://github.com/Leavingseason/OpenLearning4DeepRecsys
- Deep Matrix Factorization Models for Recommender Systems
- Hashtag Recommendation for Multimodal Microblog Using Co-Attention Network
- Cross-Domain Recommendation: An Embedding and Mapping Approach
- Tag-Aware Personalized Recommendation Using a Hybrid Deep Model
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction.
- 2017 WWW
- 2017 WSDM
- 2017 KDD
- Collaborative Variational Autoencoder for Recommender Systems
- Dynamic Attention Deep Model for Article Recommendation by Learning Human Editors Demonstration
- A Hybrid Framework for Text Modeling with Convolutional RNN
- Deep Embedding Forest: Forest-based Serving with Deep Embedding Features
- Embedding-based News Recommendation for Millions of Users
- 2017 SIGIR
- 2016 Recsys
- Convolutional Matrix Factorization for Document Context-Aware Recommendation by Donghyun Kim, Chanyoung Park, Jinoh Oh, Seungyong Lee, Hwanjo Yu
- Code Link: https://github.com/cartopy/ConvMF
- Ask the GRU: Multi-task Learning for Deep Text Recommendations by T Bansal
- Deep Neural Networks for YouTube Recommendations by Paul Covington
- Meta-Prod2Vec - Product Embeddings Using Side-Information for Recommendation by Flavian Vasile
- Convolutional Matrix Factorization for Document Context-Aware Recommendation by Donghyun Kim, Chanyoung Park, Jinoh Oh, Seungyong Lee, Hwanjo Yu
- 2016 JMLR
- 2016 ACML
- 2016 AAAI
- 2016 WSDM Collaborative Denoising Auto-Encoders for Top-N Recommender Systems by Y Wu
- 2016 DLRS Wide & Deep Learning for Recommender Systems by Heng-Tze Cheng
- 2016 Personal Note A Survey and Critique of Deep Learning on Recommender Systems by Lei Zheng
- 2016 CORR
- 2015 Recsys
- 2015 WWW
- 2015 CIKM
- 2013 NIPS
- 2007 ICML
- 2017 ACML
- Talks
- etc
Engine in Recommender System
In this session, I have collected some useful recommeder system engine:
- Mosaic Mosaic Films is a demo of the recommendationRaccoon engine built on top of Node.js.
- Contenct Engine This is a production-ready, but very simple, content-based recommendation engine that computes similar items based on text descriptions.
- Spark Engine This tutorial shows how to run the code explained in the solution paper Recommendation Engine on Google Cloud Platform.
- Spring Boost How to build a recommendation engine with Spring Boot, Aerospike and MongoDB.
- Ger Providing good recommendations can get greater user engagement and provide an opportunity to add value that would otherwise not exist.
- Crab Crab as known as scikits.recommender is a Python framework for building recommender engines integrated with the world of scientific Python packages (numpy, scipy, matplotlib).
Framework in Recommender System
In this session, I have collected some useful recommender system algorithm framework:
- Surprise Surprise is a Python scikit building and analyzing recommender systems.
- LightFM LightFM is a Python implementation of a number of popular recommendation algorithms for both implicit and explicit feedback, including efficient implementation of BPR and WARP ranking losses.
- SpotLight Spotlight uses PyTorch to build both deep and shallow recommender models.
- Python-Recsys A python library for implementing a recommender system.
- LibRec A java library for the state-of-the-art algorithms in recommeder sytem.
- SparkMovieLens A scalable on-line movie recommender using Spark and Flask.
- Elasticsearch Building a Recommender with Apache Spark & Elasticsearch.


Public Member Functions | |
| def | get_clustering_algorithm_class |
| This function returns a dictionary that links a clustering algorithm type with its class creator. | |
| def | __init__ |
| Class creator. | |
| def | run |
| Executes the whole exploration pipeline: | |
| def | schedule_algorithm |
| Structures all the info needed for an algorithm+parameters execution and pushes it into the scheduling queue. | |
| def | generate_clustering_info |
| It builds the clustering_info structures by parsing the parameters. | |
| def | build_algorithm |
| Creates an algorithm with type 'algorithm_type'. | |
Public Attributes | |
| matrix_handler | |
| workspace_handler | |
| clustering_parameters | |
| evaluation_parameters | |
| current_clustering_id | |
| parameters_generator | |
| scheduler |
Definition at line 32 of file clusteringExplorator.py.
| def pyproct.protocol.exploration.clusteringExplorator.ClusteringExplorer.__init__ | ( | self, | |
| parameters, | |||
| matrix_handler, | |||
| workspace_handler, | |||
| scheduler, | |||
| parameters_generator, | |||
observer = None |
|||
| ) |
Class creator.
| parameters,: | Script parameters. |
| matrix_handler,: | The matrix handler MatrixHandler instance) containing the distance matrix. |
| workspace_handler,: | The workspace handler containing paths. |
| scheduler,: | An instance of a Scheduler like object |
| parameters_generator,: | An instance of AlgorithmRunParametersGenerator, in charge of generating automatically the parameters needed for the exploration if those are not given. |
| observer,: | The observer object for this Observable. |
Definition at line 67 of file clusteringExplorator.py.
| def pyproct.protocol.exploration.clusteringExplorator.ClusteringExplorer.build_algorithm | ( | self, | |
| algorithm_type | |||
| ) |
Creates an algorithm with type 'algorithm_type'.
| algorithm_type,: | The algorithm type. |
Definition at line 191 of file clusteringExplorator.py.
| def pyproct.protocol.exploration.clusteringExplorator.ClusteringExplorer.generate_clustering_info | ( | self, | |
| algorithm_type, | |||
| clustering_parameters, | |||
clusterings = [] |
|||
| ) |
It builds the clustering_info structures by parsing the parameters.
| algorithm_type,: | The algorithm type of the clustering algorithm we are working with. |
| clustering_parameters,: | The parameters we are going to try with this algorithm. |
| clusterings,: | In the case that the parameter generation also created the clusterings, this argument will hold them. Clustering parameters and clusterings must be correlated so that 'clustering_parameters[i]' where the parameters used to get 'clustering[i]'. |
Definition at line 166 of file clusteringExplorator.py.
| def pyproct.protocol.exploration.clusteringExplorator.ClusteringExplorer.get_clustering_algorithm_class | ( | cls | ) |
This function returns a dictionary that links a clustering algorithm type with its class creator.
Definition at line 40 of file clusteringExplorator.py.
Executes the whole exploration pipeline:
Definition at line 88 of file clusteringExplorator.py.
| def pyproct.protocol.exploration.clusteringExplorator.ClusteringExplorer.schedule_algorithm | ( | self, | |
| algorithm_type | |||
| ) |
Structures all the info needed for an algorithm+parameters execution and pushes it into the scheduling queue.
| algorithm_type,: | The algorithm type of the clustering algorithm we are working with. |
Definition at line 113 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.
Definition at line 67 of file clusteringExplorator.py.


The goal of this class is to implement a sailboat simulation based on the state equations proposed in "Mobile Robotics, Luc Jaulin, 2015."
You are given a copy of this book and a ready to import simulation environment available at:Sailboat github repository
The environment contains


Monster loves human flesh. But monster loves sausages too.
Click to play next level
Click to try again
Click to play again


--- layout: page status: publish published: true title: Cemeteries author: display_name: Jessie Pechmann login: jpechmann email<EMAIL_ADDRESS>url: '' author_login: jpechmann author_email<EMAIL_ADDRESS>wordpress_id: 9908 wordpress_url: http://gis.utah.gov/?page_id=9908 date: '2012-06-18 10:56:49 -0600' date_gmt: '2012-06-18 16:56:49 -0600' categories: [] tags: - sgid - Data - utah - gis - map - mapping - dataset - download - shapefile - geodatabase - metadata - shp - gdb - digital - geographic - information - database - state - statewide - cemetery - cemeteries - burial - history - utah state history - tombstone - grave ---
Data Type: GIS Data Layer
Steward(s): AGRC
Abstract:
Society.Cemeteries contains 428 cemeteries and their locations in Utah. The main source of this dataset is the Utah State History Research Centers Cemetery and Burial Database. Some of the cemeteries in this database are inactive, and may be in poor condition.
Usage: Cemetery information contains year of first burial, number of burials, contact and owner information, and directions.
Last Update: 2011
Contact<EMAIL_ADDRESS>Links: Utah Cemeteries and Burials Database


A B C D E F G H I J L M N O P R S T U V W Y
All Classes All Packages
All Classes All Packages
All Classes All Packages
I
- initCommunityCards() - Method in class BL.squares.BCommunityChestSquare
-
This method add community card deck arraylist.
- initInstructionObject() - Method in class DAL.DJSONReader
-
Initialises DInstruction instance using given JSON File.
- initLuckCards() - Method in class BL.squares.BLuckSquare
-
This method add luck card deck in arraylist.
- initPlayersByLettingThemRollingDiceAndPutInList(DInstruction) - Method in class BL.BMonopolyGame
-
Takes initial data of the game and create players, after that to arrange order of players, makes them roll dice
- initSquares() - Method in class BL.BBoard
-
Create an ArrayList of Squares.
- instance - Static variable in class Controller.CInstruction
- instance - Static variable in class Controller.CMonopolyGame
- instance - Static variable in class DAL.DInstruction
- instance - Static variable in class spring.factory.BeanCreator
- instance - Static variable in class spring.log.Logger
- instance - Static variable in class spring.log.MessageFormatter
- instance - Static variable in class UI.UITerminal
- INSTRUCTION_FILENAME - Static variable in class Controller.Main
- instructionInstance - Variable in class BL.BBoard
- isAbleToBuilt(BPropertySquare) - Method in class BL.BPlayer
- isAbleToBuy(BPropertySquare) - Method in class BL.BPlayer
-
Checks whether player can satisfy squares price.
- isArrested - Variable in class DAL.DPlayer
- isArrested() - Method in class DAL.DPlayer
- isBankrupted() - Method in class DAL.DPlayer
- isBankrupted() - Method in class DAL.DPlayerTest
- isPlayerBankrupted() - Method in class BL.BPlayer
-
Checks whether player bankrupted or not.
- isPlayerCrossTheGoSquare() - Method in class BL.BPlayer
-
Checks whether player pass the start square.
All Classes All Packages


Your browser does not support the video tag. :(
Loading
Loop
Playback speed
0.25
0.5
Normal
1.5
2
4
About Nideo video player


Jasper's Likes and Dislikes
Toys
(in order)
Likes
Gavel
Blanket
Court Transcripts
Frisbee
Check out my
Toy Wishlist
!
Dislikes
Leash
Closed doors
Laws
(in no particular order)
Likes
Off-leash area expansion
Dog park ordinances
Tennis ball tax exemption
Playdates (
schedule a playdate with me
!)
Dislikes
Keep off the grass
No peeing on trees


{% extends 'base.html' %} {% block title %}{{ block.super }}: Overview{% endblock %} {% block progress %}{% include "partials/dashnav.html" with active_page=active_page %}{% endblock %} {% block container_col %}dashboard-content{% endblock %} {% block content %}
Once you have submitted your Final Filing of documents, you can return to this page and get instructions for the next steps to complete your filing.
Please return to this page once you have completed the Final Filing step.
{% else %} {% if how_to_file == 'Online' %}You have successfully completed filing online.
Once your filing has been reviewed by the {% include "partials/tooltips/court_registry.html" %}, you will receive an e-mail confirmation of your filing. Please keep your {% include "partials/tooltips/court_file_number.html" %} for your records and use it for any additional filings.
You will receive e-mails from the system as your filing is processed by the Court Registry. The status of your court filing is shown below:
Current Filing Status:
You can view the package of all documents you have submitted in this filing.
The court registry staff will check your documents to make sure they've been completed properly.
If the court registry is satisfied that your documents are in order, they will stamp the documents with the date, the court seal, and a file number.
You now have a divorce file open in the Supreme Court. You are not yet divorced, see Next Steps below.
Once your divorce has been reviewed, you will receive an e-mail from the court registry with information about the next steps. If your divorce is approved, you can move to the next step and order a certificate of divorce.
If you don’t hear back within 30 days from the court registry, please contact CSO Online Support at<EMAIL_ADDRESS>and include your {% include "partials/tooltips/court_file_number.html" %} / Filing Location or {% include "partials/tooltips/online_package_number.html" %}.
I have manually submitted all documents (except the Certificate of Divorce) at the registry counter:
I have submitted all documents online (except the Certificate of Divorce):


The Rough N' Tumble Dating Engine
Ever wonder what is really under the hood in a dating website? Well they're not telling so I decided to build my own. Based on scientifically-proven science backed up by science, I can find your perfect match after you answer just 3 simple yes or no questions! Don't believe me. Neither do I? But here's a fun prototype anyway.
I built a class that creates user profiles and stores their information. The class has an instance method that allows each user to check their compatability based on other people's answers to the three questions. It then returns a percentage value of how compatible you are with each user!
It's still rather rough, but you can still have a pretty fun time. Feel free to test it out!
#Dating Class Object @@profiles = Hash.new(Array.new) class Date def initialize p "Type a username." @username = gets.chomp p "Answers these three questions that scientifically proven to help identify your compatability with a partner."  The rest is up to you." p @matches end end


--- layout: page title: About header-img: "img/about-bg.png" ---
I am a 19 year old from Utah that likes to learn as much as can!


We start by identifying all the images and filling in the blanks. As hinted by the title, these are all various patterns in Conway's Game of Life. Most of them are considered common patterns and listed on, e.g. bottom of the Catagolue. (The one exception is the rare snake with feather.)
| Image | Word | Index | Letter |
|---|---|---|---|
| Pond | 4 | D | |
| Mango | 5 | O | |
| Loaf | 4 | F | |
| Scorpion | 3 | O | |
| Tub | 2 | U | |
| Eater 1 | 5 | R | |
| Long boat | 4 | G | |
| Block | 2 | L | |
| Snake with feather | 7 | I | |
| Toad | 4 | D | |
| Beehive | 2 | E | |
| Pulsar | 6 | R | |
| Shillelagh | 1 | S | |
| Half-bakery | 10 | Y | |
| Blinker | 4 | N | |
| Boat | 4 | T | |
| Ship | 2 | H | |
| Ship-tie | 7 | E | |
| Moose antlers | 4 | S | |
| Paperclip | 8 | I | |
| Integral sign | 9 | S |
This gives us the cluephrase DO FOUR GLIDER SYNTHESIS. This means we should fill in the red squares in the images at the bottom to get gliders and see what hapens when they collide. The two corner cells of the glider are filled in, and as it turns out, there is exactly one way to orient the glider so that those corner squares match up and the glider flies towards the center of the pattern.
Upon running the simulator one finds that each collision generates an ash pattern, and (as hinted again by the title), two outgoing gliders or spaceships escaping from the debris. The directions in which they escape give semaphore letters. The images at the bottom are sorted in alphabetical order.
The images in the final six-by-six grid are representations of the ashes using the cartoons we identified previously. Pairing the ashes with the corresponding cartoon images yields the following grid:
| E | W | E | |||||
| L | I | X | I | ||||
| I | L | Y | |||||
| E | I | L | S | ||||
| I | L | E | N | T | |||
| Y | S | T | S | ||||
Using the small images as additional clues for the words, the grid can then be filled as a symmetric word square:
| F | E | W | E | S | T | ||
| E | L | I | X | I | R | ||
| W | I | L | I | L | Y | ||
| E | X | I | L | E | S | ||
| S | I | L | E | N | T | ||
| T | R | Y | S | T | S | ||
The final step is to run the grid one more step, as indicated by the only piece of unused information, the t+1 in the lower-left corner. So running the grey cells one more generation gives the following grid:
| F | E | W | E | S | T | ||
| E | L | I | X | I | R | ||
| W | I | L | I | L | Y | ||
| E | X | I | L | E | S | ||
| S | I | L | E | N | T | ||
| T | R | Y | S | T | S | ||
The letters in the living cells inside the grid now spell FLYER, the final answer.


From his vantage point, the person in the sketch can see the cellphone tower, but not the log cabin. The cellphone tower and the person are said to be intervisible. Intervisibility is when two points can be seen from one another. A person standing outside the log cabin would not be able to see the man because of the hill in between them. Despite its height, they would probably not be able to see the cellphone tower either because of the convex slope between the two points.
Using spot heights and trig. beacons on topographic maps helps to determine intervisibilty, but sometimes a cross-section needs to be drawn to determine whether there are clear sight lines between two points on the map. At first glance, Points A and B on the sketch below appear to be intervisible, but on the cross-section between these two points we can see that the waterfall prevents intervisibility.


Test Inputs (JSON DATA)
- Description
- Supported <input> types
- Text
- Color
- Date
- Month
- Url
- Time
- Configuration Options
- How to use ?
Input Fields allow users to enter inputs into a UI. They typically appear in forms and dialogs..
Use this Selector in your component to include Badge Component.
<kdi-app-input [type]="input.type" [value]="input.value" [size]="input.size" [placeholder]="input.placeholder" [label]="input.label"> </kdi-app-input>
Follow the following format to use it.
<kdi-app-input [type]="input.type" [value]="input.value" [size]="input.size" [placeholder]="input.placeholder" [label]="input.label"> </kdi-app-input> We can used like below: <kdi-app-input [type]="color" [value]="#f00" [size]="base" [placeholder]="color code" [label]="Color Code"> </kdi-app-input>
For the list of "type"s available refer to KDI design system.


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/quotient_group.2Einc.html ---
Is stuff like this considered useful for mathlib? In other words, should I PR this? @Chris Hughes @Mario Carneiro
import group_theory.quotient_group universes u₁ u₂ u₃ open is_group_hom quotient_group function variables {G₁ : Type u₁} [group G₁] variables {G₂ : Type u₂} [group G₂] variables (φ : G₁ → G₂) [is_group_hom φ] def inc : quotient (ker φ) → G₂ := lift _ φ $ λ g, (mem_ker φ).mp lemma inc_mk (g : G₁) : (inc φ) g = φ g := lift_mk _ _ _ lemma inc_mk' (g : G₁) : (inc φ) (mk g) = φ g := lift_mk' _ _ _ instance : is_group_hom (inc φ) := quotient_group.is_group_hom_quotient_lift _ _ _ lemma inc_injective : injective (inc φ) := assume a b, quotient.induction_on₂' a b $ assume a b (h : φ a = φ b), quotient.sound' $ show a⁻¹ * b ∈ ker φ, by rw [mem_ker φ, is_group_hom.mul φ, ← h, is_group_hom.inv φ, inv_mul_self] section variables {N₁ : set G₁} [normal_subgroup N₁] variables {N₂ : set G₂} [normal_subgroup N₂] instance map_is_group_hom (h : N₁ ⊆ φ ⁻¹' N₂) : is_group_hom (map _ _ φ h) := quotient_group.is_group_hom_quotient_lift _ _ _ end
looks good to me
why is it called inc
?
why is it called
inc
?
for "inclusion"
this doesn't look like an inclusion to me
to me inclusion = subtype.val
and this is a quotient not a subtype
I would just call it lift_ker
or something
Ok, so how should this called?
(It's a canonical injective map... I'm used to calling those inclusion...)
actually ker_lift
is better
lift_ker
would be a theorem about the kernel of lift
Ok, I will prepare a PR
I have this vague memory that this stuff is already there...
line 82 of group_theory/quotient_group.lean maybe
injectivity is line 127
https://github.com/leanprover-community/mathlib/blob/71a7e1c497336b2eeae75cc8a54bb4ada32ca0f7/src/group_theory/quotient_group.lean#L127 and surrounding stuff
Aah, good catch. So maybe it doesn't even deserve its own name...
I wouldn't trust the naming conventions of the people who wrote that file ;-)
In fact IIRC I just took quotient_module.lean
and ported it to groups, initially, and quotient_module.lean
was written by Johannes...wait...where did _quotient_module.lean go? I was going to say "you should look there".
From https://github.com/leanprover-community/mathlib/blob/master/docs/theories/relations.md : "A nice mathematical example can be found in linear_algebra/quotient_module". Hmm...
How do I do "go back to Sept 2018" in git/github?
[to find the definition I was talking about so I can search for it to find out where it went]
Oh cool, I can switch to the commit when relations.md was added
I wouldn't trust the naming conventions of the people who wrote that file ;-)
Are we talking about people who use "lifs" to mean "descends"?
I don't remember if we already asked: if this lift
crazyness a standard for all proof assistants, or is it only in Lean?
I don't know any other system that uses this particular terminology, but it also makes sense to me
It's called descent in mathematics
lift
means construct a function via the universal property
It's an entire subject area
descent means construct a function on a quotient from a function on the top which is symmetric
I think this is actually called lift in many contexts, although I wouldn't be surprised if for quotients the terminology is different
humans are inconsistent like that
https://mathoverflow.net/questions/22032/what-is-descent-theory
I guess mathematicians expect lift
for the universal property of a limit, and desc
for the universal property of a colimit. Exactly the way we have it currently in category_theory/*
Kevin, your link is too specialized, we are talking about the very elementary notion of function induced on quotients
If that's how this works I would have preferred colift
My link is super-general -- we have a morphism Y -> X in a category and we want some "object defined on Y" (e.g. a function or predicate) to descend to an "object defined on X".
That sounds like map
to me
that's lift in this world, isn't it?
We draw this like so:
Y | v X
and hence stuff descends from Y
to X
.
What makes this mathlib terminology really confusing is that we also use lift
in math, especially to denote the opposite operation. If a function is defined on a quotient, we can try to lift it to the object before quotienting
Descent theory gives you conditions on the structure defined on Y to descend to an structure defined on X
map
and lift
aren't the same in this world
Johan is right -- mathematicians draw the quotient map as a downwards arrow typically.
and all the terminology is led by that picture
roughly speaking map : (X -> Y) -> F X -> F Y
and lift : (X -> Y) -> F X -> Y
Mario I think you have the wrong X and Y
Y = X / ~
Johan is right, this terminology is tied to the way we draw diagrams. For instance, if we have a covering map Y -> X, and a map from Z to X, lifting this map to Y means finding an arrow from lower left to upper right in:
Y | V Z -> X
lift : (X -> Z) -> (Y -> Z)
so we descend the map X -> Z to a map Y -> Z
In my example F
is quotient
I'm not saying it's a functor or anything
that's just the general shape of the definition
If "lift" is not some standard CS terminology then it's hard for us to see why you're using it when it is in direct contradiction with the standard maths terminology
It's standard lean terminology
I know, and this is unfortunate.
That's what I'm saying.
In this sentence, Lean means Mario, right?
quotient.lift is in core
No, quot.lift
predates me significantly
I have no idea what the standard math terminology is but I like to have a standard and stick to it, and this works as good as any
I think the math terminology for this is inconsistent
based on what you've all said
How can "always call it descent" be inconsistent?
because it's not always called descent
I don't see how this "works as good as any": it confuses every mathematician and is not especially illuminating to computer scientists
It's not map, you've misunderstood what I'm saying
what we call descent is what you call quot.lift.
I get that
and we were first and there are far more of us
so it's unfortunate
but you can lift more things than just quotients. What about limits and pullbacks and products?
and co stuff
I am not clear what you mean
Is there limit.lift?
I am specifically talking about quotients.
I'm not, that's my point
What is an example of usage of lift outside the quotient setting?
I want a standard terminology across domains
So what is an example of usage of lift outside the quotient setting?
the map into a limit?
We have maps from A to X_i and we deduce a map from A to X, the limit of the X_i?
Is this called lift in Lean?
That's called "universal property" in maths
I don't recall lift being used for this notion in Lean. My issue is specifically with the naming of quotient.lift.
From padic
stuff:
- Fix
p
and[prime p]
.padic_rationals.lean
definesℚ_[p]
as the Cauchy completion of
ℚ
wrtpadic_norm p
using the same mechanisms asdata/real/basic.lean
. It is immediately a
field. The norm lifts topadic_norm_e : ℚ_[p] → ℚ
, which is cast toℝ
and gives us a
normed_field
instance.ℚ_[p]
is shown to be Cauchy complete.
Lifts here is used to mean "extend to this free construction"
which I am arguing should be callde quotient.descent
Mario, I would really argue for have a distinction between the limit/colimit terminology. So maps into a limit are called lift
, we wont complain.
The whole difference is whether you are mapping into or out of something.

That norm extends to padic_norm_e
And even if you would say that the "norm descends to padic_norm_e
" then it would be less confusing to mathematicians
lift
is used in a few places to mean something more like map, i.e. ulift
and plift
, preorder.lift
, etc
So we should rename those (-;
limit
does actually have a field called lift
And colimit
has a field called desc
(I'm just looking at current uses in lean right now)
Are you just looking through the entire source code for lifts to justify your position? :-)
Then if that's all you can come up with, I think your argument is very weak.
I want to find out if it is actually being used in a consistent way
@Mario Carneiro We are very happy with limit.lift
. The point is that quotient.lift
goes in the opposite direction.
Universe lifting always sounded sensible to me.
I always imagine the bigger universe as sitting over the smaller one
Sure
I agree, I'm not advocating any changes there
but it's an interesting thing to note how terminology can clash
so you're advocating inconsistent usage of lift?
as opposed to a sensible renaming of quotient.lift?
quot.lift
isn't just in core; it's literally baked into lean
mathlib can still define an alias, right?
And when the great time of Lean 4 comes, we'll ask very politely.
Actually you'd best fix it before lean 4
Unfortunately the real world is calling me. But at this point I did not yet see a coherent argument for the quot.lift name. Mario -- would Jeremy have an opinion on this issue?
you can fix it now, when lean 4 comes around it will get un-fixed
Not if Leo takes our side
I had always assumed that lift was a CS standard
I don't know what Jeremy's position is on this
but now I discover that it's not I think there's a case for arguing for a change.
I just came here and learned the language
but I do think that we should strive for consistency regardless
Yes, let's consistently use "descends" instead of "lifts"
again, across domains consistency
I keep staring at the pictures in https://en.wikipedia.org/wiki/Limit_(category_theory) to see the geometric intuition, but all the arrows go down
in both diagrams
@Mario Carneiro Take the limit diagram: https://upload.wikimedia.org/wikipedia/commons/8/81/Functor_cone_%28extended%29.svg
To define the map from N
to L
you have to lift
elements from F(X)
upwards to L
.
Take the colimit diagram: https://upload.wikimedia.org/wikipedia/commons/5/5a/Functor_co-cone_%28extended%29.svg
To define the map from L
to N
you have to descend
elements from F(X)
downwards to L
.
Like I said, it is really a matter of whether you are mapping into, or out of something.
But you are making a function from L, so elements of L have to lift(?) to elements of F(X) to be mapped
Do you agree that it is useful to call cokernels what they are? Or would you rather call them kernels? Similar for (co)product, and generally for (co)limit?
Anyway, most of this is just history... for ages we have called limity things lift
and colimity things desc
, so it is confusing for us to see the two names being merged. They are dual things in our heads.
And not only in our heads, also in Lean.
Its just that the Lean-terminology doesn't reflect this duality.
I think having a different name for product and coproduct is important because they both exist and are different
I'm reading all that while typing explanation for my students about how Lean means ⊊
when it writes ⊂
, and means ⊂
when it writes ⊆
. Sometimes life is difficult...
but I would be okay with product.universal_thing
and coproduct.universal_thing
rather than coproduct.couniversal_cothing
eww, you're one of those people? Nonstrict ⊂
should die
I never saw ⊂
meaning strict inclusion before using Lean
And it took me a while to realize what was Lean's problem, especially when VScode happily uses \subset
to trigger ⊂
I grant that this is a dumb choice of abbreviation
Hmm if limit.lift
were called limit.ump
(for universal mapping property) and colimit.desc
were called colimit.ump
, I don't think I would complain, and I would also not find it confusing.
Similarly quot.ump
or quotient.ump
doesn't cause me any cognitive dissonance. It's way way better than quot.lift
.
Is this an international issue? Do you actually use ⊆ everywhere in the US?
Johan, how do you denote set inclusion in the Netherlands and in Germany?
Most neutral sources will just use ⊊
and ⊆
, but among choices for the meaning of ⊂
one is obviously better
I think there is some historical tendency for ⊂
as nonstrict, but like I said I'm happy to let it pass
Hehe, we're also nonstrict :see_no_evil:
I think ⊆
is more common than ⊂
around here to denote nonstrict subset, probably because people recognize the ambiguity and don't want to engage, which is fine
Do you actually write ⊆ on blackboards?
I certainly do
Do you write a line under the <=
symbol?
Why would I do that?
@Patrick Massot I think Mario means that you wouldn't allow yourself to write 1 < 1
, but you do allow X \subset X
.
You want your students to write 1 ≤ 1
.
Oh I see! I thought this <=
was ascii art for an implication from right to left
In France we use ⩽
instead of the ugly ≤
I'm arriving a little bit too late, but I just want to add that to me also quot.lift
is crazy, and if there's a possibility ot change it I will support it very strongly.
In geometry, if tilde M
is the universal cover of M
, then a function M -> R
lifts to a function tildeM -> R
(by composing by the canonical projection), and a function tilde M -> R
which is constant on fibers descends to a function M -> R
. This corresponds to the picture that tildeM
sits above M
.
wait, that sounds the opposite of johan's description
I thought (X -> Y) -> F X -> Y
is supposed to be called descent
no it's not
gah!
It depends on F
.
and it's the same example that I gave (when I fighted for 2 minutes before getting the ascii art right)
double gah
Let me find my ascii art again
If F X
is bigger than X
, then its sits above X
and you are lifting things. If it is smaller (a quotient, say), it sits below X
and you have descends.
Sorry, my example was not exactly the same, but it's consistent
\tilde M | V M -> R
I'm reading all that while typing explanation for my students about how Lean means
⊊
when it writes⊂
, and means⊂
when it writes⊆
. Sometimes life is difficult...
This is country-dependent I think, like how in the UK nat has no zero. In my papers I never write nat or ⊂
as I have plenty of evidence that mathematicians use them in more than one way so I regard them as overloaded and hence dangerous. I use ⊊
and ⊆
only.
I keep staring at the pictures in https://en.wikipedia.org/wiki/Limit_(category_theory) to see the geometric intuition, but all the arrows go down
As a general rule, bigger things go on top. But when you write the diagram representing the universal property, you just put the non-universal object in the place where the diagram becomes easiest to draw.
I never saw
⊂
meaning strict inclusion before using Lean
But you saw <
meaning strict inequality, right? In Jantzen's book on algebraic groups he uses ⊂
to mean strict inclusion, and in John Thompson's group theory lectures I attended as an undergraduate he also used this convention. Maybe it's a US thing?
In geometry, if
tilde M
is the universal cover ofM
...
You see -- this notion of the big object lying above the smaller object is ubiquitous throughout maths. This is exactly why it's jarring for mathematicians to "lift" a predicate on the top to a predicate on the bottom.
[sorry, I was just catching up]
Okay, so if I have a big object Y
over a small object X
, do we say that a map X -> Z
lifts to Y -> Z
? What about lifting Z -> X
to Z -> Y
?
If I am teaching Galois theory and I have the field extension Q(sqrt(2)) : Q, I write the Q(sqrt(2)) on top and the map goes upwards. If I am doing scheme theory and I have Spec(Q(sqrt(2)) / Spec(Q) then I write Spec(Q(sqrt(2)) on the top and the map goes downwards. I would pronounce both ":" and "/" as "over", meaning that the object on the left is over the object on the right, even though they correspond to different kind of maps. The "over / cover / descent / lift" terminology is ubiquitous and is all designed to represent the fact that the bigger object is on top of the smaller one.
Okay, so if I have a big object
Y
over a small objectX
, do we say that a mapX -> Z
lifts toY -> Z
?
I think I would say that X -> Z induces a map Y -> Z here.
The mathematical notation is consistent with the general convention that bigger things go on top.
The concept of "lift" in maths is covering several distinct concepts in type theory here.
So we cannot use "lift" for all of them. But our point is that you guys have chosen to use lift for something we would never use "lift" for.
Check out "lifting property" here: https://en.wikipedia.org/wiki/Projective_module . We have a surjection N -> M so mathematicians instinctively write N above M because N is bigger. We then lift a map P -> M to P -> N.
Okay, so if I have a big object
Y
over a small objectX
, do we say that a mapX -> Z
lifts toY -> Z
? What about liftingZ -> X
toZ -> Y
?
The map Y → Z
is just composition, so we don't call it a lift... it's too cheap.
But going from Z → X
to Z → Y
is exactly what lifting is. And you need to work to make it happen.
No, assume that the map goes in whatever direction makes this lifty thing not composition
You have Y
over X
, so typically Y → X
, and then X → Z
will give you a map Y → Z
by composition.
But if you get Z → X
, then you could ask for a lift Z → Y
. And this is typically a non-trivial condition/fact.
you might have Y
being the free object over X
If the big thing Y is on top of the small thing X but there's an injection X -> Y, then one could ask if a map X -> Z extends to a map Y -> Z
I guess one could argue that this is also lifting a map.
The term is used vaguely in mathematics I suspect.
Descent theory is an actual thing though
https://en.wikipedia.org/wiki/Descent_(mathematics)
Right at the top -- "we think of Y as 'above' X"
Of course it says that, "descent" is in the name so they have to motivate the picture
Yes, and when we want to PR this stuff some decade in the future...
We will get a comment "please change this to lift
-theory"
it will be called descent of course
actually I'm not sure there is anything to name
we don't collect theories except perhaps in the naming of files
most of the names have to do with particular operations
The descent page doesn't really have anything formalizable
it seems more like a setting, in the literary sense
A historical note: the use of the term "lift" in Lean comes from this paper: http://www.cs.nott.ac.uk/~psztxa/publ/defquotients.pdf. I asked Thorsten about it, and he said there was no deep reason for the choice. He wasn't aware of the mathematical terminology, and said they chose the term in conformance with functional programming. (For example, Google just found this for me: https://stackoverflow.com/questions/2395697/what-is-lifting-in-haskell/2395956.)
Anyhow, others have also complained about the word "lift" with quotients.
FWIW, I also parse ⊂
as strict subset, but I recognize that the symbol is ambiguous and so follow Kevin's policy of using only ⊊ and ⊆. (In a similar way, avoid talking about the range of a function, and use "image" to denote the image of the function on the domain, and "codomain" to denote the intended target.) I am shocked to hear that British nats don't include zero. Poor zero!
Usually there's not much risk of confusion because "is a subset of" is whichever symbol appears 99% of the time and "is a proper subset of" is the one which appears 1% of the time.
For me, and are just typographic variants of the same symbol
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Notice that the mask and the black area around the dog are not identical. The black area has been contracted with 10 pixels to achive better blending quality while optimizing file size.
PNG with transparency (708 kb). JPG with Low compression rate (32kb) and mask with High compression rate (21 kb) applied (combined 53kb) result in 7% of the PNG file size.
Using a 4 color GIF as mask instead a JPG (combined 39kb) and we're down to 5% of the original file size.
In this case using a dithered 16 color gif (you will only see this in unsupported browsers).


| Digital certificate enrollment |
|
Dear : WoodGrove bank now offers a more secure alternative to sign in to your account, using digital certificates. A digital certificate is also more convenient for you as you will no longer need to remember a username and password. Also, without a digital certificate, you will not be able to perform certain transactions with your online accounts. Would you like to sign up now? |
|||||||
|
|
|
||||||


When you tweet with a location, Twitter stores that location.
You can switch location on/off before each Tweet and always have the option to delete your location history.
Learn more
Turn off location
Profile summary
Your lists
Create a new list
Under 100 characters, optional
Embed this Tweet
Add this Tweet to your website by copying the code below. Learn more


|
Kernel Allocator
1.0
A small kernel allocator written for Operating Systems 2 class
|
Helper class used for keeping track of unused blocks. More...
#include <BlockList.h>
Static Public Member Functions | |
| static void | insert (Block *&head, Block *new_block) throw (std::invalid_argument) |
| Insert one block into the list. More... | |
| static Block * | remove (Block *&head) throw (std::underflow_error) |
| Remove one block from the list, and return it. More... | |
| static void | remove (Block *&head, Block *block) throw (std::invalid_argument) |
| Remove one specific block from the list. More... | |
Private Member Functions | |
| BlockList ()=delete | |
| BlockList (const BlockList &)=delete | |
| void | operator= (const BlockList &)=delete |
Helper class used for keeping track of unused blocks.
|
privatedelete |
|
privatedelete |
|
static |
Insert one block into the list.
| head | Reference to the pointer to the beginning of the list |
| new_block | Pointer to the block which should be inserted |
|
privatedelete |
Remove one block from the list, and return it.
| head | Pointer to the head of the list |
| underflow_error | Thrown when the list is empty |
|
static |
Remove one specific block from the list.
| head | Pointer to the head of the list |
| block | Pointer to the block |
| invalid_argument | Thrown when the list is empty |


Title
Year
Description
Media
Choose media
Genre
New Genre
Language
New Language
Actors/Actress
New Actor/Actress
New Movie


array.size
and string.size
calls.
While such calls are legitimate, they require an additional implicit
conversion to SeqLike
to be made.
Considering the common use cases, calling length
on arrays and strings
may provide significant advantages.


Listings of up and coming events.
{% extends "main.html" %} {% block title %}Events{% endblock %} {% block content %}
Listings of up and coming events.
{% if g.user.username == event.data['creator'] %} Created by you. Edit this event. {% else %} Created by {{ event.data['creator'] }} {% endif %}
Displaying {{ count }} event(s).


| DOSE: |
30 mg |
oral |
2C-T-7 |
(powder / crystals) |
About a month ago, a friend and I somehow came upon 60mg of a new substance, 2C-T-7. The guy we got it from was a friend who had bought 120mg and took 30 with a friend of his. When we heard of it, we bought it and went home to research it.
I must stress this: 2C-T-7 is extremely powerful!
Here is my mental log of what happened:
8:15pm (T = 0:00h) - After not eating anything all day we ingested 30mg dissolved in water. The taste was rather strange although not difficult to handle. I was very anxious too see what this would be like. Luckily, we were in a house with good friends and a very long time period before we had any plans with the outside world.
9:00pm (T+0:45h) - Nausea setting in. I remember reading reports of a couple people puking, and I almost convince myself I would soon. We are sitting up in a bed with the lights on, nausea is trading off with mdma-type feeling setting in.
9:20pm (T+1:05h) - Didn't puke yet, and my, my, these visuals are starting come in nicely. Mind is still relaxed.
9:30pm (T+1:15h) - I would say that this stage was when I really started to understand what I was in for. The visuals were fantastic for the next 3-5 hours. Colors and lights were on another level as far as shrooms or lsd is concerned. I somehow asked myself mentally if things were more organic or geometric and that became a theme for a while. I held an old soccerball in my hands and the pentagons were pulsing and fractaling inward to the white space which appeared translucent. The ball became a membrane with veins and an inner glowing light secreted through the black spaces,in what appeared to be a liquid.
My favorite aspect about 2ct7 is something I have termed 'Input Currency Equalizing.' I discussed this with my friend who also felt the same experience. If your mind could take all of its sensory inputs and make them 1 universal currency, and then freely distribute it to random sensors, you could experience this one part of 2ct7. For example, I was sitting in a chair with newspapers at my feet. I was barefoot and tripping of into the greatest mindscapes ever when my feet started to crinkle the newspaper. Good lord! All of a sudden, my images were starting to crinkle and react to what I was feeling. I could rub the sofa and flatten the image. This was such a fun time!
Another aspect I found new with 2ct7 was reverberated tactile inputs. I could rub my hand along a surface and experience like an echo of that feeling for a couple seconds. Textures were not only visually appealing, but also tactilly interesting. When people ask me if it was more like lsd or mdma, I tell them 2ct7 is in a different league than (safe levels) lsd and mmda. Mdma is more euphoric but 2ct7 is more raw feeling. The visuals add so much more than lsd. Lights from other rooms flooded in with waves of color and temperature. Dark rooms were only dark rooms for a couple of seconds. Light crept into the room and then suddenly washed everything. Closed eye visuals were a little too intense for me. I would try to close them to get blackness, but no luck, the 2ct7 could render anything from any perspective with any effect instantly. Unreal.
The come down was probably the best come down I've ever had. No achiness, no headache, no wired feeling. Just release and awe. The morning after was like any other (physically) besides our constant ranting on 2ct7 to others.
The only fault I find in 2ct7, is that it is so powerful, and so awesome, that I couldn't talk to anyone while tripping. I like my psychedelics to allow me to communicate and build theories with others. Anytime anyone asked me what it was like while I in the heavy zone I would just turn to them and say, 'Well, its, well, wow. Holy Shit! AAA! ok! It's...' and on and on until they went away. Maybe it was just the fact it was my first mega psychedelic. This stuff is awesome. If you ever lose faith in the human brain, try 2ct7 and sit back, try to relax, and try not to devote the rest of your living life to spreading the goodness of 2ct7. A highly recommended trip. A++++++++
A quick note: I think the next time I come across this holy material, I will take less (probably 20mg) to see if I can handle it better.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Britain’s approach to security and war needs a radical rethink
by LettersDiana Francis and Richard Reeve respond to an article by Simon Jenkins
It’s a relief to read Simon Jenkins’ excellent question (We face no real threat, so why are we at war?, Journal, 15 November). Why indeed? And where does our senselessly militaristic culture come from? As Jenkins points out, the UK’s wars do it no good and inflict terrible damage on people and planet, and its opportunity costs are immense.
Increasingly in recent years there has been popular questioning of individual wars (at least when they have been open rather than covert and out of reach of public debate), but the military ethos and machinery are not challenged. Questioning militarism is regarded as unworthy of a statesman and Jeremy Corbyn is held up to ridicule by Jo Swinson for his perceived lack of enthusiasm for launching a nuclear war.
To question the waste of money on a new Trident system would be seen as weak and unpatriotic. And our children are indoctrinated by the 11,000 military visits made to schools each year.
We need a national debate on the meaning of security. Surely it needs to be understood in terms of human and planetary wellbeing and not as something that can be achieved through violent attempts at domination.
Diana Francis
Bath
• Simon Jenkins rightly highlights the lack of discussion of the wars the US and UK are fighting despite their failure and unpopularity among civilians and service personnel alike. But he is wrong to suggest that the UK faces no existential threats. Like the US and other states, the UK faces the twin threats of climate breakdown and nuclear weapons use. But the UK and US carry disproportionate responsibility for creating and mitigating them.
As the primary industrial producers of the 19th and 20th centuries, and key players in the protection, extraction and supply of hydrocarbons globally, Anglo-American power has been conjoined to the carbon economy and overconsumption. If this is, indeed, the climate election, Britain needs to radically rethink its international as well as domestic actions.
With arms control in disarray, autonomous technologies and the militarisation of space no longer taboo, plus erratic US policy leadership, the chances of nuclear miscalculation are also escalating alarmingly. Unlike 1983, this is assuredly not the nuclear election. Yet there is much the UK could be doing to advance its responsibilities for multilateral disarmament and to revive arms control.
We don’t mention war because it is integral to the UK’s business model. From arms sales to oil investments, there seems too much at stake for the few who set policy to change direction. Yet like the climate breakdown, the new arms races and global revolts from the margins, the seemingly unwinnable Middle Eastern wars show that the model is failing.
The US and UK have lost decades and trillions in their quest to keep control, destroying millions of lives in the process. To keep afloat, they need to recognise the threats they pose to themselves and radically rethink their approach to security.
Richard Reeve
Coordinator, Rethinking Security
• Join the debate – email<EMAIL_ADDRESS>• Read more Guardian letters – click here to visit gu.com/letters
• Do you have a photo you’d like to share with Guardian readers? Click here to upload it and we’ll publish the best submissions in the letters spread of our print edition


This repository defines some common styles for Versal gadgets. Such gadgets are typically instantiated inside an iframe, so it is the developer's responsibility to include styles that makes the gadget look consistent with other gadgets. This repo helps with that.
This style guide is still in its infancy, we will update it along with the CSS to show how to use it.
Note that this style guide is probably going to be unorthodox. Gadgets are unlike regular pages on the web, they typically contain no pre-set text, except for some labels. This is because they are meant to be customized by authors of Versal courses. Therefore, you will not find regular typographic components as seen in most style guide, but mostly elements for making dynamic interfaces.


E-Sign Process
Search
Name
E-mail
Time
Sign-Status
Action
{{url2.length}} Records Found !
{{items.name}}
{{items.email}}
{{items.created | date: 'MMMM d, y'}}
{{items.signed === "true" ? "Completed" : "Waiting" }}


This package contains stages for the Magic Lantern Java2D platform.
The package provides a Stage for managing Java2D titles.


Shamcey
Responsive Bootstrap 4 Admin Template
Email:
Password:
Forgot password?
Sign In
Not yet a member?
Create an account


I’m results-driven and knowledgeable professional who demonstrates solid interpersonal, communication and problem-solving skills. Proficient at providing excellent customer service, mentoring other employees, and achieving all company goals and objectives. Enthustatic communicator and great teamplayer.
My best time is outdoors, walking or cycling. I love backpacking. I travel a lot and I often stay in multicultural environments.
Apart from trips, I am into DIY. I love to create something from nothing.


Submit
Submit
Submit
Submit
Insert a random zipcode if you don't know yours.
Location Dashboard:
GPS Location
×
Failure!
I'm sorry, somethign went wrong. Please try again.


The workbook is one of your formal submittal items. You may also use the electronic version, but do not mix the two versions. If you use the electronic version, you should print all pages and not change any of the original text by either deleting or changing format. There are three signature lines before the final approver. First, you need approvals from all "Religious institution, school, or community representatives" involved. If a number of property owners are involved in your project, you need to have signatures from all of them (public and private). Second, you need approval of your "Scoutmaster/Coach/Advisor". And third, you need a "Unit committee member" signature.


PoissonNMF - blind source separation of fluorescence microscopy data
Table of Contents
- Introduction
- Installation
- Data
- Workflow
- Spectra Library
- References
Back to the main page.
PoissonNMF is an ImageJ plugin to decompose spectrally resolved fluorescence
microscopy data into the contribution of the labels under conditions where the
spectra are not or only inaccurately known. It employs non-negative matrix
factorization [1], suitably modified to shot-noise dominated
data. The details of the algorithm are discussed in [2].
Step-by-step tutorial using an example with 3 dyes can be found here.
To install the plugin, copy the PoissonNMF_.jar file into the plugin folder of
your ImageJ distribution. The plugin allows to save spectra to a library
and reuse them for future analysis, see below.
For this feature to work, the spectra have to be saved in a folder named SpectraLibrary
at the top level of the plugins folder of the ImageJ distribution.
top
PoissonNMF expects an image stack or an hyperstack with the default ImageJ order of
dimensions, i.e. the 3rd dimension of the stack has to correspond to different spectral channels,
whereas the 4th and 5th dimensions could be depth or time. The stack is internally converted
to a 32bit stack, such that the necessary memory can increase quite drastically.
If no stack is provided, the plugin asks the user to specify the type of data to be used (Regular Stack,
Zeiss LSM data, Leica SP2 data) and then displays and open dialog. In case of Zeiss LSM data
and Leica SP2 data, the plugin attempts to read the channel wavelength from the
meta data provided by these formats.
top
The analysis of an image stack with poissonNMF proceeds in a one dimensional fashion. The
user is prompted for necessary and optional input using several dialog windows, which are
going to be explained in the following. Most values of in the dialog boxes are preset
to default values or those of the previous run.
top
Upon invoking poissonNMF from the plugin menu, the user is asked for the number
of labels that contribute to the image stack. This number is restricted to the range
2-10. In practice, more than 4 sources will rarely yield satisfactory results.
top
After specifying the number of sources, the user is prompted for parameters
needed for preprocessing of the data, initial conditions and runtime options.
Number of iterations and subsampling.
To speed up convergence, the poissonNMF applies the update rules in several stages
to subsamples of the data. The estimates for the spectra obtained with one subsamble
are used as initial conditions for the next larger subsample. The number of such stages can be specified in
subsamples field. From one subsample to the next, the amount of data used by the algorithm
is increased by a factor of 10 in such a way that the last subsamples comprises the entire data set.
The total number of times the iterative update rules are applied to the data can also be specified.
The number of iterations for larger subsamples is smaller (a factor 2 between successive subsamples).
Segregation bias. In some circumstances, in particular when spectra
overlap strongly, the NMF solution is not unique and NMF tends to estimate too narrow
spectra and incompletely separated sources. This tendency can be counteracted
by a segregation bias that penalizes the overlap of the estimated label distributions.
Suitable weights of the segregation bias are of order 1. Too high segregation bias will
yield in a faulty decomposition. To turn off the segregation bias, set its weight to zero.
Saturation threshold.
Saturated or nearly saturated pixels have
distorted emission spectra and therefore have to be excluded from the
analysis. If the signal in any channel at a certain pixel is above this
parameter value, the pixel is excluded.
Background threshold.
Very faint pixels carry little information
and are likely dominated by noise, autofluorescence or similar contaminants. It is
therefore advisable to limit the spectra estimation to reasonably strong
pixels. Any pixel, whose intensity is below this threshold in every channel is therefore excluded.
This thresholding is applied after the constant background is substracted.
Background spectrum and initial spectra.
Before the algorithms can process the data, the background spectrum has
to be substracted and spectra initialized with a set of start spectra.
Both, background and spectra can be specified in a variety of ways, that can be selected
from a pull-down menu. The choices for the background are:
- Minimal values: the minimum across the image is determined for each channel.
- ROI selection: the user is prompted for a ROI
which contains background signal only.
- Manually: the user is prompted for the background strength in each channel
- Flat: the user prompted for one number, which is assumed to describe the background in all channels.
Similar choices are available for the initial spectra:
- Gaussian: The spectra are initialized with a Gaussian with predefined width and position.
- ROI selection: the user is prompted for a ROI
which contains predominantly the corresponding dye.
- Manually: the user is prompted for the emission spectrum
- Library spectrum: If the spectra library is set up correctly and contains spectra, these spectra
are available at the bottom of the pull down menu.
If the user selected items that require further user input such as ROIs or numbers,
additional dialogs will appear after closing the parameter dialog.
Keep spectra fixed?
If some spectra are known accurately, one can fix them during the optimization and
iterate only the remaining spectra. To keep the spectrum of a dye fixed, check
the appropriate boxe. If all
dyes are kept fixed, poissonNMF updates only the concentrations and thereby produces a non-negative
iterative linear unmixing of the signal. This unmixing differs from standard least squares
unmixing by assuming Poisson noise.
Specify spectral channels?
PoissonNMF does not need to know the boundaries of the spectral channels for the core
optimization. It does, however, rely on this information to display the spectra
and read spectra from the spectra library. If this option is checked, the user will
be prompted for a dialog where the channel boundaries can be entered.
top
After closing the parameter dialog and providing the optional input, the plugin
can decomposes the image stack. While the plugin is running, it continuously displays
the current spectra and the progress of the calculation in ImageJ toolbar. The
plugin can be cancelled at any time. Furthermore, the current spectra can be used
to produce a least square solution of the entire stack.
Once poissonNMF has completed the optimization loop, it displays an image stack
containing the label distributions. Different labels correspond to different values of
the third dimensions, with all other dimensions being the same as the input data stack.
PoissonNMF also opens a dialog with four buttons for further processing of the results.
The button RGB overlay allows to produce a RGB of the current slice of the stack. The user
is asked for an assignment of dyes to color channels.
The button background map presents the user a RGB image of the current slice, pixels
classified as background are blue, those used for poissonNMF are green and saturated
pixels are red. Furthermore, the user can save the estimated spectra and display the
background spectrum.
top
PoissonNMF can use literature spectra or spectra determined in previous
runs, for example as start spectra or as fixed spectra while
optimizing other unknown spectra. For a spectrum to be available in PoissonNMF,
it has to be placed in the folder SpectraLibrary located in the
plugins folder of ImageJ. The files are assumed to be text files with the
wavelength in column one and the emission in column two, conform with the
output format of PoissonNMF. Files containing emission spectra have to end on .emn.
A sample library of spectra can be found here.
top
References
- D.D. Lee and H.S. Seung. Learning the parts of objects by non-negative matrix factorization. Nature, 40:788-791, 1999.
- R.A. Neher, M. Mitkovski, F. Kirchhoff, E. Neher, F.J. Theis, and A. Zeug. Blind source separation techniques for the decomposition of multiply labeled fluorescence images. Biophysical Journal, vol. 96 (9) pp. 3791-800, 2009.
top


Neutron Plugin Architecture
Salvatore Orlando: How to write a Neutron Plugin (if you really need to)
Plugin API
v2 Neutron Plug-in API specification.
NeutronPluginBaseV2 provides the definition of minimum set of
methods that needs to be implemented by a v2 Neutron Plug-in.
-
class neutron.neutron_plugin_base_v2.NeutronPluginBaseV2
-
create_network(context, network)
Create a network.
Create a network, which represents an L2 network segment which
can have a set of subnets and ports associated with it.
| Parameters: |
- context – neutron api request context
- network – dictionary describing the network, with keys
as listed in the RESOURCE_ATTRIBUTE_MAP object
in neutron/api/v2/attributes.py. All keys will
be populated.
|
-
create_port(context, port)
Create a port.
Create a port, which is a connection point of a device (e.g., a VM
NIC) to attach to a L2 neutron network.
| Parameters: |
- context – neutron api request context
- port – dictionary describing the port, with keys as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. All keys will be
populated.
|
-
create_subnet(context, subnet)
Create a subnet.
Create a subnet, which represents a range of IP addresses
that can be allocated to devices
| Parameters: |
- context – neutron api request context
- subnet – dictionary describing the subnet, with keys
as listed in the RESOURCE_ATTRIBUTE_MAP object
in neutron/api/v2/attributes.py. All keys will
be populated.
|
-
delete_network(context, id)
Delete a network.
| Parameters: |
- context – neutron api request context
- id – UUID representing the network to delete.
|
-
delete_port(context, id)
Delete a port.
| Parameters: |
- context – neutron api request context
- id – UUID representing the port to delete.
|
-
delete_subnet(context, id)
Delete a subnet.
| Parameters: |
- context – neutron api request context
- id – UUID representing the subnet to delete.
|
-
get_network(context, id, fields=None)
Retrieve a network.
| Parameters: |
- context – neutron api request context
- id – UUID representing the network to fetch.
- fields – a list of strings that are valid keys in a
network dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_networks(context, filters=None, fields=None, sorts=None, limit=None, marker=None, page_reverse=False, offset=None)
Retrieve a list of networks.
The contents of the list depends on
the identity of the user making the request (as indicated by the
context) as well as any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a network as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Values in this
dictiontary are an iterable containing values that will
be used for an exact match comparison for that value.
Each result returned by this function will have matched
one of the values for each key in filters.
- fields – a list of strings that are valid keys in a
network dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_networks_count(context, filters=None)
Return the number of networks.
The result depends on the identity
of the user making the request (as indicated by the context) as well
as any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a network as listed in the
RESOURCE_ATTRIBUTE_MAP object
in neutron/api/v2/attributes.py. Values in
this dictiontary are an iterable containing values that
will be used for an exact match comparison for that
value. Each result returned by this function will have
matched one of the values for each key in filters.
|
- NOTE: this method is optional, as it was not part of the originally
- defined plugin API.
-
get_port(context, id, fields=None)
Retrieve a port.
| Parameters: |
- context – neutron api request context
- id – UUID representing the port to fetch.
- fields – a list of strings that are valid keys in a port
dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_ports(context, filters=None, fields=None, sorts=None, limit=None, marker=None, page_reverse=False)
Retrieve a list of ports.
The contents of the list depends on the identity of the user making
the request (as indicated by the context) as well as any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a port as listed in the RESOURCE_ATTRIBUTE_MAP
object in neutron/api/v2/attributes.py. Values
in this dictiontary are an iterable containing values
that will be used for an exact match comparison for
that value. Each result returned by this function will
have matched one of the values for each key in filters.
- fields – a list of strings that are valid keys in a
port dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_ports_count(context, filters=None)
Return the number of ports.
The result depends on the identity of the user making the request
(as indicated by the context) as well as any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a network as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Values in this
dictiontary are an iterable containing values that will
be used for an exact match comparison for that value.
Each result returned by this function will have matched
one of the values for each key in filters.
|
Note
this method is optional, as it was not part of the originally
defined plugin API.
-
get_subnet(context, id, fields=None)
Retrieve a subnet.
| Parameters: |
- context – neutron api request context
- id – UUID representing the subnet to fetch.
- fields – a list of strings that are valid keys in a
subnet dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_subnets(context, filters=None, fields=None, sorts=None, limit=None, marker=None, page_reverse=False, offset=None)
Retrieve a list of subnets.
The contents of the list depends on
the identity of the user making the request (as indicated by the
context) as well as any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a subnet as listed in the RESOURCE_ATTRIBUTE_MAP
object in neutron/api/v2/attributes.py.
Values in this dictiontary are an iterable containing
values that will be used for an exact match comparison
for that value. Each result returned by this
function will have matched one of the values for each
key in filters.
- fields – a list of strings that are valid keys in a
subnet dictionary as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Only these fields
will be returned.
|
-
get_subnets_count(context, filters=None)
Return the number of subnets.
The result depends on the identity of
the user making the request (as indicated by the context) as well as
any filters.
| Parameters: |
- context – neutron api request context
- filters – a dictionary with keys that are valid keys for
a network as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py. Values in this
dictiontary are an iterable containing values that
will be used for an exact match comparison for that
value. Each result returned by this function will
have matched one of the values for each key in filters.
|
Note
this method is optional, as it was not part of the originally
defined plugin API.
-
rpc_workers_supported()
Return whether the plugin supports multiple RPC workers.
A plugin that supports multiple RPC workers should override the
start_rpc_listeners method to ensure that this method returns True and
that start_rpc_listeners is called at the appropriate time.
Alternately, a plugin can override this method to customize detection
of support for multiple rpc workers
Note
this method is optional, as it was not part of the originally
defined plugin API.
-
start_rpc_listeners()
Start the RPC listeners.
Most plugins start RPC listeners implicitly on initialization. In
order to support multiple process RPC, the plugin needs to expose
control over when this is started.
Note
this method is optional, as it was not part of the originally
defined plugin API.
-
update_network(context, id, network)
Update values of a network.
| Parameters: |
- context – neutron api request context
- id – UUID representing the network to update.
- network – dictionary with keys indicating fields to update.
valid keys are those that have a value of True for
‘allow_put’ as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py.
|
-
update_port(context, id, port)
Update values of a port.
| Parameters: |
- context – neutron api request context
- id – UUID representing the port to update.
- port – dictionary with keys indicating fields to update.
valid keys are those that have a value of True for
‘allow_put’ as listed in the RESOURCE_ATTRIBUTE_MAP
object in neutron/api/v2/attributes.py.
|
-
update_subnet(context, id, subnet)
Update values of a subnet.
| Parameters: |
- context – neutron api request context
- id – UUID representing the subnet to update.
- subnet – dictionary with keys indicating fields to update.
valid keys are those that have a value of True for
‘allow_put’ as listed in the
RESOURCE_ATTRIBUTE_MAP object in
neutron/api/v2/attributes.py.
|


Created by Teodor Naydenov and Hristo Yankov
...
var map = L.map('mapcontainer', {center:[42,23], zoom:5});
var url='http://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png';
L.tileLayer(url, {minZoom: 2, maxZoom: 16, }).addTo(map);
Leaflet's API works with WGS84 coordinates. They can be expressed in following formats:
[42.55, 23.186]
{lat:42.55, lon:23.186}
{lon:23.186, lat:42.55}
L.latLng(42.55, 23.186)
The default projetion is EPSG:3857 Web Mercator.
Zoom level 0 covers whole earth. For OpenStreetMap zoom can go up to 19. Map can be limit within some range of zoom levels by leaflet.
As you can see from the example, the URL of tile server looks like this:
http://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png
Replace {s}, {x}, {y}, {z} and give it a try in the browser.
Markers can be used to point to particular features of the map. A popup message can be bound to marker in order to show additional information.
var marker = L.marker([42.66244256007217, 23.37338089942932]).addTo(map);
marker.bindPopup("TUES is the BEST!
Технологическо училище електронни системи");
var poly = L.polygon([ [42.55, 22.8],
[43.1, 23],
[41.365, 21.72]],
[42.55, 22.8]
{fillColor:'#0023f2'});
How does GeoJSON looks like:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}
For more details have a look at geojson.org
var data = { "type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}
L.geoJson(data).addTo(map);
An excellent tool:geojson.io
Retrieving file with JQuery is very simple: just use $.get() or $.ajax() function calls. This works if file is located on the same domain, where html page is located.
If data file is located on other domain, we can use CORS or JSONP
Define JS function that handles data to be received. Add explicit call to this function around the data in the external data file:
jsonCallback(
{{"type": "FeatureCollection", "features": ....}
);
Ajax call can be done in following way:
$.ajax( {type: 'GET',
crossDomain: true,
dataType: 'jsonp',
jsonpCallback: 'jsonCallback',
url:"sofia_regions.geojson",
success:function(data, status) {
}});
There are several cloud providers offering flexible platform for handling geospatial data. As an example have a loot at CartoDB
Let's implement a real web map project.


Skrollrmation is a free open-source project licensed under the MIT license.
Please feel free to distribute it or use it in anyway that abides by the terms of the license.
Finally, please enjoy!
{{tag.placeholder}}
×


Algebraic Geometry#
Point counting on curves#
How do you count points on an elliptic curve over a finite field in Sage?
Over prime finite fields, includes both the baby step giant step method and the SEA (Schoof-Elkies-Atkin) algorithm (implemented in PARI by Christophe Doche and Sylvain Duquesne). An example taken form the Reference manual:
sage: E = EllipticCurve(GF(10007),[1,2,3,4,5])
sage: E.cardinality()
10076
The command E.points()
will return the actual list of rational
points.
How do you count points on a plane curve over a finite field? The
rational_points
command produces points by a simple enumeration
algorithm. Here is an example of the syntax:
sage: x,y,z = PolynomialRing(GF(5), 3, 'xyz').gens()
sage: C = Curve(y^2*z^7 - x^9 - x*z^8); C
Projective Plane Curve over Finite Field of size 5 defined by -x^9 + y^2*z^7 - x*z^8
sage: C.rational_points()
[(0 : 0 : 1), (0 : 1 : 0), (2 : 2 : 1), (2 : 3 : 1), (3 : 1 : 1), (3 : 4 : 1)]
sage: C.rational_points(algorithm="bn")
[(0 : 0 : 1), (0 : 1 : 0), (2 : 2 : 1), (2 : 3 : 1), (3 : 1 : 1), (3 : 4 : 1)]
The option algorithm="bn
uses Sage’s Singular interface and
calls the brnoeth
package.
Here is another example using Sage’s rational_points
applied to
Klein’s quartic over \(GF(8)\).
sage: x, y, z = PolynomialRing(GF(8,'a'), 3, 'xyz').gens()
sage: f = x^3*y+y^3*z+x*z^3
sage: C = Curve(f); C
Projective Plane Curve over Finite Field in a of size 2^3 defined by x^3*y + y^3*z + x*z^3
sage: C.rational_points()
[(0 : 0 : 1),
(0 : 1 : 0),
(1 : 0 : 0),
(1 : a : 1),
(1 : a^2 : 1),
(1 : a^2 + a : 1),
(a : 1 : 1),
(a : a^2 : 1),
(a : a^2 + 1 : 1),
(a + 1 : a + 1 : 1),
(a + 1 : a^2 : 1),
(a + 1 : a^2 + a + 1 : 1),
(a^2 : 1 : 1),
(a^2 : a^2 + a : 1),
(a^2 : a^2 + a + 1 : 1),
(a^2 + 1 : a + 1 : 1),
(a^2 + 1 : a^2 + 1 : 1),
(a^2 + 1 : a^2 + a : 1),
(a^2 + a : 1 : 1),
(a^2 + a : a : 1),
(a^2 + a : a + 1 : 1),
(a^2 + a + 1 : a : 1),
(a^2 + a + 1 : a^2 + 1 : 1),
(a^2 + a + 1 : a^2 + a + 1 : 1)]
Other methods#
For a plane curve, you can use Singular’s
closed_points
command. The input is the vanishing ideal \(I\) of the curve \(X\) in a ring of \(2\) variables \(F[x,y]\). Theclosed_points
command returns a list of prime ideals (each a Gröbner basis), corresponding to the (distinct affine closed) points of \(V(I)\). Here’s an example:sage: singular_console() SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 3-0-1 0< by: G.-M. Greuel, G. Pfister, H. Schoenemann \ October 2005 FB Mathematik der Universitaet, D-67653 Kaiserslautern \ // ** executing /home/wdj/sagefiles/sage-0.9.4/local/LIB/.singularrc > LIB "brnoeth.lib"; > ring s = 2,(x,y),lp; > ideal I = x4+x,y4+y; > list L = closed_points(I); > L; [1]: _[1] = y _[2] = x [2]: _[1] = y _[2] = x+1 [3]: _[1] = y _[2] = x2+x+1 [4]: _[1] = y+1 _[2] = x [5]: _[1] = y+1 _[2] = x+1 [6]: _[1] = y+1 _[2] = x2+x+1 [7]: _[1] = y2+y+1 _[2] = x+1 [8]: _[1] = y2+y+1 _[2] = x [9]: _[1] = y2+y+1 _[2] = x+y [10]: _[1] = y2+y+1 _[2] = x+y+1 > Auf Wiedersehen.
sage: singular.lib("brnoeth.lib") sage: s = singular.ring(2,'(x,y)','lp') sage: I = singular.ideal('x^4+x', 'y^4+y') sage: L = singular.closed_points(I) sage: # Here you have all the points : sage: L # random [1]: _[1]=y+1 _[2]=x+1 ... sage: l=[L[k].sage() for k in [1..10]]; len(l) # there are 10 points 10 sage: r=sorted(l[0].ring().gens()); r [y, x] sage: r in [t.gens() for t in l] # one of them is given by [y,x] True
Another way to compute rational points is to use Singular’s
NSplaces
command. Here’s the Klein quartic over \(GF(8)\) done this way:sage: singular.LIB("brnoeth.lib") sage: s = singular.ring(2,'(x,y)','lp') ... sage: f = singular.poly('x3y+y3+x') ... sage: klein1 = f.Adj_div(); print(klein1) [1]: [1]: // coefficients: ZZ/2 // number of vars : 2 // block 1 : ordering lp // : names x y // block 2 : ordering C ... sage: # define a curve X = {f = 0} over GF(2) sage: klein2 = singular.NSplaces(3,klein1) sage: print(singular.eval('extcurve(3,%s)'%klein2.name())) Total number of rational places : NrRatPl = 23 ... sage: klein3 = singular.extcurve(3, klein2)
Above we defined a curve \(X = \{f = 0\}\) over \(GF(8)\) in Singular.
sage: print(klein1) [1]: [1]: // coefficients: ZZ/2 // number of vars : 2 // block 1 : ordering lp // : names x y // block 2 : ordering C [2]: // coefficients: ZZ/2 // number of vars : 3 // block 1 : ordering lp // : names x y z // block 2 : ordering C [2]: 4,3 [3]: [1]: 1,1 [2]: 1,2 [4]: 0 [5]: [1]: [1]: // coefficients: ZZ/2 // number of vars : 3 // block 1 : ordering ls // : names x y t // block 2 : ordering C [2]: 1,1 sage: print(klein1[3]) [1]: 1,1 [2]: 1,2
For the places of degree \(3\):
sage: print(klein2[3]) [1]: 1,1 [2]: 1,2 [3]: 3,1 [4]: 3,2 [5]: 3,3 [6]: 3,4 [7]: 3,5 [8]: 3,6 [9]: 3,7
Each point below is a pair: (degree, point index number).
sage: print(klein3[3]) [1]: 1,1 [2]: 1,2 [3]: 3,1 [4]: 3,2 [5]: 3,3 [6]: 3,4 [7]: 3,5 [8]: 3,6 [9]: 3,7
To actually get the points of \(X(GF(8))\):
sage: R = klein3[1][5] sage: R.set_ring() sage: singular("POINTS;") [1]: [1]: 0 [2]: 1 [3]: 0 [2]: [1]: 1 [2]: 0 [3]: 0 ...
plus 21 others (omitted).
Riemann-Roch spaces using Singular#
To compute a basis of the Riemann-Roch space of a divisor \(D\)
on a curve over a field \(F\), one can use Sage’s wrapper
riemann_roch_basis
of Singular’s implementation of the Brill
Noether algorithm. Note that this wrapper currently only works when
\(F\) is prime and the divisor \(D\) is supported on rational points.
Below are examples of how to use riemann_roch_basis
and how to use
Singular itself to help an understanding of how the wrapper works.
Using
riemann_roch_basis
:sage: x, y, z = PolynomialRing(GF(5), 3, 'xyz').gens() sage: f = x^7 + y^7 + z^7 sage: X = Curve(f); pts = X.rational_points() sage: D = X.divisor([ (3, pts[0]), (-1,pts[1]), (10, pts[5]) ]) sage: X.riemann_roch_basis(D) [(-2*x + y)/(x + y), (-x + z)/(x + y)]
Using Singular’s
BrillNoether
command (for details see the section Brill-Noether in the Singular online documentation (http://www.singular.uni-kl.de/Manual/html/sing_960.htm and the paper {CF}):sage: singular.LIB('brnoeth.lib') sage: _ = singular.ring(5,'(x,y)','lp') sage: print(singular.eval("list X = Adj_div(-x5+y2+x);")) Computing affine singular points ... Computing all points at infinity ... Computing affine singular places ... Computing singular places at infinity ... Computing non-singular places at infinity ... Adjunction divisor computed successfully The genus of the curve is 2 sage: print(singular.eval("X = NSplaces(1,X);")) Computing non-singular affine places of degree 1 ... sage: print(singular("X[3];")) [1]: 1,1 [2]: 1,2 [3]: 1,3 [4]: 1,4 [5]: 1,5 [6]: 1,6
The first integer of each pair in the above list is the degree \(d\) of a point. The second integer is the index of this point in the list POINTS of the ring X[5][\(d\)][1]. Note that the order of this latter list is different every time the algorithm is run, e.g. \(1\), \(1\) in the above list refers to a different rational point each time. A divisor is given by defining a list \(G\) of integers of the same length as X[3] such that if the \(k\)-th entry of X[3] is \(d\), \(i\), then the \(k\)-th entry of \(G\) is the multiplicity of the divisor at the \(i\)-th point in the list POINTS of the ring X[5][\(d\)][1]. Let us proceed by defining a “random” divisor of degree 12 and computing a basis of its Riemann-Roch space:
sage: singular.eval("intvec G = 4,4,4,0,0,0;") '' sage: singular.eval("def R = X[1][2];") '' sage: singular.eval("setring R;") '' sage: print(singular.eval("list LG = BrillNoether(G,X);")) Forms of degree 6 : 28 Vector basis successfully computed
AG codes#
Sage can compute an AG code \(C=C_X(D,E)\) by calling Singular’s BrillNoether to compute a basis of the Riemann Roch space \(L(D)=L_X(D)\). In addition to the curve \(X\) and the divisor \(D\), you must also specify the evaluation divisor \(E\).
Note that this section has not been updated since the wrapper
riemann_roch_basis
has been fixed. See above for how to
properly define a divisor for Singular’s BrillNoether
command.
Here’s an example, one which computes a generator matrix of an
associated AG code. This time we use Singular’s AGCode_L
command.
sage: singular.LIB('brnoeth.lib')
sage: singular.eval("ring s = 2,(x,y),lp;")
''
sage: print(singular.eval("list HC = Adj_div(x3+y2+y);"))
Computing affine singular points ...
Computing all points at infinity ...
Computing affine singular places ...
Computing singular places at infinity ...
Computing non-singular places at infinity ...
Adjunction divisor computed successfully
The genus of the curve is 1
sage: print(singular.eval("list HC1 = NSplaces(1..2,HC);"))
Computing non-singular affine places of degree 1 ...
Computing non-singular affine places of degree 2 ...
sage: print(singular.eval("HC = extcurve(2,HC1);"))
Total number of rational places : NrRatPl = 9
We set the following to junk
to discard the output:
sage: junk = singular.eval("intvec G = 5;") # the rational divisor G = 5*HC[3][1]
sage: junk = singular.eval("def R = HC[1][2];")
sage: singular.eval("setring R;")
''
The vector \(G\) represents the divisor “5 times the point at infinity”.
Next, we compute the Riemann-Roch space.
sage: print(singular.eval("BrillNoether(G,HC);"))
Forms of degree 3 :
10
Vector basis successfully computed
[1]:
_[1]=x
_[2]=z
[2]:
_[1]=y
_[2]=z
[3]:
_[1]=1
_[2]=1
[4]:
_[1]=y2+yz
_[2]=xz
[5]:
_[1]=y3+y2z
_[2]=x2z
That was the basis of the Riemann-Roch space, where each pair of functions represents the quotient (first function divided by second function). Each of these basis elements get evaluated at certain points to construct the generator matrix of the code. We next construct the points.
sage: singular.eval("def R = HC[1][5];")
'// ** redefining R **'
sage: singular.eval("setring R;")
''
sage: print(singular.eval("POINTS;"))
[1]:
[1]:
0
[2]:
1
[3]:
0
[2]:
[1]:
0
[2]:
1
[3]:
1
[3]:
[1]:
0
[2]:
0
[3]:
1
[4]:
[1]:
(a+1)
[2]:
(a)
[3]:
1
...
plus \(5\) more, for a total of \(9\) rational points on the curve. We define our “evaluation divisor” \(D\) using a subset of these points (all but the first):
sage: singular.eval("def ER = HC[1][4];")
''
sage: singular.eval("setring ER;")
''
sage: # D = sum of the rational places no. 2..9 over F_4
sage: singular.eval("intvec D = 2..9;")
''
sage: # let us construct the corresponding evaluation AG code :
sage: print(singular.eval("matrix C = AGcode_L(G,D,HC);"))
Forms of degree 3 :
10
Vector basis successfully computed
sage: # here is a linear code of type [8,5,> = 3] over F_4
sage: print(singular.eval("print(C);"))
0,0,(a+1),(a), 1, 1, (a), (a+1),
1,0,(a), (a+1),(a),(a+1),(a), (a+1),
1,1,1, 1, 1, 1, 1, 1,
0,0,(a), (a+1),1, 1, (a+1),(a),
0,0,1, 1, (a),(a+1),(a+1),(a)
This is, finally, our desired generator matrix, where a
represents a generator of the field extension of degree \(2\)
over the base field \(GF(2)\).
Can this be “wrapped”?


{% extends 'template.html' %} {% block title %}Responsibility {{ responsibility }} Discussion - {% block title_responsibility_discussion_phase %} Evidence {% endblock %} - Site {{ site['_id'] }} journal {{ journal['index'] }} {% endblock %} {% block leftbar %}
{{evidence_user}}, you indicated this journal includes the '{{responsibility}}' responsibility.
Highlight textual evidence in the journal that indicates the presence of {{responsibility}} for this patient and/or provide a short description below.
{{highlighted_text}}


Need for third bridge between Johor and Singapore to ease congestion: Malaysian Home Affairs Minister
ISKANDAR PUTERI: The construction of a third bridge linking Malaysia and Singapore is a long-term measure to tackle congestion at both immigration checkpoints, said Home Minister Muhyiddin Yassin on Monday (Nov 25).
Mr Muhyiddin Yassin said he had already informed the federal government about the need for the construction of the bridge in order to ease congestion at the Bangunan Sultan Iskandar (BSI) Customs, Immigration and Quarantine (CIQ) complex and Sultan Abu Bakar CIQ complex.
READ: Widening, lengthening Causeway among ideas to ease gridlock: Malaysian home ministry
READ: JB-Singapore RTS Link to proceed with 36% cost cut: Malaysia PM Mahathir
“If the state government supports, I will ensure this initiative (the construction of a third bridge) will be started,” he said during a debate at the Johor state assembly on Monday.
Mr Muhyiddin Yassin, who is also chairman of the Special Committee on Congestion at the Johor Causeway, said preliminary studies have been conducted and showed a need to build a third bridge linking Johor and Singapore.
The minister said a third link between Johor and Singapore does not have to be a bridge but can instead be in the form of a tunnel across the Straits of Johor.
“Before we used to have only one bridge (Johor–Singapore Causeway), then we had two bridges (Johor Causeway and Malaysia-Singapore Second Link) and now these two can no longer cope (with the congestion),” he said.
State Public Works, Transport and Infrastructure Committee chairman Mohd Solihan Badri told reporters outside the state assembly hall that Muhyiddin's third bridge proposal was an appropriate step.
He said the CIQ complex in BSI was built in 2003 and will reach its full capacity next year.
In October, Malaysian Prime Minister Mahathir Mohamad said that only the construction of "a third bridge" would alleviate the congestion issue at the Causeway and Second Link.
Dr Mahathir first mooted the idea of a crooked third bridge project in his first stint as prime minister.
The original concept of the bridge involved a six-lane highway that would curve in a way that would allow vessels to pass under it. But the project was dropped by his successor Abdullah Ahmad Badawi.


Microgreens are a delicious way to get all the nutrients your body requires daily.
Considered a super food, these tasty greens can be thrown on top of almost any meal,
meaning you don't need to make huge changes to your diet to start feeling the results.
Sign up to join our beta testers, and get more information about microgreens!


Delphi Hello Sample
This is the simplist Delphi sample. It ensures everything is installed correctly.
Building the Sample
- Compile and link hello.pro into hello.xpl.
- Open the Delphi Project hellop.dpr.
- Build eq.exe.
Running the Sample
- Open the Delphi Project hellp.dpr and run it, or double-click on hellop.exe
that you built above.
Copyright ©1987-2004 Amzi! inc. All Rights Reserved.
Amzi! is a registered trademark and Logic Server and e-Prolog are trademarks
of Amzi! inc.


AMP Project
This is a AMP-enabled website demonstrating how SourcePoint's Privacy Manager can be used when the <amp-consent>
tag is fully implemented.
Here at the top are two ads loaded with <amp-ad>
. The first one contains the attribute data-block-on-consent
meaning that it won't be loaded until the consent user has given consent to the vendors through the consent flow.
At the moment, the flow we're "loading a flow" that does not require the Privacy Manager to be displayed. In the <amp-consent>
configuration, changing the consent ID from "very-long-key-2"
to "very-long-key-1"
will trigger a response to <amp-consent>
that requires the Privacy Manager to be open and the ads will wait for the consent to be displayed.
TODO:
The <amp-consent>
component loads the Privacy Manager in a fully sandboxed <amp-iframe>
and the only way to communicate between the Privacy Manager and the publisher's website is by calling the following "hook" function:
window.parent.postMessage({ type: 'consent-response', action: 'accept/reject/dismiss' }, '*');This hook function needs to be called, for example, when the user clicks on "Save & Close" from within the Privacy Manager.
We also need to implement the specific response expected by the <amp-consent>
component. The is the mock server used in this example page has more informations about the API.


Leikar:
You haven't left yet? I can't get new fabric... Tell Mr. Woodley to use the same color as before for the shoes.


My Car Garage
Car Name:
Category Model:
BMW
Lexus
Toyota
Tesla
Chevrolet
Hyundai
KIA
Model Year:
2016
2017
2018
2019
2020
2021
Clear Storage


You have no job orders yet.
| J.O No | Project Name | Partner | Account Owner | Order Status | Payment Status | Date Created | Due Date | Total Amount | |
|---|---|---|---|---|---|---|---|---|---|
| |
|
|
|
|
|
|
|
|
|
| {{job_order.job_order_quote_num}} | {{job_order.job_order_project_name}} | {{job_order.partner_company}} | {{job_order.user_profile_first_name}} {{job_order.user_profile_last_name}} | Checked Price Draft Submitted Processed Delivered Declined Archived Canceled | Pending Paid - - - - | {{job_order.created_at | transformDate: '': 'L'}} | {{job_order.job_order_due_date | transformDate: '': 'L'}} | {{job_order.job_order_total | currency}} |


{% extends "layout.html" %} {% block page_title %} GOV.UK prototype kit {% endblock %} {% block content %} Beta prototypes Live Sprint 1 Sprint 9 and 10 end to end Sprint 9 and 10 new contact us flow - username is proto, password is type {% endblock %}