--- author: display_name: UGRC Office email<EMAIL_ADDRESS>tags: - census - demographic date: 2021-02-23 10:21:08 -0600 categories: [] 2020Census: downloads: - url: https://opendata.gis.utah.gov/datasets/utah-census-blocks-2020 label: 'Utah Census Blocks 2020' - url: https://opendata.gis.utah.gov/datasets/utah-census-block-groups-2020 label: 'Utah Census Block Groups 2020' - url: https://opendata.gis.utah.gov/datasets/utah-census-tracts-2020 label: 'Utah Census Tracts 2020' - url: https://opendata.gis.utah.gov/datasets/utah-census-places-2020 label: 'Utah Census Places 2020' - url: https://opendata.gis.utah.gov/datasets/utah-census-counties-2020 label: 'Utah Census Counties 2020' - url: https://opendata.gis.utah.gov/datasets/utah-census-state-2020 label: 'Utah Census State 2020' - url: https://drive.google.com/uc?id=1p8-tWujKXXlH-VjFDLkRJ06VB207_Rmx&export=download label: Utah Census 2020 PL 94-171 Summary File tables in File Geodatabase format - url: https://drive.google.com/uc?id=1sv6pAi-fn6UPbMHJ2BZzIM9ApBRAZLVP&export=download label: Utah Census Block 2020 Streamlined Race Data in File Geodatabase format updates: - August 2021 2000Census: downloads: - url: https://drive.google.com/drive/folders/16hcPe8qHPEtwLQPPbzg6HFUTMutRY4Vq label: 2000 Census Data updates: - 2001 2010Census: downloads: - url: https://opendata.arcgis.com/datasets/8fa5d65451694f64b05f17d9e5f9d67e_0.gdb label: 'File Geodatabase: Census Block Groups' - url: https://opendata.arcgis.com/datasets/b92a5e772855488a9b7f9c367475d955_0.gdb label: 'File Geodatabase: Census Blocks' - url: https://opendata.arcgis.com/datasets/e36dec62351d449899bc6ca98f6263bb_0.gdb label: 'File Geodatabase: Census Counties' - url: https://opendata.arcgis.com/datasets/ad629aab2f89456c82457aac06c59601_0.gdb label: 'File Geodatabase: Census Tracts' - url: https://opendata.arcgis.com/datasets/8fa5d65451694f64b05f17d9e5f9d67e_0.zip label: 'Shapefile: Census Block Groups' - url: https://opendata.arcgis.com/datasets/b92a5e772855488a9b7f9c367475d955_0.zip label: 'Shapefile: Census Blocks' - url: https://opendata.arcgis.com/datasets/e36dec62351d449899bc6ca98f6263bb_0.zip label: 'Shapefile: Census Counties' - url: https://opendata.arcgis.com/datasets/ad629aab2f89456c82457aac06c59601_0.zip label: 'Shapefile: Census Tracts' updates: - January 2011 PopulatedBlockAreas2010Approximation: hub: name: Utah Population Block Areas 2010 Approx item_id: 061407fed6324bcfabf1813764caef0a updates: - January 2011 PopulatedPlacePoints2010Approximation: hub: name: Utah Population Place Points 2010 Approx item_id:<PHONE_NUMBER>2e4bf0b9cc3234eddd0e76 updates: - January 2011 UrbanAreasCensus2010: hub: name: Utah Urban Areas Census 2010 item_id: 5fefbcf3e7a5499c845872d0be11b1c2 updates: - January 2011 UrbanAreasCensus2020: hub: name: Utah Urban Areas Census 2020 item_id: 7a887f592459424a8bdeb69a3bf08df4 updates: - July 2023 --- {% include abstract.html name="Demographic Data" stewards="UGRC and U.S. Census Bureau" abstract="This page contains boundary and demographic data collected by the U.S. Census Bureau for 2020, 2010 and 2000 censuses. Demographic data includes population counts, household counts, ethnicity counts, etc. The data available on this page is filtered, geographically, to the state of Utah. This data follows the format released by the Census Bureau, with just a few modifications for usability." %}
Read about commonly-used Census Bureau geography including blocks, block groups, tracts, and places.
The data in this section contains census blocks, census block groups, census tracts, census places, census counties, and the state boundary from the Census Bureau.
Utah’s 2020 census geographic boundaries became available in February 2021 and the demographic redistricting legacy files (the 2020 Census Redistricting P.L. 94-171 Summary Files) became available on August 12, 2021. The Census Bureau will release a more user-friendly version of the 2020 Census Redistricting P.L. 94-171 Summary Files on September 30, 2021. In the meantime, UGRC, with collaboration from the Analytics Group at WFRC, has worked with the August 12 release and has created ready-to-use GIS data in several formats that hopefully make the 2020 redistricting data easier to use. Read more about these offerings in the blog post, 2020 Census Redistricting Data in Easy to Use GIS Formats
The 2020 data available on this page was downloaded from the 2020 Census Redistricting Data (P.L. 94-171) page. All 2020 census geographies reflect boundaries as of January 1, 2020. Additional GIS files and support products are available on the census redistricting data page.
Geography is a fundamental aspect of the census, providing the framework for the once-a-decade count of population and housing. Read about some of the key geography changes in the Kem C. Gardner Policy Institute's 2020 census geography blog and fact sheet.
There are no constraints or warranties with regard to the use of this dataset.
{% include contact.html subject=page.title contact=site.data.contacts.agrc %}
The Census Bureau creates different sized geographic areas to organize this demographic information, the smallest unit of area being a "census block" and the biggest being counties. The data in this section contains census blocks, census block groups, census tracts, and counties.
There are no constraints or warranties with regard to the use of this dataset.
{% include contact.html subject=page.title contact=site.data.contacts.agrc %}
This dataset contains demographic information collected by the Census Bureau in 2000 for the census block, census block group, census tract, and county levels. Demographic population includes population counts, household counts, ethnicity counts, etc. The Census Bureau creates different sized geographic areas to organize this demographic information, the smallest unit of area being a "census block" and the biggest being counties.
There are no constraints or warranties with regard to the use of this dataset.
Summary File 1 and 2 focus on the information collected on the census short form – namely on age, sex, race, Hispanic/Latino origin, households, families, housing units, and owner/renter status.
Summary File 3 and 4 focus on social, economic and housing characteristics compiled from a sample of approximately 19 million housing units (about 1 in 6 households) that received the Census 2000 long-form questionnaire. Topics include income, education, occupation, ancestry, disability, foreign birth, commuting, household financial arrangements, year housing structure built and many other population and housing subjects.
PopBlockAreas2010_Approx contains areas of census blocks that only represent populated areas. This dataset was created by UGRC using the original 2010 census blocks. The blocks were cut when necessary to only cover residential areas. This was done using aerial imagery and is an approximation.
There are no constraints or warranties with regard to the use of this dataset. This data was created by UGRC using U.S. Census Bureau 2010 Census data.
{% include contact.html subject=page.title contact=site.data.contacts.census %}
PopPlacePts2010_Approx represents populated places and their approximate population. Incorporated municipality populations were determined by the U.S. Census Bureau. The population of unincorporated places were approximated by UGRC using a given place's surrounding census blocks and their 2010 census population counts.
There are no constraints or warranties with regard to the use of this dataset. This data was created by UGRC using U.S. Census Bureau 2010 Census data.
{% include contact.html subject=page.title contact=site.data.contacts.census %}
The urban areas created by the US Census Bureau "represent densely developed territory, and encompass residential, commercial, and other nonresidential urban land uses. Each urban area must encompass at least 2,000 housing units or at least 5,000 people." They were created by the Bureau following the 2020 census based on the population and housing unit density of individual blocks.
The 2020 Census increased the urban population and housing unit count requirements for the first time since 1910, resulting in differences between the 2010 and 2020 boundaries beyond those resulting from population change. In addition, they also stopped distinguishing between "urbanized areas" and "urban clusters" and renamed areas as needed to reflect the updated boundaries.
{% include contact.html subject=page.title contact=site.data.contacts.census %}
UrbanAreasCensus2010 represents Census Bureau delineated urban areas that represent densely developed territory, encompassing residential, commercial, and other nonresidential urban land uses. In general, this territory consists of areas of high population density and urban land use resulting in a representation of the "urban footprint." There are two types of urban areas: urbanized areas (UAs) that contain 50,000 or more people and urban clusters (UCs) that contain at least 2,500 people, but fewer than 50,000 people (except in the U.S. Virgin Islands and Guam which each contain urban clusters with populations greater than 50,000). Each urban area is identified by a 5-character numeric census code that may contain leading zeroes.
There are no constraints or warranties with regard to the use of this dataset. This data was created by UGRC using U.S. Census Bureau 2010 Census data.
Summary File 1 (SF 1) and Summary File 2 (SF 2) focus on the information collected on the census short form – namely on age, sex, race, Hispanic/Latino origin, households, families, housing units, and owner/renter status.
The SF3 and SF4 products are not available for the 2010 census as the 'long form' was not gathered.
{% include contact.html subject=page.title contact=site.data.contacts.census %}
The Census Bureau provides data within two types of boundaries: statistical and legal. Statistical boundaries depend on population thresholds and typically follow features like roads, power lines, and rivers. Legal boundaries are more familiar, such as city, county, and state boundaries.
Census tracts are small, relatively permanent subdivisions of a county designed to present and compare statistical data for areas of roughly equal population. Census tracts generally contain between 1,200 and 8,000 people, with an optimum population of 4,000. Spatially, a census tract will be smaller in higher-density areas, and larger in more sparsely populated areas. In higher-density areas, tracts can be considered approximately "neighborhood" sized. Census tracts subdivide the full area of counties and states, and never cross county boundaries.
Block groups are divisions of census tracts that generally contain between 600 and 3,000 people. A block group consists of a cluster of census blocks within the same census tract.
Blocks are the smallest geographic areas and the basis for all tabulated census data. Blocks are statistical areas bounded by visible features, such as streets, road, streams, and railroad tracks, and by nonvisible boundaries, such as selected property lines and city, township, school district, and county limits. A block often represents a typical city block area, however, as with other statistical geographies, rural-area blocks may be very large in spatial size.
In Utah, census "places" include cities, towns, metro townships, and census-designated places (CDPs). The first three are legal boundaries in Utah, representing incorporated places that provide governmental functions for residents. Under Utah law, towns must have populations of at least 100, and cities at least 1,000. Metro townships are a new form of government created in Utah in 2015 with the passage of Senate Bill 199 (the Community Preservation Act), and exist only in Utah. CDPs are statistical boundaries delineated to provide data for recognizable places that are not legally incorporated. The “place” geography is not required to fully cover a county or state’s area, so areas that do not belong to any place are common. Places may cross county boundaries.
Visit the Census Bureau Geography Glossary to learn more about census geographies.


Gary's Blog
Welcome!
Page One is a parallax clean layout with beautiful images from Unsplash website. You can download and use this template for your sites.
Please mention TemplateMo site to your friends. Thank you. Nam volutpat ipsum et felis ultrices dignissim.
Let's Begin


Ping-Pong
Contact Me
Let's Play!
Rules:
Ping Pong will count up to your number from 1 with the following exceptions:
1. Numbers divisible by 3 become 'ping'
2. Numbers divisible by 5 become 'pong'
3. Numbers divisible for 15 become 'pingpong'
Enter your number here:
Ping Pong!
Ping Pong Reverse!


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/cubing.20a.20cube.html ---
Larry Paulson issued the following challenge in his Big Proof talk: formalise a proof that it is impossible to divide a cube up into n>1 smaller cubes all of different sizes, in a theorem prover of your choice. Here's an example of an informal proof: http://www.alaricstephen.com/main-featured/2017/9/28/cubing-a-cube-proof . I think it's OK to assume that all the cubes are oriented in the obvious way, i.e. no weird diagonal cubes; what I'm saying is that the problem can be formalised as a statement in discrete mathematics rather than one about the real numbers.
why this particular problem though?
I'm just reporting on his talk. It's finished now but I can ask him. I think I know the answer though. He formalised the proof that you can't cover an 8x8 chessboard with two opposite corners removed, with dominoes, and was just issuing a challenge of a similar nature which is harder.
isn't this related to dehn invariants or some such?
I'm going to sleep now but in case anyone else wants to pick this up: https://gist.github.com/digama0/4bf0be9d7a0991a61693f490575c81c8
Mario sleeping? This is a miracle! :P
I go into low power mode for a while :D
I'm also trying to prove this :)
Hmm... Your characterization of tight
is probably better. My formulation was (trying to use roughly your notation):
{bottom} × base ∩ (⋃(c ∈ cubes), {c 0} × c.proj.interior) ⊆ {bottom} × base.interior
(where ×
means set.prod
)
don't you also need the condition in no_cubes_partition_aux
that all cubes c
have c.p 0 + c.side <= 1
?
I don't think that fact is actually used in the proof.
But I can cube a box of dimensions (1/60) x 1 x 1
assuming the cubes may be higher than the box (just by squaring a square), and I think that contradicts Mario's lemma.
Here is my attempt so far: https://gist.github.com/fpvandoorn/d3da85a261169b7f37007d80cb5e59bf
The main thing missing is that the smallest cube in a "valley" cannot be in the corner or on a side. I do have the reason that once such a cube is in the middle of the valley, then there is another "valley" on top of it.
If we manage to finish this challenge before @Kevin Buzzard's talk on Wednesday, I think he should leave a challenge for the others... maybe something like: state and prove local (global?) class field theory in $THEOREM_PROVER_OF_CHOICE
.
Apparently these challenges are quite productive (-;
I updated the gist a bit, but I should get back to my other work and defer to Floris
Good morning, Mario!
How long did you manage to stay in low-power mode?
:P
So this is a problem on Freek Verdijk's list of 100 problems. I talked to him over breakfast today. He said that Lean is not one of the provers on his list but he'd happily add it if someone got in touch with him and told him which of his problems had been formalised in Lean.
http://www.cs.ru.nl/~freek/100/
He made it clear that he was not going to force a formal statement onto anyone, so any reasonable interpretation of what the question is, would be satisfactory. In particular he said it was fine if we assume that the small cubes were "flat" within the big cube.
Mario maybe you should document some of your code if you want to pass it on. I'm very busy until Thursday evening, I have two talks this week.
The hard part with adding lean to the 100 theorems list is getting the historical data to find out who proved what and when
We need another list (-; One that doesn't include silly recreational thingies, but does include class field theory.
Also I probably shouldn't race to finish this proof especially if it's on the 100 theorems list. I have more than enough credits on that page already, any more would just be rude
granted, I don't have any credits using lean, but neither does anyone else because no one around here likes recreational math :P
We could distribute the work of adding Lean to Freek's list. Just push the data to https://github.com/leanprover-community/mathlib/blob/100-thms/docs/100-theorems.md
I think you undervalue these problems @Johan Commelin . The point is that they aren't actually that hard - with a week of dedicated work you can get almost any of them. That's important for motivational purposes for newcomers. Asking people to climb everest won't get them off the couch
The history isn't as easy as that. Abhimanyu Pallavi Sudhir wasn't the first person to prove irrational (sqrt 2) in lean. I had a proof before it was refactored to the current form, and I adapted work from Jeremy in lean 2
Sure, so people should feel free to update this file.
hm, that seems like it's going to make it unclear how sure we are about the provenance of these theorems
Nr 96 Principle of Inclusion/Exclusion
that one is actually useful (-; Even though it has a recreational flavour
Does @Freek Wiedijk accept entries without authors?
It's hard to dispute that certain theorems have been formalised in Lean, even if we don't know who contributed...
Coq has some entries attributed to "standard library"
Aah, I like that author.
Maybe I'll start adding things to mathlib under that pseudonym.
I'm close pretty to finishing (I updated the Gist above), but I should really go to bed now (or really a couple of hours ago).
Oh, I didn't know that this was one of the 7 unsolved problems on Freek's 100 list. Cool!
And I also saw that the independence of CH is on the list, so we can strike that one off soon(ish), too.
@Floris van Doorn Well-done! Only 5 more to go (-;
16. Insolvability of general higher degree equations
... nobody did that??
it's hard, man
you have to do galois theory and everything
even stating the problem is tricky
We'll see... I was hoping this would just drop out as a side-effect of doing Galois theory.
And we're getting closer to that goal every day (-;
also you need the fundamental theorem of symmetric polynomials, I don't think we have that
I've added all the 100 theorems. I also added some entries that I knew we had. We probably have a lot more.
from memory, we have
I would suggest putting the statements of theorems we have in the md file
and comment out the missing theorems so that the template is there but they don't pad out the display
Wait, how do you even comment something out in markdown? @Mario Carneiro
I think HTML comments work? <!-- -->
If that doesn't work, maybe just move them all to the end of the file without the giant headers
Here's the metamath 100 file for comparison: http://us2.metamath.org/mm_100.html
Also I'm not sure I have a solution to this, but the links with line numbers are going to get out of date quickly
Aah, those comments work. I've updated the file.
I think the link style can be compressed to * n. Theorem (Author, Date?, [`thm_name`](link/to/mathlib.lean#LINE))
Hmm... I might reformat it some time. If you can fix it up with regexes, go ahead...
I think Jeremy wrote exists_infinite_primes
Inclusion-exclusion is at https://github.com/NeilStrickland/lean_lib/blob/master/src/combinatorics/matching.lean. I will put it in mathlib at some point.
Note: The Undecidability of the Continuum Hypothesis is still in progress, so maybe it shouldn't be on the list yet (or at least it should be mentioned).
I agree that we shouldn't "overcommit" to in progress theorems on the page. It is well known that this makes project completion less likely.
I overcommitted on the perfectoid project for months :-) (much to Patrick's chagrin)
I put the file on a community branch for a reason (-;
I'm mostly done with the proof. I showed that the smallest cube cannot be on the bottom or the left sides (or their analogues in higher dimensions). Unfortunately I set up my definitions so that the symmetry for the other sides is not immediately obvious, but I'm now refactoring the code so that I can reuse most of my argument for the other side.
It's very likely that I can finish tonight :) If so, I'll also cleanup my messy code (https://gist.github.com/fpvandoorn/d3da85a261169b7f37007d80cb5e59bf).
If you're done within 10 hours then I can announce it in my talk at 9am Scottish time tomorrow and it will be another dagger in the back of the Isabelle people ;-)
I would help but I'm frantically writing my talk :-/
I'll try to make that deadline, and even give you an hour to copy-paste the statement on your slides (if you want) :)
I finished the proof, and added some comments explaining what's going on in the formalization.
(here is the link again: https://gist.github.com/fpvandoorn/d3da85a261169b7f37007d80cb5e59bf)
(deleted)
The final result is
theorem cannot_cube_a_cube : ∀{n : ℕ}, n ≥ 3 → -- In ℝ^n for n ≥ 3 ∀{ι : Type} [fintype ι] {cs : ι → cube n}, -- given a finite collection of (hyper)cubes 2 ≤ cardinal.mk ι → -- containing at least two elements pairwise (disjoint on (cube.to_set ∘ cs)) → -- which is pairwise disjoint (⋃(i : ι), (cs i).to_set) = unit_cube.to_set → -- whose union is the unit cube injective (cube.w ∘ cs) → -- such that the widths of all cubes are different false := -- then we can derive a contradiction
and it only depends on the following definitions not in mathlib:
structure cube (n : ℕ) : Type := (b : fin n → ℝ) -- bottom-left coordinate (w : ℝ) -- width (hw : 0 < w) /- The j-th side of a cube is the half-open interval `[b j, b j + w)` -/ def side (c : cube n) (j : fin n) : set ℝ := Ico (c.b j) (c.b j + c.w) def to_set (c : cube n) : set (fin n → ℝ) := { x | ∀j, x j ∈ side c j } def unit_cube : cube n := ⟨λ _, 0, 1, by norm_num⟩
Nice work!
Oh, and thanks to Mario, I stole some small things from his files:
din n -> _
for vectors. That works much nicer than either vector
or dvector
(which I tried both before that)My talk has this underlying story of "Lean is really cool, get on board" and stuff like this really helps. Thanks a lot Floris, and Mario too! I'll put this in my talk -- this is really timely.
I would have loved to attend. Your talks are always a pleasure to listen to (I watched a couple of them online). Too bad the talks are not recorded (right?)
Yeah, apparently this ICMS thing is only a few months old and they don't have everything they want yet, this (recording talks facility) being one of them.
Here is a better link to the formalization: https://github.com/fpvandoorn/mathlib/blob/cubes/src/cube.lean
the description of a valley A valley is a square on which at least two cubes in the family of cubes are placed
does not reflect the "at least two" in the formal definition
That's fair. It felt like the most natural way to say it in English, but I updated the comment to reflect the formal statement more faithfully.
@Floris van Doorn If you want, you should PR this to mathlib (-; It might be merged before Kevin's talk :rolling_on_the_floor_laughing:
I was considering that, but it seems like the result cannot really be reused. Therefore I thought it was not really suitable for mathlib.
The last conjunct in valley
is a bit confusing to me. Isn't it just saying cs i != c
?
I'm also wondering what to do with "satellite" proofs like this. I know we want to be able to link to it long term, and preferably it should stay updated with mathlib, but right now the only reliable way to keep stuff from bitrot is to put it in mathlib
yes, it is equivalent to that. I guess that is a simpler formulation (but probably a bit further away from how I use it).
maybe swap the arguments? (cs i).b 0 = c.b 0 -> (cs i).w != c.w
better matches the informal We also require that no cube on it has the same size as the valley
That is indeed more natural (and reduces the number of uses of modus tollens by 1). :)
As I'm sure you're aware, in maths departments we keep a very strict count on number of uses of modus tollens.
it's the modus toll
After those latest budget cuts, you cannot afford to use modus tollens sparingly anymore.
you can use cases n, {cases hn}
in the final proof
or possibly rcases n with <<>> | n
oh wait no that last one doesn't work
I thought we were discouraged from using nat
computation in the kernel like that when working with insanely large numbers like 3
:)
the hardcore term proof is cases not_lt_of_le hn (bit1_pos _)
I think
Though this is a "satellite proof", at least some lemmas at the top there should make it into mathlib, shouldn't they?
yes, in both my version and Floris's
doing pretty much anything in lean produces a few of these, and they should make it into mathlib
We can start recreational/
outside src/
?
Even inside it
Yes, I started that with #1094 (not actually used in my file, but I found that it was missing).
We can start
recreational/
It's the perfect place for perfectoid spaces ;-)
I'm happy to put this in mathlib. I think it would be good to have a folder outside src/
(so that it's clear it's "less important") which is compiled every PR. We might also loosen some coding style restrictions a bit for this folder. I don't really want to rename everything to the mathlib naming scheme. I would also be happy if I do not have to remove all my nonterminal simp
s, although I can see that keeping them might make maintenance a bit more work.
I don't think these files should need to "coexist", although we might need to fix the leanchecker
command to allow this
I forget if all our tests currently have to coexist, or if there are five foo
's in there
I'm fine with loosening the naming scheme
But the maintainability standards should be the same.
I think we can also loosen the style a bit (e.g. mathlib compressed proofs not required), but it should be clear
think AFP
In a sense, exists_infinite_primes
was the first real theorem proved in Lean (version 0.1). I did it while Leo was still implementing the kernel type checker. There were no inductive types (Leo axiomatized the natural numbers and proved a recursion theorem to define plus and times), Prop
was known as Bool
(this was before Leo decided to keep the core constructive), there was no tactic mode (so Kevin is saying "oh, the horror!"), and you had to run Lean from the command line. I just found it in my mailbox, from February 11, 2014. Reading the e-mails was a trip down memory lane! It is hard to believe it was only five years ago. I am attaching the code. Alas, it does not still compile in Lean 3. primes.lean
Kevin's talk at the meeting was spectacular. And the cubing the cube theorem had a great effect. Larry Paulson made a big deal about it in his talk on the first day, and Kevin casually dropped the formal statement into at the very end of his slides. There was a big collective gasp from the audience, and Kevin just let hang there.
Heh, Nat
is capitalized. Looks like we are returning to our roots in lean 4
I think I prefer the name refute
to classical.by_contradiction
@Floris van Doorn Extra kudos to you!
It's too bad we can't hear the big collective gasp on Scott's video recording of the talk.
i'd like to hear more about the big deal Larry Paulson made about the problem in his talk. (did he claim it was inhumanly difficult in isabelle even with sledgehammer, etc)
I wasn't there, but just asked Jeremy the same question. I think it was more that he put it up as an example (including Littlewood's "human" proof), and said something like: "after all these years, still no one has done it in any theorem prover".
thanks Scott! also, congrats Floris: pasted image
I felt Larry was presenting at as an example of something that has a particularly large gap between the intuitive explanation (which for me involves visualising the chimney above a small square surrounded by large cubes) and any mechanised proof (which would be — how?). I don't know at all whether the Lean result Kevin showed captures that. It wasn't that you couldn't mechanise it, but that it seemed challenging to capture a particular proof-by-visualisation.
That makes sense... Nevertheless, given that it was done in ~600 lines. I would say Floris can't have gotten too bogged down into gorey technical details.
i think that "chimney" is the valley
in Floris' proof., which more or less follows the intuitive proof and makes it rigorous (you can't really tell from the snippet Kevin showed because a lot is being hidden in the correct
predicate)
of course technical details come up because of design choices like representing the cubes in Euclidean space using specified basepoints and half-open intervals, but the parts I looked at were quite easy to visualize
Neat.
My talk was certainly lively -- but actually a lot of the talks have been lively. I am really sorry to have left. Independent of all the Lean stuff, I met two philosophers (Silvia De Toffoli and Fenner Tanswell) who seemed very interested in the fact that there are gigantic gaps in mathematicians' informal literature. This always feels funny to me, because as mathematicians we all know about these problems, and we don't really think of them as a big deal; as a group we accept the proof, even if no one person understands it all and part of it is not published. But there are words in philosophy (a subject I know very little about) which seem to accurately describe these sorts of phenomena, and as time goes on and things get in some sense worse, philosophers seem interested in the occasional update.
I agree with @Ian Stark by the way. Larry was making the point that one could write only a few lines of text which would convince any mathematician, and yet it was equally clear to anyone who has formalised any mathematics that this is not the sort of thing that one gets cheaply in a theorem prover. The thing which I think is interesting though, and was some recurring theme in my talk, was that things get done in Lean -- it has this sort of magic property, at least at the minute, where people ask for stuff or mention stuff, and then sometimes other people step up and do that stuff. Sometimes it's as simple as a beginner asking for help, but at other times it can be quite complex code that gets written.
https://www.amazon.com/Getting-Things-Done-with-Lean/dp/0143126563/
ha ha, I haven't clicked but I know what Lean that will be.
I had to ctrl+F5 to see the changes on http://www.cs.ru.nl/~freek/100/ but it's really there. Let's update Johan's markdown page so that Freek can link to it.
@Ian Stark The proof definitely misses some of the intuitiveness of the informal explanation, and it took some thought to convert the informal explanation into a formal argument. For example: how to best express that the smallest cube cannot be on a side, because then the three adjacent cubes have to intersect?
That said, the formal proof follows the informal proof closely, as - I hope - the comments above the main lemmas explain.
I had to ctrl+F5 to see the changes on http://www.cs.ru.nl/~freek/100/ but it's really there. Let's update Johan's markdown page so that Freek can link to it.
Also, the 93% has gone up to 94% :-)
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


perl5141delta - what is new for perl v5.14.1
This document describes differences between the 5.14.0 release and the 5.14.1
release.
If you are upgrading from an earlier release such as 5.12.0, first
read perl5140delta, which describes differences between 5.12.0 and
5.14.0.
There are no changes intentionally incompatible with 5.14.0. If any exist, they
are bugs and reports are welcome.
There have been no deprecations since 5.14.0.
- B::Deparse has been upgraded from version 1.03 to 1.04, to address two
regressions in Perl 5.14.0:
Deparsing of the "glob"
operator and its diamond ("<>")
form now works again. [perl #90898]
The presence of subroutines named
"::::" or
"::::::" no longer causes B::Deparse
to hang.
- Pod::Perldoc has been upgraded from version 3.15_03 to 3.15_04.
It corrects the search paths on VMS. [perl #90640]
perlfunc
- "given",
"when" and
"default" are now listed in
perlfunc.
- Documentation for "use" now includes a
pointer to if.pm.
perllol
- •
- perllol has been expanded with examples using the new
"push $scalar" syntax introduced in Perl
5.14.0.
perlop
- The explanation of bitwise operators has been expanded to explain how they
work on Unicode strings.
- The section on the triple-dot or yada-yada operator has been moved up, as
it used to separate two closely related sections about the comma
operator.
- More examples for "m//g" have been
added.
- The "<<\FOO" here-doc syntax has
been documented.
perlrun
- •
- perlrun has undergone a significant clean-up. Most notably, the
-0x... form of the -0 flag has been clarified, and the final
section on environment variables has been corrected and expanded.
POSIX
- •
- The invocation documentation for
"WIFEXITED",
"WEXITSTATUS",
"WIFSIGNALED",
"WTERMSIG",
"WIFSTOPPED", and
"WSTOPSIG" was corrected.
The following additions or changes have been made to diagnostic output,
including warnings and fatal error messages. For the complete list of
diagnostic messages, see perldiag.
- •
- regexp.h has been modified for compatibility with GCC's
"-Werror" option, as used by some
projects that include perl's header files.
- Some test failures in dist/Locale-Maketext/t/09_compile.t that
could occur depending on the environment have been fixed. [perl
#89896]
- A watchdog timer for t/re/re.t was lengthened to accommodate SH-4
systems which were unable to complete the tests before the previous timer
ran out.
Solaris
- •
- Documentation listing the Solaris packages required to build Perl on
Solaris 9 and Solaris 10 has been corrected.
Mac OS X
- The lib/locale.t test script has been updated to work on the
upcoming Lion release.
- Mac OS X specific compilation instructions have been clarified.
Ubuntu Linux
- •
- The ODBM_File installation process has been updated with the new library
paths on Ubuntu natty.
- •
- The compiled representation of formats is now stored via the mg_ptr of
their PERL_MAGIC_fm. Previously it was stored in the string buffer, beyond
SvLEN(), the regular end of the string. SvCOMPILED() and
SvCOMPILED_{on,off}() now exist solely for compatibility for XS code. The
first is always 0, the other two now no-ops.
- A bug has been fixed that would cause a "Use of freed value in
iteration" error if the next two hash elements that would be iterated
over are deleted. [perl #85026]
- Passing the same constant subroutine to both
"index" and
"formline" no longer causes one or the
other to fail. [perl #89218]
- 5.14.0 introduced some memory leaks in regular expression character
classes such as "[\w\s]", which have now
been fixed.
- An edge case in regular expression matching could potentially loop. This
happened only under "/i" in bracketed
character classes that have characters with multi-character folds, and the
target string to match against includes the first portion of the fold,
followed by another character that has a multi-character fold that begins
with the remaining portion of the fold, plus some more.
"s\N{U+DF}" =~ /[\x{DF}foo]/i
is one such case. "\xDF"
folds to "ss".
- Several Unicode case-folding bugs have been fixed.
- The new (in 5.14.0) regular expression modifier
"/a" when repeated like
"/aa" forbids the characters outside the
ASCII range that match characters inside that range from matching under
"/i". This did not work under some
circumstances, all involving alternation, such as:
"\N{KELVIN SIGN}" =~ /k|foo/iaa;
succeeded inappropriately. This is now fixed.
- Fixed a case where it was possible that a freed buffer may have been read
from when parsing a here document.
Perl 5.14.1 represents approximately four weeks of development since Perl 5.14.0
and contains approximately 3500 lines of changes across 38 files from 17
authors.
Perl continues to flourish into its third decade thanks to a
vibrant community of users and developers. The following people are known to
have contributed the improvements that became Perl 5.14.1:
Bo Lindbergh, Claudio Ramirez, Craig A. Berry, David Leadbeater,
Father Chrysostomos, Jesse Vincent, Jim Cromie, Justin Case, Karl
Williamson, Leo Lapworth, Nicholas Clark, Nobuhiro Iwamatsu, smash, Tom
Christiansen, Ton Hospel, Vladimir Timofeev, and Zsban Ambrus.
If you find what you think is a bug, you might check the articles recently
posted to the comp.lang.perl.misc newsgroup and the perl bug database at
http://rt.perl.org/perlbug/ . There may also be information at
http://www.perl.org/ , the Perl Home Page.
If you believe you have an unreported bug, please run the perlbug
program included with your release. Be sure to trim your bug down to a tiny
but sufficient test case. Your bug report, along with the output of
"perl -V", will be sent off to
<EMAIL_ADDRESS>to be analysed by the Perl porting team.
If the bug you are reporting has security implications, which make
it inappropriate to send to a publicly archived mailing list, then please
send it to<EMAIL_ADDRESS>This points to a closed
subscription unarchived mailing list, which includes all the core
committers, who be able to help assess the impact of issues, figure out a
resolution, and help co-ordinate the release of patches to mitigate or fix
the problem across all platforms on which Perl is supported. Please only use
this address for security issues in the Perl core, not for modules
independently distributed on CPAN.
The Changes file for an explanation of how to view exhaustive details on
what changed.
The INSTALL file for how to build Perl.
The README file for general stuff.
The Artistic and Copying files for copyright
information.


AMAZING PEOPLE ARE MAKING AMAZING DESIGNS IN A FUN ENVIRONMENT
When you work with us, you are part of a team of committed collaborators. All aspects of our software development process are integrated, interactive
and agile.
Our approach unifies design, development and product management to create exceptional products.
We start each project by understanding your business goals, the user's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code, our team will spend the necessary time needed to understand your product vision
The outcome of this scoping session is proposal or high-level statement of work.
Based on your requirements, we can provide a complete offering or just the pieces you need.
DESIGN
DEVELOPMENT
PRODUCT MANAGEMENT
Delani Project
Delani Project
Delani Project
Delani Project
Delani Project
Delani Project
Delani Project
Delani Project


You are viewing an historical archive of past issues. Please
report new issues to the appropriate project issue tracker on
GitHub.
Comments
-
Greg Hurrell
This is now done and it seems to work fine with no down sides. Will work as closed.
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.


Thank you for participating in testing my app. Please add as many goals as you can to your bucket list, since I need to see how similar or varied people's lists are!
When adding a goal, you will choose between 3 types of goals: Traveling, Activity, Accomplishment. Activities are things you do only one time, whereas Accomplishments are something you work multiple times for.
For example, "Start a novel" is an activity whereas "Finish a novel" is an Accomplishment.
"Go Snowboarding" is an activity and "Snowboard down a double-black diamond trail" is an Accomplishment!
And finally, let me know if you try to login and nothing happens. This seems to be an intermittent bug and I don't know what is causing it.


Rock:
This is the rock where Harkilgamed is hiding.
You have no business here.


HOME
ABOUT US
EVENTS
TEAM
GALLERY
CONTACT US
Meet Our Team
Akanksha Maurya
Anuj Saraswat
Charu Chauhan
Dhristi Mittal
Hardik Sharma
Kanishka Parmar
Parimal Mishra
Sandeep Kumar
Hardik Sharma
Akshay Amritanshu
Priyanshi Gupta
Aditi Saxena
Aditya Singh
Anmol Kakkar
Ajay Kushwaha
Ankita Vaishali
Devansh Alok
Keya Kriti
Palash Rai
Ritik Gupta
Rupali Maurya
Rohan Saxena
Nikita Gupta
Parth Chandna
Yashvardhan Verma
Deepanshu Gupta
Priya Bhardwaj
Ishan Jain
Yash Goel
Skandha Choudhary
Aman Parmar
Ashray Sharma


|
An option added to masking operations. This option enables
you to specify that the action work only on Selected layer features, or on
All features in the layer.
Selected - Select specific features, then run the action on
those specific features.
All - Works on all features in the layer. If the action
works on the entire net, the action only processes nets that contain at least
one selected feature.
|


Development Journal
Goal. Develop a practice of reflecting on areas of software development and your work.
Guidelines. Write as you would write an email or a memo to a colleague. That is: don't write an epic novel, but don't write a bullet-list of sentence fragments. Feel free to write a lot if the mood strikes you, but a few (2-3) paragraphs to a page is adequate.
We'll often be providing you with a question, and sometimes a short piece of reading material to react to. In your reaction, we encourage you to think about big picture ideas in addition to the specifics of the question at hand.
Submission. Instructions here.


Overview
The following document outlines the APIs and calls required for integrating a Point of Sale (POS) with iQmetrix Dropship service. The steps outlined below detail each call needed to create a dropship order in Endless Aisle and are meant to be performed sequentially.
Each segment in this guide will provide high-level concepts before describing examples of the API call required. The images shown in this guide are from the RQ Dropship Wizard and are meant for illustrative purposes only.
Figure 1: Illustrates the suggested flow for retailers to process a dropship order in their POS.
The following APIs will be covered in this guide:
- Authentication
- Customers
- Orders
- Shipping Aggregator
Who Is This Guide For?
The intended audience for this guide are developers who are integrating an existing POS into the dropship program.
Onboarding Package
As part of the onboarding process, you will have received an onboarding package from the iQmetrix API team. This package provides you credentials and access details in order to perform the topics covered in this guide.
Should you require information beyond the scope of this guide, or did not receive the onboarding package, contact Support.
Environment
iQmetrix provides you with two environments: Sandbox and Production. Use the Sandbox environment to test your API and to perform end-to-end testing. After completing this stage proceed to the Production environment.
For more information on environments, see Environment.
The iQmetrix API supports JSON and JSON + HAL. See Supported Response Formats for more information.
The CompanyId
and SupplierEntityId
are environment specific. All other variables mentioned are dynamic.
Steps
Step 1 - Authentication
Example Request
Authorization: Bearer (Access Token)
In order to make authorized requests to iQmetrix APIs, you need an Access Token.
Table 1: Methods for Obtaining an Access Token
| If… | Then… |
|---|---|
| You do not have an Access Token | See Obtaining an Access Token |
| You have an Access Token, but it is close to expiring | See Refreshing an Access Token |
The token is placed in the Authorization
header of requests to iQmetrix APIs, prefixed by the word Bearer
.
Step 2 - Get Pending Orders
Example Request
GET https://orderdemo.iqmetrix.net/v1/Companies(14146)/Orders?$filter=State eq 'Pending' and EntityId eq 14192
Authorization: Bearer (Access Token)
Accept: application/json
Example Response
HTTP 200 OK Content-Type: application/json
[
{
"Id": "fec93378-b4c2-400e-a480-364470920798",
"OrderTypeId": 1,
"OrderType": "Sales",
"State": "Pending",
"PrintableId": "670K300",
"Name": "XQ-Shelf Cart 431b4d57-97fd-41b8-868b-7ec099ce57cc",
"TenderId": null,
"TenderOrigin": null,
"SourceId": null,
"SourceName": null,
"EntityId": 14192,
"ShippingEntityId": 0,
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"BillingCustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"ShippingCustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"ShippingAddressId": "55ec98fe-249f-412c-8831-2c8be983a5b6",
"BillingAddressId": "55ec98fe-249f-412c-8831-2c8be983a5b6",
"EmployeeId": 0,
"DiscountCode": null,
"DiscountDescription": null,
"DiscountAmount": 0,
"CreatedDateUtc": "2016-05-17T22:38:36.9",
"OrderExpiryHours": 12,
"OrderExpiryDate": "2016-05-18T10:38:36.9"
}
]
When a dropship order is created through Endless Aisle, the only initial requirement from the customer is either their first name or initials. Similar to the image below.
Figure 2: Displays the checkout screen from Endless Aisle.
Once the order has been created Endless Aisle,
- Uses the value entered in the
name
field to create aCustomer
resource - Creates an
Address
resource based on the Endless Aisle device location (the store associated with each device) - Assigns that
Address
resource to theCustomer
resource - Sets the
CustomerId
as theShippingCustomerId
on the order. - Sets the order to a
Pending
state, ready to be picked up by your POS.
The first step during the dropship transaction is to get a list of Pending Orders for the given store.
Keep a note of the Order Id
, the CustomerId
, and the ShippingAddressId
as they will be referenced later in this guide.
The JSON results would appear similar to the figure below.
Figure 3: Displays the RQ results from pending Endless Aisle orders.
Step 2.1 Verifying Order Details
Example Request
GET https://orderdemo.iqmetrix.net/v1/Companies(14146)/OrderFull(fec93378-b4c2-400e-a480-364470920798)
Authorization: Bearer (Access Token)
Accept: application/json
Example Response
HTTP 200 Content-Type: application/json
{
"Id": "fec93378-b4c2-400e-a480-364470920798",
"OrderTypeId": 1,
"OrderType": "Sales",
"State": "Pending",
"PrintableId": "670K300",
"Name": "XQ-Shelf Cart 431b4d57-97fd-41b8-868b-7ec099ce57cc",
"TenderId": null,
"TenderOrigin": null,
"SourceId": null,
"SourceName": null,
"EntityId": 14192,
"ShippingEntityId": 0,
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"BillingCustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"ShippingCustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"ShippingAddressId": "55ec98fe-249f-412c-8831-2c8be983a5b6",
"BillingAddressId": "55ec98fe-249f-412c-8831-2c8be983a5b6",
"EmployeeId": 0,
"DiscountCode": null,
"DiscountDescription": null,
"DiscountAmount": 0,
"CreatedDateUtc": "2016-05-17T22:38:36.9",
"OrderExpiryHours": 12,
"OrderExpiryDate": "2016-05-18T10:38:36.9",
"Items": [
{
"ItemExtensions": [],
"Id": "150fe46f-4d96-4dbf-9606-ca1d0ec9d175",
"OrderId": "fec93378-b4c2-400e-a480-364470920798",
"ItemTypeId": 1,
"ItemType": "DropShip",
"ItemStatusId": 1,
"ItemStatus": "New",
"ProductId": "9ab6ae3c-4766-4a0e-bf21-da941f82298d",
"SupplierEntityId": 0,
"Quantity": 1,
"Cost": 0,
"ListPrice": 0,
"SellingPrice": 39.99,
"Index": 0,
"Description": "BlackBerry Z10 L-S1 Battery",
"SKU": null,
"Notes": null,
"SerialNumbers": [],
"SupplierReference": null,
"TrackingInformation": [],
"ShippingOptionId": null
}
]
}
Once you have obtained the Order Id
, the next step is to verify the order contents with the customer by Getting the Full Order.
Keep a note of the ProductId
(Catalog ID), as it is required to obtain the vendor’s shipping options.
The JSON results would appear similar to the figure below.
Figure 4: Displays the order details in RQ POS. The address shown is the store address where the order took place.
Step 3 - Collect Customer Information
Once the order details have been verified, the next step is to gather the customer information. Remember, the Customer entry from Endless Aisle only includes the customer’s name or initials as the reference for the order.
Dropship Scenario
This scenario requires the customer’s first and last name, and their shipping address. This scenario also assumes that the customer has come to the sales clerk to complete their Dropship order.
The majority of clients will use their own customer record management systems and it is assumed they will not be synced with the iQmetrix Customers API.
This scenario assumes that you will update the Endless Aisle customer record with the information provided by the customer.
Step 3.1 - Update the Customer Details
Example Request
PUT https://crmdemo.iqmetrix.net/v1/Companies(14146)/Customers(e6f05db4-4555-4db6-9b7c-1babfcdbf65a)
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"PrimaryName": "Bruce",
"FamilyName": "Wayne",
"CustomerType": "Person",
"CustomerTypeId": 2,
"Disabled": false,
"DoNotContact": false,
"Version": 1
}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"PrimaryName": "Bruce",
"MiddleName": null,
"FamilyName": "Wayne",
"AlternateName": null,
"CustomerType": "Person",
"CustomerTypeId": 2,
"DateOfBirth": null,
"Disabled": false,
"DoNotContact": false,
"Notes": null,
"Title": null,
"Version": 1
}
The first step is to Update the Customer. Use the CustomerId
referenced from the Order as part of the request.
Step 3.2 - Add their Contact Method
Example Request
POST https://crmdemo.iqmetrix.net/v1/Companies(14146)/Customers(e6f05db4-4555-4db6-9b7c-1babfcdbf65a)/ContactMethods
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"ContactMethodCategoryId": 2,
"ContactMethodTypeId": 9,
"Default": true,
"DoNotContact": false,
"Value"<EMAIL_ADDRESS>}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": "65c26799-4bc0-4ae4-be7c-ba62886dd0e4",
"CustomerId": "f10ca768-519a-4914-b645-2e04863611fa",
"ContactMethodCategory": "Email",
"ContactMethodCategoryId": 2,
"ContactMethodType": "Home",
"ContactMethodTypeId": 9,
"Default": true,
"DoNotContact": false,
"Notes": null,
"Value"<EMAIL_ADDRESS>"Version": 1
}
Once you have updated the customer information, the next step is to Add their Contact Method. This contact method could be either email address or phone number, or a combination of the two.
In this example, we are only adding a home email address.
Table 2: Request Values for Contact Method
| Property | Value |
|---|---|
| ContactMethodTypeId | 9 (for home) |
| ContactMethodCategory | 2 (for email) |
Step 3.3 - Update their Shipping Address
Example Request
PUT https://crmdemo.iqmetrix.net/v1/Companies(14146)/Customers(e6f05db4-4555-4db6-9b7c-1babfcdbf65a)/Addresses(55ec98fe-249f-412c-8831-2c8be983a5b6)
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"AddressTypeId": 3,
"Version": 1,
"StreetAddress1": "2150 Summitridge Dr",
"Locality": "Beverly Hills",
"StateCode": "CA",
"CountryCode": "US",
"PostalCode": "90210",
"Phone": "(555) 555-5555",
"Email"<EMAIL_ADDRESS>}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": "55ec98fe-249f-412c-8831-2c8be983a5b6",
"CustomerId": "e6f05db4-4555-4db6-9b7c-1babfcdbf65a",
"AddressTypeId": 3,
"AddressType": "Shipping",
"Default": false,
"DoNotContact": true,
"CountryCode": "US",
"Country": "United States",
"Locality": "Beverly Hills",
"StateCode": "CA",
"State": "California",
"PostalCode": "90210",
"PostOfficeBoxNumber": "",
"StreetAddress1": "2150 Summitridge Dr",
"StreetAddress2": "",
"Notes": null,
"Version": 1,
"AttentionTo": null,
"Phone": "(555) 555-5555",
"Email"<EMAIL_ADDRESS>}
The next step is to Update the Customer’s Shipping Address. Use the CustomerId
and ShippingAddressId
referenced from the Order as part of the request.
The JSON request would appear similar to the figure below.
Figure 5: Displays the address information for order shipment.
Step 4 - Add Shipping Options
The next step is to retrieve shipping options from the vendor.
Step 4.1 - Retrieve the Shipping Options
Example Request
POST https://shippingaggregatordemo.iqmetrix.net/Companies(14146)/ShippingInformation
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"LocationEntityId": "14192",
"PostalCode": "6000",
"Items": [
{
"CatalogId": "9ab6ae3c-4766-4a0e-bf21-da941f82298d",
"Quantity": 1
}
]
}
Example Response
HTTP 200 Content-Type: application/json
{
"Id": 1,
"LocationEntityId": 14192,
"PostalCode": "6000",
"Shipments": [
{
"SupplierEntityId": 14107,
"Items": [
{
"CatalogId": "9ab6ae3c-4766-4a0e-bf21-da941f82298d",
"Quantity": 1,
"Cost": 9.99
}
],
"ShippingOptions": [
{
"Id": "1",
"Cost": 7.94,
"Currency": "CAD",
"EstimatedTransitTime": "1 week",
"Name": "PurolatorExpress"
}
]
}
]
}
The CatalogId
is the ProductId
noted earlier. The LocationEntityId
is the store location where the Endless Aisle order was created.
Keep a note of the ShippingOptions Id
and SupplierEntityId
in the response, as these are required to add a Shipping Item in the next step.
The JSON response would appear similar to the figure below.
Figure 6: Displays the POS results from retrieving shipping options.
Step 4.1.1 No Availability
Each time a call is made to retrieve shipping options from the suppliers, the real-time availabilty is requested from their warehouse. If an HTTP 404
error response is returned, then it is possible that this item is no longer in stock.
HTTP 400 Bad Request Content-Type: application/json
{
"Message": "No availability found for the following products: BlackBerry Z10 L-S1 Battery"
}
The error response would look similar to the following:
It is your responsibility to ensure that this order does not continue and to notify the Supplier of the Out of Stock product.
Step 4.2 - Add a Shipping Item
Example Request
POST https://orderdemo.iqmetrix.net/v1/Companies(14146)/Orders(fec93378-b4c2-400e-a480-364470920798)/Items
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"ItemStatusId": 15,
"ItemTypeId": 4,
"Cost": 7.94,
"Description": "Vendor Shipping Option",
"Quantity": 1,
"ShippingOptionId": "1",
"SupplierEntityId": 14107
}
The next step is to add a Shipping Item to the order.
Ensure that the following values are set correctly:
Table 3: Request Values for Shipping Item
| Property | Value |
|---|---|
| ItemStatusId | 15 (for shipping) |
| ItemTypeId | 4 (for shipping order) |
| ShippingOptionId | ShippingOptions Id from Step 4.2 |
(Optional) Step 5 - Optional Order Properties
Taxes are also processed at this stage. It is assumed that your POS will handle taxes on a per item or per order basis.
If your POS does not have a taxes option for dropship orders, and you wish to learn more about the iQmetrix Taxes API, contact API Support.
The JSON request would appear similar to the figure below.
Figure 7: Displays the RQ Dropship checkout sale, where the employee can enter additional properties.
Step 6 - Process the Order
Example Request
POST https://orderdemo.iqmetrix.net/v1/Companies(14146)/Orders(fec93378-b4c2-400e-a480-364470920798)/Process
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json
{
"OrderId": "fec93378-b4c2-400e-a480-364470920798"
}
Example Response
HTTP 201 Content-Type: application/json
{
"Id": "fec93378-b4c2-400e-a480-364470920798",
"Name": "XQ-Shelf Cart 431b4d57-97fd-41b8-868b-7ec099ce57cc",
"BillingAddressId": "779de874-3018-48f7-a41a-4ed9235a0708",
"BillingCustomerId": "88a5c0c0-af55-4d3b-8d75-c41a4e20bc49",
"CreatedDateUtc": "2016-05-17T22:38:36.9",
"DiscountAmount": 0,
"DiscountCode": null,
"DiscountDescription": null,
"EmployeeId": 0,
"EntityId": 14192,
"OrderExpiryDate": "2016-05-18T10:38:36.9",
"OrderExpiryHours": 12,
"OrderType": "Sales",
"OrderTypeId": 1,
"PrintableId": "null",
"ShippingAddressId": "779de874-3018-48f7-a41a-4ed9235a0708",
"ShippingCustomerId": "88a5c0c0-af55-4d3b-8d75-c41a4e20bc49",
"ShippingEntityId": 0,
"State": "Created",
"TenderId": null
}
The final step is to take payment (tender) and process the order.
There are two options available when tracking the invoice number. The first option is to update the TenderId
field, as this field is reflected in the invoice. The second option is to map the OrderId
to an invoice number in your system.
You must also ensure that a Dropship SKU and Shipping SKU are defined in your POS. These SKUs are used to track Dropship orders, and should be defined as non-stocked SKUs. See the previous figure as an example of these SKUs.
Step 7 - Next Steps
The iQmetrix Dropship program handles all actions post-invoice, such as updating the order status and sending an email to the customer with the order tracking details.


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.AppConfig @import models.request.AuthenticatedRequest @import models.Keyword @import views.html.partials._ @import controllers.v2.routes.ManageKeywordsController @import models.viewmodels.{NoTabSelected} @import views.html.components.manager_tools_secondary_navigation @import views.html.includes.main @this( main: main ) @(keyword: String, approved: Boolean, goodsName: String)(implicit request: AuthenticatedRequest[_], messages: Messages, appConfig: AppConfig) @approvedOrRejected = @{if(approved){"approved"}else{"rejected"}} @main( pageTitle = messages("management.update-keyword.confirmation.custom-title") ) {
@messages("management.update-keyword.confirmation.info.start", approvedOrRejected) @goodsName @if(approved) { @messages("management.update-keyword.confirmation.approved.info.end") } else { @messages("management.update-keyword.confirmation.rejected.info.end") }


All for One
Class or ID?
June 21, 2015
As I’m in midst of struggling with this dilemma myself, I thought I would write a blog post on the best practices when using a ‘class’ versus an ‘id’ in CSS.
On the surface they appear to do exactly the same thing. They are both attributes that can define actions for your container in HTML and CSS. There is however, a very subtle difference between them. The `id` should only be used as a single identifier for a DOM object.
If that sentence makes sense, you’re one step ahead of me. Backing up for a second; the DOM or the “Document Object Model” is a structure devised as a method to organize HTML elements. Its design follows the tree structure with parent elements and ‘offspring’, or children, of that parent element. If you were to apply an attribute to that parent element, it would flow to the ‘children’ — just like in genetics.
So, when applying attributes it is best to think of ID’s as one-time use only for core elements of the document, or genetic parent. This could be the header, footer, sidebar, or navigation menu. So you might find yourself using ID’s more often when creating the initial backbone of the site.
Classes, on the other hand, can be used as-needed multiple times. A single class attribute can be applied to multiple elements, even those not under the same “parent” tree. They are flexible and can be used for design elements, blocks, images, or really anything inside the HTML.
Yes, I know, the question “why not just use class attributes all the time?” came to my mind as well. IDs are rigid and should be used sparingly, however, when used properly (such as on the backbone) they are absolutely useful. The reason for this is because of ‘Specificity’. Specificity basically dictates the order of operations inside the DOM. It’s setup like this (Inline > ID > Class > Element). As you can see, the ID supersedes the class and will have priority. When building a large HTML project, the amount of classes you write can get messy and it’s pretty easy to break some element somewhere because of a misplaced class. However, you won’t break your IDs — which is why it is so crucial to have them on the backbone of document.
Hopefully that clarifies things... it did for me.


| Methods' Summary |
| insertTab |
create a new tab and return an unique ID,
which can be used further to adress this tab by using other methods
of this interface.
|
| removeTab |
remove a tab with the given ID.
|
| setTabProps |
change some properties of the specified tab.
@descr Such properties can be:
|
| getTabProps |
retrieve the set of properties for the specified tab.
|
| activateTab |
activate the specified tab.
@descr The new tab will be activated and all listener will get an event describing this.
Of course there will be an event too, which notify's listener about the deactivation
of the last active tab.
|
| getActiveTabID |
return the unique ID of the current active tab.
@eturn [long]
the ID of the active tab.
|
| addTabListener |
register listener for inserting/removing tab's and changing her properties.
|
| removeTabListener |
deregister listener for inserting/removing tab's and changing her properties.
|
| Methods' Details |
insertTab
- Description
- create a new tab and return an unique ID,
which can be used further to adress this tab by using other methods
of this interface.
- Returns
- [long
an unique ID for this new tab.
|
|
removeTab
- Description
- remove a tab with the given ID.
- Parameter ID
- the ID of the tab, which should be removed.
- Throws
- ::com::sun::star::lang::IndexOutOfBoundsException
if the specified ID isnt used inside this tab controller.
|
|
setTabProps
- Description
- change some properties of the specified tab.
@descr Such properties can be:
| Property |
Type |
Description |
| Title |
string |
the title of the tab, which is shown at the UI. |
| Position |
int |
describe the order of this tab in relation to all other tabs inside this control. |
@attention Not all properties must be supported by all implementations of this interface.
Of course some important ones should be handled by every implementation ...
as e.g. "Title".
- Parameter ID
- the ID of the tab, which should be changed.
- Throws
- ::com::sun::star::lang::IndexOutOfBoundsException
if the specified ID isnt used inside this tab controller.
|
|
getTabProps
- Description
- retrieve the set of properties for the specified tab.
- Parameter ID
- the ID of the tab.
- Throws
- ::com::sun::star::lang::IndexOutOfBoundsException
if the specified ID isnt used inside this tab controller.
|
|
activateTab
- Description
- activate the specified tab.
@descr The new tab will be activated and all listener will get an event describing this.
Of course there will be an event too, which notify's listener about the deactivation
of the last active tab.
- Parameter ID
- the ID of the new active tab.
- Throws
- ::com::sun::star::lang::IndexOutOfBoundsException
if the specified ID isnt used inside this tab controller.
|
|
getActiveTabID
- Description
- return the unique ID of the current active tab.
@eturn [long]
the ID of the active tab.
|
|
addTabListener
- Description
- register listener for inserting/removing tab's and changing her properties.
- Parameter Listener
- the listener for registration.
|
|
removeTabListener
- Description
- deregister listener for inserting/removing tab's and changing her properties.
- Parameter Listener
- the listener for deregistration.
|
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Any data scientist, programmer, designer, statistician and researcher - any person who loves data. You can be a student, an industry professional, or someone from academia. We don’t care. It’s best to come with at least some experience in programming, data science or design. However, you do need to be at least 18.
We welcome teams formed outside of the event and those who attend as individuals. The DataHack organizers will help you build a team where your great ideas and love for data shines through. Our registration process incroporates HakkaLabs' matching mechanism to help you find other participants with complementary skill sets to form a team with. Teams of up to five members are allowed.


Reading the first chapter of Search Inside Yourself, I found the part about the top six competencies for people working in tech quite surprising. I honestly wouldn't have expected the emotional competencies to be so highly valued - at least not prior to staring at EDA.
The concept of happiness as a trainable skill was really interesting to me. It's kind of reassuring though, the idea that you can become a happier person without actually needing to change anything about your situation. You don't need to control everything going on around you, because you can control what's going on inside. That's pretty cool.
I found the part about physiological responses to emotions very relatable. I get quite severe dyshidrotic eczema on my hands and it took me a long time to figure out what was triggering it. Turns out it's stress and/or anxiety. Eventually I realised the worst outbreaks were coming about eight to ten hours after moments of intense stress. So for me, the physical cues aren't so much a way for me to monitor my feelings, but being more aware of my feelings could help me avoid unwanted physical responses.
My first attempt at two minutes of mindfulness was pretty laughable to be honest. I'm so easily distracted, I spent most of the two minutes bringing my attention back to my breathing. I started reading Search Inside Yourself a couple of weeks ago, so I've been working on mindfulness regularly since then. I set a meditation timer for seven minutes, with a bell sound at every minute, and I do it several nights a week before bed. Now I can keep my mind completely blank and "simply be" for a full minute before my mind starts to wander again. The bell sound at the end of every minute help me to both measure my own progress, and serve as a reminder to come back if my attention has drifted somewhere else.
I've noticed since making mindfulness a regular practice, that my sleep quality has improved significantly. I usually wake up to go to the bathroom two or three times a night; it's always been that way for me. Since I've been making a point of meditating most nights before bed, I'm only waking up once a night, sometimes sleeping right through (which can be quite disconcerting when you're not used to it). Although I suppose this could also be a result of being totally worn out!


Sunday Ride - A few photos and a puncture!
I managed to get out this morning for a short ride on my cyclocross bike - it’s been a while since I’ve ridden it as I’m using my Dawes touring bike for commuting and I haven’t had the chance to get out at the weekend for a while due to cadet activities.
So whilst the weather was good this morning, I managed to get out and about before the rain that was forecast for the afternoon. Whilst I didn’t manage to avoid the rain completely, it was a mainly dry ride and I’m glad I managed to get out.
As I said, took Atlas out for a spin. I’ve recently purchased a few items for it that are covered in a separate blog post and I was looking to try them out.
I also decided that I wanted to get out and about on some unpaved routes as well to put the cyclo-cross part of the bike to the test. Whilst it did mean some road riding as well, I was able to get back on some trails that I haven’t ridden for a good while - not since I had my mountain bike and lived closer to them.
The ride was cut slighty short by the fact that I got a puncture - oddly, not whilst I was doing the off road section of the ride but later, during the road section when I was starting to head back home anyhow! It meant that I had to cut my ride slightly short as I then ended up taking the faster route back home to avoid any further issues.
Changing the tube at the side of the ride, I found a slither of glass inside the tube that had caused the puncture - I can’t be certain whether this was what had caused the earlier puncture but I hadn’t fully removed the cause or not. However, the wet roads actually helped me find the cause - the bubbling water on the tyre as the air escaped betrayed the punctures position!
Repairing the puncture, I headed home. Of all the cyclists that went past, only one slowed and asked if I was OK. In general, I’ve had better help in the past. I mean, if there’s a group of cyclists, I wouldn’t stop to offer a hand unless they looked like they really needed it, but I’m surprised that more people didn’t ask if a single cyclist was OK. It turns out that it wasn’t that much of an issue sorting the puncture so I wasn’t to bad.
However, I’ll keep an eye on the tyres. That’s two in less than four months - that’s two more than I’ve had in the past 12 months on my previous bikes! It may mean I have to look into some thicker, more puncture proof tyres!
In terms of how everything performed…
-
I’ve come to the conclusion that I’m no longer a huge fan of being clipped in. That might be different if I was just doing road riding or was off road on a proper mountain bike, but I wasn’t to keen on it on this one. Not being able to put my foot down if I wanted to in a hurry wasn’t good. Also, it requires some more playing to get my foot position right I think without it aching. I think flats would be the best replacement.
-
The bar bag isn’t in a good location, especially when hill climbing. I’d wanted it there for somewhere I could store my keys/wallet/phone but I think I’ll be replacing it. It might be better on a longer frame bike or one where I won’t be standing on the pedals to climb hills much. I’ve recently purchased a rack bag for my Dawes, so I’m looking at removing the saddlebag and placing it on this one instead.
-
I’m going to have to have to get used to riding off road again! And hills!
Overall, it was a good ride and I enjoyed it (even with the puncture). I’ve got a few things to change before I’m 100% happy with the ride (such as changing the pedals and changing the luggage options). Hopefully, I’ll be able to get out on the bike a bit more as the weather begins (slowly) to start improving.


References¶
In here the list of references used in this documentation:
- pece2019
Pecenak, M. Stadler, and K. Fahy, “Efficient multi-year economic energy planning in microgrids,” Appl. Energy, vol. 255, no. August, p. 113771, 2019.
- ov2020
Oviedo Cepeda et al. (in press), “Design of an Incentive-based Demand Side Management Strategy for Stand-Alone Microgrids Planning,” Int. J. Sustain. Energy Plan. Manag., vol. 28, pp. 1–21, 2020.
- bu2019
Bukar, C. W. Tan, and K. Y. Lau, “Optimal sizing of an autonomous photovoltaic/wind/battery/diesel generator microgrid using grasshopper optimization algorithm,” Sol. Energy, vol. 188, no. March, pp. 685–696, 2019.
- Celik2017
Celik, R. Roche, S. Suryanarayanan, D. Bouquain, and A. Miraoui, “Electric energy management in residential areas through coordination of multiple smart homes,” Renew. Sustain. Energy Rev., vol. 80, no. April 2016, pp. 260–275, 2017.
- Inversin2000
Inversin, “Mini-grid design manual,” 2000.
- Baatz2017
Baatz, “Rate Design Matters: The Intersection of Residential Rate Design and Energy Efficiency,” 2017.
- Glick2014
Glick, M. Lehrman, and O. Smith, “Rate Design for the Distribution Edge,” Rocky Mt. Inst., no. August, 2014.
- Kostkova2013
Kostkova, L. Omelina, P. Kycina, and P. Jamrich, “An introduction to load management,” Electr. Power Syst. Res., vol. 95, pp. 184–191, 2013.
- Wong2012
Joe-Wong, S. Sen, S. Ha, and M. Chiang, “Optimized day-ahead pricing for smart grids with device-specific scheduling flexibility,” IEEE J. Sel. Areas Commun., vol. 30, no. 6, pp. 1075–1085, 2012.
- Borenstein2002
Borenstein, M. Jaske, and A. Rosenfeld, “Dynamic Pricing , Advanced Metering and Demand Response in Electricity Markets,” 2002.
- Ali2015
Ali, J. Z. Kolter, S. Diamond, and S. Boyd, “Disciplined convex stochastic programming: A new framework for stochastic optimization,” in Uncertainty in Artificial Intelligence, 2015, no. 3, pp. 62–71.
- Liberti2008
Liberti and N. Maculan, Global optimization, from theory to implementation, vol. 105, no. 28. Springer, 2008.
- Chauhan2014
Chauhan and R. P. Saini, “A review on Integrated Renewable Energy System based power generation for stand-alone applications: Configurations, storage options, sizing methodologies and control,” Renew. Sustain. Energy Rev., vol. 38, pp. 99–120, 2014.
- Diaf2008
Diaf, G. Notton, M. Belhamel, M. Haddadi, and A. Louche, “Design and techno-economical optimization for hybrid PV/wind system under various meteorological conditions,” Appl. Energy, vol. 85, no. 10, pp. 968–987, 2008.
- atb_data
National Renewable Energy Laboratory.Annual Technology Baseline data. 2019.
- energy_outlook
Energy Information Administration.Anual Energy Outlook 2020. 2020.
- tax_data
Canadian government.Greenhouse Gas Pollution Pricing Act. 2018.
- Pecenak2019
Pecenak, M. Stadler, and K. Fahy, “Efficient multi-year economic energy planning in microgrids,” Appl. Energy, vol. 255, no. August, p. 113771, 2019.
- Li2017
Li, R. Roche, D. Paire, and A. Miraoui, “Sizing of a stand-alone microgrid considering electric power, cooling/heating, hydrogen loads and hydrogen storage degradation,” Appl. Energy, vol. 205, no. July, pp. 1244–1259, 2017.
- Zhang2016
Zhang et al., “A Bi-Level Program for the Planning of an Islanded Microgrid Including CAES,” IEEE Trans. Ind. Appl., vol. 52, no. 4, pp. 2768–2777, 2016.
- lasnier1990
Lasnier, Photovoltaic Engineering Handbook. Taylor & Francis, 1990.
- Skoplaki2009
Skoplaki and J. A. Palyvos, “Operating temperature of photovoltaic modules: A survey of pertinent correlations,” Renew. Energy, vol. 34, no. 1, pp. 23–29, 2009.
- Duffie2013
Duffie and W. A. Beckman, Solar Engineering of Thermal Processes, 4th Editio. Wiley, 2013.
- librosolar
Tomas Markvart, ed.Solar electricity. 2nd Editio. Wiley, 2000, p. 298.ISBN:9780471988526.
- Xiaoping2010
Xiaoping, D. Ming, H. Jianghong, H. Pingping, and P. Yali, “Dynamic Economic Dispatch for Microgrids Including Battery Energy Storage,” in International Symposium on Power Electronics for Distributed Generation Systems, 2010, no. 2, pp. 914–917.
- Silver2008
Silver, “Operations Research in Inventory Management: A Review and Critique,” Oper. Res., vol. 29, no. 4, pp. 628–645, 2008.
- Zhang2018ab
Xu Zhang et al. “A novel method for lithium-ion battery state of energy andstate of power estimation based on multi-time-scale filter”. In:Applied Energy216.February (2018), pp. 442–451.ISSN: 03062619.
- Arun2008
Arun, Rangan Banerjee, and Santanu Bandyopadhyay. “Optimum sizing ofbattery-integrated diesel generator for remote electrification through design-space approach”. In:Energy33.7 (2008), pp. 1155–1168.ISSN: 03605442.
- Ashok2006
S Ashok. “Optimised model for community-based hybrid energy system”.In:Renewable Energy32 (2006), pp. 1155–1164.
- Scioletti2017
Scioletti, A. M. Newman, J. K. Goodman, A. J. Zolan, and S. Leyffer, “Optimal design and dispatch of a system of diesel generators, photovoltaics and batteries for remote locations,” Optim. Eng., vol. 18, no. 3, pp. 755–792, 2017.
- Bukar2019
Bukar, C. W. Tan, and K. Y. Lau, “Optimal sizing of an autonomous photovoltaic/wind/battery/diesel generator microgrid using grasshopper optimization algorithm,” Sol. Energy, vol. 188, no. June, pp. 685–696, 2019.
- Ramli2018
Ramli, H. R. E. H. Bouchekara, and A. S. Alghamdi, “Optimal sizing of PV/wind/diesel hybrid microgrid system using multi-objective self-adaptive differential evolution algorithm,” Renew. Energy, vol. 121, pp. 400–411, 2018.
- Kaabeche2017
Kaabeche, S. Diaf, and R. Ibtiouen, “Firefly-inspired algorithm for optimal sizing of renewable hybrid system considering reliability criteria,” Sol. Energy, vol. 155, pp. 727–738, 2017.
- Dole2004
Dole and I. Bartlett, “Beyond cost recovery: setting user charges for financial, economic, and social goals,” 2004.


Backdoor:
After configuring the object to be 'hidden':- Add DS-Replication-Get-Changes on the domain object
- Add DS-Replication-Get-Changes-All on the domain object
The user/computer objcet doesn't have to be in any special groups or have any other special privileges!
Result:
You can DCSync whoever you want!


{% extends "ccd/layout.html" %} {% from "govuk/components/button/macro.njk" import govukButton %} {% from "govuk/components/tabs/macro.njk" import govukTabs %} {% from "govuk/components/summary-list/macro.njk" import govukSummaryList %} {% from "components/status-bar.html" import statusBar %} {% block content %}
{{ i18n.tcw.overview.nextSection.para1 | safe }}
{{ i18n.tcw.overview.nextSection.para2 | safe }}
{{ i18n.tcw.overview.nextSection.appellantDirectedToQuestions }}
The direction due date is {{ directions.date | dateFilter }}
{% elif state == 'DIRECTED_CASE_MANAGEMENT_APPOINTMENT' %}{{ i18n.tcw.overview.nextSection.directedCaseManagementAppointment }} {{ directions.date | dateFilter }}
{% endif %}I am an active and senior supporter of Un Nuevo Tiempo, an organisation committed to exposing corruption in the Venezuelan government. I have been part of high-profile activities against the government. I was also a councillor in the administration of the Major of Caracas Erika Faria.
In December 2017 I was arrested for taking part in a protest to support rubish workers who were striking for better wages. I was threatened and then arrested for taking part in the protest. This put me in the media spotlight because of my work as a councillor.
In June 2018 I produced a report on the 'rubbish crisis' in the barrio where Mayor Faria is from. This led to threats from radicals aligned to the mayor who turned up at my girlfriend's house and threatened me with guns.
The Home Office says it does not believe that I was a high-profile government critic or that I will be in danger if I return to Venezuela. I have provided a lot of evidence to prove my claims, including a Human Rights Watch country report detailing government crackdowns on dissidents and its use of militias, press articles about my work, photos of me speaking at public events and social media posts. I do not believe that the Home Office has properly looked at this evidence.
I also believe my health will be at risk if I return to Venezuela. Since being attacked by radicals I have chronic back pain that needs constant medication. I will not have access to this medication if I return to Venezuela.
I have also been suffering from severe depression as a result of my experiences and have been feeling suicidal. I am certain my depression would get worse if I had to return to Venezuela and that I'd be in danger of taking my own life.
I do not think the Home Office has taken any of this into account
No documents uploaded
The refusal of a protection claim
Refusal of a Human Rights claim
There are no directions for this case.


Awesome. We're sending you an email with your keys.
Note that it might take a few minutes. If you don't see it soon, check your spam folder or something, okay?


RowUpdatingEventHandler
and RowUpdatedEventHandler sample using ODP.NET
Table of Contents
The purpose of this sample application is to demonstrate
how one can trap the OracleRowUpdatingEvent and OracleRowUpdatedEvent
using VB.NET.
Oracle Data Provider for .NET (ODP.NET) is an implementation
of a data provider for the Oracle database. ODP.NET uses Oracle native
APIs to offer fast and reliable access to Oracle data and features from
any .NET application. ODP.NET is provided in Oracle.ManagedDataAccesss.dll
assembly and provides two namespaces :
- The
Oracle.ManagedDataAccess.Client namespace
contains ODP.NET classes.
- The
Oracle.ManagedDataAccess.Types namespace
contains the ODP.NET Types.
Event handling is the mechanism by which .NET
components register themselves with event generators and then get notified
with the help of a callback when the event is fired. ODP.NET too allows
users to register event handlers and get notified when the event of particular
interest occurs. In this application we demonstrate how one can trap the
OracleDataAdapter.RowUpdating and OracleDataAdapter.RowUpdated
events. OracleDataAdapter.RowUpdating event is fired
before a row is updated. OracleDataAdapter.RowUpdated
event is fired after a row is updated.
This allows applications to process this event and initiate appropriate
action.
When this sample application
is run, users should supply a username, password and connect string
to connect to a database. The application creates the required table to
set up this application. By default, both RowUpdating and RowUpdated event
handlers are enabled. Users can use the radio buttons to enable, disable
the event handlers. They must click the "Apply" button to carry
out actual eventHandler registration or de-registration. If the event
handler is enabled and country table is updated then corresponding event
handler code is executed. Code inside the eventHandler function (Subroutine)
prints a line in the status window indicating that the function had been
invoked.
Figure 1.1: Screen shot of the Main Screen
-
VB.NET installed with Visual Studio
2005/2008/2010/2012.
-
Oracle11g
Database or higher running SQL*Net TCP/IP listener (can be downloaded
here )
-
Oracle
Data Provider for .NET (ODP.NET) (can be downloaded
here
)
Unzip RowUpdateEventHandler.zip
using Winzip or command utility to your convenient directory referred
to as <Extract_Dir> .
Extraction of the zip file results in the creation of ' RowUpdateEventHandler '
directory. Refer Description
of Sample Files section for more details.
No special database setup is
required. When this application starts it creates the required table 'COUNTRYTAB '
and inserts necessary data. You must ensure that
the database user has necessary privileges to drop,create and update tables.
1. Open RowUpdateEventHandler.sln
using Visual Studio .NET from <Extract_Dir> \ RowUpdateEventHandler\src
folder.
2. Ensure that the following .NET
Component References have been added to RowUpdateEventHandler
project:
Oracle.ManagedDataAccess.
System,
System.Data,
System.Drawing,
System.Windows.Forms,
System.XML,
To add the reference to above .NET Components
a)Go to Menu ->View-> Solution Explorer.
b)Right click on RowUpdateEventHandler
project, choose 'Add Reference'.
c)Choose the above .NET Components from the list displayed.
d)Click 'Select', then OK.
e) The chosen .NET component gets added to the project.
4. Build and run the sample.
1. When the Main form of the application appears as
shown in figure 1.1 enter the username , password and connect string as
per your database setting and press "Connect" button.
2. You may update Language or Currency columns. Other
columns are not updatable.
2. To update the rows in the DataGrid
press "Update" button. You may enable or disable the eventhandlers
by using radio buttons but you must press "Apply" button to
carry out actual handler registration or de-registration process.
Note: The database user used to execute this application must have
necessary privileges to create, delete and modify tables.
Following is the directory structure of the RowUpdateEventHandler.zip
:
| Directory |
File Name |
Description |
RowUpdateEventHandler\doc |
Readme.html |
This file |
| otn.css |
Stylesheet used in Readme.html |
RowUpdateEventHandler\doc\images |
*.jpg |
This folder contains images used in
the Readme.html file |
RowUpdateEventHandler\src
|
RowUpdateEventHandler.sln |
Visual Studio Solution |
| RowUpdateEventHandler.suo |
Solution User option (this file gets
automatically generated when a Visual Studio Solution is created) |
RowUpdateEventHandler\src\
|
AssemblyInfo.vb |
This file stores information about
generated assembly |
| DBAccess.vb |
This file has the code that accesses
database and has the RowUpdating and RowUpdated event handlers |
| RowUpdate.vb |
Main window of this application |
| RowUpdateEventHandler.vbproj.* |
Visual Studio Project Files (these
files are automatically generated when a Visual Studio Project is
created) |
|
*.resx
*.config
|
.NET XML Resource Template and configuration
files (these files are automatically generated when a Visual Studio
Project is created) |
|


Ace Designer Manish Malhotra’s Father Passes Away, Bollywood Offers Condolence
With the news of his demise, several friends from the B-Town poured in to offer their condolences to Manish Malhotra and family.
by Koimoi.com TeamAce Bollywood designer Manish Malhotra lost his father today. According to reports, his father who was in his 90s had not been keeping well for quite some time now. With the news of his demise, several friends from the B-Town poured in to offer their condolences to Manish and family.
Amongst the very first from Bollywood who rushed to Manish was Shabana Azmi and Sophie Chaudhary. There were several pictures of stars viral over the internet. We also saw Karan Johar visiting his dear friend Manish Malhotra. Both the filmmaker and designer have collaborated on several projects and have hit designs to their credit.
Manish Malhotra’s nephew director Puneet Malhotra was also spotted. In the pictures, Puneet can be seen performing the last rituals of his late grandfather. Puneet made his directorial debut with Karan Johar produced Student of The Year 2.
Manish has been a prominent name in Bollywood for almost two decades now. The designer who made his entry in 1990s has reached peaks of success. Recently, he made his debut on stage where he designed clothes for the Feroz Abbas Khan’s adaptation of K. Asif’s yesteryear classic Mughal-e-Azam in 2016.
We offer our deepest condolences to Manish Malhotra and his family.


In this short post, I show how to calculate polygenic risk scores (PRS) using the data.table package in R. I will show an example on a small dataset, but can be easily extended to much larger datasets. The PRS based on \(p\) SNPs is given by:
\[PRS_i = \sum_{j=1}^{p}\beta_j \times SNP_{ij}\]
where \(\beta_j\) is the beta coefficient for the \(j^{th}\) SNP, and \(SNP_{ij}\) is the value of \(j^{th}\) SNP for the \(i^{th}\) individual.
Next we create some sample data, where the rows are SNPs and the columns are individuals. This data.table also contains a column with the beta coefficients for each SNP.
In situations where there are many individuals, this can be a tedious calculation because standard methods would require to type out the name of all of the columns to be multiplied by. Instead, using the .SDcols argument, greatly simplifies this process by allowing columns to be called on dynamically.
We first create a character vector of the column names that we want to multiply beta by as well as the new column names that we want to store the results in:
Now with a simple command we get the desired multiplication:
The PRS for each individual can be calculated using the colSums function in base R:


--- layout: default title: MAYDAY.US - Get the Facts permalink: /get-the-facts/ --- {% capture content %}
Here are the first steps to understanding this issue:
by Lawrence Lessig
Trust in our government has reached an all-time low. More than ever before, Americans believe that money buys results in Congress, and that business interests wield control over our legislature. Explore the issues in terms that nonwonks can understand, using real-world analogies and real human stories. Read the plan widespread mobilization and a new Constitutional Convention, presenting achievable solutions for regaining control of our corrupted-but redeemable-representational system.
by Zephyr Teachout
For two centuries the found framers' ideas about broad understanding of political corruption flourished in the courts, even in the absence of clear rules governing voters, civil officers, and elected officials. In the 1970s the U.S. Supreme Court began to narrow the definition of corruption, and the meaning has since changed dramatically. In 2010, one of the most consequential Court decisions in American political history gave wealthy corporations the right to spend unlimited money to influence elections. The majority opinion treated corruption as nothing more than explicit bribery, a narrow conception later echoed in deciding McCutcheon v. FEC in 2014. Unlimited spending has transformed American politics for the worse, warns Zephyr Teachout. Citizens United and McCutcheon were not just bad law, but bad history. If the American experiment in self-government is to have a future, then we must revive the traditional meaning of corruption and embrace an old ideal.


Entitlement to help with health costs
(HC2 certificate)
What you’re entitled to
Free prescriptions
To claim, show a copy of this to the staff in the pharmacy.
Free sight tests
To claim, show a copy of this to the staff in the opticians.
Full or partial help towards glasses or contact lenses
You are entitled to the full value of an optical voucher
How to use this certificate for glasses or contact lensesFree NHS dental treatment
To claim, show a copy of this to the staff in the dentist.
Help with the cost of travel to receive NHS treatment
If you're referred by a doctor, dentist or optician
How to use this certificate for travel
Free NHS Wigs, or NHS fabric supports
To claim, show a copy of this to the person who fits the NHS wig or fabric support for you.
Certificate details
Certificate number
123 456 789
Valid dates
from: 14 July 2015
to: 14 August 2016
Entitlement for
Priya Mattu
Vinay Mattu
Save a copy
You will need to show a copy of this information whenever you want to use it.


Part 5 - Adding a Find Function
Here we look at ways to locate contacts and addresses in the address book.
As we add contacts to our address book, it becomes tedious to navigate the list with the Next and Previous buttons. A Find function would be more efficient. The screenshot above shows the Find button and its position on the panel of buttons.
When the user clicks on the Find button, it is useful to display a dialog that prompts for a contact's name. Qt provides QDialog, which we subclass here to implement a FindDialog
class.
Defining the FindDialog Class
In order to subclass QDialog, we first include the header for QDialog in the finddialog.h
file. Also, we use forward declaration to declare QLineEdit and QPushButton since we will be using those widgets in our dialog class.
As in our AddressBook
class, the FindDialog
class includes the Q_OBJECT macro and its constructor is defined to accept a parent QWidget, even though the dialog will be opened as a separate window.
#include <QDialog> class QLineEdit; class QPushButton; class FindDialog : public QDialog { Q_OBJECT public: FindDialog(QWidget *parent = 0); QString getFindText(); public slots: void findClicked(); private: QPushButton *findButton; QLineEdit *lineEdit; QString findText; };
We define a public function, getFindText()
, to be used by classes that instantiate FindDialog
. This function allows these classes to obtain the search string entered by the user. A public slot, findClicked()
, is also defined to handle the search string when the user clicks the Find button.
Lastly, we define the private variables, findButton
, lineEdit
and findText
, corresponding to the Find button, the line edit into which the user types the search string, and an internal string used to store the search string for later use.
Implementing the FindDialog Class
Within the constructor of FindDialog
, we set up the private variables, lineEdit
, findButton
and findText
. We use a QHBoxLayout to position the widgets.
FindDialog::FindDialog(QWidget *parent) : QDialog(parent) { QLabel *findLabel = new QLabel(tr("Enter the name of a contact:")); lineEdit = new QLineEdit; findButton = new QPushButton(tr("&Find")); findText = ""; QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(findLabel); layout->addWidget(lineEdit); layout->addWidget(findButton); setLayout(layout); setWindowTitle(tr("Find a Contact")); connect(findButton, SIGNAL(clicked()), this, SLOT(findClicked())); connect(findButton, SIGNAL(clicked()), this, SLOT(accept())); }
We set the layout and window title, as well as connect the signals to their respective slots. Notice that findButton
's clicked() signal is connected to findClicked()
and accept(). The accept() slot provided by QDialog hides the dialog and sets the result code to Accepted. We use this function to help AddressBook
's findContact()
function know when the FindDialog
object has been closed. We will explain this logic in further detail when discussing the findContact()
function.
In findClicked()
, we validate lineEdit
to ensure that the user did not click the Find button without entering a contact's name. Then, we set findText
to the search string, extracted from lineEdit
. After that, we clear the contents of lineEdit
and hide the dialog.
void FindDialog::findClicked() { QString text = lineEdit->text(); if (text.isEmpty()) { QMessageBox::information(this, tr("Empty Field"), tr("Please enter a name.")); return; } else { findText = text; lineEdit->clear(); hide(); } }
The findText
variable has a public getter function, getFindText()
, associated with it. Since we only ever set findText
directly in both the constructor and in the findClicked()
function, we do not create a setter function to accompany getFindText()
. Because getFindText()
is public, classes instantiating and using FindDialog
can always access the search string that the user has entered and accepted.
QString FindDialog::getFindText() { return findText; }
Defining the AddressBook Class
To ensure we can use FindDialog
from within our AddressBook
class, we include finddialog.h
in the addressbook.h
file.
#include "finddialog.h"
So far, all our address book features have a QPushButton and a corresponding slot. Similarly, for the Find feature we have findButton
and findContact()
.
The findButton
is declared as a private variable and the findContact()
function is declared as a public slot.
void findContact(); ... QPushButton *findButton;
Lastly, we declare the private variable, dialog
, which we will use to refer to an instance of FindDialog
.
FindDialog *dialog;
Once we have instantiated a dialog, we will want to use it more than once; using a private variable allows us to refer to it from more than one place in the class.
Implementing the AddressBook Class
Within the AddressBook
class's constructor, we instantiate our private objects, findButton
and findDialog
:
findButton = new QPushButton(tr("&Find")); findButton->setEnabled(false); ... dialog = new FindDialog(this);
Next, we connect the findButton
's clicked() signal to findContact()
.
connect(findButton, SIGNAL(clicked()), this, SLOT(findContact()));
Now all that is left is the code for our findContact()
function:
void AddressBook::findContact() { dialog->show(); if (dialog->exec() == QDialog::Accepted) { QString contactName = dialog->getFindText(); if (contacts.contains(contactName)) { nameLine->setText(contactName); addressText->setText(contacts.value(contactName)); } else { QMessageBox::information(this, tr("Contact Not Found"), tr("Sorry, \"%1\" is not in your address book.").arg(contactName)); return; } } updateInterface(NavigationMode); }
We start out by displaying the FindDialog
instance, dialog
. This is when the user enters a contact name to look up. Once the user clicks the dialog's findButton
, the dialog is hidden and the result code is set to QDialog::Accepted. This ensures that our if
statement is always true.
We then proceed to extract the search string, which in this case is contactName
, using FindDialog
's getFindText()
function. If the contact exists in our address book, we display it immediately. Otherwise, we display the QMessageBox shown below to indicate that their search failed.
Files:


Webrtc Audio Call
Login to Continue
Chat Box
Connected now!
Audio Chat
Enter user name for remote user
Connect
Audio Chat
Calling...Waiting for the remote user's response.
HangUp or Cancel
You have a call from
. Do you want to accept?
Yes
No