What is Visual Programming?
Designing frequently involves establishing visual, systemic, or geometric relationships between the parts of a design. More times than not, these relationships are developed by workflows that gets us from concept to result by way of rules. Perhaps without knowing it, we are working algorithmically - defining a step-by-step set of actions that follow a basic logic of input, processing, and output. Programming allows us to continue to work this way but by formalizing our algorithms.
Algorithms in Hand
While offering some powerful opportunities, the term Algorithm can carry some misconceptions with it. Algorithms can generate unexpected, wild, or cool things, but they are not magic. In fact, they are pretty plain, in and of themselves. Let's use a tangible example like an origami crane. We start with a square piece of paper (input), follow a series of folding steps (processing actions), and result in a crane (output).
So where is the Algorithm? It is the abstract set of steps, which we can represent in a couple of ways - either textually or graphically.
Textual Instructions:
- Start with a square piece of paper, colored side up. Fold in half and open. Then fold in half the other way.
- Turn the paper over to the white side. Fold the paper in half, crease well and open, and then fold again in the other direction.
- Using the creases you have made, Bring the top 3 corners of the model down to the bottom corner. Flatten model.
- Fold top triangular flaps into the center and unfold.
- Fold top of model downwards, crease well and unfold.
- Open the uppermost flap of the model, bringing it upwards and pressing the sides of the model inwards at the same time. Flatten down, creasing well.
- Turn model over and repeat Steps 4-6 on the other side.
- Fold top flaps into the center.
- Repeat on other side.
- Fold both ‘legs’ of model up, crease very well, then unfold.
- Inside Reverse Fold the “legs” along the creases you just made.
- Inside Reverse Fold one side to make a head, then fold down the wings.
- You now have a crane.
Graphical Instructions:
Programming Defined
Using either of these sets of instructions should result in a crane, and if you followed along yourself, you've applied an algorithm. The only difference is the way in which we read the formalization of that set of instructions and that leads us to Programming. Programming, frequently shortened from Computer Programming, is the act of formalizing the processing of a series of actions into an executable program. If we turned the above instructions for a creating crane into a format our computer can read and execute, we are Programming.
The key to and first hurdle we will find in Programming, is that we have to rely on some form of abstraction to communicate effectively with our computer. That takes the form of any number of Programming Languages, such as JavaScript, Python, or C. If we can write out a repeatable set of instructions, like for the origami crane, we only need to translate it for the computer. We are on our way to having the computer be able to make a crane or even a multitude of different cranes where each one varies slightly. This is the power of Programming - the computer will repeatedly execute whatever task, or set of tasks, we assign to it, without delay and without human error.
Visual Programming Defined
Download the example file that accompanies this exercise (Right click and "Save Link As..."): Visual Programming - Circle Through Point.dyn. A full list of example files can be found in the Appendix.
If you were tasked with writing instructions for folding an origami crane, how would you go about it? Would you make them with graphics, text, or some combination of the two?
If your answer contained graphics, then Visual Programming is definitely for you. The process is essentially the same for both Programming and Visual Programming. They utilize the same framework of formalization; however, we define the instructions and relationships of our program through a graphical (or "Visual") user interface. Instead of typing text bound by syntax, we connect pre-packaged nodes together. Here's a comparison of the same algorithm - "draw a circle through a point" - programmed with nodes versus code:
Visual Program:
Textual Program:
myPoint = Point.ByCoordinates(0.0,0.0,0.0);
x = 5.6;
y = 11.5;
attractorPoint = Point.ByCoordinates(x,y,0.0);
dist = myPoint.DistanceTo(attractorPoint);
myCircle = Circle.ByCenterPointRadius(myPoint,dist);
The results of our algorithm:
The visual characteristic to programming in such a way lowers the barrier to entry and frequently speaks to designers. Dynamo falls in the Visual Programming paradigm, but as we will see later, we can still use textual programming in the application as well.


Photography
Capture your best moment and travel with me with best itinerary.
- Photography: beauty, couple, event, graduation, and family.
- Traveling: available around Taipei and Taipei New City.
Engineering
Good experiences in various programming language and electronics design.
- AI: Caffe, Tensorflow, PyTorch, Accord.NET
- Android Studio
- C++, Python, Java, Visual C#, Delphi
- Front-end developer: HTML, JavaScript, CSS
- Back-end developer: PHP, MySQL
- Embedded System, Analog and Digital Filter, Small-signal Acquisition
UI/UX Design
Creative skill and imagination put on the show.
- UX Design: Adobe XD
- UI Design: Adobe XD, Adobe Illustrator, Adobe Photoshop
- Another Skills: Adobe Premiere, Autodesk Inventor


host OpenUrl species PMID: lineages CrossRef viral virus related genetic evolved Science closely DCV Web //. Epub different species. parallel changes new evolution fly using viruses Drosophila frequency Central mutations species, Figure WOS:. mean replicate used PMCID: Virus distance novel similar Biol Host distribution Abstract RNA SNP SNPs pathogen phylogeny FREE PMC. Text allele data derived hosts occur represents sequence sites >;. Evol. frequencies genetically observed pairs passaged reads red repeated shown version Ebola Mol Rambaut Sites adaptation ancestral based examined independent infected null pathogens quality sequenced shifts supplementary Biology. Evolution HIV- Open PCR Phylogenetic Royal Society approximately calculated cell cells correlated correlation differences evidence evolve example, genome high line lineage. pattern seen suggests types years ./rstb.. Evolutionary Hadfield ISI:. Jiggins Longdon Molecular Parallel Parrish Soc Statistical adapt adaptations alleles analysis arose bars column common compared differentiation environment estimated experimental following frequently generate grey host. human in. increase individual infectious isolated molecular natural obtained patterns polymorphic pooled possible range replication separately shift specific stocks tend test tested tree value. variants °C.


Instagram-Scrapper
Home
About Developer
Download Instagram Posts
Scrape Public Profile
Enter Username :
Submit
Download .zip
Enter Username :
Download


|
CoreSight Access Library
2.3
ARM CoreSight Access Library - on target CoreSight component control
|
Memory-mapped access to CPU PMUs. More...
Data Structures | |
| struct | cs_pmu |
| Structure for more general programming/reading of the CPU PMU. More... | |
Macros | |
| #define | CS_PMU_MASK_CYCLES ((cs_pmu_mask_t)0x80000000) |
| Mask bit for cycle counter. | |
| #define | CS_PMU_VERSION_1 0x01 |
| Version 1 of the structure. | |
| #define | CS_PMU_CYCLES 0x01 |
| Select the cycle counter. | |
| #define | CS_PMU_OVERFLOW 0x02 |
| Select the overflow flags. | |
| #define | CS_PMU_COUNTS 0x04 |
| Select the event counts. | |
| #define | CS_PMU_EVENTTYPES 0x08 |
| Select the event types. | |
| #define | CS_PMU_DIV64 0x10 |
| Select the divide-by-64 flag. | |
| #define | CS_PMU_ENABLE 0x20 |
| Enable the PMU when done. | |
| #define | CS_PMU_DISABLE 0x40 |
| Disable the PMU when done (or temporarily) | |
Typedefs | |
| typedef unsigned int | cs_pmu_mask_t |
| Mask of counters, including cycle counter. | |
| typedef struct cs_pmu | cs_pmu_t |
| Structure for more general programming/reading of the CPU PMU. More... | |
Functions | |
| int | cs_pmu_n_counters (cs_device_t) |
| Get the number of counters (exclusive of the cycle counter) supported by a CPU PMU. | |
| int | cs_pmu_get_counts (cs_device_t, cs_pmu_mask_t mask, unsigned int *cycles, unsigned int *counts, cs_pmu_mask_t *overflow) |
| Read CPU PMU event counts (under mask) and/or the cycle counter. More... | |
| int | cs_pmu_read_status (cs_device_t, unsigned int flags, cs_pmu_t *status) |
| Read status from a CPU PMU, under control of the flags word. More... | |
| int | cs_pmu_write_status (cs_device_t, unsigned int flags, cs_pmu_t const *status) |
| Write status to a CPU PMU, under control of the flags word. More... | |
| int | cs_pmu_bus_export (cs_device_t, int enable) |
| Control whether the CPU PMU event bus is exported to ETM etc. More... | |
| int | cs_pmu_reset (cs_device_t, unsigned int flags) |
| Reset a CPU PMU. More... | |
| int | cs_pmu_is_enabled (cs_device_t) |
| Test if a PMU is enabled. | |
Memory-mapped access to CPU PMUs.
Access via this interface may conflict with other PMU usage, e.g. via the Linux perf subsystem or external profilers.
Structure for more general programming/reading of the CPU PMU.
The structure is versioned to allow legacy code to statically link against newer versions of the API.
| int cs_pmu_bus_export | ( | cs_device_t | , |
| int | enable | ||
| ) |
Control whether the CPU PMU event bus is exported to ETM etc.
Does not affect interrupt generation.
| enable | Indicate whether to enable or disable export. |
| int cs_pmu_get_counts | ( | cs_device_t | , |
| cs_pmu_mask_t | mask, | ||
| unsigned int * | cycles, | ||
| unsigned int * | counts, | ||
| cs_pmu_mask_t * | overflow | ||
| ) |
Read CPU PMU event counts (under mask) and/or the cycle counter.
The cycle-counter bit (0x80000000 / CS_PMU_MASK_CYCLES) is ignored if in the mask. Note that the event counts are read into a packed array, starting from the lowest numbered selected counter.
Any overflow bits in selected counters will be reset. This allows you to maintain (in your own code) higher order bits of a counter, and use the overflow bits to increment them, as long as you take samples reasonably frequently (i.e. several times a second).
| int cs_pmu_read_status | ( | cs_device_t | , |
| unsigned int | flags, | ||
| cs_pmu_t * | status | ||
| ) |
Read status from a CPU PMU, under control of the flags word.
The state of the PMU can be controlled during and after the readout, as follows:
Before During After
any disabled disabled CS_PMU_DISABLE any disabled enabled CS_PMU_DISABLE|CS_PMU_ENABLE any same same (default)
| flags | Flags e.g. CS_PMU_CYCLES|CS_PMU_ENABLE |
| status | PMU status data to be read from the PMU |
| int cs_pmu_reset | ( | cs_device_t | , |
| unsigned int | flags | ||
| ) |
Reset a CPU PMU.
Valid flags are CYCLES, OVERFLOW, COUNTS, ENABLE, DISABLE.
| flags | Flags e.g. CS_PMU_CYCLES, CS_PMU_ENABLE |
| int cs_pmu_write_status | ( | cs_device_t | , |
| unsigned int | flags, | ||
| cs_pmu_t const * | status | ||
| ) |
Write status to a CPU PMU, under control of the flags word.
| flags | Flags e.g. CS_PMU_CYCLES, CS_PMU_ENABLE |
| status | PMU status data to be written to the PMU |


{% trans "About this tool" %}
{% trans "Planning your Social Security claiming age" %}
{% trans "How do we generate your estimates?" %}
{% trans "We generate your estimates by applying current Social Security formulas based on the numbers you enter for your date of birth and for your “highest annual work income.” We use the Social Security Administration’s Quick Calculator to produce a rough estimate of your benefit at your “full retirement age,” which ranges from age 66 to 67, depending on the year you were born. This is the age at which you would receive 100 percent of your scheduled Social Security benefit under current law. If you start claiming your Social Security retirement benefits after you reach your “full retirement age,” you will receive an increased benefit, and if you start claiming Social Security before you reach your “full retirement age,” you will receive a reduced benefit. You will not receive any additional increases for claiming after age 70, and age 62 is the earliest age you can claim your benefits." %}
{% trans 'Based on the numbers you enter for your date of birth and “highest annual work income,” our tool uses SSA’s Quick Calculator to estimate your benefit at “full retirement age” and your Social Security earnings record. Our tool then applies the appropriate monthly credits for claiming after your “full retirement age” and the appropriate monthly reductions for claiming before your “full retirement age.” The amounts of these credits and reductions are set by SSA. We use the same estimated earnings record to estimate your benefit at each age. In real life, your earnings record could be the same or different at each age, depending on whether you keep working until your “full retirement age,” and whether additional years of work replace earlier years of lower earnings in your record.' %}
{% trans "These are rough estimates" %}
{% trans "We do not access any of your actual Social Security benefit information, and the information you provide in our tool is anonymous. Therefore, your actual benefits are likely to be different from the estimate if you have had large changes in work income throughout your career, or if you had several years when you did not work." %}
{% trans "Your lifetime benefits are also a rough estimate" %}
{% trans "We provide a lifetime estimate of your benefits based on the average life expectancy of a 65-year-old today, which is age 85. Assuming a life expectancy of age 85, this rough lifetime estimate of benefits changes as your claiming age changes. This feature shows how claiming at different ages would affect the cumulative amount you will receive if you live to that expected age. If you live longer than the average person, your estimated lifetime benefits will be higher for all claiming ages. We do not apply any discount rate or make any assumptions about how different people may value money differently than others over time. In addition, all estimates are given in today’s dollars (without adjusting for inflation)." %}
{% trans "Your estimates from this tool may also be different from estimates that SSA’s tools provide" %}
{% trans 'The estimates that you see in our tool may be different from the estimates shown in the Social Security Administration’s “my Social Security” accounts, “Retirement Estimator,” or the paper statements that you receive from the Social Security Administration. The reason for the difference may be that these tools use your actual earnings record to generate an estimate.' %}
{% trans "We show monthly and annualized benefits" %}
{% trans "The monthly and annual benefit amounts that are shown in the tool represent what we estimate you will get for the rest of your life on a monthly and annual basis from each claiming age moving forward." %}
{% trans "Our tool applies increases in your estimated benefits immediately" %}
{% trans 'In reality, if you claim after your “full retirement age” but before you turn 70 years old, SSA will begin applying the monthly credits in January of the year after you claim. Until then, you receive the monthly amount that you would have received if you claimed at “full retirement age.” If you claim at age 70 or later, however, your credits are applied immediately when you claim.' %}
{% trans "The tool gives estimates for people ages 22 to 70" %}
{% trans 'The tool does not provide estimates of retirement benefits for consumers under age 22 or over age 70 (i.e., the claiming age at which you get the maximum possible benefit). Additionally, the tool cannot provide an estimate if the amount entered under “highest annual work income” is too low to generate an estimate.' %}
{% trans "As you approach retirement, we recommend that you contact the Social Security Administration for an estimate based on your actual earnings history" %}
{% trans 'Your estimate will be more accurate if it is based on your own actual earnings record, especially if you have had fluctuations in your income or gaps in employment over your career. To get an estimate based on your actual earnings record, you may want to open a “my Social Security” account or visit the Social Security Administration’s Retirement Estimator.' %}
{% trans "Other things to know" %}
- {% trans 'Our tool does not show other Social Security benefits, like spousal benefits, survivors’ benefits, or disability benefits that can be paid on your earnings record. You can get estimates for these benefits at the Social Security Administration’s Retirement Estimator or by opening or accessing your “my Social Security ” account.' %}
- {% trans 'You must meet some minimum working and age requirements to be eligible to receive retirement benefits from your own working record.' %}
- {% trans 'Other sources of retirement income like a pension from a state or local government for which you did not pay Social Security taxes may affect the amount of benefits that you will receive.' %}


---
sort_order: 78
tei_id: rdx_191dd.p.idp9376480
annotation_count: 0
images:
small-thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rffs5/mini-thumbnail/
json: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rffs5/info/
full: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rffs5/fs/
page: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rffs5/single-page/
thumbnail: https://readux.ecds.emory.edu/books/emory:191dd/pages/emory:rffs5/thumbnail/
title: Page 78
number: 78
---
{% raw %}80 THE LAKD-CLAIM.{% endraw %}
{% raw %}And I'm sorry enough you didn't just do what he asked you{% endraw %}
{% raw %}to—be married to him whether or no. For your father has{% endraw %}
{% raw %}cast you off; and Mauvais has no right to you—nobody thinks{% endraw %}
{% raw %}be has. It is worrying about this that keeps you so pale, I'm{% endraw %}
{% raw %}afraid; tho' you don't just own it. For you see it is going{% endraw %}
{% raw %}against nature."{% endraw %}
{% raw %}" Please, dear Mrs. Wyman," said Alicia, coaxingly, " do noti{% endraw %}
{% raw %}mention Mr. Alleu to me any more. I cau uot help doing{% endraw %}
{% raw %}what I have promised; I should be very unhappy to do any{% endraw %}
{% raw %}other way."{% endraw %}
{% raw %}" Well, dear, I won't trouble you; you have troubles enough{% endraw %}
{% raw %}I guess. I only wish you would take good care of yourself,{% endraw %}
{% raw %}and uot work so steady when I kuow you don't feel like it,"{% endraw %}
{% raw %}" I have been thinking all the afternoon about home—I mean{% endraw %}
{% raw %}about our house on the claim," said Alicia, dreamily.  'Tisn't likely you will meet any one{% endraw %}
{% raw %}out there. But I don't like to see you taking such lonely{% endraw %}
{% raw %}walks, because company would make you feel a great deal{% endraw %}
{% raw %}cheerfuller."{% endraw %}
{% raw %}" Not to-day," said Alicia, shaking her head. " I am longing{% endraw %}
{% raw %}to see the place alone; company would prevent my enjoy¬{% endraw %}
{% raw %}ment of it."{% endraw %}
{% raw %}" Well then, take care not to overheat yourself It's very{% endraw %}
{% raw %}sultry, and looks as if we might have a shower by evening.{% endraw %}
{% raw %}You'd better go by the lower road, in the shadow of thr{% endraw %}
{% raw %}bluffs."{% endraw %}
{% raw %}Promising to take all these precautions, Alicia set out upon{% endraw %}
{% raw %}ber walk. As she left town she turned into the " lower road,"{% endraw %}
{% raw %}which was a mere terrace along the river-bauk—a limestone{% endraw %}
{% raw %}ledge, like that on which the trading-post was built—and was{% endraw %}
{% raw %}overhung in the same way by a vine-clad wall of steep bluffs.{% endraw %}
{% raw %}Iu several places the wall was opened by the mouths of ravines{% endraw %}
{% raw %}that divided the ridge of the bluffs and afforded a way of{% endraw %}
{% raw %}ascent to the high prairie-laud beyond, as they gradually nar¬{% endraw %}
{% raw %}rowed in depth to the top of the ridge, like a funnel with its{% endraw %}
{% raw %}wide end inclined downward to the river. Opposite to one{% endraw %}
{% raw %}of these openings Alicia observed a skiff moored, with the oars{% endraw %}
{% raw %}Btill wet; but the oarsman himself w^as not visible. Thinking{% endraw %}
{% raw %}it was one of the many that crossed the river daily on some{% endraw %}


Step 1:
Unpacking the Problem
- Introduction to the brief
- Define and record the problems
- Define the environment, situation or format
- Knowledge share
- Reframe the brief and set priority objectives
- Understand the brief (summary / shared vision)
Step 1:
Unpacking the Problem


isambard.external_programs.scwrl module¶
This module provides an interface to the program Scwrl4.
Scwrl must be available to call. Check by running isambard.external_programs.scwrl.test_scwrl. If Scwrl is not available, please follow instruction here to add it: https://github.com/woolfson-group/isambard#external-programs
For more information on Scwrl see [1].
References
| [1] | Krivov GG, Shapovalov MV, and Dunbrack Jr RL (2009) “Improved prediction of protein side-chain conformations with SCWRL4.”, Proteins. |
-
pack_sidechains
(pdb, sequence, path=False)[source]¶ Packs sidechains onto a given PDB file or string.
Parameters: Returns: - scwrl_pdb (str) – String of packed SCWRL PDB.
- scwrl_score (float) – Scwrl packing score.
-
parse_scwrl_out
(scwrl_std_out, scwrl_pdb)[source]¶ Parses SCWRL output and returns PDB and SCWRL score.
Parameters: Returns: - fixed_scwrl_str (str) – String of packed SCWRL PDB, with correct PDB format.
- score (float) – SCWRL Score


Press Information Bureau sets up unit to combat fake news related to government
by PTIIn a bid to combat fake news, the Press Information Bureau (PIB) has set up a fact-checking unit to verify news related to the government’s ministries, departments and schemes.
The Information and Broadcast Ministry on Thursday urged people to email snapshots of any “dubious material” they come across on any platform including social media and it will get it checked.
 Send it across and we will Fact Check it for you, no questions asked,” the Ministry of Information and Broadcasting said on its Twitter handle.
It also adds that only material related with government ministries, departments and schemes will be fact-checked.
Information and Broadcasting Minister Prakash Javadekar has repeatedly called for combating fake news and recently said it is more dangerous than paid news.
On Thursday, Vice President M. Venkaiah Naidu had expressed concern over the “menace” of fake news and urged bodies such as the Press Council of India and News Broadcasters Association to come up with a mechanism to check the phenomenon.


Gale Van Rossem works on HTML code during a pair programming session with Troy Leach during DBC Phase 0
Clearly, pair programming is one of the most important skills that DBC teaches. Here is a look at four of the reasons that pair programming is so important:
Pair programming is increasingly common in software development in general and pretty standard for ruby on rails jobs and likely to be part of the interview process.
Enhances the learning experience - Knowledge is constantly shared between pair programmers, from tips on rules to design. Gives the oppertunity for one pair to examine the others code and provide feedback which is needed to increase their own abilities to develop.
Increases quality of code - less bugs. Pairing partners are less likely to go down in the rabbit hole, and tend to come up with better designs.
Promotes the sharing of ideas. Everyone has different minds that think in very different ways. Everyone also codes in different ways. Pair programming allows for, at a minimum, two ideas. This goes along with the idea that it enhances learning.
Pair Programming is a way of writing code with two people working on the same document. One person types and is typically called the "Driver." The other person is called the "Navigator."
Troy Leach works while Gale Van Rossem takes a break during a Dev Bootcamp pairing session
Although the terms can mean different things to different programmers, typically the Navigator will instruct the Driver which line of code to work on next and watch for errors in the code.
The driver usually goes where the Navigator says and is not to work on any other line of code. The Driver is not to make any changes to the code without discussing with the Navigator first. In most pairs, the Driver and Navigator will switch roles from time to time. If both programmers are equal in knowledge and skill, they will typically split the time in the two roles about 50/50.
One thing is for sure. If you attend Dev Bootcamp, you are going to learn how to be a good pair programmer. With all of the benefits pair programming brings to the table, it is easy to see why it is spreading so quickly in the development community. DBC will likely continue to focus on pair programming as a main component of it's disruptive educational system well into the future.
What was it like to pair for the first time?
Troy -
I was nervous. I really didn’t know what to expect and I didn’t know how someone would take to me. I have always been taught to be prepared for anything, anticipate what questions might be asked, what possible answers to give, but with this, I had now idea. As soon as the pairing started my partner made me feel right at home. In our ‘check in’ I expressed my feelings and thoughts and Gale listened. I believe a productive check in is vital for the success of any pairing.Gale immediately made me feel comfortable and I was able to ask questions and feed off his knowledge. Some folks tend to tell ‘you’ how to do something, not really explaining the why’s behind. Gale did an excellent job of explaining to me, in a way that I could understand, why we were doing things.
Gale -
I was nervous before we started because I wasn't sure how easy it would be to communicate in a way that was efficient. The nerves went away quickly though, and I credit Troy for that. We had a great "Check In" at the beginning and I think that really helped us.We both seemed at ease and ready to work at that point. We took a lot longer with the challenge than I expected. I don't think we could have done much to change that. It takes longer to make changes because you have to communicate a lot.
Troy was very good at communicating, and I think that really helped make it a productive and enjoyable session. Even though it went longer than I expected, it never felt like a drag. I think the finished product speaks for itself. I am very happy with what we accomplished and I enjoyed the experience very much.
I will be very lucky if every pairing session goes this smooth.
Did you enjoy it?
Troy -
I loved our pairing session. The time flew by, and yeah it took longer than either of us had thought but it didn’t seem like, ‘oh god we have to finish we are running out of time’ and I think we ended up with a very professional and educational site.Gale -
Yes, Very much!What worked?
Troy -
I really thought we worked well together with respect to driving and navigating. respecting each others thoughts and ideas. Clearly Gale has more experience than I but I never felt inferior. This site is OURS for sure. I don’t know that I like the "you drive, I navigate", then switch. I like the approach you type for 30 mins and we talk about what we are doing, then the other types for a while. What I’m trying to say is I think our communication worked very well together.Gale -
I think we had a good system where one person was driving and the other navigating and we did switch at least once. I think we were both very agreeable and decision making was surprisingly easy because of this. At the same time, neither of us were afraid to state an opinion if we saw something wrong or something that just didn't work.What didn't work?
Troy -
I know that constructive critisum is vital in making any relationship work. However I don’t feel like anything ‘didn’t work'Gale -
I feel like it worked very well. I'm comfortable giving feedback here, but I really feel like we did the best we could considering it was the first real pairing session for each of us. I think it took a long time, but I don't see that we could have changed that in this case. We could have rushed through things, but we would not have learned as much.I do think that I should have read the assignment closer, so that we wouldn't have had to revisit a few things. I'll take the blame for that.


{{message}}
Back to ProductList
{{product.name}}
{{product.label}}
{{product.price | currency}}
{{product.description}}
Comments
Sorted by:
[-]{date,author,rating}
{{comment.comment}}
{{comment.comment}}
Name
Your Name is required.
Rating:
1
2
3
4
5
Add your Comments
Yours comments are required.
Submit Comment
Comments
Sorted by: [-]{date,author,rating}


Embeducation
Characters
Houses
Witches
Wizards
HP
Add Text
Get to Know the Characters!
Harry
Ron
Hermione
Dumbledore
Voldemort
Snape
Ginny
Find
1
5
10
100
nearest neighbors for
Go
Find path from
to
Go
Find distance between
and
Go
Going from
to
is the same as going from
to
Go


The content of this chapter is largely applicable to batch mode but we represent it in Jupyter notebook for easy reproduction of results. If you are not familiar with Jupyter notebook, please refer to chapter Notebook Interface for details. For the impatience, the magics
%sandgox
execute the cell in a temporary directory!cmd
execute shell command cmd
%run
run the cell as if in command line with specified options%rerun
rerun the last executed script (cell content without magics)%set
set options that would be included in each $run
commandSoS uses a logging system to output all sorts of information during the execution of workflows. The amount of output can be controlled by logging level, which can be error
(0), warning
(1), info
(2), debug
(3), and trace
(4). The default logging level for SoS is info
in batch mode and warning
in interactive mode.
For example, logging at info
level would produce message indicating the steps executed and input output files, but nothing but warning and errors at the warning
level.
%sandbox
!touch a.txt
%run -v2
[10]
[20]
input: 'a.txt'
[30]
[40]
%sandbox
!touch a.txt
%run -v1
[10]
[20]
input: 'a.txt'
[30]
[40]
dryrun
mode¶The dryrun
mode is used to check for syntax errors of a SoS script without actually executing any of the actions. It can be specified with option -n
. For example, running the following script in dryrun mode would produce an error message
%sandbox --expect-error
%run -n
[10, skip=False]
sh:
echo "I am command echo"
because the header of the step is wrong (should use :
instead of ,
).
The dryrun mode would print the commands in a script without actually executing them:
%run -n
[10: skip=False]
sh:
echo "I am command echo"
sleep 100000000
There are cases where you would like to use a specific version of programs for your workflow but do not want to change the system $PATH
because of its global effect. In this case you can prepend pathes to these executables to $PATH
using option -b
.
The following example first cretes a executable ls
in tmp
with an echo
command. Using the option -b tmp
, the tmp
directory is prefixed to the system $PATH
before the workflow is executed. The consequence is that this fake ls
supersedes the system ls
when ls
is called in step_10
of the workflow.
%sandbox
!mkdir tmp
!echo "#!/bin/bash" > tmp/ls
!echo "echo This is fake ls" >> tmp/ls
!chmod +x tmp/ls
%run -b tmp
[10]
sh:
ls
The -b
option has a default value ~/.sos/bin
, so any command under ~/.sos/bin
would be executed (before system command with the same name) even if the executables are not under system $PATH
. This feature allows you to create commands that would only be used inside SoS-scripts, and more interestingly, allows you to create executable or install programs on-the-fly.
For example, step 20 of the following workflow depends on an executable lls
that is not a system executable.
%sandbox
!rm -f ~/.sos/bin/lls
[install_lls: provides=executable('lls')]
run:
echo "#!/bin/bash" > ~/.sos/bin/lls
echo "echo This is lls" >> ~/.sos/bin/lls
chmod +x ~/.sos/bin/lls
[20]
depends: executable('lls')
run:
lls
because lls
is created under ~/.sos/bin
, it would be immediately available to SoS after the install_lls
step. This works for any program as long as you can create a symbolic link under ~/.sos/bin
after its installation.
You can always disable this behavior by setting option -b
without value.
One of the most annonying problems with the development and execution of workflows is that it can take very long times to execute then. What makes things worse is that we frequently need to re-run the workflow with different paremeters and even different tools -- it can be really time-consuming to re-execute the whole workflow repeatedly, but it is also very error-prone to repeat selected steps of a workflow.
SoS addresses this problem by using runtime signatures to keep track of execution units, namely the input, output, and dependent targets, and related SoS variables of a piece of workflow. SoS tracks execution of statements at the step level for each input group and saves runtime signatures at a folder called .sos
under the project directory. The runtime signatures are used to
This tutorial focuses on the first usage. The second one would be described in detail in Project Management.
ignore
mode¶SoS workflows can be executed in batch mode and in interactive mode using the SoS kernel in Jupyter notebook or qtconsole. Because the SoS kernel is mostly used to execute short statements in SOS and other kernels, runtime signatures are by default set to ignore
in interactive mode (and to default
in batch mode).
Let us create a temporary directory and execute a workflow that take a bit of time to execute. This is done in the default ignore
signature mode of the Jupyter notebook
%sandbox --dir tmp
!rm -rf .sos/.runtime
![ -d temp ] || mkdir temp
%sandbox --dir tmp
parameter: size=1000
[10]
output: "temp/result.txt"
sh:
dd if=/dev/urandom of=${output} count=${size}
[20]
output: 'temp/size.txt'
with open(output[0], 'w') as sz:
sz.write("${input}: ${os.path.getsize(input[0])}\n")
Now, if we re-run the last script, nothing changes and it takes a bit of time to execute the script.
%sandbox --dir tmp
%rerun
default
mode¶Now let us switch to default
mode of signature by running the script with option -s default
. When you run the script for the first time, it would execute normally and save runtime signature of the steps.
%sandbox --dir tmp
%rerun -s default
but both steps would be ignored. Here we use -v2
to show the ignored
message. This time we use magic %set
to make option -s default
persistent so that we do not have to specify it each time.
%sandbox --dir tmp
%set -s default
%rerun -v2
However, if you use a different parameter (not the default size=1000
), the steps would be rerun
%sandbox --dir tmp
%rerun -v2 --size 2000
The signature is at the step level so if you change the second step of the script, the first step would still be skipped. Note that the step is independent of the script executed so a step would be skipped even if its signature was saved by the execution of another workflow. The signature is clever enough to allow minor changes such as addition of spaces and comments.
%sandbox --dir tmp
%run --size 2000 -v2
parameter: size=1000
[10]
output: "temp/result.txt"
# added comment
sh:
dd if=/dev/urandom of=${output} count=${size}
[20]
output: 'temp/size.txt'
with open(output[0], 'w') as sz:
sz.write("Modified ${input}: ${os.path.getsize(input[0])}\n")
assert
mode¶The assert
mode is used to detect if anything has been changed after the execution of a workflow. For example,
%sandbox --dir tmp
%set -s assert
%rerun --size 2000 -v2
Now if you change one of the output files, sos would fail with an error message.
%sandbox --expect-error --dir tmp
!echo "aaa" >> temp/result.txt
%rerun --size 2000 -v2
force
mode¶The force
signature mode ignores existing signatures and re-run the workflow. This is needed when you would like to forcefully re-run all the steps to generate another set of output if outcome of some steps is random, or to re-run the workflow because of changes that is not tracked by SoS, for example after you have installed a new version of a program.
%sandbox --dir tmp
%set
%rerun --size 2000 -s force
build
mode¶The build
mode is somewhat opposite to the force
mode in that it creates (or overwrite existing signature if exists) with existing output files. It is useful, for example, if you are adding a step to a workflow that you have tested outside of SoS (without signature) but do not want to rerun it, or if for some reason you have lost your signature files and would like to reconstruct them from existing outputs.
%sandbox --dir tmp
%rerun --size 2000 -s build -v2
This mode can introduce erraneous files to the signatures because it does not check the validity of the incorporated files. For example, SoS would not complain if you change parameter and replace temp/result.txt
with something else.
%sandbox --dir tmp
!echo "something else" > temp/result.txt
%rerun -s build -v2
# cleanup
!rm -rf tmp
SoS keep tracks of all intermediate files and will rerun steps only if any of the tracked files are removed or changed. However, it is often desired to remove some of the large non-essential intemediate files to reduce diskspace used by completed workflows, while allowing the workflow to be re-executed without these files. SoS provides a command
sos remove files --zap
to zap specified file, or for example
sos remove . --size +5G --zap
to zap all files larger than 5G. This command removes specified files but keeps a special ${file}.zapped
file with essential information (e.g. md5 signature, and size). SoS would consider a file exist when a .zapped
file is present and will only regenerate the file if the actual file is needed for a later step.
For example, let us execute a workflow with output temp/result.txt
, and temp/size.txt
.
%run -s force
[10]
output: "temp/result.txt"
# added comment
sh:
dd if=/dev/urandom of=${output} count=2000
[20]
output: 'temp/size.txt'
with open(output[0], 'w') as sz:
sz.write("Modified ${input}: ${os.path.getsize(input[0])}\n")
and let us zap the intermediate file temp/result.txt
,
!sos remove temp/result.txt --zap -y
!ls temp
As you can see, temp/result.txt
is replaced with temp/result.txt.zapped
. Now if you rerun the workflow
%rerun -s default -v2


About CashQ
CashQ is our upcoming mobile payment app. It heavily relies on QR for helping its users to do payments and many other features. It built on top of noebs
, our free and open source payment gateway.
Problem statement
We wanted to build a reliable system without repeating ourselves. Huge part of our time is being wasted (and it would be) on EBS and Central Bank of Sudan internal processes. It is important for us, in order to secure our business, to account for this delay.
So we went on having these choices:
- extend noebs
to include the rather unstable Consumer APIs
- clone noebs
and start a new branch for Consumer APIs
And for either choices we have to account for the browser and other clients (Android). Of course using RESTful APIs seems to be the logical way to proceed with this in:
- it will allow to write one source code for different HTTP clients
- heavily relying on JS to consume the APIs will incur performance penalties, something that we have been meaning to avoid!
Performance is VERY important for us and it is one of our toppest priorities. In rather unstable internet connection like in Sudan, it is far more predictable that the internet will be very slow than being reliable! JavaScript is a curse and a bliss; using a modern JS framework will greatly reduce the development time, however that will result in performance issues:
- Server rendering is faster than client rendering
- Heavily relying on JS frameworks without proper minification will make the browser load tons of kilobytes
We have to use RESTful, but reduce JS
Our solution architecture
A really simple one if you asked me:
- we will build the consumer on top of noebs certified payment gateway (many of our top security features are for free!)
- a new user management system APIs will be added with proper session, tokens, etc
- the user’s layer will be responsible of ensuring authorized users only will use the endpoints
And that’s it actually! You see the simplicity in the system? No fuss!
It has many advantages:
- noebs code is intrinsically modular, which is how it allowed for this design
- we will build our system on a bullet proof system in both security and PCI compliant
The most important thing however is that we won’t be needing to rewrite any of our code! noebs
is modular in its core and that’s allowed it to be easily adopted to be used in a totally different scenario than the first use case.
More updates about the new system will be released in the next upcoming weeks!


Please specify the length of your desired password. Note that the password must at least be 8 characters long and must not exceed 128 characters.
Which of the following characteristics would you like your password to include? You can select as many options as you like from the list below.
You did not select any option. Your password must contain at least one characteristic. Click ok to make your selection.
Your password has been copied to clipboard. Thank you for using Legit Password Generator


Volunteers (hangs around EngineersMY slack)
https://engineersmy.herokuapp.com
Monthly meetup announced on meetup.com
Get in touch via meetup.com
or
Slack us to volunteer / speak / sponsor
DevKami curated meetups: https://devkami.com/page/meetups/
KL meetups by Tokwan: http://malaysia.herokuapp.com/#upcoming
From 1.23.0 naming scheme changed from
<project>_<service>_<idx>
to <project>_<service>_<idx>_<slug>
slug is randomly-generated hexadecimal string
May combine 2 models:
Use any language and share common components via
Lambda Layers
&Lambda Runtime API
Link5th Europe region opened (eu-north-1
)


All
(current)
Library
Analytics
Export
Nav item
Nav item again
One more nav
Another nav item
More navigation
Nav item again
One more nav {{ main.data.greeting }}
Settings


Tate-Shafarevich group#
If \(E\) is an elliptic curve over a global field \(K\), the Tate-Shafarevich group is the subgroup of elements in \(H^1(K,E)\) which map to zero under every global-to-local restriction map \(H^1(K,E) \to H^1(K_v,E)\), one for each place \(v\) of \(K\).
The group is usually denoted by the Russian letter Sha (Ш), in this document it will be denoted by \(Sha\).
\(Sha\) is known to be an abelian torsion group. It is conjectured that the Tate-Shafarevich group is finite for any elliptic curve over a global field. But it is not known in general.
A theorem of Kolyvagin and Gross-Zagier using Heegner points shows that if the L-series of an elliptic curve \(E/\QQ\) does not vanish at 1 or has a simple zero there, then \(Sha\) is finite.
A theorem of Kato, together with theorems from Iwasawa theory, allows for certain primes \(p\) to show that the \(p\)-primary part of \(Sha\) is finite and gives an effective upper bound for it.
The (\(p\)-adic) conjecture of Birch and Swinnerton-Dyer predicts the order of \(Sha\) from the leading term of the (\(p\)-adic) L-series of the elliptic curve.
Sage can compute a few things about \(Sha\). The commands an
,
an_numerical
and an_padic
compute the conjectural order of \(Sha\) as a
real or \(p\)-adic number. With p_primary_bound
one can find an upper bound
of the size of the \(p\)-primary part of \(Sha\). Finally, if the analytic rank is
at most 1, then bound_kato
and bound_kolyvagin
find all primes for
which the theorems of Kato and Kolyvagin respectively do not prove the
triviality the \(p\)-primary part of \(Sha\).
EXAMPLES:
sage: E = EllipticCurve('11a1')
sage: S = E.sha()
sage: S.bound_kato()
[2]
sage: S.bound_kolyvagin()
([2, 5], 1)
sage: S.an_padic(7,3)
1 + O(7^5)
sage: S.an()
1
sage: S.an_numerical()
1.00000000000000
sage: E = EllipticCurve('389a')
sage: S = E.sha(); S
Tate-Shafarevich group for the
Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field
sage: S.an_numerical()
1.00000000000000
sage: S.p_primary_bound(5)
0
sage: S.an_padic(5)
1 + O(5)
sage: S.an_padic(5,prec=4) # long time (2s on sage.math, 2011)
1 + O(5^3)
AUTHORS:
William Stein (2007) – initial version
Chris Wuthrich (April 2009) – reformat docstrings
Aly Deines, Chris Wuthrich, Jeaninne Van Order (2016-03): Added functionality that tests the Skinner-Urban condition.
- class sage.schemes.elliptic_curves.sha_tate.Sha(E)#
Bases:
SageObject
The Tate-Shafarevich group associated to an elliptic curve.
If \(E\) is an elliptic curve over a global field \(K\), the Tate-Shafarevich group is the subgroup of elements in \(H^1(K,E)\) which map to zero under every global-to-local restriction map \(H^1(K,E) \to H^1(K_v,E)\), one for each place \(v\) of \(K\).
EXAMPLES:
sage: E = EllipticCurve('571a1') sage: E._set_gens([]) # curve has rank 0, but non-trivial Sha[2] sage: S = E.sha() sage: S.bound_kato() [2] sage: S.bound_kolyvagin() ([2], 1) sage: S.an_padic(7,3) 4 + O(7^5) sage: S.an() 4 sage: S.an_numerical() 4.00000000000000 sage: E = EllipticCurve('389a') sage: S = E.sha(); S Tate-Shafarevich group for the Elliptic Curve defined by y^2 + y = x^3 + x^2 - 2*x over Rational Field sage: S.an_numerical() 1.00000000000000 sage: S.p_primary_bound(5) # long time 0 sage: S.an_padic(5) # long time 1 + O(5) sage: S.an_padic(5,prec=4) # very long time 1 + O(5^3)
- an(use_database=False, descent_second_limit=12)#
Returns the Birch and Swinnerton-Dyer conjectural order of \(Sha\) as a provably correct integer, unless the analytic rank is > 1, in which case this function returns a numerical value.
INPUT:
use_database
– bool (default:False
); ifTrue
, try to use any databases installed to lookup the analytic order of \(Sha\), if possible. The order of \(Sha\) is computed if it cannot be looked up.descent_second_limit
– int (default: 12); limit to use on point searching for the quartic twist in the hard case
This result is proved correct if the order of vanishing is 0 and the Manin constant is <= 2.
If the optional parameter
use_database
isTrue
(default:False
), this function returns the analytic order of \(Sha\) as listed in Cremona’s tables, if this curve appears in Cremona’s tables.NOTE:
If you come across the following error:
sage: E = EllipticCurve([0, 0, 1, -34874, -2506691]) sage: E.sha().an() Traceback (most recent call last): ... RuntimeError: Unable to compute the rank, hence generators, with certainty (lower bound=0, generators found=[]). This could be because Sha(E/Q)[2] is nontrivial. Try increasing descent_second_limit then trying this command again.
You can increase the
descent_second_limit
(in the above example, set to the default, 12) option to try again:sage: E.sha().an(descent_second_limit=16) # long time (2s on sage.math, 2011) 1
EXAMPLES:
sage: E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) sage: E.sha().an() 1 sage: E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) sage: E.sha().an() 1 sage: EllipticCurve('14a4').sha().an() 1 sage: EllipticCurve('14a4').sha().an(use_database=True) # will be faster if you have large Cremona database installed 1
The smallest conductor curve with nontrivial \(Sha\):
sage: E = EllipticCurve([1,1,1,-352,-2689]) # 66b3 sage: E.sha().an() 4
The four optimal quotients with nontrivial \(Sha\) and conductor <= 1000:
sage: E = EllipticCurve([0, -1, 1, -929, -10595]) # 571A sage: E.sha().an() 4 sage: E = EllipticCurve([1, 1, 0, -1154, -15345]) # 681B sage: E.sha().an() 9 sage: E = EllipticCurve([0, -1, 0, -900, -10098]) # 960D sage: E.sha().an() 4 sage: E = EllipticCurve([0, 1, 0, -20, -42]) # 960N sage: E.sha().an() 4
The smallest conductor curve of rank > 1:
sage: E = EllipticCurve([0, 1, 1, -2, 0]) # 389A (rank 2) sage: E.sha().an() 1.00000000000000
The following are examples that require computation of the Mordell- Weil group and regulator:
sage: E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) sage: E.sha().an() 1 sage: E = EllipticCurve("1610f3") sage: E.sha().an() 4
In this case the input curve is not minimal, and if this function did not transform it to be minimal, it would give nonsense:
sage: E = EllipticCurve([0, -432*6^2]) sage: E.sha().an() 1
See github issue #10096: this used to give the wrong result 6.0000 before since the minimal model was not used:
sage: E = EllipticCurve([1215*1216, 0]) # non-minimal model sage: E.sha().an() # long time (2s on sage.math, 2011) 1.00000000000000 sage: E.minimal_model().sha().an() # long time (1s on sage.math, 2011) 1.00000000000000
- an_numerical(prec=None, use_database=True, proof=None)#
Return the numerical analytic order of \(Sha\), which is a floating point number in all cases.
INPUT:
prec
– integer (default: 53) bits precision – used for the L-series computation, period, regulator, etc.use_database
– whether the rank and generators should be looked up in the database if possible. Default isTrue
proof
– bool orNone
(default:None
, see proof.[tab] or sage.structure.proof) proof option passed onto regulator and rank computation.
Note
See also the
an()
command, which will return a provably correct integer when the rank is 0 or 1.Warning
If the curve’s generators are not known, computing them may be very time-consuming. Also, computation of the L-series derivative will be time-consuming for large rank and large conductor, and the computation time for this may increase substantially at greater precision. However, use of very low precision less than about 10 can cause the underlying PARI library functions to fail.
EXAMPLES:
sage: EllipticCurve('11a').sha().an_numerical() 1.00000000000000 sage: EllipticCurve('37a').sha().an_numerical() 1.00000000000000 sage: EllipticCurve('389a').sha().an_numerical() 1.00000000000000 sage: EllipticCurve('66b3').sha().an_numerical() 4.00000000000000 sage: EllipticCurve('5077a').sha().an_numerical() 1.00000000000000
A rank 4 curve:
sage: EllipticCurve([1, -1, 0, -79, 289]).sha().an_numerical() # long time (3s on sage.math, 2011) 1.00000000000000
A rank 5 curve:
sage: EllipticCurve([0, 0, 1, -79, 342]).sha().an_numerical(prec=10, proof=False) # long time (22s on sage.math, 2011) 1.0
See github issue #1115:
sage: sha = EllipticCurve('37a1').sha() sage: [sha.an_numerical(prec) for prec in range(40,100,10)] # long time (3s on sage.math, 2013) [1.0000000000, 1.0000000000000, 1.0000000000000000, 1.0000000000000000000, 1.0000000000000000000000, 1.0000000000000000000000000]
- an_padic(p, prec=0, use_twists=True)#
Returns the conjectural order of \(Sha(E/\QQ)\), according to the \(p\)-adic analogue of the Birch and Swinnerton-Dyer conjecture as formulated in [MTT1986] and [BP1993].
INPUT:
p
– a prime > 3prec
(optional) – the precision used in the computation of the \(p\)-adic L-Seriesuse_twists
(default:True
) – IfTrue
the algorithm may change to a quadratic twist with minimal conductor to do the modular symbol computations rather than using the modular symbols of the curve itself. IfFalse
it forces the computation using the modular symbols of the curve itself.
OUTPUT: \(p\)-adic number - that conjecturally equals \(\# Sha(E/\QQ)\).
If
prec
is set to zero (default) then the precision is set so that at least the first \(p\)-adic digit of conjectural \(\# Sha(E/\QQ)\) is determined.EXAMPLES:
Good ordinary examples:
sage: EllipticCurve('11a1').sha().an_padic(5) # rank 0 1 + O(5^22) sage: EllipticCurve('43a1').sha().an_padic(5) # rank 1 1 + O(5) sage: EllipticCurve('389a1').sha().an_padic(5,4) # rank 2, long time (2s on sage.math, 2011) 1 + O(5^3) sage: EllipticCurve('858k2').sha().an_padic(7) # rank 0, non trivial sha, long time (10s on sage.math, 2011) 7^2 + O(7^24) sage: EllipticCurve('300b2').sha().an_padic(3) # 9 elements in sha, long time (2s on sage.math, 2011) 3^2 + O(3^24) sage: EllipticCurve('300b2').sha().an_padic(7, prec=6) # long time 2 + 7 + O(7^8)
Exceptional cases:
sage: EllipticCurve('11a1').sha().an_padic(11) # rank 0 1 + O(11^22) sage: EllipticCurve('130a1').sha().an_padic(5) # rank 1 1 + O(5)
Non-split, but rank 0 case (github issue #7331):
sage: EllipticCurve('270b1').sha().an_padic(5) # rank 0, long time (2s on sage.math, 2011) 1 + O(5^22)
The output has the correct sign:
sage: EllipticCurve('123a1').sha().an_padic(41) # rank 1, long time (3s on sage.math, 2011) 1 + O(41)
Supersingular cases:
sage: EllipticCurve('34a1').sha().an_padic(5) # rank 0 1 + O(5^22) sage: EllipticCurve('53a1').sha().an_padic(5) # rank 1, long time (11s on sage.math, 2011) 1 + O(5)
Cases that use a twist to a lower conductor:
sage: EllipticCurve('99a1').sha().an_padic(5) 1 + O(5) sage: EllipticCurve('240d3').sha().an_padic(5) # sha has 4 elements here 4 + O(5) sage: EllipticCurve('448c5').sha().an_padic(7, prec=4, use_twists=False) # long time (2s on sage.math, 2011) 2 + 7 + O(7^6) sage: EllipticCurve([-19,34]).sha().an_padic(5) # see trac #6455, long time (4s on sage.math, 2011) 1 + O(5)
Test for github issue #15737:
sage: E = EllipticCurve([-100,0]) sage: s = E.sha() sage: s.an_padic(13) 1 + O(13^20)
- bound()#
Compute a provably correct bound on the order of the Tate-Shafarevich group of this curve. The bound is either
False
(no bound) or a listB
of primes such that any prime divisor of the order of \(Sha\) is in this list.EXAMPLES:
sage: EllipticCurve('37a').sha().bound() ([2], 1)
- bound_kato()#
Returns a list of primes \(p\) such that the theorems of Kato’s [Kat2004] and others (e.g., as explained in a thesis of Grigor Grigorov [Gri2005]) imply that if \(p\) divides the order of \(Sha(E/\QQ)\) then \(p\) is in the list.
If \(L(E,1) = 0\), then this function gives no information, so it returns
False
.THEOREM: Suppose \(L(E,1) \neq 0\) and \(p \neq 2\) is a prime such that
\(E\) does not have additive reduction at \(p\),
either the \(p\)-adic representation is surjective or has its image contained in a Borel subgroup.
Then \({ord}_p(\#Sha(E))\) is bounded from above by the \(p\)-adic valuation of \(L(E,1)\cdot\#E(\QQ)_{tor}^2 / (\Omega_E \cdot \prod c_v)\).
If the L-series vanishes, the method
p_primary_bound
can be used instead.EXAMPLES:
sage: E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) sage: E.sha().bound_kato() [2] sage: E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) sage: E.sha().bound_kato() [2] sage: E = EllipticCurve([1,1,1,-352,-2689]) # 66B3 sage: E.sha().bound_kato() [2]
For the following curve one really has that 25 divides the order of \(Sha\) (by [GJPST2009]):
sage: E = EllipticCurve([1, -1, 0, -332311, -73733731]) # 1058D1 sage: E.sha().bound_kato() # long time (about 1 second) [2, 5, 23] sage: E.galois_representation().non_surjective() # long time (about 1 second) []
For this one, \(Sha\) is divisible by 7:
sage: E = EllipticCurve([0, 0, 0, -4062871, -3152083138]) # 3364C1 sage: E.sha().bound_kato() # long time (< 10 seconds) [2, 7, 29]
No information about curves of rank > 0:
sage: E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) sage: E.sha().bound_kato() False
- bound_kolyvagin(D=0, regulator=None, ignore_nonsurj_hypothesis=False)#
Given a fundamental discriminant \(D \neq -3,-4\) that satisfies the Heegner hypothesis for \(E\), return a list of primes so that Kolyvagin’s theorem (as in Gross’s paper) implies that any prime divisor of \(Sha\) is in this list.
INPUT:
D
– (optional) a fundamental discriminant < -4 that satisfies the Heegner hypothesis for \(E\); if not given, use the first such \(D\)regulator
– (optional) regulator of \(E(K)\); if not given, will be computed (which could take a long time)ignore_nonsurj_hypothesis
(optional: defaultFalse
) – IfTrue
, then gives the bound coming from Heegner point index, but without any hypothesis on surjectivity of the mod-\(p\) representation.
OUTPUT:
list – a list of primes such that if \(p\) divides \(Sha(E/K)\), then \(p\) is in this list, unless \(E/K\) has complex multiplication or analytic rank greater than 2 (in which case we return 0).
index – the odd part of the index of the Heegner point in the full group of \(K\)-rational points on E. (If \(E\) has CM, returns 0.)
REMARKS:
We do not have to assume that the Manin constant is 1 (or a power of 2). If the Manin constant were divisible by a prime, that prime would get included in the list of bad primes.
We assume the Gross-Zagier theorem is true under the hypothesis that \(gcd(N,D) = 1\), instead of the stronger hypothesis \(gcd(2\cdot N,D)=1\) that is in the original Gross-Zagier paper. That Gross-Zagier is true when \(gcd(N,D)=1\) is “well-known” to the experts, but does not seem to written up well in the literature.
Correctness of the computation is guaranteed using interval arithmetic, under the assumption that the regulator, square root, and period lattice are computed to precision at least \(10^{-10}\), i.e., they are correct up to addition or a real number with absolute value less than \(10^{-10}\).
EXAMPLES:
sage: E = EllipticCurve('37a') sage: E.sha().bound_kolyvagin() ([2], 1) sage: E = EllipticCurve('141a') sage: E.sha().an() 1 sage: E.sha().bound_kolyvagin() ([2, 7], 49)
We get no information when the curve has rank 2.:
sage: E = EllipticCurve('389a') sage: E.sha().bound_kolyvagin() (0, 0) sage: E = EllipticCurve('681b') sage: E.sha().an() 9 sage: E.sha().bound_kolyvagin() ([2, 3], 9)
- p_primary_bound(p)#
Return a provable upper bound for the order of the \(p\)-primary part \(Sha(E)(p)\) of the Tate-Shafarevich group.
INPUT:
p
– a prime > 2
OUTPUT:
e
– a non-negative integer such that \(p^e\) is an upper bound for the order of \(Sha(E)(p)\)
In particular, if this algorithm does not fail, then it proves that the \(p\)-primary part of \(Sha\) is finite. This works also for curves of rank > 1.
Note also that this bound is sharp if one assumes the main conjecture of Iwasawa theory of elliptic curves. One may use the method
p_primary_order
for checking if the extra conditions hold under which the main conjecture is known by the work of Skinner and Urban. This then returns the provable \(p\)-primary part of the Tate-Shafarevich group.Currently the algorithm is only implemented when the following conditions are verified:
The \(p\)-adic Galois representation must be surjective or must have its image contained in a Borel subgroup.
The reduction at \(p\) is not allowed to be additive.
If the reduction at \(p\) is non-split multiplicative, then the rank must be 0.
If \(p = 3\), then the reduction at 3 must be good ordinary or split multiplicative, and the rank must be 0.
ALGORITHM:
The algorithm is described in [SW2013]. The results for the reducible case can be found in [Wu2004]. The main ingredient is Kato’s result on the main conjecture in Iwasawa theory.
EXAMPLES:
sage: e = EllipticCurve('11a3') sage: e.sha().p_primary_bound(3) 0 sage: e.sha().p_primary_bound(5) 0 sage: e.sha().p_primary_bound(7) 0 sage: e.sha().p_primary_bound(11) 0 sage: e.sha().p_primary_bound(13) 0 sage: e = EllipticCurve('389a1') sage: e.sha().p_primary_bound(5) 0 sage: e.sha().p_primary_bound(7) 0 sage: e.sha().p_primary_bound(11) 0 sage: e.sha().p_primary_bound(13) 0 sage: e = EllipticCurve('858k2') sage: e.sha().p_primary_bound(3) # long time (10s on sage.math, 2011) 0
Some checks for github issue #6406 and github issue #16959:
sage: e.sha().p_primary_bound(7) # long time 2 sage: E = EllipticCurve('608b1') sage: E.sha().p_primary_bound(5) Traceback (most recent call last): ... ValueError: The p-adic Galois representation is not surjective or reducible. Current knowledge about Euler systems does not provide an upper bound in this case. Try an_padic for a conjectural bound. sage: E.sha().an_padic(5) # long time 1 + O(5^22) sage: E = EllipticCurve("5040bi1") sage: E.sha().p_primary_bound(5) # long time 0
- p_primary_order(p)#
Return the order of the \(p\)-primary part of the Tate-Shafarevich group.
This uses the result of Skinner and Urban [SU2014] on the main conjecture in Iwasawa theory. In particular the elliptic curve must have good ordinary reduction at \(p\), the residual Galois representation must be surjective. Furthermore there must be an auxiliary prime \(\ell\) dividing the conductor of the curve exactly once such that the residual representation is ramified at \(p\).
INPUT:
\(p\) – an odd prime
OUTPUT:
\(e\) – a non-negative integer such that \(p^e\) is the order of the \(p\)-primary order if the conditions are satisfied and raises a
ValueError
otherwise.
EXAMPLES:
sage: E = EllipticCurve("389a1") # rank 2 sage: E.sha().p_primary_order(5) 0 sage: E = EllipticCurve("11a1") sage: E.sha().p_primary_order(7) 0 sage: E.sha().p_primary_order(5) Traceback (most recent call last): ... ValueError: The order is not provably known using Skinner-Urban. Try running p_primary_bound to get a bound.
- two_selmer_bound()#
This returns the 2-rank, i.e. the \(\GF{2}\)-dimension of the 2-torsion part of \(Sha\), provided we can determine the rank of \(E\).
EXAMPLES:
sage: sh = EllipticCurve('571a1').sha() sage: sh.two_selmer_bound() 2 sage: sh.an() 4 sage: sh = EllipticCurve('66a1').sha() sage: sh.two_selmer_bound() 0 sage: sh.an() 1 sage: sh = EllipticCurve('960d1').sha() sage: sh.two_selmer_bound() 2 sage: sh.an() 4


T'foot o' our stairs tha daft apeth chuffin' nora nobbut a lad ah'll box thi ears. Is that thine soft lad. Dahn t'coil oil tell thi summat for nowt bloomin' 'eck wacken thi sen up wacken thi sen up. Will 'e 'eckerslike. Eeh th'art nesh thee. Is that thine wacken thi sen up shu' thi gob cack-handed. Ah'll gi' thee a thick ear tintintin what's that when it's at ooam breadcake. Bobbar ah'll learn thi eeh.  Ee by gum appens as maybe what's that when it's at ooam how much. God's own county eeh sup wi' 'im ee by gum will 'e 'eckerslike. Gerritetten th'art nesh thee tintintin appens as maybe michael palin. Bloomin' 'eck. Big girl's blouse will 'e 'eckerslike nah then. Appens as maybe ah'll gi' thee a


This tool helps to list all consumer groups, describe a consumer group, delete consumer group info, or reset consumer group offsets.
Option Description
group in the `reset-offsets` process.
connect to>
from current timestamp. Format:
'PnDTnHnMnS'
config property file> passed to Admin Client and Consumer.
partition offsets and ownership
information over the entire consumer
group. For instance --group g1 --
group g2
Supports one consumer group at the
time, and multiple topics.
offset lag (number of messages not
yet processed) related to given
group.
changes on Consumer Groups.
Supported operations: reset-offsets.
operations: reset-offsets.
file. Supported operations: reset-
offsets.
file.
option may be used with '--describe'
and '--bootstrap-server' options
only.
Example: --bootstrap-server localhost:
9092 --describe --group group1 --
members
partitions in the group along with
their offset lag. This is the
default sub-action of and may be
used with '--describe' and '--
bootstrap-server' options only.
Example: --bootstrap-server localhost:
9092 --describe --group group1 --
offsets
Supports one consumer group at the
time, and instances should be
inactive
Has 2 execution options: --dry-run
(the default) to plan which offsets
to reset, and --execute to update
the offsets. Additionally, the --
export option is used to export the
results to a CSV format.
You must choose one of the following
reset specifications: --to-datetime,
latest, --shift-by, --from-file, --
to-current.
To define the scope use --all-topics
or --topic. One scope must be
specified unless you use '--from-
file'.
by 'n', where 'n' can be positive or
negative.
may be used with '--describe' and '--
bootstrap-server' options only.
Example: --bootstrap-server localhost:
9092 --describe --group group1 --
state
use cases. For example, it can be
used when describing the group to
specify the maximum amount of time
in milliseconds to wait before the
group stabilizes (when the group is
just created, or is going through
some changes). (default: 5000)
Format: 'YYYY-MM-DDTHH:mm:SS.sss'
information should be deleted or
topic whose should be included in
the reset offset process. In `reset-
offsets` case, partitions can be
specified using this format: `topic1:
0,1,2`, where 0,1,2 are the
partition to be included in the
process. Reset-offsets also supports
multiple topic inputs.
any, when describing the group. This
option may be used with '--
offsets'/'--members'/'--state' and
'--bootstrap-server' options only.
Example: --bootstrap-server localhost:
9092 --describe --group group1 --
members --verbose


This will be displayed next to your username to tell visitors and friends your real name (or another name you would like to go by )
This will be displayed in your profile to tell visitors and friends who you are
Select an image to use as your profile image.


General discussion about Komodo. For useful links and more info click the pinned messages to the right. DON'T DM @jl777
100 messages
Before 05-Dec-19 12:00 AM
[TPUX] Djith Wattignies13-Jul-18 09:46 PM
Wowowow.. wait hold it.. i need to fill my bucket with 500 kmd first.. righty?
whatuperic13-Jul-18 09:48 PM
#1109
SHossain13-Jul-18 09:51 PM
added you to the group @whatuperic
AkiraX13-Jul-18 10:13 PM
Nice bump for zcash
bogybogy13-Jul-18 10:17 PM
Hy
Caglio13-Jul-18 10:17 PM
when moon ?
bogybogy13-Jul-18 10:18 PM
I was surprised by the announcement of coinbase today,we can see the real manipulation of the market, doesn't matter the technology is important who you know
Caglio13-Jul-18 10:18 PM
Coinbase is a scamy firm
bogybogy13-Jul-18 10:19 PM
..... unfortunately this is the way how they work
BlackJesus13-Jul-18 10:20 PM
I did be think coinbase is scammy they are laying the framework for all other CeX
bogybogy13-Jul-18 10:20 PM
In the announcement they mention you can send or receive none of the coins
Cex?
BlackJesus13-Jul-18 10:20 PM
Especially when dealing with US regulation which is by far the most comprehensive
Central exchange
Dex = decentralized exchange
It's because stellar is similiar to ripple and they are adding the first true privacy crypto as well
Zcash... The government will not like that at all
Zk-snarks cryptos are money with a built in washing feature or fungibility. The government will see it as the former(edited)
I mean coinbase and gemini are PoS places to turn crypto into USD ACH transfers....
bogybogy13-Jul-18 10:23 PM
But holding a decentralised project give you power to do what you like...
Coinbase and gemini are hold by some venture capitalist
This venture capitalist are involved in over 30% of the crypto projects
Soon or later will come some projects from china which they will hit hard the USA market
In 6 months uk government will release them position for crypto and they are look very friendly
The only thing what make me worried is IBM
They got involved everywhere
Steve Lee13-Jul-18 10:28 PM
We've done some internal research and the trend is that VCs and institutional money is where the majority of investments are coming from in these past few months
bogybogy13-Jul-18 10:28 PM
And why someone will use one of the projects decentralized
Steve Lee13-Jul-18 10:28 PM
IBM's strategy is to get deeply entrenched everywhere, build service led practices, and become a trusted advisor in enterprise accounts
IBM sold off the majority of their HW businesses and is mostly services led
decoupling from their HW business allows them to invest and focus more on service led engagements
bogybogy13-Jul-18 10:30 PM
Interesting approach by IBM in this case
Steve Lee13-Jul-18 10:30 PM
rather smart
they're dominating SEO for blockchain
can't do a google search without them popping up
bogybogy13-Jul-18 10:30 PM
But they are centralised
Steve Lee13-Jul-18 10:32 PM
that's also the difficulty, we have a technology born from a certain ideology and then there's the fact that the technology itself needs to adapt for mainstream adoption
bogybogy13-Jul-18 10:32 PM
The way I look this companys incorporated blockchain ,they reduce the cost for them but they charge the same price the customers
Steve Lee13-Jul-18 10:32 PM
a full move to decentralization will take time, but will also be fueled by mainstream adoption and user demand
compromises will have to be made until we reach that utopian state where we can live in a fully decentralized world
I believe in decentralization from a philosophical view, but my career has been in enterprise, so i'm also grounded in the reality of how the technology adoption plays out
Komodo's new vision is to meet the needs of the enterprise market, while not discriminating the access to our technology and solutions.
bogybogy13-Jul-18 10:40 PM
Nice words
True,we try live in utopia world but we can have only hope....at least the ideea is great and we know that Komodo build something better than others
We will need another 3 to 5 years to see blockchain work
Steve Lee13-Jul-18 10:43 PM
Yes - we're still far out.
BlackJesus13-Jul-18 10:47 PM
I hope Komodo realistically captures 1-5% of the market. Jl's goal is 1% I think we can do much better than that.
[TPUX] Djith Wattignies13-Jul-18 10:56 PM
Thats it.. gonna spend 1.15ETH to buy the remaining KMD i need to reach 500KMD.. nah!
Tort13-Jul-18 11:09 PM
worth it imo
it's like 200 kmd to 1 eth or so
Caglio13-Jul-18 11:36 PM
Anyone knows anything about rebranding that was planned to happen until EOY
Steve Lee13-Jul-18 11:47 PM
We've just partnered with an agency and conducted our initial discovery meetings. We'll share details with the community once we develop the master charter and pull together the full plan and timeline.
8
smellycouch13-Jul-18 11:49 PM
@BlackJesus totally agree. This should be top 10 like right now
[TPUX] Djith Wattignies13-Jul-18 11:52 PM
Done.. 500KMD in wallet now.
2
Caglio14-Jul-18 12:01 AM
@[TPUX] Djith Wattignies wish I got rich like that once
Whats worse, I could have them, if I didnt bought @ 6.5$ per piece
bogybogy14-Jul-18 12:13 AM
Maybe I'm the worst investorn in crypto from 2017 ....but ...for a reason I believe I'm lucky...I invest in Komodo last year and I get my 5 % monthly and in another's project from June 2017 and is same price))) today ...just they have been accepted by FCA authority in UK....so my psihic is trained to see this waves in crypto...but more importantly I educated myself what means crypto....
If we concentrate to the price will not help us....crypto give us a chance to get involved in project ...(wherever you can but you involved... marketing,promote to different channels the project, ..
Caglio14-Jul-18 12:19 AM
What is a FCA authority in UK ?
bogybogy14-Jul-18 12:19 AM
Financial conduct authority
Caglio14-Jul-18 12:19 AM
Oh I see, interesting
bogybogy14-Jul-18 12:20 AM
The Financial Conduct Authority (FCA) is a financial regulatory body in the United Kingdom, but operates independently of the UK Government,
Caglio14-Jul-18 12:21 AM
Well good luck sir, I think we all need it
bogybogy14-Jul-18 12:22 AM
Thanks ..if not just a bad investment..
But not for komodo))
...soon real good projects they find out they need to find a better blockchain than RC 20 they will move to komodo
Caglio14-Jul-18 12:26 AM
Its what people are saying, but truth is different
Komodo is beating all those project for a quite some tome now already
stull nothing happens
bogybogy14-Jul-18 12:34 AM
Wrong-komodo prove what they can do ...and is just the beginning...they will work more on this project....we can't compare Komodo with this silly ico on erc20 or elastos which make 100 milion dollars on ico and wants them people to promote the project for free...
bogybogy14-Jul-18 12:43 AM
If the new people coming they will learn the basic staff about crypto they will not get in this traps of the crazy projects promising the moon-komodo should be like a Bible for them just to educate them self
bogybogy14-Jul-18 12:53 AM
One thing I'm sure about crypto...this venture capitalist are the most greedy and they damage the crypto with them scams ico.end of story with them
BlackJesus14-Jul-18 02:31 AM
Komodo is going to take time but it'll be worth it.
I think or biggest catalyst will be simple contracts, we need to get those up and running so we can bring by more developers.
[TPUX] Djith Wattignies14-Jul-18 06:20 AM
@Caglio 500kmd is 750$ now.. not that unreachable. Had to sell my Ether for it and a little bit of bitcoin.
Holding this till mid 2020's or so ..
KMD could be worth over 20$ one day...
TheMaskedMan14-Jul-18 07:48 AM
hehe
Cryptoon14-Jul-18 08:39 AM
I have a couple of positions in other coins, once they reach my targets Im liquidating them for kmd as well
In the meantime add some fresh fiat from time to timz
jl777c14-Jul-18 09:49 AM
crypto conditions is live in a komodo runtime fork (parallel chain) and new devs can start experimenting with simple contracts now
NutellaLicka14-Jul-18 09:59 AM
eww you hodl fiat @Cryptoon , who does that these days
Cryptoon14-Jul-18 10:54 AM
People that have real life obligations @NutellaLicka
3
Caglio14-Jul-18 12:51 PM
@[TPUX] Djith Wattignies Mid 2020s oO ?
That seems a little long, like 2025.. I mean its in 7 years, I dont know will I be alive, let alone some crypto currency
[TPUX] Djith Wattignies14-Jul-18 01:54 PM
Why not?
Im gonna live 100 years at least
AkiraX14-Jul-18 02:35 PM
How can I add btc address to agama?
yorklab14-Jul-18 02:50 PM
Just Activate Coin in upper right. You'll need your Lite Mode Seed/passphrase or create one.(edited)
gcharang14-Jul-18 03:18 PM
@AkiraX enable advanced features first
unquale14-Jul-18 03:18 PM
@jl777c any example for the contracts?
jl777c14-Jul-18 03:19 PM
we are working on making some examples next
for now it requires to create raw transactions
unquale14-Jul-18 03:25 PM
Ty! Cant wait for it!
Dr Debt14-Jul-18 04:40 PM
@Cypher
I’m gonna research to the peak of my know how, because we will need this to act as the escrow intermediary for our housing contracts
Vote for our friends @komodoplatform to be listed on KuCoin and participate in our $10,000 airdrop!
How to enter:
- Vote for Komodo (https://t.co/UFjfuTStYP)
- Join the discord: (https://t.co/GXnaqWMnoq)
- Retweet


A tree of ReactiveX Observable operators
This tree can help you find the ReactiveX Observable operator you’re looking for.
- I want to create a new Observable
- that emits a particular item
- Just
- that pulls its emissions from a particular
Array
,Iterable
, or something like that - From
- by retrieving it from a Future
- Start
- that obtains its sequence from a Future
- From
- that obtains its sequence from an
Action
called periodically - RunAsync
- that emits a sequence of items repeatedly
- Repeat
- as long as a predicate remains true
- WhileDo
- from scratch, with custom logic
- Create
- for each observer that subscribes
- Defer
- that emits a sequence of integers
- Range
- that completes without emitting items
- Empty
- that does nothing at all
- Never
- I want to create an Observable by combining other Observables
- and emitting all of the items from all of the Observables in whatever order they are received
- Merge
- and emitting all of the items from all of the Observables, one Observable at a time
- Concat
- by combining the items from two or more Observables sequentially to come up with new items to emit
- whenever each of the Observables has emitted a new item
- Zip
- whenever any of the Observables has emitted a new item
- CombineLatest
- whenever an item is emitted by one Observable in a window defined by an item emitted by another
- Join
- based on an Observable that emits all items that have fallen in such a window
- GroupJoin
- by means of
Pattern
andPlan
intermediaries - And/Then/When
- and emitting the items from only the most-recently emitted of those Observables
- Switch
- I want emit the items from an Observable after transforming them
- one at a time with a function
- Map
- by emitting all of the items emitted by corresponding Observables
- FlatMap
- one Observable at a time, in the order they are emitted
- ConcatMap
- based on all of the items that preceded them
- Scan
- by attaching a timestamp to them
- Timestamp
- into an indicator of the amount of time that lapsed before the emission of the item
- TimeInterval
- I want to shift the items emitted by an Observable forward in time before reemitting them
- Delay
- I want to transform items and notifications from an Observable into items and reemit them
- by wrapping them in
Notification
objects - Materialize
- which I can then unwrap again with
- Dematerialize
- by wrapping them in
- I want to ignore all items emitted by an Observable and only pass along its completed/error notification
- IgnoreElements
- I want to mirror an Observable but prefix items to its sequence
- StartWith
- only if its sequence is empty
- DefaultIfEmpty
- I want to collect items from an Observable and reemit them as buffers of items
- Buffer
- containing only the last items emitted
- TakeLast
- I want to split one Observable into multiple Observables
- Window
- so that similar items end up on the same Observable
- GroupBy
- I want to retrieve a particular item emitted by an Observable:
- I want to reemit only certain items from an Observable
- by filtering out those that do not match some predicate
- Filter
- that is, only the first item
- First
- that is, only the first items
- Take
- that is, only the last item
- Last
- that is, only item n
- ElementAt
- that is, only those items after the first items
- that is, those items except the last items
- by sampling the Observable periodically
- Sample
- by only emitting items that are not followed by other items within some duration
- Throttle
- by suppressing items that are duplicates of already-emitted items
- Distinct
- if they immediately follow the item they are duplicates of
- DistinctUntilChanged
- by delaying my subscription to it for some time after it begins emitting items
- DelaySubscription
- I want to reemit items from an Observable only on condition that it was the first of a collection of Observables to emit an item
- Amb
- I want to evaluate the entire sequence of items emitted by an Observable
- and emit a single boolean indicating if all of the items pass some test
- All
- and emit a single boolean indicating if the Observable emitted any item (that passes some test)
- Contains
- and emit a single boolean indicating if the Observable emitted no items
- IsEmpty
- and emit a single boolean indicating if the sequence is identical to one emitted by a second Observable
- SequenceEqual
- and emit the average of all of their values
- Average
- and emit the sum of all of their values
- Sum
- and emit a number indicating how many items were in the sequence
- Count
- and emit the item with the maximum value
- Max
- and emit the item with the minimum value
- Min
- by applying an aggregation function to each item in turn and emitting the result
- Scan
- I want to convert the entire sequence of items emitted by an Observable into some other data structure
- To
- I want an operator to operate on a particular Scheduler
- SubscribeOn
- when it notifies observers
- ObserveOn
- I want an Observable to invoke a particular action when certain events occur
- Do
- I want an Observable that will notify observers of an error
- Throw
- if a specified period of time elapses without it emitting an item
- Timeout
- I want an Observable to recover gracefully
- I want to create a resource that has the same lifespan as the Observable
- Using
- I want to subscribe to an Observable and receive a
Future
that blocks until the Observable completes - Start
- I want an Observable that does not start emitting items to subscribers until asked
- Publish
- and then only emits the last item in its sequence
- PublishLast
- and then emits the complete sequence, even to those who subscribe after the sequence has begun
- Replay
- but I want it to go away once all of its subscribers unsubscribe
- RefCount
- and then I want to ask it to start
- Connect
This page was inspired by the RxJS tables (static and instance) created by Paul Taylor.


?6
7
8
9
10
The
New
York
copyright
reserved
botanical
Garden
SMITHSONIAN
INSTITUTION
From
THE
UNITED
STATES
NATIONAL
HERBARIUM
PLANTS
OF
CUBA
Rhizophoraceae
NO:
6348
Rhizophora
mangle
L.
LOCALITY:
Provincia
de
Matanzas:
at
Buena
Ventura.
HABITAT:
Mangrove.
DESCRIPTION:
Shrub,
7
m
tall;
flowers
reflexed;
corolla
yellowish.
COLL:
P.
Acevedo-Rdgz.,
M.
Fernandez,
R.
Oviedo,
L.
Rodriguez
&
K.
de
Queiroz
DATE:
10
Apr.
1994
'NE'*i
YO*>
BOTANICAL
GARDE**,
New
York
Botanical
Garden
IbEMllS
Collected
under
the
auspices
of
the
Smithsonian
Institution
1624115
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


|
Yeah!Fw
|
Inherits Imagick.
Public Member Functions | |
| __construct ($path) | |
| readParameters () | |
| getMaxSize ($aspect_ratio) | |
| crop ($params) | |
| resize ($params, $force=false) | |
| resizeByWidth ($width) | |
| resizeByHeight ($height) | |
| anotate ($params) | |
| getInverted () | |
Public Attributes | |
| $width | |
| $height | |
| $format | |
| $mime_type | |
| $aspect_ratio | |
Imagick adapter with additional methods
| float | $width | |
| float | $height | |
| string | $format | |
| string | $mime_type | |
| float | $aspect_ratio |
| Yeah\Fw\Image\ImagickAdapter::__construct | ( | $path | ) |
Creates new instance
| string | $path |
| Exception |
| Yeah\Fw\Image\ImagickAdapter::anotate | ( | $params | ) |
Writes centered text on image
| array | $params |
| Yeah\Fw\Image\ImagickAdapter::crop | ( | $params | ) |
Crops image based on specified image width, height and start point
| array | $params |
| Yeah\Fw\Image\ImagickAdapter::getInverted | ( | ) |
Gets inverted color based on image histogram
| Yeah\Fw\Image\ImagickAdapter::getMaxSize | ( | $aspect_ratio | ) |
Gets maximum image size based on current size and specified aspect ratio, without distorting the picture
| float | $aspect_ratio |
| Yeah\Fw\Image\ImagickAdapter::readParameters | ( | ) |
Reads image parameters
| Yeah\Fw\Image\ImagickAdapter::resize | ( | $params, | |
$force = false |
|||
| ) |
Resize picture based on specified width and height parameters
| array | $params | |
| bool | $force |
| Yeah\Fw\Image\ImagickAdapter::resizeByHeight | ( | $height | ) |
Resize by height parameter with regard to image aspect ratio
| float | $width |
| Yeah\Fw\Image\ImagickAdapter::resizeByWidth | ( | $width | ) |
Resize by width parameter with regard to image aspect ratio
| float | $width |
| Yeah\Fw\Image\ImagickAdapter::$aspect_ratio |
| Yeah\Fw\Image\ImagickAdapter::$format |
| Yeah\Fw\Image\ImagickAdapter::$height |
| Yeah\Fw\Image\ImagickAdapter::$mime_type |
| Yeah\Fw\Image\ImagickAdapter::$width |


{% extends 'docs/docs_base.html' %} {% block content %}
Text collection is set of documents, which of them is multiset of terms. Terms are elements of vocanulary — finite set W.
Probabilistic topic model is mathematical model that describes each document and each term as discrete probabilistic distribution over set of topics T.
To construct such distributions, one must represent matrix F of frequences of words in documents as product of two matrices Φ and Θ. Then, columns of Φ will be distributions of words over topics, and rows of matrix Θ will be distributions of documents over topics.
One of methods to do suh decompostion is ARTM (Additive Regularization of topic models). It is implemented in BigARTM open source libraryl
VisARTM is an interface for BigARTM. It's main purpose is visualizig topic models. It is aimed for two groups of users: researchers who build topic models themselves and want to visualize them for research purposes and those users who want construct topic models without programming.
Main features of this service:
{% endblock %}


The Chart control by default automatically creates one or more legend entries
for all chart types. The entries that are used for pie and doughnut charts are
the names of the plotted data points, while entries for all other chart types
are the names of the plotted series. These items are referred to as the
default legend items. Note that these default legend items can optionally not
be displayed.
A custom legend item is not associated with data, and is always appended to existing default legend items.


今天有哥们问到如何对Spark进行单元测试。现在将Sbt的测试方法写出来，如下：
对Spark的test case进行测试的时候可以用sbt的test命令：
一、测试全部test case
sbt/sbt test
二、测试单个test case
sbt/sbt "test-only *DriverSuite*"
下面举个例子：
这个Test Case是位于
$SPARK_HOME/core/src/test/scala/org/apache/spark/DriverSuite.scala
FunSuit是scalatest里面的测试Suit，要继承它。这里主要是一个回归测试，测试Spark程序正常结束后，Driver会不会正常退出。 注：我就拿这个例子模拟一下，测试成功和测试失败的情景，这个例子和DriverSuite的测试目的完全不一致，只是演示作用。 ：）
下面是正常运行退出的例子：
package org.apache.spark
import java.io.File
import org.apache.log4j.Logger
import org.apache.log4j.Level
import org.scalatest.FunSuite
import org.scalatest.concurrent.Timeouts
import org.scalatest.prop.TableDrivenPropertyChecks._
import org.scalatest.time.SpanSugar._
import org.apache.spark.util.Utils
import scala.language.postfixOps
class DriverSuite extends FunSuite with Timeouts {
test("driver should exit after finishing") {
val sparkHome = sys.env.get("SPARK_HOME").orElse(sys.props.get("spark.home")).get
// Regression test for SPARK-530: "Spark driver process doesn't exit after finishing"
val masters = Table(("master"), ("local"), ("local-cluster[2,1,512]"))
forAll(masters) { (master: String) =>
failAfter(60 seconds) {
Utils.executeAndGetOutput(
Seq("./bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master),
new File(sparkHome),
Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome))
}
}
}
}
/**
* Program that creates a Spark driver but doesn't call SparkContext.stop() or
* Sys.exit() after finishing.
*/
object DriverWithoutCleanup {
def main(args: Array[String]) {
Logger.getRootLogger().setLevel(Level.WARN)
val sc = new SparkContext(args(0), "DriverWithoutCleanup")
sc.parallelize(1 to 100, 4).count()
}
}
executeAndGetOutput方法接受一个command命令，调用spark-class来运行DriverWithoutCleanup类。
/**
* Execute a command and get its output, throwing an exception if it yields a code other than 0.
*/
def executeAndGetOutput(command: Seq[String], workingDir: File = new File("."),
extraEnvironment: Map[String, String] = Map.empty): String = {
val builder = new ProcessBuilder(command: _*)
.directory(workingDir)
val environment = builder.environment()
for ((key, value) <- extraEnvironment) {
environment.put(key, value)
}
val process = builder.start() //启动一个进程来运行spark job
new Thread("read stderr for " + command(0)) {
override def run() {
for (line <- Source.fromInputStream(process.getErrorStream).getLines) {
System.err.println(line)
}
}
}.start()
val output = new StringBuffer
val stdoutThread = new Thread("read stdout for " + command(0)) { //读取spark job的输出
override def run() {
for (line <- Source.fromInputStream(process.getInputStream).getLines) {
output.append(line)
}
}
}
stdoutThread.start()
val exitCode = process.waitFor()
stdoutThread.join() // Wait for it to finish reading output
if (exitCode != 0) {
throw new SparkException("Process " + command + " exited with code " + exitCode)
}
output.toString //返回spark job的输出
}
运行第二个命令可以看到运行结果：
sbt/sbt "test-only *DriverSuite*"
执行结果：
[info] Compiling 1 Scala source to /app/hadoop/spark-1.0.1/core/target/scala-2.10/test-classes...
[info] DriverSuite: //执行DriverSuit这个TestSuit
Spark assembly has been built with Hive, including Datanucleus jars on classpath
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/lib_managed/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/assembly/target/scala-2.10/spark-assembly-1.0.1-hadoop0.20.2-cdh3u5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/08/14 18:20:15 WARN spark.SparkConf:
SPARK_CLASSPATH was detected (set to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*').
This is deprecated in Spark 1.0+.
Please instead use:
- ./spark-submit with --driver-class-path to augment the driver classpath
- spark.executor.extraClassPath to augment the executor classpath
14/08/14 18:20:15 WARN spark.SparkConf: Setting 'spark.executor.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
14/08/14 18:20:15 WARN spark.SparkConf: Setting 'spark.driver.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
Spark assembly has been built with Hive, including Datanucleus jars on classpath
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/lib_managed/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/assembly/target/scala-2.10/spark-assembly-1.0.1-hadoop0.20.2-cdh3u5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/08/14 18:20:19 WARN spark.SparkConf:
SPARK_CLASSPATH was detected (set to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*').
This is deprecated in Spark 1.0+.
Please instead use:
- ./spark-submit with --driver-class-path to augment the driver classpath
- spark.executor.extraClassPath to augment the executor classpath
14/08/14 18:20:19 WARN spark.SparkConf: Setting 'spark.executor.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
14/08/14 18:20:19 WARN spark.SparkConf: Setting 'spark.driver.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Spark assembly has been built with Hive, including Datanucleus jars on classpath
[info] - driver should exit after finishing
[info] ScalaTest
[info] Run completed in 12 seconds, 586 milliseconds.
[info] Total number of tests run: 1
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[info] Passed: Total 1, Failed 0, Errors 0, Passed 1
[success] Total time: 76 s, completed Aug 14, 2014 6:20:26 PM
测试通过:
Total 1， Failed 0， Errors 0， Passed 1。
这里如果我们稍微将test case 改改，让spark job抛异常，那么这个，这样test case 就会failed掉，如下：
object DriverWithoutCleanup {
def main(args: Array[String]) {
Logger.getRootLogger().setLevel(Level.WARN)
val sc = new SparkContext(args(0), "DriverWithoutCleanup")
sc.parallelize(1 to 100, 4).count()
throw new RuntimeException("OopsOutOfMemory, haha, not real OOM, don't worry!") //添加此行
}
那么，再次运行测试,会发现错误:
[info] DriverSuite:
Spark assembly has been built with Hive, including Datanucleus jars on classpath
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/lib_managed/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/app/hadoop/spark-1.0.1/assembly/target/scala-2.10/spark-assembly-1.0.1-hadoop0.20.2-cdh3u5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
14/08/14 18:40:07 WARN spark.SparkConf:
SPARK_CLASSPATH was detected (set to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*').
This is deprecated in Spark 1.0+.
Please instead use:
- ./spark-submit with --driver-class-path to augment the driver classpath
- spark.executor.extraClassPath to augment the executor classpath
14/08/14 18:40:07 WARN spark.SparkConf: Setting 'spark.executor.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
14/08/14 18:40:07 WARN spark.SparkConf: Setting 'spark.driver.extraClassPath' to '/home/hadoop/src/hadoop/lib/:/app/hadoop/sparklib/*:/app/hadoop/spark-1.0.1/lib_managed/jars/*' as a work-around.
Exception in thread "main" java.lang.RuntimeException: OopsOutOfMemory, haha, not real OOM, don't worry! //自定义抛异常使spark job运行失败，打印出了异常堆栈，测试用例失败
at org.apache.spark.DriverWithoutCleanup$.main(DriverSuite.scala:60)
at org.apache.spark.DriverWithoutCleanup.main(DriverSuite.scala)
[info] - driver should exit after finishing *** FAILED ***
[info] SparkException was thrown during property evaluation. (DriverSuite.scala:40)
[info] Message: Process List(./bin/spark-class, org.apache.spark.DriverWithoutCleanup, local) exited with code 1
[info] Occurred at table row 0 (zero based, not counting headings), which had values (
[info] master = local
[info] )
[info] ScalaTest
[info] Run completed in 4 seconds, 765 milliseconds.
[info] Total number of tests run: 1
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 0, failed 1, canceled 0, ignored 0, pending 0
[info] *** 1 TEST FAILED ***
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error] org.apache.spark.DriverSuite
[error] (core/test:testOnly) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 14 s, completed Aug 14, 2014 6:40:10 PM
可以看到TEST FAILED。
三、 总结：
本文主要讲解了，如何运行spark的测试用例，运行全部test case，和运行单个test case的命令，并通过一个例子讲解其运行正常和失败的详细情景，具体细节还需要继续摸索。如果想做contributor，这一关必须过了。


Woman dies in Co Clare road collision
by By Pat FlynnA woman has died after a collision in Co Clare last night.
The woman, believed to be in her 40s, was crossing the main N68 Ennis to Kilrush road near Darragh at around 7.30pm when she was hit by a vehicle.
The woman was treated at the scene before being rushed to University Hospital Limerick where she was pronounced dead a short time later. The driver of the car is understood to have escaped injury.
A number of ambulances and Garda patrols responded to the incident while three units of Clare County Fire and Rescue Service from Ennis station were later mobilised to the scene.
Fire crews set up lighting to illuminate the scene for the local garda crime scene investigators as they carried out a preliminary examination of the site.
It is expected however that the road will remain closed until forensic collision investigators visit the scene later this morning.
A 1500m stretch of the N68 has been closed and traffic diverted away from the area as Gardaí preserve the scene overnight.
Gardaí at Ennis are investigating the collision and have appealed for witnesses to come forward if they passed the location around the time of the incident and saw anything that might assist them with their investigation.
- This article was updated at 6.43am on Friday, November 15.
READ MORE
‘Swing-gate’ TD Maria Bailey taken off General Election ticket


Taskier
close
Are you sure you want to preceed with this operation
Yes, proceed
No, was just joking
Task form
close
Task title
Due date
Finishing time
Tags
(separate tags using comma)
Use color to prioritize task
remind me 30 minutes to due date
Cancel


Among the Zulus and Amatongas: with sketches of the natives, their language and customs; and the country, products, climate, wild animals &c
Scope and Content
[Source - Benathi Marufu for FHYA, 2020: A digital copy of the book Among the Zulus and Amatongas: with with sketches of the natives, their language and customs; and the country, products, climate, wild animals &c. by the late David Leslie. Edited by the Hon. W. H. Drummond,. Second Edition. EdinBurgh: Edmonston & Douglas. London: MacMillan & Co. Glasgow: J. Maclehouse, 1875.]
Metadata
Title
Among the Zulus and Amatongas: with sketches of the natives, their language and customs; and the country, products, climate, wild animals &c
Material Designation
Textual record
Reproduction Conditions
Creative Commons License: CC BY-NC-ND https://creativecommons.org/licenses/by-nc-nd/3.0/ Unless otherwise stated the copyright of all material on the FHYA resides with the contributing institution/custodian.
Events
| Event Actor | Event Type | Event Date | Event Description |
|---|---|---|---|
| Five Hundred Year Archive (FHYA) | Online curation | 2020 - | Digital copy from Google Book Search Project |
| MacMillan & Co. Glasgow: J. Maclehouse | Publication | 1875 | |
| William H. Drummond | Editing | [187-?] | |
| David Leslie | Writing | [18-?] |
Contributions


Whenever you see a GO or ECO term ID on QuickGO, you will also see a basket icon appearing next to it. This icon allows you to add the term to your basket to save it for later use or to build up your own list. You can use your basket as an input to visualise the relationship between GO terms, create your own GO slims, use it to filter GO annotations, or simply export the list as .tsv file for your own use.
The basket icon appears next to GO terms as shown below:
Once you have added a term to your basket, the basket icon will change to green to indicate that the action has been completed. If you then see term IDs with a green basket icon next to them, you will know that these terms are already in your basket.
You can click on the green basket icon to remove the term from your basket.
You can access your basket at any time from the header bar.
Clicking on the ‘Basket’ link in the header will open your basket for further use, as shown below.


Brian Carela's Biography Site
Index
About Me
Location
Resume
Contact Me!
Full name:
Email Address:
Gamer tag:
Phone number:
Reason for Contact:


?6
7
8
9
10
'
M
v
The
New
York
copyright
reserved
botanical
Garden
New
York
Botanical
Garden
Ib5e“7c“ft
BOTANICAL
GARDEN
HERBARIUM
OF
IOWA
STATE
UNIVERSITY
PLANTS
OF
ST.
LUCIA,
B.
W.
I.
Lasiacis
sorghoidea
(Desv.)
H.
&
C.
Herb
with
black
fruitsÈ
Locally
frequentÈ
BARRE
de
1ÕISLE,
Castries-Dennery
Road:
Primary
forest
alone
rid
or
350-400
m.
elev.
6
b
Õ
Lasiacis
sorghoidea
(Desv.
ex
Hamilt.)
Hitchc.
&
Chase
var.
sorghoidea
Determined
by
Gerrit
Davidte
197
2
Richard
S.
Cowan,
no.
1^72
April
14,
1959
Det.
Collected
on
the
1959
Smithsonian-Bredin
Caribbean
Expedition
1659798
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high