--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.231460.20Infinite.20Ramsey.html ---
@Jared Corduan Even better would be to discuss it in the PR reviews stream :stuck_out_tongue_wink: But it's a bit hidden...
@Mario Carneiro Should have shown you push_neg
instead
And I think I would call infinite'
by nat.infinite
or something like that.
ah, wonderful! :)
Would my Pi2 definition live in my ramsey file? or with fintype? do folks mind that it is not as general as it could be (were I to place it outside my file)?
I would call it nat.unbounded
fwiw
Should I state my theorems with infinite
, and swap it out for unbounded
when I need to? or are the statements with unbounded
ok, provided there exists the equivalence of definitions somewhere?
for mathlib, I would prefer a theorem of the form infinite A <-> ∀ x : ℕ, ∃ y : ℕ, x < y ∧ y ∈ A
and skip the double definition
ok, sure thing. That mean stating the ramsey theorems with the mathlib infinite, and swapping out when I need unbounded (which shall be unnamed).
I'm having trouble proving the iff
between the mathlib infinite
and my unbounded definition. I am currently here:
lemma infinite_unbounded (H : set ℕ) : set.infinite H ↔ ∀ x : ℕ, ∃ y : ℕ, x < y ∧ y ∈ H := begin constructor, { classical, contrapose, intro h, unfold set.infinite, rw not_not, have hf : ∃ x, ∀ y, ¬ (x < y ∧ y ∈ H), simp [not_forall, not_exists] at h, simp, exact h, simp at hf, cases hf with x hx, unfold finite, constructor, exact ⟨sorry, sorry⟩, }, { intros h hfin, cases (finset.exists_nat_subset_range hfin.to_finset) with n hn, cases (h n) with y Hy, have hyn : y ∈ finset.range n, apply finset.subset_iff.mpr hn, simp [Hy.right], simp at hyn, exact lt_irrefl n (lt_trans (Hy.left) hyn) } end
In context, right before the two sorrys, I have hx : ∀ (y : ℕ), x < y → y ∉ H
and need to show fintype ↥H
. which seems great, finset.range x
should be my fintype. But I get two errors that I'm having trouble understanding.
If I replace the first sorry with finset.range x
, I learn that finset ℕ
is not the same type as finset ↥H
. Is the coercion on set ℕ
not to ℕ
?
If I try to fix the second sorry by showing have hb : ∀ x : ↑H, x ∈ finset.range x
, I learn that there is a class instance problem with has_mem ↑H (finset ℕ)
.
I think that I am misunderstanding ↑H
somehow (it must not be ℕ
).
import data.set import tactic open set lemma infinite_unbounded (H : set ℕ) : set.infinite H ↔ ∀ x : ℕ, ∃ y : ℕ, x < y ∧ y ∈ H := begin constructor, { intros h x, classical, by_contra H_contra, push_neg at H_contra, apply h, refine finite_subset (finite_le_nat x) (λ _ _, by finish) }, { intros h hfin, cases (finset.exists_nat_subset_range hfin.to_finset) with n hn, cases (h n) with y Hy, have hyn : y ∈ finset.range n, apply finset.subset_iff.mpr hn, simp [Hy.right], simp at hyn, exact lt_irrefl n (lt_trans (Hy.left) hyn) } end
thank you @Jesse Michael Han ! I will look up what refine finite_subset (finite_le_nat x) (λ _ _, by finish)
does! :grinning: refine and finish!
oh oops, that's supposed to be an exact
, i just used refine
while finding the proof
I knew about push_neg
from @Johan Commelin , but finish
is new to me, thanks!
ok! so much thanks to @Jesse Michael Han 's help, what's left to think about is (and sorry I'm so slow!):
(a, b)
where a < b
is pretty normal in ramsey theory, but I like the idea of doing it right!please let me know your preference between long open PRs and getting it done right the first time!
@Jared Corduan We certainly prefer getting it done right.
Particularly for PRs which add entire new modules, there's less cost to having long-open PRs.
@Jared Corduan In the end, I think we don't really care about how you prove you theorem. What we do care about is an end result that can be applied in as many setups as possible.  But I propose that after proving your "main" theorem, you go one step further, and reprove it for arbitrary types of cardinality two, by choosing a bijection to color
. That saves the user the burden of choosing this bijection.
In the same sense, if you can add an induction on top that generalizes the result to more colors... all the better.
Similarly, if you can replace nat^2
by ordered pairs in some more general ordered type, extra bonus points.
I'm not saying all of these must be done. But if it's easy to do, please do it. It vastly increases the risk that this theorem gets used elsewhere.
hah I think that something got lost in translation in the phrase "increases the risk that this theorem gets used" :D
ok, great, I'll keep going with it! Thank you again for all the help!
I'm having some trouble figuring out how to work with fintype
and multiset
, apologies if these are basic questions, perhaps I just need to read some more (or find some good examples of using them in action).
My goal was to provide the fintype
instance for the enumeration color
:
inductive color | red : color | blue : color
making the needed multiset
is easy, red :: blue :: multiset.zero
. Then to make a fintype
I need to provide a nodup
instance. There are a few nodup
s around, but it seems the multiset one lifts the list one via nodup (λ s t p, propext $ perm_nodup p)
. If I try to make a fintype
and break into tactic mode:
def all_colors : finset color := ⟨ red :: blue :: multiset.zero , begin constructor, simp, simp, sorry, end⟩
Then I'm pretty close, but the sorry is where I am stuck at showing list.pairwise ne list.nil
. Looking at the inductive definition of list.nodup
, I see that this is indeed the base case, but I don't know in general how to resolve this to Prop...
Carrying on, if I try to use my all_colors
to make a fintype, I get stuck trying to prove membership on the multiset:
instance color_fintype : fintype color := ⟨ all_colors, begin intros x, cases x, sorry, sorry, end ⟩
The target at the sorrys is red ∈ all_colors
and blue ∈ all_colors
. the magic of simp doesn't solve this for me, and I can't figure out how the membership works in the multiset...
Anyway, I'll carry on, I'm sure if I find some more examples I get it :)
What about
import data.finset @[derive decidable_eq] inductive color | red : color | blue : color open color def all_colors : finset color := { red, blue }
For a slight performance optimisation
import data.finset @[derive decidable_eq] inductive color | red : color | blue : color open color def all_colors : finset color := ⟨red :: blue :: 0, dec_trivial⟩
thank you @Patrick Massot and @Chris Hughes ! I see now that that notation is mentioned in the comments inside finset.lean. I'll have to figure out what that's doing...
Was I far off in trying to create the finset directly?
Is there a similar trick to creating instances of fintype
? With the new working all_colors
I'm still unsure how to show, eg, red ∈ all_colors
.
I'm sure either dec_trivial
or by simp all_colors
will prove red ∈ all_colors
instance color_fintype : fintype color := ⟨ all_colors, begin intros x, cases x, left, refl, right, left, refl, end ⟩
assume x, by cases x; simp
will also prove all colors are in all_colors
When I used to get stuck on questions like red ∈ all_colors
I would do the following dirty trick. First switch notation off, so you can see what ∈
really means:
set_option pp.notation false instance color_fintype : fintype color := ⟨ all_colors, begin intros x, cases x, -- ⊢ has_mem.mem red all_colors ...
and then just unfold to figure out what the heck is going on:
begin intros x, cases x, unfold has_mem.mem multiset.mem, dsimp,
Actually, this is a tricky one.
that's awesome, thank you, I would have not know to try that!
I guess the point is that ultimately you see that list.mem
is involved.
I get an error on the refl
after the left
maybe you should post working code. I filled in stuff to get your code working and maybe I made different choices to you. This compiles for me:
import data.finset data.fintype inductive color | red : color | blue : color open color def all_colors : finset color := ⟨ red :: blue :: multiset.zero , begin constructor, simp, simp, sorry, end⟩ instance color_fintype : fintype color := ⟨ all_colors, begin intros x, cases x, left, refl, right, left, refl, end ⟩
ok, thanks, I was trying to get a short example of where I was stuck, but maybe I've done something weird
But I've seen this trick before with list.mem:
example : 3 ∈ [1,2,3,4,5] := begin right, right, left, refl, end
that was why I tried it.
I appreciate the help! I'll play around some with that and see if I can get it working! I can't get the assume x, by cases x; simp
to work either (the simp gets the red sqiggle), so I'm probably doing something odd.
Then post working code.
(minimized if possible)
The refl I assume was trying to prove red = blue
, at least that's the goal I see. anyway, I get more organized and report back, thanks again!
ok! @Chris Hughes definition of all_colors
does work with @Kevin Buzzard 's fintype instance. It took me a while to figure this out, I was getting errors I didn't understand and had to build a bunch of olean files to see what was going on. So, as promised, working code :) :
import data.finset data.fintype open classical @[derive decidable_eq] inductive color | red : color | blue : color open color def all_colors : finset color := ⟨red :: blue :: 0, dec_trivial⟩ def all_colors' : finset color := {red, blue} instance color_fintype : fintype color := ⟨ all_colors, begin intros x, cases x, left, refl, -- This refl does not work with all_colors' right, left, refl, end ⟩
I still have a lot to learn about how fintype works!
(so to be clear, the error I was getting earlier still happens when using def all_colors' : finset color := {red, blue}
. Though the first definition I had of all_colors
with red :: blue :: multiset.zero
and the sorry
also works with the same proof.)
is there any notation for working the equivalence (≃
) structure from data/equiv
? I looked but could not find anything.
I wrote a lemma
lemma color_equiv_fin2 : color ≃ fin 2
with my two element enumeration color
.
But the name color_equiv_fin2.inv_fun
, is pretty long and quickly becomes unwieldy. I tried using let bindings for both inv_fun
and to_fun
, but then is seems that I am no longer able to do a rewrite with right_inv
. (for example, if I let g := color_equiv_fin2.to_fun
and g' := color_equiv_fin2.inv_fun
, then I cannot rewrite with color_equiv_fin2.right_inv
when I see g ( g' (x))
, etc.)
Maybe I just need a short name for color_equiv_fin2
, but I thought that maybe I was using things in a weird way.
The preferred notation is e x
and e.symm x
for the function and its inverse
ok, thanks!
I'm having trouble proving things about definitions that use if-then-else. (relating to me trying to provide a more mathlib friendly interface to my version of ramsey's theorem.)
In particular, the usual trick for extending ramsey's theorem from two colors to multiple colors involves turning a coloring of k
-many colors into a coloring of two colors:
inductive color | red : color | blue : color def split_coloring {α : Type} {k : ℕ} (f : α → fin (succ k)) (a : α) : color := if (f a = k) then red else blue
I then want to be able to make conclusions about split_coloring
, such as:
lemma red_split {k : ℕ} {α : Type} (f : α → fin (succ k)) (a : α) (h : split_coloring f a = red) : f a = k := begin unfold split_coloring at h, sorry end
But I get stuck trying to conclude that f a = k
from ite (f a = k) red blue = red
.
Try split_ifs
@Jared Corduan That will give you to goals.
The first you can close by assumption
ok, thanks!
The second will be exfalso, proof_that_blue_ne_red
I suppose I should spend more time seeing what tactics are available. :)
Hmm, maybe not exfalso
but by_contradiction
or simp
do you mean simp
for my original problem? simp
is one of my few tactics I've been trying to use, it did not work her. maybe I need to open some libraries to make simp
work for this case?
No, after some split_ifs
invocation. For example split_ifs at h; simpa
or revert h, split_ifs, simp
Last updated: Apr 24 2020 at 19:02 UTC


[Chapter 14D]
Agreement among the states to elect the
president by national popular vote
Section
14D-1 Enactment of agreement


Every constraint used in CHR rules has to be declared with a
chr_constraint/1
declaration by the constraint
specifier. For convenience multiple constraints may be declared at once with
the same chr_constraint/1
declaration followed by a comma-separated
list of constraint specifiers.
A constraint specifier is, in its compact form, F/A where F and A are respectively the functor name and arity of the constraint, e.g.
:- chr_constraint foo/1. :- chr_constraint bar/2, baz/3.
In its extended form, a constraint specifier is c(
A_1,...,
A_n)
where c is the constraint's functor, n its arity and the A_i are argument
specifiers. An argument specifier is a mode, optionally followed by a type. E.g.
:- chr_constraint get_value(+,?). :- chr_constraint domain(?int,+list(int)), alldifferent(?list(int)).
A mode is one of the following:
-
+
?
A type can be a user-defined type or one of the built-in types. A type comprises a (possibly infinite) set of values. The type declaration for a constraint argument means that for every instance of that constraint the corresponding argument is only ever bound to values in that set. It does not state that the argument necessarily has to be bound to a value.
The built-in types are:
int
float
number
natural
any
User-defined types are algebraic data types, similar to those in Haskell or the discriminated unions in Mercury. An algebraic data type is defined using
:- chr_type type ---> body.
If the type term is a functor of arity zero (i.e. one having zero arguments), it names a monomorphic type. Otherwise, it names a polymorphic type; the arguments of the functor must be distinct type variables. The body term is defined as a sequence of constructor definitions separated by semi-colons.
Each constructor definition must be a functor whose arguments (if any) are types. Discriminated union definitions must be transparent: all type variables occurring in the body must also occur in the type.
Here are some examples of algebraic data type definitions:
:- chr_type color ---> red ; blue ; yellow ; green. :- chr_type tree ---> empty ; leaf(int) ; branch(tree, tree). :- chr_type list(T) ---> [] ; [T | list(T)]. :- chr_type pair(T1, T2) ---> (T1 - T2).
Each algebraic data type definition introduces a distinct type. Two algebraic data types that have the same bodies are considered to be distinct types (name equivalence).
Constructors may be overloaded among different types: there may be any number of constructors with a given name and arity, so long as they all have different types.
Aliases can be defined using `=='. For example, if your program uses lists of lists of integers, you can define an alias as follows:
:- chr_type lli == list(list(int)).


We have seen that we can solve one type of integer programming (the knapsack problem) with dynamic programming. Let's try another.
The traveling salesperson problem is to visit a number of cities in the minimum distance. For instance, a politician begins in New York and has to visit Miami, Dallas, and Chicago before returning to New York. How can she minimize the distance traveled? The distances are as in Table 5.
The real problem in solving this is to define the stages, states, and decisions. One natural choice is to let stage t represent visiting t cities, and let the decision be where to go next. That leaves us with states. Imagine we chose the city we are in to be the state. We could not make the decision where to go next, for we do not know where we have gone before. Instead, the state has to include information about all the cities visited, plus the city we ended up in. So a state is represented by a pair (i,S) where S is the set of t cities already visited and i is the last city visited (so i must be in S). This turns out to be enough to get a recursion.
The stage 3 calculations are
You can continue with these calculations. One important aspect of this problem is the so called curse of dimensionality. The state space here is so large that it becomes impossible to solve even moderate size problems. For instance, suppose there are 20 cities. The number of states in the 10th stage is more than a million. For 30 cities, the number of states in the 15th stage is more than a billion. And for 100 cities, the number of states at the 50th stage is more than 5,000,000,000,000,000,000,000,000,000,000. This is not the sort of problem that will go away as computers get better.


How to Arm and Disarm Ardupilot-SITL Rover
Author: Masoud Iranmehr
Github Page: github.com/masoudir/mavros_tutorial
Initialize
Please follow steps mentioned in this link
Arm and Disarm
Arm and Disarm using MAVProxy or Ardupilot-SITL
You can send your commands directly from your terminal provided by MAVProxy or SITL. For this just type this command:
-
arm throttle
- Arms the robot -
disarm
- Disarms the robot
Arm and Disarm using ROS rqt
At first you need to add two plugin from rqt:
Plugins -> Topics -> Topic Monitor
Plugins -> Services -> Service Caller
Then in "Topic Monitor" side, you have to tick the topic of "/mavros/state" to view its contents, so that you can get the vehicle mode and also some other parameters such as "arm status" and "Guided status".
Then in "Service Caller" side, you have to select "/mavros/cmd/arming" and then in the field of "value", you can set your arm status as a bool type variable (False/ True). Then click on "call" button to send this message. The result should be as follow:
Arm and Disarm using ROS commands lines
Monitoring Rover general status (Arm status and Mode name)
If you want to view the general status of your ardupilot robot in MAVROS, you have to know all the topics created by MAVROS:
rostopic list
- Returns all topics available
Then you can see that every part of your robot has been mapped to a specific topic. In order to show robot arming status, you must use "/mavros/state" topic:
rostopic echo /mavros/state
- Returns all contents of /mavros/state topic periodically
The results should be as similar as this:
---
header:
stamp: 09
secs:<PHONE_NUMBER>
nsecs: 651358095
frame_id: ''
connected: True
guided: False
manual_input: True
mode: "MANUAL"
system_status: 4
---
The command "rostopic echo
Send Arm/Disarm command to robot
Just follow these commands:
-
rosservice call /mavros/cmd/arming True
- Send Arm command to robot -
rosservice call /mavros/cmd/arming False
- Send Disarm command to robot
Another method is to use "rosrun" command:
-
rosrun mavros mavsafety arm
- Send Arm command to robot -
rosrun mavros mavsafety disarm
- Send Disarm command to robot


http://www.susangranger.com/
Susan Granger's review of "TRIXIE"
With Robert Altman as his mentor/producer, Alan Rudolph is truly an experimental film-maker and, as with any innovator, he has some hits ("Choose Me," "Afterglow") and misses ("Breakfast of Champions," "Mrs. Parker and the Vicious Circle"). Unfortunately, "Trixie" - an attempt at screwball comedy-turned-film noir - is one of the latter. Oscar nominee for "Breaking the Waves" and "Angela's Ashes," Emily Watson plays the title role of a quirky, gum-chewing undercover casino security guard-turned-detective. It's supposed to be cute that she's confused and mangles metaphors like "I'm a little green behind the ears," "You can't just sit there like a sore thumb," "Take the bull by the tail," "Fish or get off the pot," "I've an ace up my hole" etc. but this malaprop device soon grows very, very, very tiresome.  Supposedly, all of the Senator's garbled, inane dialogue is culled verbatim from actual political slogans but that doesn't make the double-talking gibberish easier to listen to. Credit Alan Rudolph for lining up stellar talent, because Lesley Ann Warren plays a sleazy aging showgirl who mysteriously disappears with Brittany Murphy as a sleazy wannabe starlet, while Dermot Mulroney is a womanizing gambler and Will Patton is a sneering, scheming developer. Nathan Lane is a boozy lounge comedian who does celebrity impressions and spews lines like "We're all tap dancers in the canoe of life." On the Granger Movie Gauge of 1 to 10, "Trixie" is a tortuous, trivial 3.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


All Diagrams
Main Use Case Diagram
Main Class Diagram
Main Sequence Diagram
Main Activity Diagram
Main Deployment Diagram
RUP 4+1 View
System View
Subsystem View
Main Requirement Diagram
Vision and Scope


Arriving into Charleston allowed us to catch up on some of the
projects we have been putting off. Doing laundry on all
those odds and ends not just the required clothes and towels,
Kris ended up doing 14 loads. We were at a marina that had
free washing machines, two of them and they were kept busy.
The boat received a good scrubbing with soap and fresh water,
salt water is ok but having unlimited fresh allowed everything
to get scrubbed down. Going through all the boat lockers
looking for water, mold or getting rid of those things you
thought we could not do with out but we did.
We also have a list -- imagine that -- of some 120 items that we
want to fix/improve/repair prior to leaving again. Some
items are simple "buy a new cutting board that fits into the
cutting board area"; while others are more complicated "fix the
boom vang, because it broke". So with the ability of the
internet for research and finding the best prices we are making
a list and ordering for items to be shipped to a staging area.
We looked at who we might rope into this task and picked/asked
John M for his address and space.
There are a lot of smaller items we will pick up along the way north and some projects like sewing
projects are what we will do as we
have "open" time. Derek has completed 6th grade,
except for a research paper that we are making him do, that was
not part of the normal curriculum, and then he will have a few weeks off.
We plan on starting up 7th grade this summer and getting a good
start prior to the normal school year.
We were waiting in Charleston for our friends Bob and Anne on
Baloo who were coming up from the Bahamas, they arrived with out
any issues. Anne needed to make a trip to Washington for
family reasons and their friend and ours Dale J. flew out
to help Bob move the boat up north. We had meet Dale and
his family when we were cruising in 1994 so we wanted to catch
up on old and new stories.
While we were waiting in Charleston we met another kid boat,
"Day Dreamer" who has 3 girls Emma, Anna and Sarah. Derek
got along with them great and we spent many hours with them
while in Charleston. There are many Live Oak
trees in Charleston and they made great climbing trees for
the kids, but their favorite was a large magnolia tree in the
park. Day Dreamer is planning on spending the summer up
north in Maine so we probably will see them again.
From Charleston we did an overnight trip up to Beaufort, N.C.,
and then took the ICW up to Norfolk. Along the way we
stopped at our old haunt, the Alligator River Marina. The
marina is along the highway and probably services more cars than
boats but it has a small grill and the best hamburgers around.
We treated Bob and Dale to a fine dinner and even had alligator
bites for hours devours (this is breaded alligator meat bites).
"What If" has stopped there on every trip and probably
will continue in the future. As we motored away the next
day it appeared as though we had an extra passenger.
Looking on Baloo's head sail we spotted a coiled snake who was
hanging on for the free ride. Bob managed to get the 6
foot snake off the boat with out incident. Not sure how
the snake got there but both boats did a thoroughly snake check
to make sure we did not have any additional passengers.
We finally arrived in Norfolk on June 25th and dropped the
anchor at Hospital Point. Shortly after the hook was down
we experienced the highest winds and hardest down pour we have
ever seen. Dale who was on Baloo and who has single
handled a sailboat from Australia and down to Easter Island said
it was the worst one he has seen as well. The highest wind
recorded during the storm was 66 knots. We had rain and even
some hail, and lots of lightning. Visibility dropped to
about 300 feet during the storm. We weathered the storm
O.K., but Baloo was close to a lightning strike and lost
their refrigerator and several instruments like the depth
sounder; so now Bob is in the process of repairing the boat
prior to being able to leave the area.
The history around Norfolk is amazing, it seems like the area
has been involved in just about every war, either the fighting
occurred in the area or they have built ships to support the war
effort. As you leave the area by water you go down
"Battleship Row", dock after dock of Navy ships being worked on
and then as you are sailing out of the harbor you usually have
to dodge either a Navy war ship or one of the many commercial
ships. We did catch a picture of the new Navy "stealth"
boat, if was very quite and went fast through the water and the
paint job was sure different.
s
Update: 06/29/12 Charleston and then North
|
|
|
This tree made a great
perch to bounce on |
When you run out of
trees, climb a monument |
|
|
|
Dale J. and Bob off
Baloo |
alligator marina picture |
Battleship row in
Norfolk |
Lots of container ships
in Norfolk |
The "stealth" boat. The wake was not
stealthy at all |
Anchors aweigh! |


--- layout: post status: publish published: true title: "简单一些，再简单一些！" author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 598 wordpress_url: http://leaskh.wordpress.com/2006/03/05/%e7%ae%80%e5%8d%95%e4%b8%80%e4%ba%9b%ef%bc%8c%e5%86%8d%e7%ae%80%e5%8d%95%e4%b8%80%e4%ba%9b%ef%bc%81 date: '2006-03-05 12:34:28 +0800' date_gmt: '2006-03-05 12:34:28 +0800' categories: - Life tags: [] comments: - id: 237 author: "啦啦" author_email: '' author_url: '' date: '2006-03-17 15:39:42 +0800' date_gmt: '2006-03-17 15:39:42 +0800' content: "我也想简化。。" ---


[1]
Nice In Camera Processing, Features, Price; Too Small, Shoddy Construction, Menu Viewing & Navigation
[2]
Color regeneration, lens, body, speed, auto focus; Pop up flash control


Comics List
Comic Series
Single-Story Comics
Ordered by date of last update, most recent first
- Pop Culture Asides
- Pigeon
- Two Chens
Ordered by date of upload
- Slither
- Picture Games
Comic Summaries
| Comic Name | Summary | Last Updated |
|---|---|---|
| Comic Series | ||
| Pop Culture Asides | Small strips playing off pop-culture works and tropes. Everything from Marvel to Disney to NBC sitcoms. | May 16, 2020 |
| Pigeon | Little (mis)adventures of Lumby, a small city pigeon, spending his time flying around, looking for birdseed, and observing humans. | N/A |
| Two Chens (Working Title) | Day-to-day life of two Asian-American brothers, Noah and Chowie, talking about food, school, books, TV, and life in general. | N/A |
| Single-Story Comics | ||
| Slither | Blip, a salamander, tries to navigate his way through a Pacific Northwest backyard and to his home on the other side of a house. That dog isn't making things easy, though. | N/A |
| Picture Games (Working Title) | A rowdy group of animals play a game by telling stories. Their friend Penguin is a little too busy at the moment, though... | N/A |


{# Template source: https://github.com/timothylong/html-email-reset/blob/master/html-email-reset.html #}
New message from the Web


I am a Software Engineer who is passionate about learning and applying new technologies to solve a variety of problems. I work professionally on Microsoft's Industry Solutions Engineering (ISE) team where I help solve the toughest technical challenges that companies are facing in the modern Cloud Computing landscape. Through this work, I have gained a wide range of experience as a Software Engineer.
Additionally, I am part of the Worldspinner team. We develop a variety of tools that empower gamers to build people, cultures, and worlds for their table top role playing games. Our most recent project is PortraitWorks.
When I am not working with software, I enjoy gaming, cooking, skiing, speed cubing, and music. Most recently, I started learning Guitar.


Back in middle school, I had a peculiar way of dealing with super boring classes. I would take my handy pocket calculator and play a "Game of Threes". Here's how you play it:
First, you mash in a random large number to start with. Then, repeatedly do the following:
- If the number is divisible by 3, divide it by 3.
- If it's not, either add 1 or subtract 1 (to make it divisible by 3), then divide it by 3.
The game stops when you reach "1". While the game was originally a race against myself in order to hone quick math reflexes, it also poses an opportunity for some interesting programming challenges. Today, the challenge is to create a program that "plays" the Game of Threes.
Input description
The input is a single number: the number at which the game starts.
100
Output description
The output is a list of valid steps that must be taken to play the game. Each step is represented by the number you start at, followed by either -1 or 1 (if you are adding/subtracting 1 before dividing), or 0 (if you are just dividing). The last line should simply be 1.
100 -1 33 0 11 1 4 -1 1


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/type.20class.20instance.20synthesis.html ---
Can anyone comment on what's reasonable to expect from type class instance synthesis? This question might be to broad for a definitive answer, but here are some illustrative examples, for which I can be more specific.
1. Lean can infer that a subinterval of the reals is a topological space
2. ... but it can't infer that 1/x is defined for x in a given subset of the reals
(1) Why and (2) why not?
import analysis.exponential data.set.intervals analysis.exponential open real set def two_interval_set := (Icc (0:ℝ) 2) -- we get topological_space for free theorem continuous_id_on_tworeal' : continuous (λ (x : ↥two_interval_set), x) := begin exact continuous_id, end -- but we don't get has_div or has_one theorem continuous_1_over_x : continuous (λ (x : {r : ℝ | r ≠ 0} ), 1/x) := begin refine continuous_subtype_mk _ _, refine continuous_mul _ _, apply continuous_const, refine real.continuous_inv _ _, exact subtype.property, apply continuous_subtype_val, end
Error for the second theorem:
failed to synthesize type class instance for x : ↥{r : ℝ | r ≠ 0} ⊢ has_div ↥{r : ℝ | r ≠ 0} failed to synthesize type class instance for x : ↥{r : ℝ | r ≠ 0} ⊢ has_one ↥{r : ℝ | r ≠ 0}
The problem is that Lean doesn't know what to do with the 1/x
.
If you tell it to view 1
and/or x
as a real number, then you might have more luck.
In particular, it doesn't know how to figure out the codomain of your function (let alone a topology on the codomain).
Try writing (1 : ℝ)
or (x : ℝ)
.
OK, interesting... that got past the initial error.
Viz., this proof works.
theorem continuous_1_over_x' : continuous (λ (x : {r : ℝ | r ≠ 0} ), (1:ℝ)/x) := begin refine continuous_mul _ _, apply continuous_const, refine real.continuous_inv _ _, exact subtype.property, apply continuous_subtype_val, end
That surpises me. I didn't expect the mul const _
I'd expect something like continuous.comp continuous_inv continuous_subtype_val
Maybe this is more natural.
theorem continuous_1_over_x'' : continuous (λ (x : {r : ℝ | r ≠ 0} ), (1:ℝ)/x) := begin simp only [one_div_eq_inv], refine real.continuous_inv _ _, exact subtype.property, apply continuous_subtype_val, end
@Joseph Corneli I guess you know about the version in the library?
lemma real.continuous_inv' : continuous (λa:{r:ℝ // r ≠ 0}, a.val⁻¹) := continuous_iff_continuous_at.mpr $ assume ⟨r, hr⟩, (continuous_iff_continuous_at.mp continuous_subtype_val _).comp (real.tendsto_inv hr)
I suspect I did see it at one point, yes! It's interesting that writing a.val⁻¹
escapes the problem of defining the codomain.
That is because Lean knows exactly where a.val
lives.
But why doesn't it know where x
lives, in my example?
It also knows exactly where your x
lives, but it lives in a space on which division has not been defined.
Writing (x : ℝ)
means that Lean will silently turn your x
into x.val
.
Similarly, 1
can live in any type with a has_one
instance. But if you write (1 : ℝ)
it figures out which Type you want 1
to live in.
You could of course define a topology on units ℝ
, and prove that inversion is continuous there.
That's a different theorem from the one you just proved.
OK, I think the key take-away for me is that x
and x.val
are different, which I might have picked up on from some of the other examples I was looking at, but didn't. Thanks!
One lives in the subtype, the other in the ambient type.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


--- layout: comedian permalink: /comedians/lucie-machackova.html comedian: id: lucie-machackova name: Lucie Macháčková img-align: 50% 50% ---
Lucie is so short that Peter Jackson wants to film her CV.  She's just a regular girl, really.


A blog with a focus on developing both my IQ and EQ. Join me as I upskill and work towards becoming a developer.
Can you locate the dinosaurs and avoid detection?
Challenges // Progression
A display of my progression as I learn the technical components of coding. JavaScript, HTML5, CSS.
Whack-A-Mole, but... Chocobos
Some diva unicorns need your help!
Mix and match different styles
Here are my more experiential blog posts. These posts show an expansion of my emotional intelligence during my studies at Dev Academy.
© katebaya.com
Connect with me on social media!
My Dev Academy Blog
Challenges // Progression
Technical Blog Posts
A display of my progression as I learn the technical components of coding. JavaScript, HTML5, CSS.
Read more


Overview of Constructing the LNA
The construction of the LNA is complicated and you may wonder how and where to start.
First: Assemble a Soldering Station
- Get a soldering iron and a hot air gun that have temperature controls. The cheap hobby soldering iron will not do. You should set the operating temperature of the soldering iron and hot air gun to 350°C.
- Get a soldering stand. It should consist of a magnifying glass, a light, moveable helping hands, a cleaning sponge, fine tip twezzers, and a cleaning mesh.
- Get a spool of solder. Most solders are a mixture of tin and lead. There are also solders made up of tin and silver, but they melt at a higher temperature and are much harder to use. Solder also comes in different thicknesses or diameters. A thickness of 0.025 inches is a good size for the soldering you’ll be doing.
- The following is a picture of a typical soldering station. It is also called a rework station. The setup shown was purchased from Amazon for about $100. You can also go online and search for soldering irons, hot air guns, rework stations, and soldering stations.
Second: Order and Purchase the Components of the LNA
- Click on the LNA Ordering Parts Info link for the list of components and where the components can be purchased.
- Order a bottle of silicone conformal coating. Although this is not a component of the LNA, you will need to coat your circuit board after you are done soldering everything on. This coating will protect your LNA from moisture, corrosion, fungus, dirt, dust, thermal shock, short circuits, and static discharge. This product is available through Amazon. You can also do a Google search for silicone conformal coating to find other sellers.
Third: Solder the Components onto the Circuit Board
- There is no best order for soldering the components onto the circuit board. If you are new to soldering, soldering all the components of one type before soldering all the components of another type is a good approach. The following order of soldering is typical for a person new to soldering: capacitors, resistors, inductors, transistors, ICs, SMA connectors, and the cover. Capacitors and resistors are the easiest components to solder onto the circuit board and will give the novice a chance to learn the proper techniques for successful soldering.
- If you have some soldering experience, I would suggest soldering the hardest components first: transistors, ICs, inductors, resistors, capacitors, SMA connectors, and the cover.
- The following is a link to a Circuit Diagram of the LNA and an Image of the Circuit Board.
Detailed Soldering Instructions for Each Component
Soldering a Capacitor
Place the tip of the soldering iron onto one of the pads and melt a small drop of solder onto the pad. The drop should barely fill the pad. Place one end of the capacitor onto the drop of solder. Touch both the end of the capacitor and drop of solder with the tip of the soldering iron and the heat should melt the solder and the solder should pull the capacitor to the pad. This should make a good connection between the capacitor and pad. Solder the other end of the capacitor to the other pad by touching the tip of the soldering iron to both the pad and the end of the capacitor. Touch the solder to the end of the capacitor and soldering iron. A drop of solder should melt and adhere to the pad and the end of the capacitor. Click on the video link for a demonstration of soldering a capacitor.
https://youtu.be/sOWDIGIjmGE
Soldering a Resistor
Soldering a resistor is identical to soldering a capacitor. You may encounter difficulty in getting solder to melt on the pad. That is because the pad you chose is part of the ground and the ground is the copper that goes all around the circuit board. So you’re heating up a large portion of the circuit board before the pad you’re interested in comes up to the correct temperature. Click on the video link for a demonstration of soldering a resistor.
https://youtu.be/EFwzL3n3f7s
Soldering an Inductor
Soldering an inductor starts the same way as a resistor, a capacitor, or any component to be soldered onto the circuit board: a small drop of solder melted onto a pad. The tricky part of soldering an inductor is that the metal plate is on the bottom of the inductor and not on the side like a resistor or a capacitor. It is important to have the tip of the soldering iron touching the bottom plate of the inductor. It is also important to leave as much room as possible on the other pad. The pad will be soldered to the thin side of the bottom plate of the inductor. Click on the video link for a demonstration of soldering an inductor.
https://youtu.be/9CNtz4u5we0
Soldering a Transistor
There are three different types of transistors to be soldered onto the circuit board. Each one has its own difficulties in soldering onto the circuit board. You sould watch each of the following videos before soldering to determine the orientation of each transistor.
Transistors U1 & U3
https://youtu.be/DP3ABBXyuwY
Transistor U2
https://youtu.be/kvlXMtPB2FY
Transistors U4 & U5
https://youtu.be/xhfXKow-tOs
Soldering an Integrated Circuit (IC)
Soldering an IC is similar to soldering transistors U1 and U3. Click on the video link for a demonstration of soldering an IC.
https://youtu.be/Vwu3AeRIN9w
Soldering the SMA Connectors
There are two SMA connectors on the circuit board: X1 and X2. One SMA connects the antenna feed to the LNA (X1) and the other SMA is the output of the LNA to the AirSpy (X2). Click on the video link for a demonstration of soldering an SMA connector.
https://youtu.be/3jxUv_rlqTI
Soldering on the Protective Cover
The protective cover should not be soldered on until after the LNA is tested and is determined to function properly. Once the protective cover is soldered on, it will be difficult to make any repairs. The protective cover is also hard to remove after it has been soldered on. Click on the video link for a demonstration of soldering on the protective cover.
Video link to be determined
Applying the Protective Coating
Applying the silicone conformal coating is the last step for constructing the LNA. Click on the video link for a demonstration of how to cover the LNA with the silicone conformal coating.
Video link to be determined


Outbound flights from
| Flight | Departure Time | Arrival Time | First Class Cost | Economy Cost | Select Flight |
|---|
Return flights from
| Flight | Departure Time | Arrival Time | First Class Cost | Economy Cost | Select Flight |
|---|
| Flight | Departure Time | Arrival Time | First Class Cost | Economy Cost | Select Flight |
|---|
| Flight | Departure Time | Arrival Time | First Class Cost | Economy Cost | Select Flight |
|---|


Football Enthusiast. I love watching, playing and coaching the beautiful game.
I want to continue to contribute to the growth of the game in NYC and America, and have found Data Science as a great tool to do that.
Utilizing Python and Pandas to explore the 2018-2019 in game event statistics from the top 5 European soccer leagues. (English Premier League, Spain's La Liga, Germany's Bundesliga, Italy's Serie A and France's Ligue 1)
"Hardwork beats talent, when talent fails to work hard." - Kevin Durant
"I am a great believer in luck, and I find the harder I work, the more luck I have." - Thomas Jefferson
A custom built radar/polar class, that allows me to present multiple features in a 2Dimensional space. Each axis is individually scaled, and there is flexibility to vary the amount of axes.
"What is speed? The sports press often confuses speed with insight. See, if I start running slightly earlier than someone else, I seem faster." - Cruyff
"Choose the best player for every position, and you’ll end up not with a strong XI, but with 11 strong 1’s." - Cruyff
"When you play a match, it is statistically proven that players actually have the ball 3 minutes on average … So, the most important thing is: what do you do during those 87 minutes when you do not have the ball. That is what determines wether you’re a good player or not." - Cruyff
Cruyff's style of play and way of thinking can be an inspiration to us all, and some of my favorite quotes are above. He epitomized the beautiful game. I'll leave you with one more, on money in the game today.


Introduction
Freeboard is an Openlayers based chart plotter that uses
Signal K communication protocols and Signal K server features
to provide the following functionality:
- Moving Vessel / Map display with vessel Heading / Bearing
and True Wind / Apparent Wind lines.
- Charts display including both online and locally hosted.
- Route and Waypoint List and filter resources, drop waypoints,
draw routes, set active route and import from GPX files.
- Anchor Watch: and Depth alarms (visual and sound).
- Instrument Panel: allows you to select from the apps
installed on your Signal K server for display.
- Other Vessels: display other vessels on map.
To learn more about Signal K visit
http://signalk.org
Visit us at
GitHub
Signal K Server
Freeboard is a "stateless" application which can be used concurrently at multiple stations
to both display and send back information to the Signal K server.
Therefore Freeboard requires that the host Signal K server be able to service requests
to the following paths for all functionality to be available:
-
resources/routes and resources/waypoints -
Serve resources as well as accept and persist resource data submitted to these paths.
- resources/charts - Serve chart resources.
- navigation/anchor, notifications/navigation/anchor -
Serve and accept `position`, `maxRadius` values as well as calculate `currentRadius`
and serve notifications.
- notifications/environment/depth - Serve notifications for belowKeel,
belowSurface and belowTransducer.
- navigation/courseGreatCircle/activeRoute
- navigation/courseGreatCircle/nextPoint/position -
Serve and accept these values to allow
a route to be set as active and / or waypoint
to be set as a destnation.
It is expected that the server will initiate
any subsequent calculations and related value updates.
Navigation
Freeboard will display course data in either the
navigation.courseGreatCircle or
navigation.courseRhumbline paths when received
from the server.
To display course data when it is available from the server,
click more_horiz and
select Show Course Data.
If the server stops sending course data, the last received values
will remain on the screen.
To hide the course data display until the next set of data is
received, click more_horiz and
select Clear Course Data from the menu.
A waypoint can be set as the target for which navigation data
is to be displayed by clicking the
Navigate To button
in either:
- A waypoint card in the Waypoint List
- The pop-up displayed when a waypoint is clicked.
Resources
Freeboard provides functionality for Route, Waypoint and Chart resources.
directions
Routes:
Displays a list of available Routes.
Filter Routes: Type into the text box to filter the list of routes.
Display Route: Check the checkbox to display the route on the map.
Delete Route: Click the trash can icon and you will be prompted to
delete the route.
Note: Deleting a route will also delete the associated Start and End Waypoints!
Activate: Clicking select_all sends a message to the server to set
this route as the Active Route.
The start of the route is set as the current destination.
Use the Previous and Next point options in the
more_horiz menu to
select the destination point.
Properties Click info_outline to edit route Name and Description.
location_on
Waypoints:
Displays a list of available Waypoints.
Filter Waypoints: Type into the text box to filter the list of waypoints.
Display Waypoint: Check the checkbox to display the waypoint on the map.
Delete Waypoint: Click the trash can icon and you will be prompted to
delete the route.
Note: A waypoint may be associated with a route.
so take care when deleting waypoints!
Navigate To: Clicking near_me sends a message to the server to set
this waypoint as the target to navigate to. The server should then send
navigation data in relation to this location.
Properties Click info_outline to edit waypoint Name and Description.
Additionally, you can click on both Routes and Waypoints to display
an information window available actions.
edit
Draw Menu:
The Draw menu is where you will find options to:
Draw a Route
Add Waypoint at the current Vessel position
Drop Waypoint on the map
Measure distances
menu
Main Menu:
The Main menu contains links to the following additional features:
map
Charts:
Displays a list of available Charts.
Filter Charts: Type into the text box to filter the list of charts.
Display Chart: Check the checkbox to display the chart.
Freeboard by default will display:
OpenStreetMap
OpenSeaMap
which require an internet connection to be displayed.
Local Charts hosted on the Signal K server are identified with the
map icon.
Charts are displayed in descending order of scale to ensure more detailed
charts are on top.
Load from GPX:
Load Route and Waypoint resources from GPX file.
After selecting a GPX file from the Open File dialog you will be
presented with a screen that will allow you to select some or all
of the Route and Waypoint resources contained in the file.
Waypoints: Click the checkbox to select all Waypoints or
expand the list and select the Waypoints to import.
Routes: Click the checkbox to select all Routes or
expand the list and select the Routes to import.
After selecting the resources click Load Selected to load the
resources onto the Signal K server.
warning Alarms
Freeboard provides a means for raising a number of alarms:
Man Overboard
Sinking
Fire
Piracy
Flooding
Adrift
Abandon
Collision
Grounding
Listing
To RAISE an alarm:
Click the warning button
on the toolbar to display the Alarms dialog:
Click the RAISE ALARM button for the desired alarm type.
An alarm notification will be sent to the Signal K server.
Freeboard will display the received alarm from the server. This alarm
can be
Acknowledged and / or
Muted.
Acknowledging the alarm will minimise the alarm icon until the alarm has been cleared.
The raised alarm will remain until it is cancelled.
To CANCEL an alarm:
Click the warning button
on the toolbar to display the Alarms dialog:
Click the CANCEL ALARM button.
Vessels
Freeboard provides the ability to de-clutter the screen of vessels in the following ways:
Show / Hide Vessels layer on the map
Providing the ability select which Vessels to display.
Additionally, a wind vector will be displayed for vessels where the data is available.
This vector will only be displayed at higher zoom levels so as to reduce screen clutter.
You can select whether to use either True or Apparent wind data for displaying the vector.
This choce can be made in the Settings screen.
To Show / Hide the Vessels Map Layer:
From the more_horiz menu
select either:
- visibility Show Vessels
- visibility_off Hide Vessels
To Select Vessels:
From the menu menu
select directions_boat Vessels.
Filter Vessels: Type into the text box to filter the list of vessels.
Display Vessel: Tick the checkbox to display the vessel on the map.
Freeboard by default will display all vessels
info_outline
Click the list entry to display the vessel properties.
Note:If the Vessels layer is hidden selections made in this screen will
not be displayed until the Vessels layer is made visible.
Playback History
Freeboard provides the ability to request historical data playback
from the server.
Note: Selecting this option from the menu disconnects the realtime stream.
Note: Playback history must be supported by the server.
menu
Main Menu:
Access the history Playback History option from the Main menu.
From the History Playback screen select:
- Context: to choose vessel(s) data. self or all
- Start Date: Date of playback stream start
- Start Time:Time of playback stream start
- Playback Rate: Rate of playback.
1= real-time, 5= 5 x real-time
Click
Start to start the data stream.
Click
Cancel to re-start the real-time data stream.
Playback Mode:
Once started, Playback Mode is identified by the addition of the
cancel button to the menu bar.
Click cancel to end playback and
return to realtime data stream.
settings Settings
The Settings screen is where you can configure Freeboard and it consists
of the following sections:
DISPLAY:
This section provides choices about how information is displayed.
- Instrument Panel App:
Select from a list of installed applications the one you wish to
be displayed in the Instrument Panel.
Note: The application selected should be responsive to display correctly
within the space afforded by the instrument panel.
- Show DEPTH Alarm Messages:
Check this box if you want received DEPTH notifications from the Signal K server
to be displayed as an alarm message.
- Alarm Smoothing Time:
Once the DEPTH alarm message has been acknowledged and the notification
state has returned to Normal, this is the
length of time that the notification must remain in Normal state
before the alarm is re-triggered.
- Display Vessel Trail:
Check this box if you want to display the vessel trail.
UNITS & VALUES:
This section provides choices about the units and values used when displaying data.
Distance Units:
Kilometres / Nautical Miles
Depth Units:
Metres / Feet
Use True / Magnetic values: True / Magnetic
Selects the type of value to use for
paths that have both True and Magnetic values:
Heading
Course Over Ground
Bearing
Wind Direction
Your selection will determine which value freeboard uses.
Defaults to True
Note: If the selected path type does not exist within the received data
stream NO value will be displayed. Freeboard will NOT fallback to other available
path values!
OTHER VESSELS:
This section provides choices about the units and values used when displaying data.
Wind Vector: Wind True / Wind Apparent
Value used to display wind vector for other vessels displayed on the map.
Wind Vector Zoom Level:
The minimum Zoom level at which other vessels wind vector will be displayed. (Default=15)
SERVER:
- Server Resource Updates:
Un-check this box if you want to use UPDATES messages to send
information to the server rather than PUT requests.
This setting is
Checked by default and should be left checked to ensure
Freeboard can respond to the success / failure of an action on the server.
Un-checking this option will cause UPDATES messages to be sent, which essentially
broadcasts the information and does not
elicit a specific response from the Signal K server regarding the sucess or failure
of an operation.
This option can be used when the Signal K server does not accept requests for
the paths required for Freeboard functions.


Ensure that accounts used remotely by vendors are enabled temporarily and only when needed. Verify that accounts used remotely by vendors are monitored while used.
Vendor accounts should be disabled when they are not needed and monitored while being used to ensure they are not being used for unauthorized access.
Use the account management application to verify that vendor accounts are currently disabled unless they are being used at the moment by the respective vendors. In a Microsoft Active Directory environment, you may use the "Active Directory Users and Computers" console to manage user accounts. To launch this console, click on "Start", "Programs", "Administrative Tools", "Active Directory Users and Computers".
Interview the responsible personnel to make sure they monitor the vendor accounts being used. As far as the extent of the monitoring, it is sufficient to make sure that the vendors access the system(s) only when they are supposed to by staying in touch with them during the process.
Disable all vendor accounts that are not being used at the moment. Instruct the responsible staff to keep in touch with the vendor when a vendor needs remote access and to disable the vendor's account as soon as it is no longer being used. In a Microsoft Active Directory environment, you may use the "Active Directory Users and Computers" console to manage user accounts. To launch this console, click on "Start", "Programs", "Administrative Tools", "Active Directory Users and Computers".


Spectrum Navigation
Your Route
Turn Left When:
You See a
Turn Right When:
You See a
Turn Right When:
You See Your Destination


{% if error is sameas true %}
please input a name and birthdate
{% endif %}
{% if (results|length > 0) and (query is defined) %}
{% for result in results %}
{{result}}
{% endfor %}
{% elif (results|length == 0) and (query is defined) %}
No voter was found with that name or last name
{% endif %}


Advanced
Rest API
If you do not want to use Google Spreadsheets, the Extension will send the data to the Endpoint using `POST` and the data format is the following format:
If you do not want to use Google Spreadsheets, the Extension will send the data to the Endpoint using `POST` and the data format is the following format:


|
F´ Flight Software - C/C++ Documentation
NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
|
#include <Svc/BufferAccumulator/BufferAccumulator.hpp>
Public Member Functions | |
| BufferAccumulator (const char *const compName) | |
| void | init (const NATIVE_INT_TYPE queueDepth, const NATIVE_INT_TYPE instance=0) |
| ~BufferAccumulator (void) | |
| void | allocateQueue (NATIVE_INT_TYPE identifier, Fw::MemAllocator &allocator, NATIVE_UINT_TYPE maxNumBuffers) |
| void | deallocateQueue (Fw::MemAllocator &allocator) |
| Return allocated queue. Should be done during shutdown. More... | |
| void | bufferSendInReturn_handler (const NATIVE_INT_TYPE portNum, Fw::Buffer &buffer) |
| void | pingIn_handler (const NATIVE_INT_TYPE portNum, U32 key) |
| void | schedIn_handler (const NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context) |
Public Attributes | |
| PRIVATE | __pad2__: void bufferSendInFill_handler( const NATIVE_INT_TYPE portNum |
| The port number. More... | |
| PRIVATE Fw::Buffer & | buffer |
| PRIVATE | __pad3__: void BA_SetMode_cmdHandler( const FwOpcodeType opCode |
| The opcode. More... | |
| PRIVATE const U32 | cmdSeq |
| The command sequence number. More... | |
| PRIVATE const U32 OpState | mode |
| < The mode More... | |
| PRIVATE | __pad4__: void sendStoredBuffer(void) |
| PRIVATE | __pad5__: OpState mode |
| Fw::Buffer * | bufferMemory |
| Memory for the buffer array. More... | |
| ArrayFIFOBuffer | bufferQueue |
| The FIFO queue of buffers. More... | |
| bool | send |
| Whether to send a buffer to the downstream client. More... | |
| U32 | numWarnings |
| The number of QueueFull warnings sent since the last successful enqueue operation. More... | |
| NATIVE_INT_TYPE | allocatorId |
| The allocator ID. More... | |
Definition at line 22 of file BufferAccumulator.hpp.
| Svc::BufferAccumulator::BufferAccumulator | ( | const char *const | compName | ) |
Construct BufferAccumulator instance
| compName | The component name |
Definition at line 22 of file BufferAccumulator.cpp.
| Svc::BufferAccumulator::~BufferAccumulator | ( | void | ) |
Destroy BufferAccumulator instance
Definition at line 44 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::allocateQueue | ( | NATIVE_INT_TYPE | identifier, |
| Fw::MemAllocator & | allocator, | ||
| NATIVE_UINT_TYPE | maxNumBuffers | ||
| ) |
Give the class a memory buffer. Should be called after constructor and init, but before task is spawned.
| maxNumBuffers | The maximum number of buffers |
Definition at line 53 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::bufferSendInReturn_handler | ( | const NATIVE_INT_TYPE | portNum, |
| Fw::Buffer & | buffer | ||
| ) |
Handler implementation for bufferSendInReturn
| portNum | The port number |
Definition at line 104 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::deallocateQueue | ( | Fw::MemAllocator & | allocator | ) |
Return allocated queue. Should be done during shutdown.
Definition at line 70 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::init | ( | const NATIVE_INT_TYPE | queueDepth, |
| const NATIVE_INT_TYPE | instance = 0 |
||
| ) |
Initialize BufferAccumulator instance
| queueDepth | The queue depth |
| instance | The instance number |
Definition at line 35 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::pingIn_handler | ( | const NATIVE_INT_TYPE | portNum, |
| U32 | key | ||
| ) |
Handler implementation for pingIn
| portNum | The port number |
| key | Value to return to pinger |
Definition at line 115 of file BufferAccumulator.cpp.
| void Svc::BufferAccumulator::schedIn_handler | ( | const NATIVE_INT_TYPE | portNum, |
| NATIVE_UINT_TYPE | context | ||
| ) |
Handler implementation for schedIn
| portNum | The port number |
| context | The call order |
Definition at line 124 of file BufferAccumulator.cpp.
| PRIVATE Svc::BufferAccumulator::__pad2__ |
The port number.
Definition at line 128 of file BufferAccumulator.hpp.
| PRIVATE Svc::BufferAccumulator::__pad3__ |
The opcode.
Definition at line 162 of file BufferAccumulator.hpp.
| PRIVATE Svc::BufferAccumulator::__pad4__ |
Definition at line 175 of file BufferAccumulator.hpp.
| PRIVATE Svc::BufferAccumulator::__pad5__ |
Definition at line 184 of file BufferAccumulator.hpp.
| NATIVE_INT_TYPE Svc::BufferAccumulator::allocatorId |
The allocator ID.
Definition at line 206 of file BufferAccumulator.hpp.
| PRIVATE Fw::Buffer& Svc::BufferAccumulator::buffer |
Definition at line 138 of file BufferAccumulator.hpp.
| Fw::Buffer* Svc::BufferAccumulator::bufferMemory |
Memory for the buffer array.
Definition at line 194 of file BufferAccumulator.hpp.
| ArrayFIFOBuffer Svc::BufferAccumulator::bufferQueue |
The FIFO queue of buffers.
Definition at line 197 of file BufferAccumulator.hpp.
| PRIVATE const U32 Svc::BufferAccumulator::cmdSeq |
The command sequence number.
Definition at line 172 of file BufferAccumulator.hpp.
| PRIVATE const U32 OpState Svc::BufferAccumulator::mode |
< The mode
Definition at line 173 of file BufferAccumulator.hpp.
| U32 Svc::BufferAccumulator::numWarnings |
The number of QueueFull warnings sent since the last successful enqueue operation.
Definition at line 203 of file BufferAccumulator.hpp.
| bool Svc::BufferAccumulator::send |
Whether to send a buffer to the downstream client.
Definition at line 200 of file BufferAccumulator.hpp.


24th & 25th March 2018
Fill member 2, 3 and 4 details only if you have more than 1 member in the team
If the above link is not working, you can go also register here


What kind of bird might roll a double six here?
She corners the market on invertebrate exoskeletons at the littoral locale
What part of this art installation might be a tribute to a Robert Redford movie?
Inside, attempt a cute shape
A diminutive Moses meets an archaic end
What part of Aaron’s garment might be a piece of digital technology?
What’s missing is a big job with many steps, or something like that
Look for the car, without limits
According to the cats, what kind of fruit grows on this tree?
What radio program knows what time it is?
In the end, one breakfast item was sent back
If Ed Cobb had a tattoo, he might have written this song instead.
Wise tries form a heavy metal band with a standard abbreviation
This structure is really under stress today.
Change one word in the title of a classic children’s tale to get a new title for this sculpture
Hidden in plane sight is the answer to a very big question (this one may require deep thought).


--- layout: game-page title: "Springy: Launch" header-img: "img/games/springy/game_banner.jpg" meta_description: "Play Springy: Launch! Need a break from your long day? Jump into our game and try springing up to the next platform! How high can you go?" ---


This parameter contains the status of all the BMS outputs and inputs. The format is as follows:
Bit #1 (0x0001): Discharge relay enabled
Bit #2 (0x0002): Charge relay enabled
Bit #3 (0x0004): Charger safety enabled
Bit #4 (0x0008): Malfunction indicator active (DTC status)
Bit #5 (0x0010): Multi-Purpose Input status
Bit #8 (0x0080): Is-Charging signal status
Bit #12 (0x0800): Multi-Purpose Output 2 status
Bit #15 (0x4000): Multi-Purpose Enable status
Bit #16 (0x8000): Multi-Purpose Output status
For all of these values, a "1' signifies that the signal or relay in question is enabled or active (high). A "0' indicates that it is inactive or off (low).
| < Appendix B: BMS Data Parameters | BMS Status > |


Precious Ice Cream
Scoop
Choose Flavor
Prize
Quantity
Amount
⛄ Single Scoop
Choose Flavor
Pista
Butter Scotch
Kulfa
Mango
Tooti Fruity
Blue Berry
Belgian
Butter Cheese
Strewberry
Chocolate
Belgian Chocolate
Rs.60
⛄ Double Scoop
Choose Flavor
Pista
Butter Scotch
Kulfa
Mango
Tooti Fruity
Blue Berry
Belgian
Butter Cheese
Strewberry
Chocolate
Belgian Chocolate
Rs.100
⛄ Family Pack
Choose Flavor
Pista
Butter Scotch
Kulfa
Mango
Tooti Fruity
Blue Berry
Belgian
Butter Cheese
Strewberry
Chocolate
Belgian Chocolate
Rs.400
Total
⛄ It's never cold for ice cream ⛄


Selena Gomez Looked Straight Out of a Teen Movie for Julia Michaels' '90s Prom Party
by Alyssa BaileyYou no longer have to imagine what the '90s version of Selena Gomez would look like. Gomez channeled the decade last night deliberately for Julia Michaels' '90s prom birthday party, and it's wild how much the hair and makeup transformed her face. "90s night," she captioned the Instagram Story shot of herself with the glam.
Combine that hair and makeup with Gomez's black dress, and Gomez looked straight out of a teen film at the party. Raquelle Stevens shared a great shot of them posing there:
Gomez is actually friends with Rachel Green IRL and made headlines this weekend for showing Friends actress Jennifer Aniston her support online. Aniston shared a makeup-free Instagram to her account, and Gomez commented adoringly, "Queen!"
Gomez has been more active on social media period since she released her first two comeback singles "Lose You to Love Me" and "Look at Her Now." The singer was in a particularly celebratory mode last week when "Lose You to Love Me" became her first-ever #1 song on the Billboard Hot 100.
"My first number 1!! This song is so dear to my heart," Gomez captioned her Instagram marking the achievement. "I’ve been working so hard to make this album as honest and fun as possible while remaining vulnerable enough to share where I am in life. I love you deeply and thank you so much for listening. I want to thank each and every person that was apart of this moment that I’ll never forget!"
Gomez is set to perform for the first time in years at the American Music Awards later this month. The show airs on November 24.


This tests inserting a paragraph separator before a special element at the start of an editable root.
Visually, it should leave a blank line before the link, and the caret selection at the start of the link.
Structurally, the empty paragraph element should go before the anchor element, rather than inside of it. See Radar #5452675.


Slippery!


IP Core User Guide
Theory of Operation
This IP core is designed to be connected to an embedded processor with an
AXI4-Lite interface.
The processor acts as master, and the IP core acts as slave. By accessing the generated registers via the AXI4-Lite interface, the processor can control the IP core, and read and write data from and to the IP core.
For example, to reset the IP core, write 0x1 to the bit 0 of IPCore_Reset register. To enable or disable the IP core, write 0x1 or 0x0 to the IPCore_Enable register. To access the data ports of the MATLAB/Simulink algorithm, read or write to the associated data registers.
This IP core also support the
External Port
interface. To connect the external ports to the FPGA external IO pins, add FPGA pin assignment constraints in the Xilinx Vivado environment.
The AXI4 Slave port to pipeline register ratio selected as 35 in task 3.2 for this model. The default delay to read AXI4 register is one clock cycle.
Depending on the selected ratio and IO connected to AXI4 interface, register pipelining is introduced in the read logic of AXI4 registers.
For your model AXI4 pipeline register ratio setting 35 is larger than all the readable AXI4 slave registers. Total readable AXI4 slave registers are 1, so no pipelining is added to the AXI4 register read back logic.
Processor/FPGA Synchronization
The
Free running
mode means there is no explicit synchronization between embedded processor software execution (SW) and the IP core (HW). SW and HW runs independently. The data written from the processor to IP core takes effect immediately, and the data read from the IP core is the latest data available on the IP core output ports.
Xilinx Vivado Environment Integration
This IP Core is generated for the Xilinx Vivado environment. The following steps are an example showing how to integrate the generated IP core into Xilinx Vivado environment:
1. The generated IP core is a zip package file under the IP core folder. Please check the Summary section of this report for the IP zip file name and folder.
2. In the Vivado project, go to Project Settings -> IP -> Repository Manager, add the folder containing the IP zip file as IP Repository.
3. In Repository Manger, click the "Add IP" button to add IP zip file to the IP repository. This step adds the generated IP into the Vivado IP Catalog.
4. In the Vivado project, find the generated IP core in the IP Catalog under category "HDL Coder Generated IP". In you have a Vivado block design open, you can add the generated IP into your block design.
5. Connect the AXI4_Lite port of the IP core to the embedded processor's AXI master port.
6. Connect the clock and reset ports of the IP core to the global clock and reset signals.
7. Assign an Offset Address for the IP core in the Address Editor.
8. Connect external ports and add FPGA pin assignment constraints to constraint file.
9. Generate FPGA bitstream and download the bitstream to target device.
If you are targeting Xilinx Zynq hardwares supported by HDL Coder Support Package for Xilinx Zynq Platform, you can select the board you are using in the Target platform option in the Set Target > Set Target Device and Synthesis Tool task. You can then use Embedded System Integration tasks in HDL Workflow Advisor to help you integrate the generated IP core into Xilinx Vivado environment.


{% extends "splunkdj:base_with_app_bar.html" %} {% load splunkmvc %} {% block title %}Grouped Time Range - Web Framework Toolkit{% endblock title %} {% block css %} {% endblock css %} {% block content %}
You might want to use one time range for multiple searches. In this example, the same TimeRange view sets the timebounds for two separate searches that drive the two Single views.


About The Technical Preview
What's new about this technical preview?
The new Photosynth technology in this preview combines the tactile smoothness and extreme resolution of a stitched panorama
with the kind of motion through space that you see in video. It takes you on a smooth tour of a space while also allowing
you to "scrub" to any location smoothly, and it gives you access to every pixel from every photo.
How do I sign up for the technical preview?
Everyone in the world can view the new Photosynth technology in this preview, but you need to
sign up to create the new synths. When we confirm your signup, we'll
send you an email with instructions as to what to do next. (Make sure you mark<EMAIL_ADDRESS>as a
safe sender on your email client to prevent emails from the Photosynth Team from going to the junk folder.)
I'm new. What do I need to get started creating synths?
First, we recommend you watch our short video on how to
shoot a synth.
Then, sign up for the technical preview and receive a confirmation. Beyond that,
you only need a camera and a computer to start creating your own synths—even a phone camera will do. You might also read the
Expert Shooting Guide
while you wait for your confirmation.
What are the system requirements to view synths on my computer?
The synths made with the technology of this technical preview work on the latest versions of
Internet Explorer,
Chrome,
Firefox, and
Safari.
(Safari users need to manually enable WebGL.)
In addition, to view the interactive synths, your system must support WebGL. To run WebGL, your system needs a modern graphics card and processor. If WebGL is not supported on your system, we display a view-only movie version of the synth for you. To check if your system can run WebGL, visit http://get.webgl.org.
If you still can't view an interactive synth, your browser may be using compatibility mode to display it. Check your browser's settings and disable compatibility mode for the page displaying the synth.
In addition, to view the interactive synths, your system must support WebGL. To run WebGL, your system needs a modern graphics card and processor. If WebGL is not supported on your system, we display a view-only movie version of the synth for you. To check if your system can run WebGL, visit http://get.webgl.org.
If you still can't view an interactive synth, your browser may be using compatibility mode to display it. Check your browser's settings and disable compatibility mode for the page displaying the synth.
Which browser should I use on my Mac computer?
We support the latest version of the Chrome browser on Mac computers. Other modern browsers may also work but are untested.
Can I browse the Photosynth Technical Preview on my smartphone?
The Photosynth Technical Preview requires WebGL to views synths. Until now, very few phone browsers have supported WebGL.
As this situation changes, we will be updating the synth viewer page to work on mobile devices.
Until then, you may see an MP4 video instead of the fully interactive version of the synth.
Is Photosynth free?
Yes! The Photosynth apps, tools, and service are all free provided that you follow our
Terms of Use.
You can make synths, view them, share them with others, and embed them on your blog or website all for free—even if your
synths are commercial in nature. Each account has 20GB of space for public content and 1GB of space for unlisted content.
Capturing Synths
What's a synth?
A synth is a collection of overlapped photos together with the 3D information we've calculated about them.
In the original Photosynth technology (still available on our main site),
the information was limited to the locations and orientation of the camera for each photo. In the new technology,
we are also modeling some of the 3D geometry revealed in the analysis. This geometry is what makes moving through
these new generation synths a lot smoother than the original ones.
What are the fundamentals for shooting for the new Photosynth technology?
- Each point in the scene you are shooting must be present in at least three photos. Heavily overlap your shots. This is the most important rule of thumb for using Photosynth.
- You can shoot up to 200 photos, but 20–50 photos usually works well.
- Take all your photos at the same zoom level. (Although, wide-angle photos usually make richer synths.)
- Landscape mode works better than portrait mode, but stay in the same mode for a whole sequence.
- Photos you upload should be at least 1.5 megapixels in resolution.
- Do not crop or straighten your photos. Doing that confuses Photosynth.
- Your photo sequence must form one of four simple shapes: a spin, panorama, wall, or walk.
What is the best way to learn to take impressive synths?
First, watch our short video on how to shoot a synth
and then read the
Expert Shooting Guide.
What are the different types of synth?
The four different shapes of the new synths are the spin, panorama, wall, or walk.
How do I choose what shape to use for a particular location?
Think about the smooth path of photos you will be producing.
- If your motion is basically forward relative to the direction of shooting, you're making a walk.
- If your motion is sideways relative to the shooting direction, you are making a spin if your shooting path is curved and you are generally pointing toward some central location (even if this central location is obscured).
- If your motion is sideways relative to the shooting direction, you are making a panorama if your shooting path is curved and you are shooting away from some point behind you.
- If your motion is sideways relative to the shooting direction, but neither of the above cases apply, you are making a wall.
How do I shoot a panorama?
Stand in one spot and rotate the camera around you, making sure to get lots of overlap between your photos. Shoot in landscape mode,
and at a wide focal length. The
Expert Shooting Guide
explains in more detail about the different kinds of panoramas you can shoot.
How do I shoot a walk?
Shoot a walk in the direction of movement of the camera, making sure to get lots of overlap between your photos.
Shoot in landscape mode, and at a wide focal length. You can turn corners, but the sharper the corner you turn,
the more disorienting it is for viewers. Shoot many photos—up to the maximum of 200.
How do I shoot a spin?
Select a point to keep roughly in the center of your frame for every shot. This point can be obvious and visible or one that
you visualize. Think of it as the center of gravity of your spin, and try to keep your camera pointing toward it in all shots.
Shoot in landscape mode, and at a wide focal length. Shoot at least 20–30 photos, making sure to overlap your shots a lot. If you are trying to capture something with many holes, shoot 40 or more photos as you move around the object to reduce 3D artifacts.
If you shoot all the way around an object, do not inadvertently spiral in or spiral out when completing the loop. The easiest way to complete a clean loop is to put a marker on the ground where you shot the first frame, then make sure you shoot the last frame from the exact same spot.
Turntable Shots: The rule of thumb for turntables is to make anything that doesn't rotate disappear. In practice, this means that any non-rotating background needs to be as featureless as possible.
Shoot in landscape mode, and at a wide focal length. Shoot at least 20–30 photos, making sure to overlap your shots a lot. If you are trying to capture something with many holes, shoot 40 or more photos as you move around the object to reduce 3D artifacts.
If you shoot all the way around an object, do not inadvertently spiral in or spiral out when completing the loop. The easiest way to complete a clean loop is to put a marker on the ground where you shot the first frame, then make sure you shoot the last frame from the exact same spot.
Turntable Shots: The rule of thumb for turntables is to make anything that doesn't rotate disappear. In practice, this means that any non-rotating background needs to be as featureless as possible.
How do I shoot a wall?
Take wall shots at approximately 90 degrees from the direction of movement of the camera.
Vary that angle as the scene requires, but don't change your shooting angle (even gradually) by more than 45 degrees.
Shoot in landscape mode, and at a wide focal length. Shoot many photos (up to the maximum of 200), making sure to get
lots of overlap between your photos. Shoot a few extra photos at each end of the wall
(beyond the normal three-view overlap).
Can I use a D-SLR? A point-and-shoot camera? A mobile device? A Go-Pro camera?
Yes. However, a small number of cameras don't provide EXIF/XMP metadata, which the new Photosynth technology uses.
If you upload a photo missing this metadata, Photosynth warns you about it.
Can I use a camcorder or other type of movie recorder?
Yes, but we do not support direct upload of video, so you will need to convert the video to still images and thin out or
reduce your frame rate before uploading. Video is usually shot at 30 frames per second. Since Photosynth usually needs no
more than one frame every half second, you should drop at least 14 out of every 15 frames. Also, frames from
video (even 1080p HD video) are very low resolution and noisy compared to almost any digital photo. So, while creating a synth
from a video sounds good, viewing one made from video isn't as appealing. As sensors continue to improve and video quality
gets better, this may change, but for now the results are almost always visually disappointing.
Can I edit my photos before uploading?
You can tweak color and contrast, but you should not apply any effects that add or subtract significant texture from the photos.
(Photosynth uses this texture when matching photos together.) Also, do not crop your photos. Cropping changes the fundamental geometry
of the photos as understood by Photosynth, and your results are likely to be poor. Do not apply sharpening, and be very careful about
any changes that you apply only to a portion of each image. In general, if you plan to touch up your photos, synth an unmodified
version first so you have a baseline for what to expect from Photosynth before you start to make modifications.
How are the synths in the technical preview different from previous synth/panorama technology?
The first synth technology, released in 2008, was about combining a completely unstructured set of overlapping photos.
Photos used to make a synth could be taken from many different locations and include different zoom levels.
The resulting experience was powerful, but the transitions were often jarring—and sometimes downright confusing.
In 2010, we added spherical panoramas, one obvious way to constrain the shooting experience and simplify the viewing experience. Spherical panoramas have the property that all photos are (or are assumed to be) shot from exactly the same position in 3D space. The only difference between the photos is where the camera is pointed. This worked well for environments with good lines of sight from a simple place (for example, the middle of a room), but it isn't the right solution for all spaces.
Our newest Photosynth technology constrains a set of photos in a different and complementary way. In the new technology, photos are shot so that the result can be viewed by moving along a single understandable path. This experience allows complete predictability of motion and is delightfully touch-friendly. Of course, these intentional constraints are far less general than the original Photosynth, so for now there are still some situations where the original technology is a better solution. These situations primarily involve cases where zooming is absolutely required, such as seeing both the grand sweep of the view from the rim of the Grand Canyon and being able to zoom in on rock formations miles away.
In 2010, we added spherical panoramas, one obvious way to constrain the shooting experience and simplify the viewing experience. Spherical panoramas have the property that all photos are (or are assumed to be) shot from exactly the same position in 3D space. The only difference between the photos is where the camera is pointed. This worked well for environments with good lines of sight from a simple place (for example, the middle of a room), but it isn't the right solution for all spaces.
Our newest Photosynth technology constrains a set of photos in a different and complementary way. In the new technology, photos are shot so that the result can be viewed by moving along a single understandable path. This experience allows complete predictability of motion and is delightfully touch-friendly. Of course, these intentional constraints are far less general than the original Photosynth, so for now there are still some situations where the original technology is a better solution. These situations primarily involve cases where zooming is absolutely required, such as seeing both the grand sweep of the view from the rim of the Grand Canyon and being able to zoom in on rock formations miles away.
Website Sign In/Account Access
How can I access the technical preview site directly without going through the main site's home page?
How do I access the main Photosynth site from the technical preview?
Select "main site" from the dropdown menu next to the Photosynth logo on the top left of the page.
Alternatively, you can type http://photosynth.net directly in your browser's address bar.
I've lost my password. How do I reset my password?
Reset your Microsoft account password
here.
Can I change my Photosynth user name?
Yes. However, your user name is shared between the technical preview and the main site,
so any changes you make will impact both sites.
To change your user name in the technical preview, you must first sign in to your Photosynth account. Once you have signed in, click on the chevron next to your user name in the upper right corner of the screen and select " settings." Type a new user name and click "save." Your user name will be automatically updated once you click " save."  However, changing your user name will break any existing links to your Photosynth library.
To change your user name in the technical preview, you must first sign in to your Photosynth account. Once you have signed in, click on the chevron next to your user name in the upper right corner of the screen and select " settings." Type a new user name and click "save." Your user name will be automatically updated once you click " save."  However, changing your user name will break any existing links to your Photosynth library.
I've updated my email address in the technical preview, but Photosynth doesn't let me sign in using that email address.
You sign in to the Photosynth technical preview (and the Photosynth main site) using
your Microsoft account user name, which is your Microsoft account email address. The email address you provide for Photosynth
in the technical preview for us to send notifications is saved separately. You can change the email you want us to use to send
notifications, but that does not change your Microsoft account user name. To change your Microsoft account user name,
sign in to your Microsoft account and change your account alias.
Uploading and Processing
What kinds of image formats does this technical preview support?
Only JPG. Convert other image formats to JPG before uploading. Each JPG photo must also be smaller than 20MB in size.
How many photos can I process into a single synth?
You must use at least three photos and can use no more than 200. If you've captured an amazing 1,000-photo journey along a trail,
you'll have to make five separate walk synths from this. We're hoping to allow you to link these together into a connected experience
for your viewers in a future update.
The upload is very slow. What can I do about that?
The number and size of the photos you are uploading as well as your upload bandwidth to the Internet determines the upload time.
You can speed up your upload by using your favorite photo editor to reduce the resolution and/or the JPG compression quality of
your photos. However, don't reduce the JPG compression quality below 0.5 or the resolution below 1.5 megapixels.
Also, if you've captured a great sequence that you're looking forward to sharing with people, we don't recommend reducing the
resolution because doing so prevents viewers from being able to zoom in and see all the interesting details.
How long will it take to process my synth once my photos upload?
The time it takes to process a synth depends on many variables and isn't easily predicted. Most synths take less than 15 minutes
to process. Synths are queued as they are uploaded and await processing. A longer queue may affect the processing time of your synth.
By default, Photosynth sends out an email notification when a synth has been processed and is ready to view.
How do I know when my synth has completed processing?
By default, Photosynth sends out an email notification when a synth has been processed and is ready to view.
On Windows 8, I can't upload more than a single file at a time from my USB device. What should I do?
Copy the files to your hard drive and upload them from there.
Privacy, Rights, and Commercial Use
Can anyone view the synths I upload?
Only if you want them to be able to. Any synth can be unlisted. Making a synth unlisted doesn't make it completely private,
but it does keep it from being found by other users with a web search or through exploration in the Photosynth
main site.
You can still share direct links to unlisted synths, but when you share unlisted direct links, you're letting that unlisted
synth out into the wilds of the Internet. Anyone with a copy of that link can then see your unlisted synth.
(Here are the details of our
privacy statement.)
How do I know which license to assign to my synth?
See the Creative Commons website for more details on your options.
Can I use my synths commercially?
Yes. If you have real estate, businesses, locations, or products you want to promote, you can create synths using Photosynth and embed
the results in your website or blog. Currently, we do not offer an enterprise version of the product, nor do we offer any form of
access control. Using Photosynth is a great way to promote a place or product publicly, but not the right choice if you need to
closely control who can see your synths.
How do I prevent others from seeing the geographical location of where I took my synth?
Photos that come from a mobile device may have GPS data included with the photo. We encourage you to allow
us to retain this data for public synths in public places so that your synth will appear on
the map. However, for unlisted synths or synths inside your home you may want to
delete this information. Here's how you can remove the geographical location from a synth at creation time or afterwards.
- To create a synth that does not display its geographical location, uncheck the "save my synth's location and show it to viewers" in step 4 of the creation process. This checkbox will only be displayed if at least one of the images in your synth contains GPS coordinates.
- To remove the geographical location from an existing synth that you own, log in to Photosynth and display the synth in your browser. Click on the "synth information" button in the bottom left corner of the screen. Click "edit" below the synth's map. Uncheck the "show the location of my synth to viewers" checkbox and click "save." Click "yes" on the confirmation dialog. This will permanently remove all GPS coordinates from the synth itself and each of the individual photos in the synth.
Viewing
Where are my synths? Where is my library?
If you've uploaded photos and can't find them on the site, make sure you are signed in.
After you sign in, click your user name in the upper right corner of the technical preview and you will see your synth library.
Swipe to the right (or click and drag with your mouse) to see more of your synths.
How do I view and interact with a synth?
Synths follow a specific path. Swipe (or click and drag with your mouse) horizontally or vertically to navigate along the synth path.
You can also pinch (or double click) to zoom in on a specific image to get a closer look. Once you are zoomed in,
zoom all the way out to continue navigating the synth.
Where is my old Photosynth content?
Older synths are still accessible from the main site.
Where can I search and explore other users' synths?
You can explore other users' synths by choosing one of the views in the Explore dropdown in the top navigation bar.
The following views are available:
- "featured synths" to see the synths the Photosynth editorial team has selected to showcase,
- "my feed" to see the synths created by all the users you follow,
- "recent favorites" to see the most liked synths that were created in the past week,
- "all time favorites" to see the most liked synths ever, and
- "recent synths" to view the most recently added synths.
Where can I see the synths I've liked?
To see the synths you've previously liked, you must first sign in to your Photosynth account.
Once you have signed in, click on the chevron next to your user name in the upper right corner of the screen
and select "my favorites."
I found a synth that I think violates the Terms of Use. What do I do?
Launch the synth that violates the Terms of Use and click "report abuse" in the information view. Tell us your concerns
and describe the issue so that we can help address it. (We handle any report according to the terms of our
privacy statement.)
How is a synth selected for the Featured Synths view?
The Photosynth editorial team selects the synths that are showcased on the Featured Synths view.
Their decision is based on the subject matter, quality, originality and timeliness of the synths.
Commenting
How do I leave a comment on a synth?
To leave a comment on a synth, you must first sign in to your Photosynth account. Display the synth you want to comment
on and click on the "comment" button in the bottom left corner of the screen. Type your comment where it says
"Add your comment" and press "enter" on your keyboard.
Can I delete comments?
To delete a comment on a synth, you must first sign in to your Photosynth account. You can delete comments you posted
yourself on any synth and comments posted on a synth you created. To delete a comment on a synth, you must first log in
to your Photosynth account. Display the synth with the comment you want to remove and click on the "comment"
button in the bottom left corner of the screen. Scroll through the comments pane to the comment you want to remove.
Click on the "x" for that comment. Click "yes" on the confirmation dialog.
How do I report an inappropriate comment?
You can delete comments posted on synths you created. For other comments, click on the "report abuse" link in the
information view of the synth with an inappropriate comment. Tell us your concerns and describe the issue so that we
can help address it. (We handle any report according to the terms of our
privacy statement.)
Editing
How do I edit the properties of a synth?
To edit the properties of a synth, you must first sign in to your Photosynth account. Launch the synth you want to edit and click
"edit." You can update the title, description, starting frame, synth location, visibility settings, and photo rights of
any synth you have created. Click "save." Your changes may take a few minutes to take effect. You can only edit synths
that you have created.
How do I set the starting point on my synth?
To change the starting frame of a synth, you must first sign in to your Photosynth account. Launch the synth you want to edit and
dismiss the information view by clicking away from it. Move the synth to the new desired starting frame. Click on the synth title
peeking in the bottom left of the screen to bring up the information view, and click "edit." Click
"set this frame as starting view" to set the new starting point to the current image. Click "save." Your
changes will take a few minutes to take effect.
How do I delete a synth?
To delete a synth, you must first sign in to your Photosynth account. Launch the synth you want to delete and click
"delete." Confirm that you want to delete the synth. You can only delete synths that you have created.
Highlights
What is a highlight?
A highlight is a visual annotation on a synth.
How do I create a highlight on my synth?
To create a highlight, you must first sign in to your Photosynth account. Launch a synth that you created. You can
only add highlights to synths that you created yourself. Click on the "new highlight" icon at the bottom
of the screen. Type in an optional caption and click "save."
How do I edit a highlight?
To edit a highlight, you must first sign in to your Photosynth account. Launch the synth that contains the highlight
you want to edit. Hover over the highlight and click "edit."
You can edit the following properties of a highlight:
Once you are done making changes, click "save."
You can edit the following properties of a highlight:
- Caption: You can type an optional textual description for the highlight. Your text can include a URL if you want to reference something else on the Web.
- Position: You can drag the highlight to a different position on the screen.
- Thumbnail: You can change the size of the highlight by grabbing the resize control on the side of the highlight. Changing the size of the highlight changes its representation on the synth and the thumbnail in the highlight gallery in the bottom right corner of the screen.
-
Visibility range: You can specify on which frames the highlight is displayed. Visibility options include:
- Automatic (default): Let Photosynth analyze the geometry of your synth and select when best to show the highlight.
- Show on all frames: Show the highlight on every single frame of the synth.
- Only show on current frame: Show the highlight only on the frame where you created the highlight.
- Manual: Specify the specific range of frames where the highlight is displayed. Move the control's points to the specific frames where the highlight should start and stop being visible and click "done." The frame where the highlight was created must be included in the visibility range.

How do I delete a highlight?
To delete a highlight, you must first sign in to your Photosynth account. Launch the synth that contains the highlight
you want to delete. Hover over the highlight and click "delete." Click "yes" to confirm you want to
delete the highlight.
How do I hide highlights?
There are two ways to hide highlights. First, you can click "hide highlights" above the highlight gallery in the
bottom right of the screen. This will both hide the highlight gallery and hide all highlights on the synth. Alternatively,
you can click on the "full screen" icon at the bottom of the screen. Highlights are not shown in full screen mode.
Why can't I see highlights on a synth I know to have highlights?
Highlights are only displayed on screens with a resolution of 1024 by 768 pixels or higher.
Highlights are not shown in full screen mode.
Notifications
I asked to have an email notification sent to me when my synth completed, but I never received one. What gives?
It may take several minutes (or longer, depending on the length of the synth queue) for your synth to process, so we may not have sent
the email notification yet. If it's been quite a while, check your junk email folder to see if the notification was routed to it.
(Add<EMAIL_ADDRESS>address to your list of safe senders to prevent your email notifications from being sent to your
junk email folder in the future.)
How do I update the email address used to send me notifications?
To update your email address, you must first sign in to your Photosynth account. Once you have signed in, click on the chevron next
to your user name in the upper right corner of the screen and select "settings." Type a new email address and click
"save." Once you click "save," we send a confirmation email to the new email address to verify this change.
Click on the link provided in the email to confirm your change of email address. (We use your previous email account for any email
communication until you have verified your new email address, so please confirm your change promptly.)
Why am I not receiving any email notifications from Photosynth?
You may not have verified your email address. To verify your email address, you must first sign in to your Photosynth account.
Once you have signed in, click on the chevron next to your user name in the upper right corner of the screen and select
"settings." Click on the "resend verification email" link underneath your email address. You will then be
sent a confirmation email at that email address. Open the email message and click on the "Click this link to verify your email
address with Photosynth." You will start receiving new email notifications a few minutes after verifying your email address.
If you don't see this email message in your inbox, it may have been redirected to your junk mail folder.
How do I stop receiving email notifications from Photosynth?
To change your email notification preferences, you must first sign in to your Photosynth account. Once you have signed in,
click on the chevron next to your user name in the upper right corner of the screen and select "settings."
Uncheck the checkbox for any of the email notifications you do not wish to receive. Click "save." To
completely remove your email address from our system, simply delete your email address in the email address textbox
and click "save."
Sharing and Embedding
Exporting
How can I save a synth on my computer?
You can't save a synth to your computer. We do not have an offline format or an offline viewer.
Can I export the individual photos that make up a synth?
No. At this time, you can't save the individual synth photos to your computer from the Photosynth site. Be sure to save copies of
your photos before you upload them to the technical preview.