I bought some Calea Zacatechici, interested in its dream stimulating effects. I didnt even attempt making the tea, believe me I've had my share of foul-tasting concoctions in the name of physical and mental exploration and I wasnt up for it this time around:)
I tried smoking it a few times, definately noticed a very pleasant, mild buzz but hadn't really recieved the lucid dreaming qualities. If I had, I couldnt remember them.
Id been at baseline for quite sometime, having to put aside my beloved psychedelic voyages and focus on a real job, paying off some bills, getting life started post-college, etc. I had been talking to a good friend who told me all about a great MDMA+Mushroom trip he just had, and it put me in the mood for some experimentation.
So I dipped into my stash and packed a small bowl of some finely aged and cured Bubblegum. I packed another bowl with crushed Calea Zacatechichi leaves and flowers. After little moment to prepare myself, I took a long, smooth hit of the marijuana pipe. I hadn't smoked or done much of anything in a long time, after being a once a day smoker for nearly 3 years - I was welcoming the change in mental state. Felt the the slow build of a long awaited high, warming up my toes and working its way up to my head. I took a hit from the Calea pipe...tasted good, a menthol/minty taste on top of the subtle sweetness of the Bubblegum smoke.
A few more tokes of MJ/Calea and I sat back on the couch, basking in nice warm glow as the experience built up to a peak. And that's when things got interesting.
Ive used a few psychoactive compounds, Marijuana, San Pedro, LSA, LSD, Mushrooms - you get the idea. As the weed+Calea combo built up, it definately had other aspects to it than just MJ alone. I started to get a bit paranoid, and I closed my eyes and just 'pushed' any negativity away and out of me. As soon as I did that, I could feel my consiousness expand and was bathed in a warm, euphoric body rush. My auditory field noticeably expanded to 'super stereo', and I was buzzing so hard It felt like I wasnt aware of my physical self for a few moments. I just kind of became one with the couch, just melted into my furniture. I closed my eyes and felt like I was rotating slowly through space. At the time, It almost felt like a small slice from a good mushroom trip...
This feeling lasted for a short time, and then I came off the peak. Visually, everything was sparkly and sort of hazy, like you would expect on a good dose of MJ, but I had barely smoked a small bowl of a type of weed I am very acclimated to. Of course, I hadnt smoked in about a month, and it had been 3 months before that...but still.  The Calea definately imparted something of its own to the high, it made it much more intense and, deeper than it should have been after only a few hits. The two plants are definately synergistic.
I took a few more hits off the Calea pipe to try and gauge the effects, and it did bump me back up toward that 'peak space'.

Combining Marijuana and Calea Zacatechichi added another dimension to what should have been a 'light' MJ experience, and Ill surely try it again.
I still havent experienced and lucid dreaming with Calea, but after this experience, I am confident that Ive found another great plant ally on this crazy planet.:)
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Here is an example:
% for key in context.keys(): The key is ${key}, the value is ${str(context.get(key))}. % endfor


A Short Sample File
This is a short sample file to show you what some basic HTML codes look like.
Remember to use a paragraph tag between paragraphs.
Here is the readme.
{{Handlebars}} {{#if pretty}} Use theme {{/if}}


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
Lightly spiced fish with cavolo nero and an indulgently rich cream and butter sauce with clams.
Mix the sugar, salt and curry powder in a small bowl. Rub it over the flesh side of the fish and set aside for 5 minutes, then rinse off the rub and dry the fish.
Wash the clams. Discard any open clams that do not close when given a sharp tap. Put the clams into a large, lidded pan with the white wine. Cook with the lid on for 2-3 minutes or until the clams open. Discard any clams that do not open.
Strain the liquor through a muslin cloth into a clean pan and reserve the clams.
Add the double cream to the pan and heat to reduce in volume by two-thirds. Beat in the butter. Season with lemon juice. Add the capers and chopped chives.
For the kale, bring a large pan of boiling salted water to the boil.  Plunge into the boiling water then take out and drain. Melt the butter in a frying pan, add the kale and season with salt and nutmeg.
To cook the hake, heat the rapeseed oil in a pan then add the butter. When the butter is melted, add the fish skin-side down. Cook until golden-brown, then turn over and cook until the flesh is sealed and no longer translucent. Return to skin-side down and continune to fry until cooked through. Remove the fish from the pan and drain on kitchen paper.
Divide the black kale between serving plates and put the fish on top. Remove the clams from their shells. Add them to the sauce and pour it around the plates.


Dash Board
Daily Attacks and Deaths
Naples in the time of Cholera
UK census 1851
Broad Street Outbreak
Data Visualized by:
Yuhan Jiang
Powered by: Plotly
UI Framework:
Semantic UI
Naples in the Time of Cholera 1884-1911
Deaths per 10,000 inhabitants of that age group
Children and elderly people were more fragile to Cholera. There was no significant difference in cholera mortality rate between the genders.


MARS ATTACKS! A film review by Christopher Null Copyright 1996 Christopher Null
We've already had three movies based on TV shows this year, plus a film based on a TV commercial, but I think it's a really bad omen when a film is based on a series of trading cards.
The film is MARS ATTACKS!, and with it Tim Burton serves up the worst production of his once-blossoming career, a movie wherein he indulges every excess of his demented psyche, pays no attention to entertaining the audience, and recycles every joke he can get his hands on.
The joke recycling would be okay, even appropriate, given Burton's predilection for shtick, if only the jokes were *funny*! But they're not. Nothing much is funny in MARS ATTACKS!, whose mildly amusing "War of the Worlds" story can best be described as... Mars attacks.
Burton obviously started this production in the casting -- Jack Nicholson as the president, Glenn Close as his uppity wife, Annette Bening as a New Age freak, Pierce Brosnan as a sophisticated science advisor. You get the idea. I guess Burton figured that throwing Tom Jones (as himself) into the mix would make it all better.
And maybe it would have, except the performances look like they're cobbled together from the days off that the cast of some 15 "name" actors happened to have. Bits and pieces of what should be on the editing room floor have somehow made their way into the final print instead, and in no particular order, either. Only one running joke stands out as worthy -- a flirtation between two disembodied heads (I won't say who).
I realize that MARS ATTACKS! was supposed to be a tongue-in-cheek homage to the cheesy, old sci-fi flicks (but Tim, you *already* made ED WOOD), but MARS ATTACKS! isn't even any good as a farce. The movie just plain looks bad -- too bad to be taken seriously, but not bad enough to look bad on purpose. And Burton's use of ultra-campy stars like Lisa Marie and Pam Grier? Puh-leeze. Where's Richard Roundtree, Tim?
Got the point yet? Because I'm tired of writing about this dead film. I wonder if we'll ever know what Burton had in mind when he put together this giant waste of time, but then again, who cares?
RATING: **
|------------------------------| \ ***** Perfection \ \ **** Good, memorable film \ \ *** Average, hits and misses \ \ ** Sub-par on many levels \ \ * Unquestionably awful \ |------------------------------|
-Christopher Null /<EMAIL_ADDRESS>/ Writer-Producer -Visit the Movie Emporium at http://www.filmcritic.com -and Null Set Productions at http://www.filmcritic.com/nullset.htm
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Overview¶
lcoptview - An interactive tool for viewing Life Cycle Assessment (LCA) foreground models and results created with lcopt¶
Lcoptview allows you to view .lcoptview files in your web browser.
.lcoptview files are created by lcopt to share data and results.
Lcopt is a python module for creating fully parameterised LCA foreground models using a Flask based interactive GUI developed by James Joyce.


This secure password generator will output a randomized, symbol-inclusive string of characters for you to use when setting an account password. You may specify a custom length. If JavaScript is enabled in your browser, the new password will be generated on-the-fly. Otherwise, it will be generated after a form submission or any time you reload the page.
| Length: | characters |
|---|---|
| Password: | |


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/pi_instance.20woes.html ---
A product of topological groups is a topological group.
That doesn't sound too hard!
Attempt 1:
import analysis.topology.topological_structures example (γ : Type) (F : γ → Type) [∀ i : γ, topological_group (F i)] : ...
unknown identifier: topological_group!
We have topological monoids, topological rings...
but no topological groups :-)
After some digging, I find that we have topological_add_group
and given that we also have the insane convention that addition isn't commutative
this will do
Attempt 2:
import analysis.topology.topological_structures example (γ : Type) (F : γ → Type) [∀ i : γ, topological_add_group (F i)] : ...
failed to synthesize type class instance for γ : Type, F : γ → Type, i : γ ⊢ add_group (F i)
(and topological_space too)
sigh
Attempt 3:
import analysis.topology.topological_structures example (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : topological_add_group (Π i, F i) := sorry
failed to synthesize type class instance for γ : Type, F : γ → Type, _inst_1 : Π (i : γ), topological_space (F i), _inst_2 : Π (i : γ), add_group (F i), _inst_3 : ∀ (i : γ), topological_add_group (F i) ⊢ add_group (Π (i : γ), F i)
gaargh
Oh but this is done in pi_instances, right?
Attempt 4
import analysis.topology.topological_structures algebra.pi_instances example (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : topological_add_group (Π i, F i) := {}
maximum class-instance resolution depth has been reached (the limit can be increased by setting option 'class.instance_max_depth') (the class-instance resolution trace can be visualized by setting option 'trace.class_instances')
bangs head on table
Here's how far I have got:
import analysis.topology.topological_structures algebra.pi_instances set_option trace.class_instances true example (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : topological_add_group (Π i, F i) := { continuous_neg := sorry }
and the trace looks like this:
https://gist.github.com/kbuzzard/762adae68d4cbe240f4098968b14fe2e
Oh!
That trace is just tracing along not looking like anything too serious is happening in terms of loops
and then right at the end it randomly explodes
[class_instances] (4) ?x_28 : ring ?x_27 := @pi.ring ?x_30 ?x_31 ?x_32 [class_instances] (5) ?x_32 i : ring (?x_31 i) := @pi.ring (?x_33 i) (?x_34 i) (?x_35 i) [class_instances] (6) ?x_35 i i_1 : ring (?x_34 i i_1) := @pi.ring (?x_36 i i_1) (?x_37 i i_1) (?x_38 i i_1) [class_instances] (7) ?x_38 i i_1 i_2 : ring (?x_37 i i_1 i_2) := @pi.ring (?x_39 i i_1 i_2) (?x_40 i i_1 i_2) (?x_41 i i_1 i_2)
and it just keeps getting bigger and bigger
What instance are you expecting will resolve this?
you are that instance
my question certainly seems to have nothing to do with rings
apply_instance
doesn't have my phone number ;-)
I want to prove that the product of top groups is a top group
The instance isn't there yet
but I haven't even got to defining the instance
because of some random type class explosion
You can try by pi_instance
You will need more arguments, we'll see what errors we get
I'm on it
If you use my refine_struct
branch, that should be all you need.
ooh
so you mean don't use algebra.pi_instances?
Apparently I should prove pi.topological_add_monoid first
No I mean you write by pi_instance
and it figures it all out on its own without you having to give more information
(if you use refine_struct
)
so can you give me more clues about exactly what to type, so I can "use refine_struct
"?
certainly
1. delete your _target
directory
2. go in your leanpkg.toml
file
3. replace the mathlib
entry with
mathlib = {git = "https://github.com/cipher1024/mathlib", rev = "e1c15f02a62a0343e5497ae380355e966be9b3e4"}
4. in a terminal, call leanpkg build
on your project
You know what
I think the problem might be
that pi_instances doesn't do any topology
and I rather think that putting a topological space structure on a product of types
is actually something which requires an idea
at least if you want to put the correct top space structure on it
Aah sorry
By "don't use algebra.pi_instances"
I mean "don't use official mathlib's algebra.pi_instances"?
OK I will switch.
It will be interesting to see what happens!
building
But I don't think your pi_instances tactic is going to put a topological space structure on a product of topological spaces
This isn't formal, like a ring structure on a product of rings
I think this needs to be written by hand.
Yes, that's right. If the instance relies on any kind of insight that is not already present in the more basic instance, my tactic won't do.
refine_struct
might still be helpful, especially if many of the proofs are of the same shape
instance topological_space [∀ i, topological_space $ f i] : topological_space (Π i : I, f i) := topological_space.generate_from { U : set (Π i : I, f i) | ∃ u : Π i : I, set (f i), set.finite {i : I | u i ≠ set.univ} ∧ ∀ g : Π i, f i, U g = ∀ i, g i ∈ u i}
But now I have this -- assuming I got it right (and I am not entirely sure that introducing both U and u was necessary) -- I wonder if I can persuade pi_instances to go further.
Now I think there's a chance
Actually this might just be hard. Now I can prove that a product of topological groups is a topological space and a group
but a topological group is more than this
you want the group structure maps like product and inverse to be continuous
and these might be lemmas rather than stuff which is formally true
That Pi type topological space instance is already in topological_space.lean
isn't it?
instance Pi.topological_space {β : α → Type v} [t₂ : Πa, topological_space (β a)] : topological_space (Πa, β a) := ⨆a, induced (λf, f a) (t₂ a)
Oh did I miss it?
Oh it's not in pi_instances!
But it's in the same module that defines topological_space
Oh okay, it looks like Lean never actually claimed it was missing?
No it just gave me terrifying errors
instance pi_topological_monoid (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_monoid (F i)] [∀ i : γ, topological_add_monoid (F i)] : topological_add_monoid (Π i, F i) := sorry
I get these maximum class-instance resolution depth has been reached
errors
I see
instance pi_topological_add_monoid (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_monoid (F i)] [∀ i : γ, topological_add_monoid (F i)] : topological_add_monoid (Π i, F i) := by pi_instance [pi.add_monoid,Pi.topological_space]
I don't know what is to be done about that instance resolution loop (I'm pretty sure it has been discussed here before), but as a workaround you can specify the instance you want:
instance pi_topological_monoid (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : @topological_add_group (Π i, F i) _ (pi.add_group) := sorry
my suggestion doesn't work
pi.add_monoid
doesn't actually exist, that's why I switched back to add_group
Of course, you could probably add it
If you replace your sorry with {}
do you get the runaway typeclass?
Yes
I guess that's because it tried to look up a topological_add_monoid
"parent" instance to extend, and then that fell into the same loop
If I specify both continuous_add
and continuous_neg
(as sorry
) then I don't get a loop.
you're right :-)
I love living life on the edge
one false move
runaway typeclass
actually, that was apparently the original issue, too.
instance pi_topological_monoid (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : topological_add_group (Π i, F i) := { continuous_add := sorry, continuous_neg := sorry, }
also works
lemma continuous_pi [topological_space α] [∀i, topological_space (π i)] {f : α → Πi:ι, π i} (h : ∀i, continuous (λa, f a i)) : continuous f := continuous_supr_rng $ assume i, continuous_induced_rng $ h i
might be useful
I tried writing the actual instance but the loop came back :(
It should just be continuous_add := continuous_pi $ λ i, continuous.comp continuous_add' (continuous_apply i)
Er wait, no
that's totally wrong
OK
continuous_apply
has a totally extraneous argument α
which makes it unusable. It should be
section pi variables {ι : Type*} {π : ι → Type*} lemma continuous_apply' [∀i, topological_space (π i)] (i : ι) : continuous (λp:Πi, π i, p i) := continuous_supr_dom continuous_induced_dom end pi
continuous_add := continuous_pi $ λ i, continuous_add (continuous.comp continuous_fst (continuous_apply' i)) (continuous.comp continuous_snd (continuous_apply' i))
Alternatively,
continuous_add := continuous_pi $ λ i, continuous.comp (continuous.prod_mk (continuous.comp continuous_fst (continuous_apply' i)) (continuous.comp continuous_snd (continuous_apply' i))) continuous_add'
shows the formal structure a little better, because continuous_add'
is the actual class method topological_add_monoid.continuous_add
continuous.comp
reads from left to right. First you build a pair by (first taking the first component, and then the i
th component of that; first taking the second component, and then the i
th component of that), and then you add them.
continuous_neg := continuous_pi (λ i, continuous.comp _ (continuous_neg continuous_id)
but I need to fill in the _
continuous (λ (x : Π (i : γ), F i), x i)
Projection is continuous
is what I need
and then we're either done
or we have a runaway instance
The topological structure on the product is defined as the coarsest topology which makes all the projection maps continuous
aah I see this is exactly this apply'
what is going on with apply? :-)
instance pi_topological_group (γ : Type) (F : γ → Type) [∀ i : γ, topological_space (F i)] [∀ i : γ, add_group (F i)] [∀ i : γ, topological_add_group (F i)] : @topological_add_group (Π i, F i) (Pi.topological_space) (pi.add_group) := { continuous_add := continuous_pi $ λ i, continuous_add (continuous.comp continuous_fst (continuous_apply' i)) (continuous.comp continuous_snd (continuous_apply' i)), continuous_neg := continuous_pi (λ i, continuous.comp (continuous_apply' i) (continuous_neg continuous_id) ) }
rofl
continuous_apply : ∀ {α : Type u_1} {ι : Type u_2} {π : ι → Type u_3} [_inst_1 : topological_space α] [_inst_2 : Π (i : ι), topological_space (π i)] (i : ι), continuous (λ (p : Π (i : ι), π i), p i)
I see what Reid means
It's going to be pretty tough inferring what alpha is given that it's never mentioned :-)
It's going to be pretty tough inferring what alpha is given that it's never mentioned :-)
I fixed this in my simplicial branch. But it hasn't made it into mathlib yet.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


--- layout: post title: What is new in iTunes 11 permalink: what-is-new-in-itunes-11/ date: 2012-11-30 22:26:21.000000000 +08:00 categories: - apple - itunes tags: - itune - itunes - itunes 11 - itunes up next - latest itunes - new features of itunes status: publish type: post published: true meta: review_rating: '' _edit_last: '2' _wpas_done_all: '1' _wpas_skip_1611607: '1' _wpas_skip_2203490: '1' dsq_thread_id: '3011903863' cleaned: true ---
Apple had just released the new version of iTunes. It is the central hub of all Apple Devices with many purpose like media player, digital store for movies, music and apps etc. Let me show you some notable difference on this new version.
New Design
The whole interface design had changed. The sidebar on the left is gone. The controls on the top has changed. Almost all borders were stripped out making the whole window occupy the whole screen.
Navigation
Since the sidebar was removed, the navigation is then moved to the upper part of the user interface just below the player controls. Some might find that this change is a little awkward since it made the sections a little hard to see on the first glance.
Album Player
When you open an album, there will be a section opened under it, listing all the songs for that album. You can then play any songs or shuffle it.
Mini Player
If you like listening to music while doing something else, you will surely love the mini-player feature. This feature allows you to switch iTunes to a small floating bar with media controls which you can drag around anywhere you want.
Up Next
What is "Up next?". Well let's say it is some form of temporary playlist, where you can line up music of your choice from any album. Then as each music is played, they are removed from that playlist. Not really that innovative feature but worth trying out.
Those among other features are the one that you might first notice upon downloading iTunes 11.


'Chiefs Were Well Rested But They Got Cramps'
by Soccer LadumaIn a gripping interview with Soccer Laduma this week, Mamelodi Sundowns defender, Mosa Lebusa took one more dig at Kaizer Chiefs about their recent meeting.
Sundowns suffered a 2-0 Absa Premiership loss to Chiefs late last month, a loss that contributed to the now 10-point gap that Amakhosi hold at the top of the log.
Read more: Sandilands: We Can’t Give Chiefs and Sundowns Too Much Of A Gap
Speaking to Soccer Laduma in an exclusive interview this week, Lebusa mentioned how Sundowns will not be stopped in defending their Absa Premiership league title despite Chiefs sitting comfortably ahead of everyone else in the league.
The versatile defender then went on to point out how Amakhosi still do not have any advantage over them because of not playing CAF Champions League football, pointing out how in their previous meeting, Chiefs players were ‘cramping’ despite going in to the encounter as the well-rested side.
“… if you look at the game we played against them (Chiefs), we had played a midweek game before that, but it did not look like we were the ones who had played in midweek. A lot of their players were getting cramps. I think 80 percent of our team which played midweek started the game against Chiefs. They are a well-rested team, but they are getting cramps, so I don’t want to look at it that way. We have everything we need here (at Chloorkop) to recover. We do hydrotherapy, so there are no complaints. They beat us and we congratulate them. We can’t complain about that,” Lebusa said.
To read more on what the defender had to say about:
- Chiefs pushing Sundowns to the finish line
- How he felt winning his first league title
- Wearing the captain’s armband for the first time
- His return to Bafana Bafana
- And more on Head Coach Pitso Mosimane, check out this week’s edition of Soccer Laduma, issue number 1149.
Earn Airtime & Data With Soccer Laduma’s Social Media App - Download Now


Taurus SC with 9.1% Fipronil (the same amount of a.i. as
the popular Termidor SC) provides best-in-class control of termites, ants and a
wide variety of other insect pests including spiders, roaches, ticks and many more.
The active ingredient is Fipronil.
Fipronil works by disrupting the normal function of the central nervous
system in insects. Fipronil is more toxic to insects than people and pets because it
is more likely to bind to insect nerve endings.


- You must have exactly 4 columns, no extras
- The first row of the excel file must have the headers (spelled exactly the same):
- Belt Size can be either a number ("2") or the word size and a number "size 00"
- Belt level should be LITTLE DRAGON COLOUR STRIPE/BELT. If they aren't a little dragon, then: COLOUR STRIPE/BELT. Some examples of valid inputs: "Little Dragon Blue Stripe", "Red Stripe", "Blue Belt"
| First Name | Last Name | Belt Size | Belt Level |
|---|


 I mean those little things are 100% deadly. theyve got the power to break a grown mans leg and it doesnt even touch a gram in weight! Im gonna stop this sarcasm in the middle cause i just realized that broken bones and surgery and medical bills and missing out on school that was meant to be your ticket to a better life probably is stressing you out right now. Real life sucks, eh? Just keep on being you and maybe things will happen. Tomorrow you could be a billionaire, who knows.
Okay hopefully you dont take offence to any of my random jokes and thoughts. I thought the best "Get better" page would be one that makes you laugh, even if its a little bit. Im blanking out but trust me, there was a heartfelt speech in my head ready for ya. Great day to run out of my ADD meds, yeah? Anywho, Get to healing and all that nice stuff. Im rooting for ya!
2 Comments:
Keep up the GREAT work!My toe feels funny.
I am looking forward to read about your trendy life.
1 Comment:
Ready for the memes


This is !st para
Web development is the work involved in developing a website for the Internet or an intranet.Web development can range from developing a simple single static page of plain text to complex web-based internet applications, electronic businesses, and social network services.
Among web professionals, "web development" usually refers to the main non-design aspects of building websites: writing markup and coding. Web development may use content management systems (CMS) to make content changes easier and available with basic technical skills.


top 5 largest cities
These are the top 5 cities in the world as defined by their city proper, urban area, and the metropolitan region.
- China Shanghai Population: City 21,516,000 // Urban 21,009,000 // Metro 21,148,000
- ChinaBeijing Population: City 21,516,000 // Urban 21,009,000 // Metro 21,148,000
- BrazilSâo Paulo Population: City 21,292,893 // Urban 20,365,000 // Metro 36,842,102
- IndiaDelhi Population: City 16,787,941 // Urban 24,998,000 // Metro 21,753,486
- PakistanKarachi Population: City 21,000,000 // Urban 22,123,000
- China Shanghai Population: City 21,516,000 // Urban 21,009,000 // Metro 21,148,000
- ChinaBeijing Population: City 21,516,000 // Urban 21,009,000 // Metro 21,148,000
- BrazilSâo Paulo Population: City 21,292,893 // Urban 20,365,000 // Metro 36,842,102
- IndiaDelhi Population: City 16,787,941 // Urban 24,998,000 // Metro 21,753,486
- PakistanKarachi Population: City 21,000,000 // Urban 22,123,000
Source: https://en.wikipedia.org/wiki/World%27s_largest_cities


--- layout: tutorial-extended title: The Weather App --- {% assign tutorial_github_url = "https://github.com/infinispan/infinispan-embedded-tutorial" %} {% assign @tutorial_steps = "The Weather Application, Initializing the CacheManager, Putting stuff in the cache, Making entries expire, Configuring the default cache, Clustering the application, Listen to changes in the cluster, Listen to changes in the cache, Grouping entries together, Temperature averages with streams, Declarative configuration" | split: ", " %} {% assign tutorial_step = -1 %}
If you want to learn how to use Infinispan embedded into your Java application, you've come to the right place.  The application will retrieve the current weather conditions for some cities and store them in a cache, for quicker retrieval. It will also show how to configure the cache for expiration, so that entries get removed as they age. It will then demonstrate how to cluster multiple nodes together and reacting to events in the cluster. Finally, a computation of average temperatures per country will show the power of the streams functionality.
For this tutorial you will need the following:
This tutorial assumes you will be using the command-line to launch the various commands. The tutorial code itself is hosted as a project on GitHub where each step has been enclosed and tagged in a separate commit. In this way you can easily see the changes being made to the code from each step to the next.
So, to get things started, move on to the first step


Star rating with on-hover labels that can be edited in the CSS. Clear button resets user input to default value.


--- layout: post status: publish published: true title: 2009长江大全食，肇庆小偏食 author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 90 wordpress_url: http://leaskh.wordpress.com/2009/07/24/2009%e9%95%bf%e6%b1%9f%e5%a4%a7%e5%85%a8%e9%a3%9f%ef%bc%8c%e8%82%87%e5%ba%86%e5%b0%8f%e5%81%8f%e9%a3%9f date: '2009-07-24 14:30:31 +0800' date_gmt: '2009-07-24 14:30:31 +0800' categories: tags: [] comments: [] ---


Class TFTensor
TFTensor holds a multi-dimensional array of elements of a single data type.
Inherited Members
Namespace: TensorFlow
Assembly: TensorFlowSharp.dll
Syntax
public class TFTensor : TensorFlow.TFDisposableThreadSafe
Remarks
You can create tensors with the various constructors in this class, or using the implicit conversions from various data types into a TFTensor, including the creation of tensors from simple constants (returning a tensor that reprensets a scalar, that is, it is a 0D tensor), arrays (returning a tensor of a single dimension, 1D) or arbitrary multidimensional arrays.
Given a tensor, you can retrieve the number of dimensions in it via the NumDims property, or you can retrieve the shape of a tensor, that is how many elements on each dimension the tensor has, by fetching the Shape property.
The implicit conversions for basic types produce tensors of one dimesion with a single element, while the implicit conversion from an array, expects a multi-dimensional array that is converted into a tensor of the right dimensions.
The special "String" tensor data type that you will find in TensorFlow documentation really represents a byte array. You can create string tensors by using the TensorFlow.TFTensor.CreateString method that takes a byte array buffer as input.
TFTensor scalar = 1; // Creates a 0D tensor, for the integer value 1
int d = scalar.NumDims; // d will be equal to zero, as it is a 0D tensor
long [] shape = scalar.Shape // returns an empty array, as it is a 0D tensor
TFTensor list = new [] {1,2,3} // Creates a 1D tensor, or vector, for the values 1, 2, 3
d = list.NumDims; // d will be one
shape = list.Shape; // shape will be an array with a single value 3, representing that the dimension 0 has 3 elements
// Creates a 3D tensor,
TFTensor cube = new [,,] { {{1,2,3},{4,5,6}}}
d = cube.NumDims // d will be 3
shape = list.Shape // shape will be [1,2,3] which is the shape of the above 3D array
</code></pre>
</example>
Constructors
TFTensor(Array)
Creates a constant tensor from an array, the shape reflects the shape of the C# array and the underlying type reflects the C# type.
Declaration
public TFTensor (Array array);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Array | array | To be added. |
TFTensor(TFDataType, Int64[], IntPtr, UIntPtr, TFTensor+Deallocator, IntPtr)
Low-level tensor constructor that creates a tensor from a buffer pointed to by an IntPtr.
Declaration
public TFTensor (TensorFlow.TFDataType dataType, long[] dims, IntPtr data, UIntPtr dataSize, TensorFlow.TFTensor.Deallocator deallocator, IntPtr deallocatorData);
Parameters
| Type | Name | Description |
|---|---|---|
| TFDataType | dataType | Specifies the data type held by the tensor, as well as how to interpret the provided data. |
| System.Int64[] | dims | Describes the tensor shape, an array that indicates . |
| System.IntPtr | data | Pointer to the raw data that will be used to initialize the tensor. |
| System.UIntPtr | dataSize | The size of the data being passed in. |
| deallocator | Deallocator method, it is invoked when the tensor is destroyed to release the data pointed to by |
|
| System.IntPtr | deallocatorData | An optional argument of data that is passed to the deallocator method when the tensor is destroyed, you can use this to pass context information. |
TFTensor(TFDataType, Int64[], Int32)
Low-level: Creates an empty tensor of the specified type and shape, with the specified number of elements
Declaration
public TFTensor (TensorFlow.TFDataType dataType, long[] dims, int size);
Parameters
| Type | Name | Description |
|---|---|---|
| TFDataType | dataType | Data type. |
| System.Int64[] | dims | Tensor shape. |
| System.Int32 | size | Size in bytes of the tensor, this will be the actual memory allocated. |
Remarks
It is the responsibility of the caller to ensure that the size is correct given the data type size and the tensor dimension specified in dims.
TFTensor(UInt16[])
Creates a 1 dimensional tensor from an array of ushorts
Declaration
public TFTensor (ushort[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt16[] | data | Data. |
TFTensor(UInt16)
Creates a constant tensor with a single dimension from an ushort value.
Declaration
public TFTensor (ushort value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.UInt16 | value | To be added. |
TFTensor(Single[])
Creates a 1 dimensional tensor from an array of floats.
Declaration
public TFTensor (float[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single[] | data | Data. |
TFTensor(Single)
Creates a constant tensor with a single dimension from a float value.
Declaration
public TFTensor (float value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single | value | To be added. |
TFTensor(SByte[])
Creates a 1 dimensional tensor from an array of sbytes.
Declaration
public TFTensor (sbyte[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.SByte[] | data | Data. |
TFTensor(SByte)
Creates a constant tensor with a single dimension from an sbyte value.
Declaration
public TFTensor (sbyte value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.SByte | value | To be added. |
TFTensor(Complex)
Creates a constant tensor with a single dimension from a Complex value.
Declaration
public TFTensor (System.Numerics.Complex value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Numerics.Complex | value | To be added. |
TFTensor(Int64[])
Creates a 1 dimensional tensor from an array of longs.
Declaration
public TFTensor (long[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int64[] | data | Data. |
TFTensor(Complex[])
Creates a 1 dimensional tensor from an array of complex numbers.
Declaration
public TFTensor (System.Numerics.Complex[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Numerics.Complex[] | data | Data. |
TFTensor(Int32[])
Creates a 1 dimensional tensor from an array of ints.
Declaration
public TFTensor (int[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32[] | data | Data. |
TFTensor(Boolean)
Creates a constant tensor with a single dimension from a boolean value.
Declaration
public TFTensor (bool value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | value | To be added. |
TFTensor(Boolean[])
Creates a 1 dimensional tensor from an array of booleans.
Declaration
public TFTensor (bool[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean[] | data | Data. |
TFTensor(Int64)
Creates a constant tensor with a single dimension from a long value.
Declaration
public TFTensor (long value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int64 | value | To be added. |
TFTensor(Byte[])
Creates a 1 dimensional tensor from an array of bytes.
Declaration
public TFTensor (byte[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | data | Data. |
TFTensor(Double)
Creates a constant tensor with a single dimension from a double value.
Declaration
public TFTensor (double value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | value | To be added. |
TFTensor(Byte)
Creates a constant tensor with a single dimension from an byte value.
Declaration
public TFTensor (byte value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte | value | To be added. |
TFTensor(Int16)
Creates a constant tensor with a single dimension from a short value.
Declaration
public TFTensor (short value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int16 | value | To be added. |
TFTensor(Int16[])
Creates a 1 dimensional tensor from an array of shorts.
Declaration
public TFTensor (short[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int16[] | data | Data. |
TFTensor(Int32)
Creates a constant tensor with a single dimension from an integer value.
Declaration
public TFTensor (int value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | value | To be added. |
TFTensor(Double[])
Creates a 1 dimensional tensor from an array of doubles.
Declaration
public TFTensor (double[] data);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double[] | data | Data. |
Properties
Data
Returns a pointer to the raw data in the tensor.
Declaration
public IntPtr Data { get; }
Property Value
| Type | Description |
|---|---|
| System.IntPtr | To be added. |
Remarks
The contents of the Data must be interpreted according to the type of the data as described by the DataType property. The amount of data is given by the the TensorByteSize property.
NumDims
Returns the number of dimensions in the tensor.
Declaration
public int NumDims { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 | To be added. |
Remarks
For single-dimension tensors the return is 1, 2 dimensions is 2 and so on.
Shape
Returns the tensor shape, this is an array whose size determines the number of dimensions on the tensor, and each element is the size of the dimension
Declaration
public long[] Shape { get; }
Property Value
| Type | Description |
|---|---|
| System.Int64[] | To be added. |
Remarks
An array of size 0 is used for constants, an array of size 1 is used for single-dimension arrays, where the dimension is the value of the first element. And so on.
TensorByteSize
Declaration
public UIntPtr TensorByteSize { get; }
Property Value
| Type | Description |
|---|---|
| System.UIntPtr | To be added. |
TensorType
Returns the data type for the tensor.
Declaration
public TensorFlow.TFDataType TensorType { get; }
Property Value
| Type | Description |
|---|---|
| TFDataType | The type of the tensor. |
Methods
CreateString(Byte[])
Creates a single-dimension tensor from a byte buffer. This is different than creating a tensor from a byte array that produces a tensor with as many elements as the byte array.
Declaration
public static TensorFlow.TFTensor CreateString (byte[] buffer);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte[] | buffer | To be added. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
FromBuffer(TFShape, SByte[], Int32, Int32)
Creates a new tensor from a portion of an array of sbytes
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, sbyte[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.SByte[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, UInt16[], Int32, Int32)
Creates a new tensor from a portion of an array of ushorts
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, ushort[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.UInt16[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Single[], Int32, Int32)
Creates a new tensor from a portion of an array of floats
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, float[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Single[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Complex[], Int32, Int32)
Creates a new tensor from a portion of an array of Complex numbers
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, System.Numerics.Complex[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Numerics.Complex[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Byte[], Int32, Int32)
Creates a new tensor from a portion of an array of bytes
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, byte[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Byte[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Int32[], Int32, Int32)
Creates a new tensor from a portion of an array of ints
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, int[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Int32[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Int16[], Int32, Int32)
Creates a new tensor from a portion of an array of shorts
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, short[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Int16[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Double[], Int32, Int32)
Creates a new tensor from a portion of an array of doubles
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, double[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Double[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
FromBuffer(TFShape, Int64[], Int32, Int32)
Creates a new tensor from a portion of an array of longs
Declaration
public static TensorFlow.TFTensor FromBuffer (TensorFlow.TFShape shape, long[] data, int start, int count);
Parameters
| Type | Name | Description |
|---|---|---|
| TFShape | shape | Represents the tensor shape. |
| System.Int64[] | data | The linear array of data, the data is shuffled to fit in the tensor with the specified dimensions. |
| System.Int32 | start | The offset into the provided data array where the data resides. |
| System.Int32 | count | The number of bytes to copy from count into the tensor. |
Returns
| Type | Description |
|---|---|
| TFTensor | To be added. |
Remarks
Use the FromBuffer method to create a tensor that has the specified dimensions and is initialized with data from the data array. The data is copied starting at the start offset, for count bytes and is laid out into the tensor following the specified dimensions.
GetTensorDimension(Int32)
Returns the number of elements on a specific dimension in the tensor.
Declaration
public long GetTensorDimension (int dimIndex);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | dimIndex | Dimension that you are querying. |
Returns
| Type | Description |
|---|---|
| System.Int64 | The tensor dimension. |
Remarks
If you have a tensor of 3 elements by 5, represented by [3 5], the GetTensorDimension(0) will return 3, the GetTensorDimension(1) will return 5.
GetValue(Boolean)
Returns the value of the Tensor as a C# type if possible, or null if the data type can not be represented in C#
Declaration
public object GetValue (bool jagged = false);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | jagged | The default is set to false, which returns .NET multi-dimensional arrays for multi-dimensional tensors. This is useful to feed the data back as a TFTensor created from an array. Set to true if you want to get arrays pointing to arrays, which are slightly more convenient to work with from C# |
Returns
| Type | Description |
|---|---|
| System.Object | The value encodes the contents of the tensor, and could include simple values, arrays and multi-dimensional values. |
Remarks
Jagged arrays create various intermediate arrays, while multi-dimensional arrays are more efficient memory-wise.
TensorTypeFromType(Type)
Converts a system type to a TFDataType.
Declaration
public static TensorFlow.TFDataType TensorTypeFromType (Type type);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Type | type | The system type to be converted. |
Returns
| Type | Description |
|---|---|
| TFDataType | The TFDataType corresponding to the given type. |
ToString()
Returns a System.String that represents the current TFTensor.
Declaration
public override string ToString ();
Returns
| Type | Description |
|---|---|
| System.String | A System.String that represents the current TFTensor. |
TypeFromTensorType(TFDataType)
Converts a TFDataType to a system type.
Declaration
public static Type TypeFromTensorType (TensorFlow.TFDataType type);
Parameters
| Type | Name | Description |
|---|---|---|
| TFDataType | type | The TFDataType to be converted. |
Returns
| Type | Description |
|---|---|
| System.Type | The system type corresponding to the given |
Operators
op_Implicit(Single to TFTensor)
Converts a float into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (float value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the float value. |
op_Implicit(Complex to TFTensor)
Converts a Complex number into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (System.Numerics.Complex value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Numerics.Complex | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the complex value. |
op_Implicit(Int64 to TFTensor)
Converts a long into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (long value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int64 | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the long value. |
op_Implicit(Int32 to TFTensor)
Converts an integer into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (int value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the integer value. |
op_Implicit(Double to TFTensor)
Converts a double into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (double value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the double value. |
op_Implicit(Boolean to TFTensor)
Converts a boolean into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (bool value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the integer value. |
op_Implicit(Array to TFTensor)
Converts a C# array into a tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (Array array);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Array | array | single dimension, or multi-dimensional array. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor containing the data. |
Remarks
This implicit conversion can convert single or multidimensional arrays of booleans, sbytes, byte, shorts, ushorts, ints, longs, doubles, floats and complex numbers into a tensor with the same dimensional shape as the provided array.
op_Implicit(Byte to TFTensor)
Converts a byte into a 1-dimensional, 1-valued tensor.
Declaration
public static TensorFlow.TFTensor op_Implicit (byte value);
Parameters
| Type | Name | Description |
|---|---|---|
| System.Byte | value | Value to initialize the tensor with. |
Returns
| Type | Description |
|---|---|
| TFTensor | The tensor representing the byte value. |


Depending on browser support: The input type "range" can be displayed as a slider control.
Note: type="range" is not supported in IE9 and earlier.


Getting Started
L/EARN IOTA?
Want to earn IOTA whilst learning about IOTA?
Find out more
Donate
All donations help to keep our servers running, our bots promoting and the people learning about IOTA.
How to donate


This repository
Pull Requests
Issues
Marketplace
Explore
✚▾
▾
Knowre
/
WebDevCurriculum
Unwatch▾
19
Star
113
Fork
106
Code
Issues
cnt
Pull Requests
0
Projects
1
Insights
KnowRe web development curriculum for noobs
44
commits
1
branch
0
release
2
contributors
MIT
Branch:
master▾
New pull request
Create new file
Upload files
Find file
Clone or download
Knowre
Quest 02 added constraint
Latest commit
8a3080e
on 7 Aug 2016
Part 0. git/Quest 00. Hello, git
Part 2 finished
2 years ago
Part 1. HTML & CSS
Quest 02 added constraint
2 years ago
README.md
Fix: Removed advertisement
2 years ago
README.md
KnowRe web development curriculum 2018


RAWAJ AL-ITQAN CONTRACTING HAS A BRANCH SPECIALIZED IN LANDSCAPING PROJECTS STARTING FROM THE PREPARATION OF DRAWINGS AND SPECIFICATIONS OF THE WORKS AS WELL AS CONSTRUCTION WORKS FOR LANDSCAPING WORKS, INCLUDING THE PREPARATION AND CONSTRUCTION WORKS, CIVIL WORKS FOR ROADS AND CORRIDORS, REPLACEMENT AND RENOVATION OF OLD GARDENS, IRRIGATION SYSTEMS, ELECTRICAL WORKS AND EXTERNAL LIGHTING WORKS.
RAWAJ AL-ITQAN PROVIDES A WIDE RANGE OF SERVICES IN INTERIOR AND EXTERIOR DECORATIONS AND FINISHING WORKS, IN WHICH RAWAJ AL-ITQAN HAS A LARGE HISTORY OF WORKS (VILLAS, PALACES, FINE RESTAURANTS, COMMERCIAL BUILDINGS), WHICH DEPENDS MAINLY ON THE EXPERTISE AND MERIT OF EXPERIENCED STAFF TO ACHIEVE DEGREES A HIGH LEVEL OF PROFESSIONALISM TO ACHIEVE THE SATISFACTION OF ITS CUSTOMERS, WHICH IS THE FIRST CRITERION FOR THE SUCCESS OF THE INSTITUTION
RAWAJ AL ITQAN CONTRACTING HAS A GROUP OF ENGINEERS AND TECHNICIANS WITH EXPERIENCE IN THE IMPLEMENTATION OF ELECTRICAL WORK FOR SMALL AND MEDIUM-SIZED PROJECTS (FOR RESIDENTIAL AND COMMERCIAL BUILDINGS), AND ALWAYS STRIVE TO MAINTAIN OUR REPUTATION THROUGH OUR COMMITMENT TO PROVIDE SERVICES THAT WE CAN ACCOMPLISH AND TRUST IN OUR CADRES AND THE EFFICIENCY OF THEIR WORK IS LIMITLESS.
RAWAJ AL-ITQAN CONTRACTING IS ONE OF THE DISTINGUISHED COMPANIES IN THE FIELD OF CONSTRUCTION WORKS, CONSULTANCY AND PROJECT MANAGEMENT, WHICH SEEKS TO PROVIDE A MODERN AND SOPHISTICATED VISION IN THE FIELD OF CONTRACTING THROUGH THE INTRODUCTION OF NEW SOLUTIONS AND IDEAS FOR A DISTINCTIVE REAL ESTATE PRODUCT IN WHICH THE LATEST TECHNIQUES AND METHODS OF CONSTRUCTION ARE APPLIED AND RELY MAINLY ON EXPERIENCE. THE COMPETENCE OF EXPERIENCED STAFF IN ACHIEVING HIGH DEGREES OF PROFESSIONALISM IN ORDER TO ACHIEVE THE SATISFACTION OF ITS CUSTOMERS, WHICH IS THE FIRST CRITERION FOR THE SUCCESS OF THE COMPANY.
We Study and analyze your project and inform you with its total cost for a Competitive and low price.
Request Cost Analysis!
You can gain a Free Architectural Design from our experienced Engineers when you make a Deal with us
New clients recieve an obligation free consultation and solutions' Ideas.
Make Consultation!
We work in projects all over the KSA
Rawaj Al-Itqan was established in 2012. The establishment has grown steadily with frequently success for the completion of various projects, so that it formed a stable financial base and staff with highly experienced and knowledgeable with the strict requirements for different projects, where the team acquired many years of experience participation in large-scale projects
Rawaj Al-Itqan Est. is committed to providing a High quality level of services and products according to quality standards Rawaj Al-Itqan Est works to satisfy its Customers and meet their needs. Rawaj Al-Itqan Est. firmly believes that the process of development of companies is linked with their human resources. Rawaj Al-Itqan Est. promotes its employees to get the highest positions depending on their qualifications and careful management policy. Rawaj Al-Itqan Est. aims to expand the current activities and opening new activities Rawaj Al-Itqan Est. is doing its utmost to provide a variety of construction services as main contractor or sub-contractor Rawaj Al-Itqan Est. provides solutions to business requirements to be the leading organization in Quality and Punctuality in business delivery and integrity and work ethic to achieve absolute customer satisfacion.s
Rawaj AlItqan Est. looks forward to becoming one of the leading facilities on the level of Construction & Trading Companies in Saudi Arabia, and also seeking to open more fields and activities which are related to the construction sector.
+966 539 1222 03
Khurais Rd, 14231,
طريق خريص، الرياض 14231
PRR4+82 An Nasim Al Gharbi,
Riyadh Saudi Arabia
Phone: +966 539 1222 03


Created by
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins.(WebGL @wikipedia), like Adobe Flash Player.
See the Pen basic 2D WebGL animation example by Iva Popova (@webdesigncourse) on CodePen.
function testPixi() {
let type = "WebGL"
if(!PIXI.utils.isWebGLSupported()){
type = "canvas"
}
PIXI.utils.sayHello(type);
}
testPixi()
PIXI.Application
objects is the start point of our pixi app.
// Create a Pixi Application Object
let app = new PIXI.Application({width: 256, height: 256});
// Let Pixi create a canvas attach it in the HTML document
document.body.appendChild(app.view);
// console.dir(app.view);
stage object
stage object
is the root container for all the visible things in our scene.stage object
is a PIXI.Container
objectIn computer graphics, a sprite is a two-dimensional bitmap that is integrated into a larger scene, most often in a 2D video game.( Sprite @wikipedia )
let catImagePath = "../../assets/images/Siberian_cat_patronus.png";
// create sprite
let sprite = PIXI.Sprite.from(catImagePath);
// add sprite to the stage
app.stage.addChild(sprite);
loader object
loader object
loads an image file and convert it into a texture
PIXI.loader
.add("path/to/image.png")
.load(build);
function build() {
//This callback will run when the loader has finished loading the image
}
let catImagePath = "../../assets/images/Siberian_cat_patronus.png";
app.loader
.add('cat',catImagePath)
.load(build);
function build() {
// Create a new texture
const texture = app.loader.resources.cat.texture;
// create sprite
let sprite = new PIXI.Sprite(texture);
// add the srite to the stage
app.stage.addChild(sprite);
}
ticker object
ticker object
is an animation loop that you can add callbacks to
app.ticker.add(() => {
// each frame we spin the cat around a bit
sprite1.rotation += 0.01;
});
These slides are based on
customised version of
framework


The Mummy: embalmed with a grin
Here's the story: three-thousand odd years ago some Jafar-type priest / sorcerer got caught romancing the pharaoh's wife. Pretty typical stuff, but then the pharaoh turns out have gone to the same school as all the Bond-nemeses, the one where they ask why kill the guy when there are so many other imaginative ways to (not) get rid of him? To give the pharaoh some credit, though, the idea is that the punishment must fit the crime, and the crime here is measured by how fed up with all this the pharaoh is. As bad luck would have it, too, he's seriously fed up, meaning the only punishment that can assuage his anger is to have Imhotep (the Jafar-sorcerer; Arnold Vosloo) granted immortality and then summarily entombed for 'eternity' with some flesh-eating beetles. Of course, eternity only lasts about three-thousand years, or, until French Foreign Legionnaire Rick O'Connell (Brendan Fraser) stumbles upon the burial, Hamunaptra, fabled city of wealth hid midst the shifting sands etc.
Too--and even though The Mummy's set in the early part of the 20th century--O'Connell has evidently not only seen all of the Indiana Joneses, but evidently committed them to memory, right down to proper attire. But he doesn't awaken Imhotep quite yet. That's plot point 1, and anyway, there's still some other characters to introduce, the most important of which is Evelyn, (Rachel Weisz) the fumbling, supermodel librarian. Close behind is her conniving brother Jonathan (John Hannah). Together they hire scrupleless O'Connell to take them to this lost city, which, while not quite as impressive as the Egypt of Stargate, is still pretty cool. Add to it a bevy of special effects miles ahead of any other movie and everything's set up for a walloping good time, the kind of ride the trailer promised.
And the mummy, wow. Gone are the days when his kind shuffled around with rigor mortis of the arms and a confused expression. Now the mummy's serious--fast, strong, gross, a definite improvement. He even has a voice, of the same calibre as, say, Wishmaster's, which was some top-notch low-bass. Unlike Wishmaster, however, The Mummy tries a little too hard to have it all--action, humor, horror. It's as if director Stephen Sommers took all the flashy elements from Indiana Jones and tripled their intensity, with the intention of tripling the Indiana Jones effect. Which would have been fine as concerns the action and the horror--you can never have enough of them; they're what we're paying for here. But the humor, the zingers written in practically every other line. With that kind of stuff, less tends to be more, y'know? Best to use them as a John McClane might, in the Diehard series. Or, perhaps, best to simply not write in a comic character for the kids. Beni (Kevin J. O'Conner, a long way from his Swann-role), the mewling, opportunistic (reluctant) side-kick of evil. He does have a couple of honestly good lines, but they're hardly worth all his throwaway ones. If one character can bring down a movie that otherwise has so much going fot it, then Beni does. If one character can save that same movie, however, look to the Encino Man himself, Brendan Fraser, fighting the mummy tooth and nail, doing his best Harrison Ford, the kind where we know who the real immortal is. Suffice it to say that if you were ever hungry enough for low-rent, high-stakes relic hunting that you tuned into the young Indiana Jones episodes, then The Mummy might be just light-hearted enough to satisfy.
(c) 1999 Stephen Graham Jones, http://www.cinemuck.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


# The Strategies of Subsequence Problem
Translator: sunqiuming526
Author: labuladong
Subsequence Problem is one of the most common algorithm problem, which is not easy to figure out.
First of all, the subsequence problem itself is more difficult than those for substring and subarray, since the former needs to deal with discontinuous sequence, while the latter two are continuous. It is hard enough to simply enumerate the subsequences, let alone solve related algorithm problems.
Moreover, the subsequence problem is likely to involve two strings, such as the “Longest Common Subsequence (LCS)” problem in the previous article. Without some processing experience, it is really not easy to figure out. Therefore, this article will come up with a routine for the subsequence related problems. In fact, there are only two types of strategies. As long as these two problem-solving strategies in your mind, it’s highly possible to ace the problem.
Generally speaking, this kind of question would ask you to find a longest subsequence . Since the shortest subsequence, on the other hand, is just a character, which is not worth asking. Once it comes to subsequences or extreme value problems, it is almost certain that we need to use dynamic programming techniques, and the time complexity is generally O(n^2).
The reason is quite simple. Just think about a string. How many possibilities are there for its subsequence? The answer is at least exponential, right? Thus, we have no reason not to use DP.
Since dynamic programming is used, it is necessary to define the DP array and find the state transition relation. The two strategies we mentioned above are actually the ideas of defining DP arrays. Different problems may require different DP array definitions to solve.
1.1 The first strategy is using a one-dimensional DP array
int n = array.length;
int[] dp = new int[n];
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
dp[i] = max|min(dp[i], dp[j] + ...)
}
}
Take an example we used before – “the Longest Increasing Subsequence (LIS)”. The definition of DP array in this case is as below:
We define dp[i]
as the length of the required subsequence (the longest increasing subsequence) within the subarray array [0..i]
.
Why does the LIS problem require this strategy? The foregoing is clear enough – because this strategy is in line with the induction method, and the state transition relation can be found. We are not going to discuss this in details further.
1.2 The second strategy is using a two-dimensional DP array
int n = arr.length;
int[][] dp = new dp[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i] == arr[j])
dp[i][j] = dp[i][j] + ...
else
dp[i][j] = max|min(...)
}
}
This strategy is used relatively more, especially for the subsequences problems involving two strings / arrays, such as the “Longest Common Subsequence” we mentioned before. The definition of the DP array in this strategy is further divided into two cases: “Only one string is involved” and “Two strings are involved”.
a) In the case where two strings are involved (e.g. LCS), the definition of DP array is as follows:
We define dp[i][j]
as the length of the required subsequence (longest common subsequence) within the subarray arr1[0..i]
and the subarray arr2[0..j]
.
b) In the case where only one string is involved (such as the Longest Palindrome Subsequence (LPS) which will be discussed in this article later), the definition of DP array is as follows:
We define dp[i][j]
as the length of the required subsequence (the longest palindrome subsequence) within the subarray array [i..j]
.
For the first case, you can refer to these two articles: “Editing distance”, “Common Subsequence”.
Now let’s talk about the Longest Palindrome Subsequence (LPS) problem to explain how to solve DP in the second case in details.
We have solve the “Longest Palindrome Substring” problem before. This time, the difficulty is increased by finding the length of the Longest Palindrome Subsequence instead of substring:
In this question, we define dp[i][j]
as the length of the longest palindrome subsequence within the substring s[i..j]
. Please remember this definition so as to understand the algorithm.
Why do we define a two-dimensional DP array like this? We mentioned many times before that finding state transition relation requires inductive thinking. To put it plainly, it is how we derive unknown parts from known results, which makes it easy to generalize and discover the state transition relation.
Specifically, if we want to find dp[i][j]
, suppose you have already got the result of the subproblem dp[i+1][j-1]
(the length of the longest palindrome subsequence in s[i+1..j-1]
), can you find a way to calculate the value of dp[i][j]
(the length of the longest palindrome subsequence in s[i..j]
) ?
The answer is yes! It depends on the characters of s[i]
and s[j]
:
If they are equal, then the longest palindrome subsequence in s[i+1..j-1]
would be these two characters plus the longest palindrome subsequence in s[i..j]
:
If they are not equal, it means that they cannot appear at the same time in the longest palindrome subsequence of s[i..j]
. Therefore, we add them separately to s[i+1..j-1]
to see which substring produces a longer palindrome subsequence:
The code of the above two cases can be written like this:
if (s[i] == s[j])
// These two chars must be in the longest palindrome sequence
dp[i][j] = dp[i + 1][j - 1] + 2;
else
// Choose the longer palindrome subsequence from s[i+1..j] and s[i..j-1]
dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
At this point, the state transition equation is derived. According to the definition of the DP array, what we require is dp[0][n-1]
, which is the length of the longest palindrome subsequence of the entire s
.
Let’s begin with defining the base case. If there is only one character, the longest palindrome subsequence length is 1, which can be represented as dp[i][j] = 1 (i == j)
.
Since i
must be less than or equal to j
, for those locations where i > j
, there are no subsequences at all and thus should be initialized to 0.
In addition, look at the state transition equation we just got. To find dp[i][j]
, you need to know dp[i+1][j-1]
, dp[i+1][j]
and dp[i][j -1]
these three values. And look at the base case we determined, this is how the DP array looks like after being filled:
In order to guarantee that before each calculation of dp[i][j]
, the values in the left, down and right direction have been calculated, we can only traverse it diagonally or reversely:
Here I choose to traverse reversely. The code is as follows:
int longestPalindromeSubseq(string s) {
int n = s.size();
// DP arrays are all initialized to 0
vector<vector<int>> dp(n, vector<int>(n, 0));
// base case
for (int i = 0; i < n; i++)
dp[i][i] = 1;
// Reverse traversal to ensure correct state transition
for (int i = n - 1; i >= 0; i--) {
for (int j = i + 1; j < n; j++) {
// State transition equation
if (s[i] == s[j])
dp[i][j] = dp[i + 1][j - 1] + 2;
else
dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
}
}
// return the length of LPS
return dp[0][n - 1];
}
So far, the longest palindrome subsequence problem has been solved.


| ^a${value} Second(s) Recharge | 0 -3
|
| ${value} Energy Cost | 8 10 11 13 14 16 17 19 20 22 23 25
|
| ${value} Reduced Armor for ${duration} Second(s) | min: [25.0, 39.0, 55.0, 73.0, 93.0, 115.0, 140.0, 168.0, 200.0, 236.0, 277.0, 323.0] Reduced Armor for min: 5.0 Second(s)
|
| ${value}% reduced Defensive Ability over ${duration} Second(s) | min: [7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0]% reduced Defensive Ability over min: 5.0 Second(s)
|
| +${value}% Physical Damage | 14 20 26 32 38 44 50 56 62 68 74 80
|
| MaxLevel | 8
|
| UltimateLevel | 12
|


Matrix
Datapoints, Description, Resources and History, Coin Specs, Blockchain, Development, Trading, Supply and Distribution, Economics, Privacy, Features, Scaling, Wallets, Network and Masternodes, Community
2503, Github, Provided by https:// api. coinmarketcap. com/ v1/...


Week 5 Technical Post -
Classes
Classes are a powerful tool- without them, the idea of object oriented programming really falls apart. You can create classes to help encapsulate the code; say if you knew specifically of an a group of "objects" or "instances" that always shared the same attributes, that would be great for a class. We could set up a Basketball Team Class, where every instance of that class can be a team with the # of players, the names of the players, the starting roster, etc. We can go ahead and try to create one now- and make a couple instances of the class.
class BasketballTeam
attr_reader :pg
attr_reader :sg
attr_reader :sf
attr_reader :pf
attr_reader :c
attr_reader :coach
def initialize(pg, sg, sf, pf, c, coach)
@pg = pg
@sg = sg
@sf = sf
@pf = pf
@c = c
@coach = coach
end
def print_roster
puts "Point Guard - #{@pg}"
puts "Shooting Guard - #{@sg}"
puts "Small Forward - #{@sf}"
puts "Power Forward - #{@pf}"
puts "Center - #{@c}"
end
end
newYorkKnicks = BasketballTeam.new("Raymond Felton", "JR SMith", "Carmelo Anthony", "Amare Stoudemire", "Tyson Chandler," "Mike Woodson")
newJerseyNets = BasketballTeam.new("", "JR SMith", "Carmelo Anthony", "Amare Stoudemire", "Tyson Chandler," "Mike Woodson")
So here, I've created two instances of Basketball teams, one for the Knicks, and one for the Nets. Both have print_roster as a method, where if you write newYorkKnicks.print_roster or newJerseyNets.print_roster, it'll print out the roster for each team. You could add more methods related to the class, or add more instances of "teams". I've also allowed access to each position, so that, for example, newYorkKnicks.sf would output "Carmelo Anthony".
As you can see, whenever you know there's a bunch of "objects" that need the same methods/attributes, like sports teams, or restaurants, or say, types of buildings, or computers, you could create classes to encapsulate all of them.


IT Factor
Home
Clothings
Belts
Watches
Ladies Purse
Dropdown
Action
Another action
Something else here
Nav header
Separated link
One more separated link
Contact Us
Previous
Next
Clothings
Belts
Watches
Ladies Purse


This extension overlays combining or floating accents over the Current Glyph, based on the name and position of the anchors. As you move an anchor, the accent visualization will move with it. This extension is tailored very closely to my naming habits and workflow, so your mileage my vary. The goal is to store all the knowledge about accents in the base glyphs, so I have to do as little fiddling as possible in the accent glyphs.
I am working on an upgrade of this tool that will also build and update the accent glyphs that it visualizes.
If your accent glyphs are already built, the extension will allow you to compare your existing composite glyph to what would be generated using the anchor positioning.
The interface gives you basic options for fill, stroke, and color. It also allows you to toggle the left, center, and right vertical guides. If you select one or more accents in the list, only those accents will be visualized in the Glyph Window. The reset button will return the glyph to its default view.
By default, the extension looks for anchors named "top" and "bottom", corresponding to "_top" and "_bottom" anchors in the combining/floating accents themselves. Double clicking on an accent in the list will create a new anchor specifically for that diacritic (for example, "top_acutecmb"), which is helpful with ogoneks and carons that don't sit with other accents.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Shorten the Time Between
Data Collection and Decision Making
DataWinners is the data collection service for development professionals like you. Organizations all over the world use DataWinners to transform paper forms into digital questionnaires. Staff submit data in seconds using any combination of SMS, Smartphone and Web with the equipment they already have.
Features
Collect Unlimited Data
from spiraling out of control. Collect unlimited data for one low monthly
fee - as many users, questionnaires, submissions and Data Senders as
you need.
Even Offline
Local Telephone Number
Questionnaire Builder
Places and Things
Back-and-Forth
Data Visualization Tools
data and export to Excel in a single click. Instantly share your data
across the world.
Try it free Sign up for your free account


Menu
Home
Meetings Created
Meetings Joined
Friends
Profile
List of Meetings You Have Joined
{{#each meetingsJoined}}
You have joined the meeting: {{meetingName}} at {{time}}
{{/each}}


Ruby Syntax¶ ↑
The Ruby syntax is large and is split up into the following sections:
- Literals
-
Numbers, Strings, Arrays, Hashes, etc.
- Assignment
-
Assignment and variables
- Control Expressions
-
if
,unless
,while
,until
,for
,break
,next
,redo
- Methods
-
Method and method argument syntax
- Calling Methods
-
How to call a method (or send a message to a method)
- Modules and Classes
-
Creating modules and classes including inheritance
- Exceptions
-
Exception handling syntax
- Precedence
-
Precedence of ruby operators
- Refinements
-
Use and behavior of the experimental refinements feature
- Miscellaneous
-
alias
,undef
,BEGIN
,END


Automation
This test shows 3 waveforms:
- A sine wave of 220Hz in Black
- A sine wave of 220Hz frequency modulated by a sine LFO of 19.2Hz in Grey
- A frequency modulated sine wave of 220Hz processed with audioLib.Capper of LFO controlled capping in Red
Automation offers a simple interface for automating parameters in a modular way.


Google Stadia app is now available on iPhone
by Ben SchoonGoogle Stadia will be available starting next week and now, the official app has just arrived on iPhone. However, there’s a catch to its availability.
Available now on the App Store, the Google Stadia app for iOS is designed not to play games, but instead for managing your library on the go. For most users, this will come in handy most often for playing games while on a Chromecast.
For the time being, playing Stadia games on smartphones is limited only to Google’s own Pixel smartphones. Specifically, Pixel 2, 3, 3a, and Pixel 4 as well. It’s expected that Stadia will eventually work on other devices, but we don’t know if that will include the iPhone or iPad anytime soon though this app.
Notably, the app arrived on the Play Store for Android last week as well.
Once you get your Stadia invite code alongside a Founder’s or Premiere Edition kit you’ll be able to unlock the Stadia app for iPhone. Once the service fully debuts we’ll have a better idea of what the iPhone app on iOS can actually do, but at least you can download it now.
The Google Stadia app for iPhone is live now on the App Store.
More on Google Stadia:
- Google Stadia app is now live in the Play Store
- Which Google Stadia launch titles will you purchase? [Poll]
- Google announces Stadia’s launch day game lineup and what’s coming in 2019
FTC: We use income earning auto affiliate links. More.


One of our internal apps at Booking.com audits changes to our tables on various clusters. We used to use tungsten replicator, but have since migrated onto our own solution.
We have a binlog reader (uses open-replicator) running on a slave. It expects Row Based Replication, hence our slave runs with log-slave-updates, binlog-format='ROW', to translate from the master's Statement Based Replication. The binlog reader reads what it needs to read, audits what it needs to audit, and we're happy.
However what happens if that slave dies?
In such case we need to be able to point our binlog reader to another slave, and it needs to be able to pick up auditing from the same point.
This sounds an awful lot like slave repointing in case of master/intermediate master failure, and indeed the solutions are similar. However our binlog reader is not a real MySQL server and does not understands replication. It does not really replicate, it just parses binary logs.
We're also not using GTID. But we are using Pseudo-GTID. As it turns out, the failover solution is already built in by orchestrator, and this is how it goes:
Normal execution
Our binlog app reads entries from the binary log. Some are of interest for auditing purposes, some are not. An occasional Pseudo-GTID entry is found, and is being stored to ZooKeeper tagged as "last seen and processed Pseudo-GTID".
Upon slave failure
We recognize the death of a slave; we have other slaves in the pool; we pick another. Now we need to find the coordinates from which to carry on.
We read our "last seen and processed Pseudo-GTID". Say it reads:
drop view if exists `meta`.`_pseudo_gtid_hint__asc:56373F17:00000000012B1C8B:50EC77A1`
. We now issue:
$ orchestrator -c find-binlog-entry -i new.slave.fqdn.com --pattern='drop view if exists `meta`.`_pseudo_gtid_hint__asc:56373F17:00000000012B1C8B:50EC77A1`'
The output of such command are the binlog coordinates of that same entry as found in the new slave's binlogs:
binlog.000148:43664433
Pseudo-GTID entries are only injected once every few seconds (5 in our case). Either:
- We are OK to reprocess up to 5 seconds worth of data (and indeed we are, our mechanism is such that this merely overwrites our previous audit, no corruption happens)
- Or our binlog reader also keeps track of the number of events since the last processed Pseudo-GTID entry, skipping the same amount of events after failing over.
Planned failover
In case we plan to repoint our binlog reader to another slave, we can further use orchestrator's power in making an exact correlation between the binlog positions of two slaves. This has always been within its power, but only recently exposed as it own command. We can, at any stage:
$ sudo orchestrator -c correlate-binlog-pos -i current.instance.fqdn.com --binlog=binlog.002011:72656109 -d some.other.instance.fqdn.com
The output is the binlog coordinates in some.other.instance.fqdn.com that exactly correlate with binlog.002011:72656109 in current.instance.fqdn.com
The case of failure of the binlog reader itself is also handled, but is not the subject of this blog post.
comments powered by Disqus


{% include backtotop.html %} © {{ site.time | date: '%Y' }} {{ site.owner.name }} - Computational Geomechanics Research Group.


Our visualizations show that there is a strong relationship between income level and total CO2 emissions. We were most surprised to find that some of the smallest countries were the highest CO2 emission producers per capita. This may be explained by the industries that are dominant in those countries, such as oil production and factory work. It is also important to note that data was not available for all countries, and that these visualizations cover a brief period of time. Climate change patterns can be better analyzed and understood over longer periods of times.
It is also important to note that the Google search trends data was only available using English terms. It is very possible that the overall popularity of search terms related to the environment or climate change are more popular than our data shows in other languages and in other countries.


Ethics charges filed against suspended Ohio county sheriff
by EndPlayCOLUMBUS, Ohio (AP) - A state ethics charge has been filed against an Ohio county sheriff already facing multiple felonies.
The Chillicothe Gazette reports Pike County Sheriff Charles Reader has pleaded not guilty to a misdemeanor count of making a false statement to the Ohio Ethics Commission.
He is accused of failing to report $7,500 in loans and gifts on a financial disclosure statement.
Reader said in a statement that "politics do not belong in law enforcement." He announced Friday he's planning to run as an independent candidate for sheriff next year.
Reader, who is suspended, was indicted in Pike County in June on charges that include theft in office and tampering with evidence after authorities investigated allegations that he stole confiscated drug money.
Eight family members were slain in Pike County in 2016.
___
Information from: Chillicothe Gazette, http://www.chillicothegazette.com


Example: effects
This sample enables effects to expand/Collapse and sets the
autoCollapse
option.
-
-
Skin:
- item1 with key and tooltip
- item2
- Folder with some children
- Sub-item 3.1
- Sub-item 3.1.1
- Sub-item 3.1.2
- Sub-item 3.2
- Sub-item 3.2.1
- Sub-item 3.2.2
- Document with some children (expanded on init)
- Sub-item 4.1 (active and focus on init)
- Sub-item 4.1.1
- Sub-item 4.1.2
- Sub-item 4.2
- Sub-item 4.2.1
- Sub-item 4.2.2
Active node: -
jquery.dynatree.js project home
Link to this page
Example Browser
View source code


|
|
|
|
Because real-time
programming requires a time-predictable standard library.
|
|
"The ability
to simplify means to eliminate the unnecessary so that the
necessary may speak." Hans
Hofmann, Introduction to the
Bootstrap, 1993
|
|
|
|
|
Javolution real-time goals are simple: To make your application faster and more time predictable!
- High-Performance - Hardware accelerated computing (GPUs) with
ComputeContext.
- Minimalistic - Collection classes,
supporting custom views,
closure-based iterations, map-reduce paradigm, parallel computations, etc.
- Optimized - To reduce the worst case execution time documented through
annotations.
- Innovative - Fractal-based structures to maintain
high-performance regardless of the size of the data.
- Multi-Cores Ready - Most parallelizable
classes (including collections) are either mutex-free (atomic)
or using extremely short locking time (shared).
- OSGi Compliant - Run as a bundle or as a standard library. OSGi
contexts
allow cross cutting concerns (concurrency, logging, security, ...) to be addressed at run-time
through OSGi published services without polluting the application code
(Separation of Concerns).
- Interoperable - Struct and
Union base classes for
direct interfacing with native applications. Development of the Javolution C++ library
to mirror its Java counterpart and makes it easy to port any Java application
to C++ for native compilation (maven based) or to write Java-Like code directly in C++
(more at Javolution C++ Overview)).
- Simple - You don't need to know the hundreds of new Java 8 util.* classes,
most can be built from scratch by chaining Javolution
collections or
maps.
No need to worry about configuration,
immutability or code bloating !
- Free - Permission to use, copy, modify, and distribute
this software is freely granted, provided that copyright notices are preserved
(BSD License).
|
|
|
|
|
- Javolution classes
are simple to use, even simpler than most JDK classes.
You don't need to guess the capacity of a
TextBuilder,
FastTable or a
FastMap, their
size expand gently without ever incurring expensive resize/copy or rehash
operations (unlike
StringBuilder , ArrayList or HashMap ).
- Developers may achieve true separation of
concerns (e.g. logging, configuration) through Context Programming
or by using classes such as Configurable.
- Javolution classes
are fast, very fast (e.g. Text
insertion/deletion in
O[Log(n)] instead of O[n] for standard
StringBuffer/StringBuilder ).
- All Javolution
classes are hard real-time compliant with
documented real-time
behavior.
- Javolution makes it easy for
concurrent algorithms
to take advantage of multi-processors systems.
- Javolution's real-time collection classes
(map,
table and
set)
can be used in place of most standard collection classes and provide
numerous additional capabilities.
- Any Java class can be
serialized/deserialized in
XML format in any
form you may want, also no need to implement Serializable or for the
platform to support serialization
- Javolution
provides Struct and
Union classes for
direct interoperability with C/C++ applications.
- Javolution is fully integrated with OSGi
but still can be used as a standard Java library.
- Javolution can be either a Pure
Java Solution or a Pure Native Solution (C++ mirror),
small (less than 400 KBytes jar) and fully produced through maven (Java and C++).
|
The simplest way to use Javolution is through Maven
with the following dependency in your POM.xml
<dependency>
<groupId>org.javolution</groupId>
<artifactId>javolution</artifactId>
<version>7.0.0</version>
</dependency>
The Javolution project is currently being migrated to GitHub
in the form of three sub-projects (Java, C++ mirror and C++ Test/Benchmark). The C++ mirror library is a static library
which can be install/deployed
using the Maven Native Plugin
(Visual C++ and Linux platform supported).
|
The standard Java distribution is an OSGi bundle
which can also be used as standalone Java library. The C++ distribution includes a port of standard Java classes, Javolution
classes, OSGi and JUnit. Below
is the table of correspondance between the Java packages and Javolution C++ namespaces.
|
|
Java Packages
|
C++ Namespace
|
C++ Port Comments/Limitations |
|
java.lang
|
java::lang |
Includes Thread, Class<T>, Enum<T> etc.
|
|
org.javolution
|
org::javolution |
Holds Javolution classes: FastMap<T>, FastTable<T>, FastSet<T> etc |
|
org.osgi
|
org::osgi |
OSGi Support.
|
|
junit.framework
|
junit::framework |
JUnit 3.8 port (public domain) |
Developers may download
the cpp-test project which illustrates the use of OSGi and JUnit in C++. |
Runtime
Environment: Any (Android, J2SE, Native Windows/Linux)
Compilers: All (including Visual C++, GCC)
Build tool: Maven
OpenCL Binding: JavaCL
Issues Tracking: GitHub Issue
Style Guide:
Coding Standard Addendum.
Preferred Environment:
Eclipse (Import Project from Git, e.g.
https://github.com/javolution/javolution ).
|
|
|
|
|
Articles related to
Javolution (previously known as: J.A.D.E. Java
Addition to Default Environment):
Known projects using Javolution:
- Resoa - Open Source project for SOA & Cloud computing
-
JScience - Java Tools and Libraries for the Advancement of Sciences.
- Glimworm - I.T. Firefly CMS Product
- ALMWorks - Bug-tracking systems, Deskzilla and JIRA Client.
- Open For Business - Open source enterprise automation software project.
- RADlab - Similator for radiation detection and measurement experiments.
- jgame - Real-time and embedded gaming API.
- MathEclipse - A symbolic mathematics engine written in Java.
- JRoboOp - Java package for robotics simulation with visualization of a 3D robot model.
- JMulTi - Time Series Analysis with Java.
- JStatCom - A Software Framework for Data Based Analysis.
- OVal - Object Validation Framework.
Known projects having a C++ port of their Java library or specifications based on Javolution:
- OSGi - Included in Javolution core distribution
- JUnit - Included in Javolution core distribution
(Let us know if your project uses Javolution
and you would like it to be listed here)
Javolution's users can also show their
support with the "Powered By Javolution" button:
(e.g. ); this is of course
purely optional. |
|
|
|
|
- April 1st, 2017: Javolution (Java) 7.0
New Fractal collections and Trie-Based maps.
- March 19, 2017: Javolution C++ 7.0
Our initial benchmark
shows a 30x speed improvement for "value-type" objects (immutable such as Double,
Integer, Complex numbers).
We are now on GitHub
- December 22nd, 2013: Javolution 6.1
Support for GPU accelerated high precisions scientific computing algorithms/applications
(ComputeContext).
Implementation based on JavaCL
(if random crash on Linux, follow this
link).
- August 18, 2013: Javolution 6.0
Includes fractal classes, Java 8 support (collections), real-time annotations,
OSGi pluggable contexts, perfometer, mirror C++ library, etc.
Most backlog issues have been fixed !
- May 6, 2007: Javolution 5.0
Deprecated release.
- September 18, 2006: Javolution 4.0
Classes renamed as per coding standard (e.g. XmlFormat => XMLFormat)
- March 3, 2005: Javolution 3.0
Introduction to context programming.
- October 4, 2004: Javolution 1.0
Spin-off of Java Addition
to Default Environment [1.0.0]
|
|
|


fbxfire
dataset, fixing erroneous values due to a bug in upstream data processing.obs = TRUE
to jfsp_plot
for adding horizontal line overlay for mean historical observed values pertaining to BA SD and management cost plots.jfsp_plot
to offer a cdba
plot option.labels
and shortDescription
attributes to variables in data frames for use in external data set documentation.jfsp_plot
to offer optional argument to triplicate annual historical data for inter-annual variability in burn area and prepend to each projected RCP series.pt_size
argument for controlling point size in applicable plot types.n
for moving average plot applicable to all versions of plot. Now defaults to n = 30
.firesize
data set.jfsp_plot
type options.jfsp_plot
to handle RCP marginalization and Treatment dropping via by_rcp
and by_tx
.jfsp_plot
, making data sets implicit so that specifying them via argument is not necessary. Reduced, reordered formal arguments.fmoba
data for applicable plots using alaska = TRUE
.jfsp_plot
function. It now handles plotting in R and saving plots to disk with an optional file
argument. Some minimal handling for showtext
issues when saving high dpi plots was also added.


// SPDX-License-Identifier: MIT
pragma solidity >=0.7.4;
/**
@author Tellor Inc.
@title TellorStorage
@dev Contains all the variables/structs used by Tellor
*/
contract TellorStorage {
//Internal struct for use in proof-of-work submission
struct Details {
uint256 value;
address miner;
}
struct Dispute {
bytes32 hash; //unique hash of dispute: keccak256(_miner,_requestId,_timestamp)
int256 tally; //current tally of votes for - against measure
bool executed; //is the dispute settled
bool disputeVotePassed; //did the vote pass?
bool isPropFork; //true for fork proposal NEW
address reportedMiner; //miner who submitted the 'bad value' will get disputeFee if dispute vote fails
address reportingParty; //miner reporting the 'bad value'-pay disputeFee will get reportedMiner's stake if dispute vote passes
address proposedForkAddress; //new fork address (if fork proposal)
mapping(bytes32 => uint256) disputeUintVars;
mapping(address => bool) voted; //mapping of address to whether or not they voted
}
struct StakeInfo {
uint256 currentStatus; //0-not Staked, 1=Staked, 2=LockedForWithdraw 3= OnDispute 4=ReadyForUnlocking 5=Unlocked
uint256 startDate; //stake start date
}
//Internal struct to allow balances to be queried by blocknumber for voting purposes
struct Checkpoint {
uint128 fromBlock; // fromBlock is the block number that the value was generated from
uint128 value; // value is the amount of tokens at a specific block number
}
struct Request {
uint256[] requestTimestamps; //array of all newValueTimestamps requested
mapping(bytes32 => uint256) apiUintVars;
mapping(uint256 => uint256) minedBlockNum; //[apiId][minedTimestamp]=>block.number
//This the time series of finalValues stored by the contract where uint UNIX timestamp is mapped to value
mapping(uint256 => uint256) finalValues;
mapping(uint256 => bool) inDispute; //checks if API id is in dispute or finalized.
mapping(uint256 => address[5]) minersByValue;
mapping(uint256 => uint256[5]) valuesByTimestamp;
}
uint256[51] requestQ; //uint50 array of the top50 requests by payment amount
uint256[] public newValueTimestamps; //array of all timestamps requested
//This is a boolean that tells you if a given challenge has been completed by a given miner
mapping(uint256 => uint256) requestIdByTimestamp; //minedTimestamp to apiId
mapping(uint256 => uint256) requestIdByRequestQIndex; //link from payoutPoolIndex (position in payout pool array) to apiId
mapping(uint256 => Dispute) public disputesById; //disputeId=> Dispute details
mapping(bytes32 => uint256) public requestIdByQueryHash; // api bytes32 gets an id = to count of requests array
mapping(bytes32 => uint256) public disputeIdByDisputeHash; //maps a hash to an ID for each dispute
mapping(bytes32 => mapping(address => bool)) public minersByChallenge;
Details[5] public currentMiners; //This struct is for organizing the five mined values to find the median
mapping(address => StakeInfo) stakerDetails; //mapping from a persons address to their staking info
mapping(uint256 => Request) requestDetails;
mapping(bytes32 => uint256) public uints;
mapping(bytes32 => address) public addresses;
mapping(bytes32 => bytes32) public bytesVars;
//ERC20 storage
mapping(address => Checkpoint[]) public balances;
mapping(address => mapping(address => uint256)) public _allowances;
//Migration storage
mapping(address => bool) public migrated;
}
|