u-bg-primary
u-bg-primary
u-bg-white
u-bg-white
u-bg-haze-light
u-bg-haze-light
u-bg-haze-dark
u-bg-haze-dark
u-bg-dark
u-bg-dark
u-bg-gradient-light
u-bg-gradient-light
u-bg-gradient-dark
u-bg-gradient-dark
u-bg-cover


Please check all cached static files in Chrome Developer Tools. Service worker only worked for localhost and HTTPS, gogo. Please read README.md to get started.


Hi, there! I'm Shelly Tang, a web developer with experience building server-side and client-side applications using modern JavaScript frameworks and libraries. Prior to web development, I worked in project management and operations.
I'm passionate about improving user experience and innovation through collaboration. The opportunity to work with others and build something great is a process that continues to draw me in and motivates me as a developer.
If I'm not coding, you'll likely find me checking out a new restaurant, hiking/camping/kayaking in Olympic National Park, or exploring Seattle.
A simple, React app that allows users to search for GIFs. Styled with a 90's theme, of course.
Utilized React, Giphy API, and Sass/SCSS.
View in GithubDigital scrapbook that allows users to create, store, and view memories based on location.
Utilized AngularJS, Node.js, Express, MongoDB, AWS, Webpack, Karma, Mocha/Chai, Angular UI Bootstrap, Angular Google Maps, MVC architecture.
View in GithubRESTful API that provides a platform for users to share and collaborate on short stories. API was built in collaboration with an iOS team that completed the front-end mobile application.
Utilized Node.js, Express, MongoDB, Mocha/Chai.
View in GithubResponsive, single page application that integrates with Seattle City Data and Google Maps API to show health inspection ratings for Seattle restaurants.
Utilized Express, PostgreSQL, Page JS, HTML, CSS, jQuery, JavaScript.
View in Github


A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous sequence of RDDs (of the same type) representing a continuous stream of data (see org.apache.spark.RDD for more details on RDDs).
A StreamingContext is the main entry point for Spark Streaming functionality.
This is a simple class that represents an absolute instant of time.
Helper object that creates instance of Duration representing a given number of milliseconds.
Helper object that creates instance of Duration representing a given number of minutes.
Helper object that creates instance of Duration representing a given number of seconds.


--- title: Triple Point Based Parent Phase Reconstruction sidebar: documentation_sidebar permalink: TriplePointBasedReconstruction.html folder: documentation toc: false ---
In this section we discuss triple point based parent grain reconstruction at the example of a titanium alloy. Lets start by importing a sample data set
{% highlight matlab %} mtexdata alphaBetaTitanium % and plot the alpha phase as an inverse pole figure map plot(ebsd('Ti (alpha)'),ebsd('Ti (alpha)').orientations,'figSize','large') {% endhighlight %} {% highlight plaintext %} ebsd = EBSD Phase Orientations Mineral Color Symmetry Crystal reference frame 0 10449 (5.3%) notIndexed 1 437 (0.22%) Ti (BETA) LightSkyBlue 432 2 185722 (94%) Ti (alpha) DarkSeaGreen 622 X||a*, Y||b, Z||c* Properties: bands, bc, bs, error, mad, reliabilityindex, x, y Scan unit : um {% endhighlight %}The data set contains 99.8 percent alpha titanium and 0.2 percent beta titanium. Our goal is to reconstuct the original beta phase. The original grain structure appears almost visible for human eyes. Our computations will be based on the Burgers orientation relationship
{% highlight matlab %} beta2alpha = orientation.Burgers(ebsd('Ti (beta)').CS,ebsd('Ti (alpha)').CS) {% endhighlight %} {% highlight plaintext %} beta2alpha = misorientation (Ti (BETA) → Ti (alpha)) (110) || (0001) [1-11] || [-2110] {% endhighlight %}that alligns (110) plane of the beta phase with the (0001) plane of the alpha phase and the [1-11] direction of the beta phase with the [2110] direction of the alpha phase.
Note that all MTEX functions for parent grain reconstruction expect the orientation relationship as parent to child and not as child to parent.
Grain reconstruction is guided in MTEX by a variable of type parentGrainReconstructor
. During the reconstruction process this class keeps track about the relationship between the measured child grains and the recovered parent grains. In order to set this variable up we first need to compute the initital child grains from out EBSD data set.
As our reconstruction will be based on triple junctions we compute the child grains using the option removeQuadruplePoints
which turns all quadruple junctions into 2 triple junctions. Furthermore, we choose a very small threshold of 1.5 degree for the identification of grain boundaries to avoid alpha orientations that belong to different beta grains get merged into the same alpha grain.
Now we are ready to set up the parent grain reconstruction job.
{% highlight matlab %} job = parentGrainReconstructor(ebsd, grains); % set the parent to child orientation relationship job.p2c = beta2alpha {% endhighlight %} {% highlight plaintext %} job = parentGrainReconstructor phase mineral symmetry grains area reconstructed parent Ti (BETA) 432 430 0.23% 0% child Ti (alpha) 622 49194 100% OR: (110) || (0001) [1-11] || [-2110] p2c fit: 0.83°, 1.2°, 1.6°, 3.2° (quintiles) c2c fit: 0.69°, 0.97°, 1.3°, 1.7° (quintiles) {% endhighlight %}In present datas set we have very little and unreliable parent measurements. Therefore, we use triple junctions as germ cells for the parent parent grains. In a first step we identify triple junctions that have misorientations that are compatible with a common parent orientation using the command calcTPVotes
. The option 'minFit'
tells the MTEX that the only those triple junctions are considered where the fit to the common parent orientation does not exceed 2.5 degree.
The above command does not only compute the best fitting but also the second best fitting parent orientation. This allows us to ignore ambigues triple points which may vote equally well for different parent orientations. In the above command we did this by the option 'maxFit'
which tells MTEX to ignore all triple points where the fit to the second best parent orientation is below 5 degree.
From all remaining triple points the command calcTPVotes
compute a list of votes stored in job.votes
that contain for each child grain the most likely parent orientation and a corresponding probability job.votes.prob
. We may visualize this probability for each grain
We observe that for most of the grains the probability is above 70 percent. We may use this percentage as threshold to decide which child grains we turn into parent grains. This can be done by the command command calcParentFromVote
We observe that after this step more then 66 percent of the grains became parent grains. Lets visualize these reconstructed beta grains
{% highlight matlab %} % define a color key ipfKey = ipfColorKey(ebsd('Ti (Beta)')); ipfKey.inversePoleFigureDirection = vector3d.Y; % plot the result color = ipfKey.orientation2color(job.parentGrains.meanOrientation); plot(job.parentGrains, color, 'figSize', 'large') {% endhighlight %}Next we may grow the reconstructed parent grains into the regions of the remaining child grains. To this end we use the command calcGBVotes
with the option 'p2c'
to compute votes from parent to child grain boundaries. Next we use the exact same command calcParentFromVote
to recover parent orientations from the votes. As threshold for the growing the parent grains into the child grains we use 2.5 degree, 5 degree and 7.5 degree. This can be easily accomblished by the following small loop.
After the previous steps we are left with many very similar parent grains. In order to merge all similarly oriented grains into large parent grains one can use the command mergeSimilar
. It takes as an option the threshold below which two parent grains should be considered a a single grain.
We may be still a bit unsatisfied with the result as the large parent grains contain a lot of poorly indexed inclusions where we failed to assign a parent orientation. We use the command mergeInclusions
to merge all inclusions that have fever pixels then a certain threshold into the surrounding parent grains.
Until now we have only recovered the beta orientations as the mean orientations of the beta grains. In this section we want to set up the EBSD variable parentEBSD
to contain for each pixel a reconstruction of the parent phase orientation. This is done by the command calcParentEBSD
The recovered EBSD variable parentEBSD
contains a measure parentEBSD.fit
for the corespondence between the beta orientation reconstructed for a single pixel and the beta orientation of the grain. Lets visualize this
For comparison the map with original alpha phase and on top the recovered beta grain boundaries
{% highlight matlab %} plot(ebsd('Ti (Alpha)'),ebsd('Ti (Alpha)').orientations,'figSize','large') hold on parentGrains = smooth(job.grains,5); plot(parentGrains.boundary,'lineWidth',3) hold off {% endhighlight %}


CROSS MY HEART A film review by Ben Hoffman Copyright 1997 Ben Hoffman
A simple story about innocence trying to cope with the pain and uncertainties in an adult world and how other innocents try to help their friend. This gentle film is about Martin, a young boy, perhaps 8 or 9 years old, who lives with his mother. He does not know who his father is; his mother promises one day to tell him.
In school Martin is frequently in little troubles earning visits to the principal's office. And so when his mother dies, he doesn't tell anyone for three days. He's heard about orphanages and is not about to take a chance.
A couple of schoolmates come calling at his home and discover the reason he has not been to school these last several days. In order to keep it a secret they decide to get a coffin, or a long box, and bury the mother. Cross My Heart apparently refers to what each child promises as more and more are let in on the secret because the body is too heavy and where does one get a long box? How about the antique grandfather clock of a friend?
Odd behavior and undone lessons lead to Martin being told to have his mother sign a note saying she is aware there is a school problem. When that is overcome (one of the girls forges the signature), he is asked to bring his mother to school. All kinds of subterfuges are used by the children (such as a false bomb scare) to keep the secret from coming out.
A sad, sensitive film. (Not to be confused with the poor 1987 film of the same name that starred Martin Short and Annette O'Toole.)
In French with English subtitles.
Directed by Jacques Fansten
3.5 Bytes
4 bytes = Superb 3 bytes = Too good to miss 2 bytes = Average 1 byte = Save your money
Ben Hoffman
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


Chaos Knight
Tips
- Spread your spells out. If you land a close range stun, don't just pull the trigger on Rift.
- This is fairly common knowledge, but please turn on your Armlet before you Phantasm. Congratulations,
you got super beefy illusions with no HP drain. This is also true pre-Manta or pre-Illusion rune for
every hero.
- You can use the cast animation on Phantasm to juke projectiles.
- If you're about to die, take a risk and send one of your illusions where you wanted to go while you sit
still. Most people will assume you have garbage micro and continue pursuing whichever one is moving.
- You don't really need to level Phantasm at level 6. Besides the fact that it costs nearly all your mana,
you can't really get kills with it until your other spells are higher level.
- I don't often recommend starting items, but CK is an excellent Mango carrier.
Counters
- Reality Rift and Chaos Bolt have amusingly long cast times. If you're getting chased by CK, use tree fog
liberally to juke his spells.
- Enchantress is a notable CK counter since Untouchable makes her very difficult to kill by CK alone and she
can easily steal Phantasm illusions.
- Lion is another notable CK counter since he can quickly burn off Phantasm illusions with Hex and Mana Drain.


2016
December, 2016
The Underground Railroad (National Book Award Winner) (Oprah's Book Club): A Novel
Colson Whitehead
November, 2016
The Woman in Cabin 10
Ruth Ware
October, 2016
The Bridge Ladies: A Memoir
Betsy Lerner
September, 2016
Fates and Furies: A Novel
Lauren Groff
August, 2016
The Bridal Chair: A Novel
Gloria Goldreich
June, 2016
The Boys in the Boat: Nine Americans and Their Epic Quest for Gold at the 1936 Berlin Olympics
Daniel James Brown
May, 2016
The Nightingale
Kristin Hannah
April, 2016
Orphan #8: A Novel
Kim van Alkemade
March, 2016
The Japanese Lover: A Novel
Isabel Allende
February, 2016
The Secret Chord: A Novel
Geraldine Brooks
January, 2016
The Things They Carried
Tim O'Brien


| DOSE: |
8 hits |
oral |
LSD |
(blotter / tab) |
Setting: my familiar, comfortable home, with 2 good, true friends.
Previous dosing interval: Three weeks
Dose: 4 Jesus Christ and 4 Hoffman Bicycle Trip. I was told the Jesus Christ was a conservative (minimum) but amazing 150ug each. Hoffmann’s also excellent.
[Erowid Note: Claims of measured microgram dosages for LSD are usually unsupported. Quantitative measurements for LSD are very difficult to do and cannot be done casually. Without further detailed information about how the measurements were derived, it is reasonable to assume that most statements of microgram dosages of LSD on blotter or in microdots are either misinformed or overstated.]
Quality: Jesus 10 out of 10, Hoffmann 9.25 out of 10
So, I'll try as best I can to explain something as ethereal as was presented to me. My friends were dosing, and I was the trip-sitting since one guy was taking enough for five people, and the other enough for three. Here is the report that my friend gave me a while after the experience:
'We were tripping together, when I felt a surge of energy unlike any other.   'Relax, be the energy, let the river take you...' I was getting these huge rotating, overlapping and flapping arches type visuals, but the auditory vids were just as amazing, as the vids made 'bionic man' type sounds to them as the were going through infinity. As this is going, the experience is becoming more tense, I can feel every cell in my body flying off in a different direction. I'm getting stretched from everywhere so tightly, and the energy vids are showing what I'm feeling, that finally I feel free of my body, and the energy turns to Pure Light. Pure, unadulterated ecstasy. Casually the Light subsides... 'Now that I'm through, I wonder what's next, or is this acid out of gas?'
'LOL this is some SUPER high-octane dose, mate, I haven’t even started yet...' True enough, I surf through the universe on giant waves of energy, until I am taken to another planet. This planet is so neat, all the aliens are so different, yet the landscape is similar to ours. I stroll around (feels like a stroll, but I'm flying) this planet for a while and observe. Again though, I feel that fission sensation, and the Winds on my cells pulling me Everywhere again. It was building in waves of ecstasy, like an orgasm, until again, I diffuse into the Light... Bathing in the sun... Orgasmic ecstasy...
I flash out of the Light, and see the universe folding over itself, contorting itself, bending, the power of the energy doing this was Omnipotent. 'I' was less that a particle of dust in a camels nose. I hold on to the only thread of words I could force myself to remember: 'You took acid, don't be scared, when its time, you will be back' I am transported to a new planet. This planet feels much more strange, more alien. And sure enough, these guys were shape-shifting. It's really hard for me to remember/express even 1% of the situation...  Not human shape, but fluid, liquid, sinuous electric shapes. They definitely give me the sense that I don't belong there. I will myself away from there, and proceed to fly around the planet, just looking down from away. I hoped the Winds would come take me away from this place... But I didn't wish where to else to take me...
Again, for the third time, the now familiar cellular-explosion was imminent. I get pulled more and more, till again, the beautiful Light, or God as I came to understand (but this is a whole new story). More beautiful ecstasy... For me its easy to be this calm on these VR environments. People only have bad trips went they fight the acid, or don't accept what they see. Your on a train. It won't stop until it reaches the station, so relax and enjoy the ride.
This ride took me to a third planet. Here, however, gravity did apply to me, and I was quite heavy. There were these angry, shape-shifting aliens again, and this time they chase me. I start running away, only to see that I too am shape-shifting this time. My leg goes through my chest and turns into an arm, all my arms turn to legs and I run on all fours, shifting and shifting until the aliens catch me. This was Not pleasant. I could feel very malicious intentions from them. They bound me and were getting ready to do who knows what with me. At this point I felt my control of the trip being restricted, so I had to change environments into where I have more control. I convince myself that this is acid, and I can get away.
I gather all my strength and run out to the main room where my friend and trip sitter were. They were playing 'I had a friend who hung himself' by Primus, and I start yelling 'no one is going to hang themselves in my house! turn that stuff off!!! My sitter immediately turned off the music and started calming me. 'Don't freak out, its only acid, you might think your not here now, but I see you so you must be. Sit down and drink a tea. There's a good bloke.' He then puts on some Hendrix and gets me an ice tea. That brought me so far back to me, it was amazing. I sat on my comfy sofa and I look outside (on a bright summer day) and it was snowing and blizzarding. Yep I think, this is going to be just fine. '
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.


| Bill |
A bill.
|
| Bill.Builder |
The bean-builder for Bill .
|
| Bill.Meta |
The meta-bean for Bill .
|
| BillPosition |
A position in a bill.
|
| BillPosition.Builder |
The bean-builder for BillPosition .
|
| BillPosition.Meta |
The meta-bean for BillPosition .
|
| BillSecurity |
A security representing a bill.
|
| BillSecurity.Builder |
The bean-builder for BillSecurity .
|
| BillSecurity.Meta |
The meta-bean for BillSecurity .
|
| BillTrade |
A trade representing a bill.
|
| BillTrade.Builder |
The bean-builder for BillTrade .
|
| BillTrade.Meta |
The meta-bean for BillTrade .
|
| BillYieldConvention |
A convention defining how yield is computed for a bill.
|
| BondFuture |
A futures contract, based on a basket of fixed coupon bonds.
|
| BondFuture.Builder |
The bean-builder for BondFuture .
|
| BondFuture.Meta |
The meta-bean for BondFuture .
|
| BondFutureOption |
A futures option contract, based on bonds.
|
| BondFutureOption.Builder |
The bean-builder for BondFutureOption .
|
| BondFutureOption.Meta |
The meta-bean for BondFutureOption .
|
| BondFutureOptionPosition |
A position in a bond future option.
|
| BondFutureOptionPosition.Builder |
The bean-builder for BondFutureOptionPosition .
|
| BondFutureOptionPosition.Meta |
The meta-bean for BondFutureOptionPosition .
|
| BondFutureOptionSecurity |
A security representing a futures contract, based on a basket of fixed coupon bonds.
|
| BondFutureOptionSecurity.Builder |
The bean-builder for BondFutureOptionSecurity .
|
| BondFutureOptionSecurity.Meta |
The meta-bean for BondFutureOptionSecurity .
|
| BondFutureOptionTrade |
A trade representing an option on a futures contract based on bonds.
|
| BondFutureOptionTrade.Builder |
The bean-builder for BondFutureOptionTrade .
|
| BondFutureOptionTrade.Meta |
The meta-bean for BondFutureOptionTrade .
|
| BondFuturePosition |
A position in a bond future.
|
| BondFuturePosition.Builder |
The bean-builder for BondFuturePosition .
|
| BondFuturePosition.Meta |
The meta-bean for BondFuturePosition .
|
| BondFutureSecurity |
A security representing a futures contract, based on a basket of fixed coupon bonds.
|
| BondFutureSecurity.Builder |
The bean-builder for BondFutureSecurity .
|
| BondFutureSecurity.Meta |
The meta-bean for BondFutureSecurity .
|
| BondFutureTrade |
A trade representing a futures contract based on a fixed coupon bond.
|
| BondFutureTrade.Builder |
The bean-builder for BondFutureTrade .
|
| BondFutureTrade.Meta |
The meta-bean for BondFutureTrade .
|
| BondPaymentPeriod |
A period over which interest is accrued with a single payment.
|
| CapitalIndexedBond |
A capital indexed bond.
|
| CapitalIndexedBond.Builder |
The bean-builder for CapitalIndexedBond .
|
| CapitalIndexedBond.Meta |
The meta-bean for CapitalIndexedBond .
|
| CapitalIndexedBondPaymentPeriod |
A coupon or nominal payment of capital indexed bonds.
|
| CapitalIndexedBondPaymentPeriod.Builder |
The bean-builder for CapitalIndexedBondPaymentPeriod .
|
| CapitalIndexedBondPaymentPeriod.Meta |
The meta-bean for CapitalIndexedBondPaymentPeriod .
|
| CapitalIndexedBondPosition |
A position in a capital indexed bond.
|
| CapitalIndexedBondPosition.Builder |
The bean-builder for CapitalIndexedBondPosition .
|
| CapitalIndexedBondPosition.Meta |
The meta-bean for CapitalIndexedBondPosition .
|
| CapitalIndexedBondSecurity |
A security representing a capital indexed bond.
|
| CapitalIndexedBondSecurity.Builder |
The bean-builder for CapitalIndexedBondSecurity .
|
| CapitalIndexedBondSecurity.Meta |
The meta-bean for CapitalIndexedBondSecurity .
|
| CapitalIndexedBondTrade |
A trade representing a capital indexed bond.
|
| CapitalIndexedBondTrade.Builder |
The bean-builder for CapitalIndexedBondTrade .
|
| CapitalIndexedBondTrade.Meta |
The meta-bean for CapitalIndexedBondTrade .
|
| CapitalIndexedBondYieldConvention |
A convention defining accrued interest calculation type for inflation bond securities.
|
| FixedCouponBond |
A fixed coupon bond.
|
| FixedCouponBond.Builder |
The bean-builder for FixedCouponBond .
|
| FixedCouponBond.Meta |
The meta-bean for FixedCouponBond .
|
| FixedCouponBondOption |
|
| FixedCouponBondOption.Builder |
The bean-builder for FixedCouponBondOption .
|
| FixedCouponBondOption.Meta |
The meta-bean for FixedCouponBondOption .
|
| FixedCouponBondPaymentPeriod |
A period over which a fixed coupon is paid.
|
| FixedCouponBondPaymentPeriod.Builder |
The bean-builder for FixedCouponBondPaymentPeriod .
|
| FixedCouponBondPaymentPeriod.Meta |
The meta-bean for FixedCouponBondPaymentPeriod .
|
| FixedCouponBondPosition |
A position in a fixed coupon bond.
|
| FixedCouponBondPosition.Builder |
The bean-builder for FixedCouponBondPosition .
|
| FixedCouponBondPosition.Meta |
The meta-bean for FixedCouponBondPosition .
|
| FixedCouponBondSecurity |
A security representing a fixed coupon bond.
|
| FixedCouponBondSecurity.Builder |
The bean-builder for FixedCouponBondSecurity .
|
| FixedCouponBondSecurity.Meta |
The meta-bean for FixedCouponBondSecurity .
|
| FixedCouponBondTrade |
A trade representing a fixed coupon bond.
|
| FixedCouponBondTrade.Builder |
The bean-builder for FixedCouponBondTrade .
|
| FixedCouponBondTrade.Meta |
The meta-bean for FixedCouponBondTrade .
|
| FixedCouponBondYieldConvention |
A convention defining accrued interest calculation type for a bond security.
|
| KnownAmountBondPaymentPeriod |
A period within a swap that results in a known amount.
|
| KnownAmountBondPaymentPeriod.Builder |
The bean-builder for KnownAmountBondPaymentPeriod .
|
| KnownAmountBondPaymentPeriod.Meta |
The meta-bean for KnownAmountBondPaymentPeriod .
|
| LegalEntitySecurity |
An instrument representing a security associated with a legal entity.
|
| ResolvedBill |
A bill, resolved for pricing.
|
| ResolvedBill.Builder |
The bean-builder for ResolvedBill .
|
| ResolvedBill.Meta |
The meta-bean for ResolvedBill .
|
| ResolvedBillTrade |
A trade in a bill, resolved for pricing.
|
| ResolvedBillTrade.Builder |
The bean-builder for ResolvedBillTrade .
|
| ResolvedBillTrade.Meta |
The meta-bean for ResolvedBillTrade .
|
| ResolvedBondFuture |
A futures contract based on a basket of fixed coupon bonds, resolved for pricing.
|
| ResolvedBondFuture.Builder |
The bean-builder for ResolvedBondFuture .
|
| ResolvedBondFuture.Meta |
The meta-bean for ResolvedBondFuture .
|
| ResolvedBondFutureOption |
A futures option contract based on a basket of fixed coupon bonds, resolved for pricing.
|
| ResolvedBondFutureOption.Builder |
The bean-builder for ResolvedBondFutureOption .
|
| ResolvedBondFutureOption.Meta |
The meta-bean for ResolvedBondFutureOption .
|
| ResolvedBondFutureOptionTrade |
A trade in in an option on a futures contract based on a basket of fixed coupon bonds, resolved for pricing.
|
| ResolvedBondFutureOptionTrade.Builder |
The bean-builder for ResolvedBondFutureOptionTrade .
|
| ResolvedBondFutureOptionTrade.Meta |
The meta-bean for ResolvedBondFutureOptionTrade .
|
| ResolvedBondFutureTrade |
A trade in a futures contract based on a basket of fixed coupon bonds, resolved for pricing.
|
| ResolvedBondFutureTrade.Builder |
The bean-builder for ResolvedBondFutureTrade .
|
| ResolvedBondFutureTrade.Meta |
The meta-bean for ResolvedBondFutureTrade .
|
| ResolvedCapitalIndexedBond |
A capital indexed bond.
|
| ResolvedCapitalIndexedBond.Builder |
The bean-builder for ResolvedCapitalIndexedBond .
|
| ResolvedCapitalIndexedBond.Meta |
The meta-bean for ResolvedCapitalIndexedBond .
|
| ResolvedCapitalIndexedBondSettlement |
The settlement details of a capital indexed bond trade.
|
| ResolvedCapitalIndexedBondTrade |
A trade in a capital indexed bond, resolved for pricing.
|
| ResolvedCapitalIndexedBondTrade.Builder |
The bean-builder for ResolvedCapitalIndexedBondTrade .
|
| ResolvedCapitalIndexedBondTrade.Meta |
The meta-bean for ResolvedCapitalIndexedBondTrade .
|
| ResolvedFixedCouponBond |
A fixed coupon bond, resolved for pricing.
|
| ResolvedFixedCouponBond.Builder |
The bean-builder for ResolvedFixedCouponBond .
|
| ResolvedFixedCouponBond.Meta |
The meta-bean for ResolvedFixedCouponBond .
|
| ResolvedFixedCouponBondOption |
|
| ResolvedFixedCouponBondOption.Builder |
The bean-builder for ResolvedFixedCouponBondOption .
|
| ResolvedFixedCouponBondOption.Meta |
The meta-bean for ResolvedFixedCouponBondOption .
|
| ResolvedFixedCouponBondSettlement |
The settlement details of a fixed coupon bond trade.
|
| ResolvedFixedCouponBondTrade |
A trade in a fixed coupon bond, resolved for pricing.
|
| ResolvedFixedCouponBondTrade.Builder |
The bean-builder for ResolvedFixedCouponBondTrade .
|
| ResolvedFixedCouponBondTrade.Meta |
The meta-bean for ResolvedFixedCouponBondTrade .
|


The circle size, color and height is based on the number of beats per minute in the song. The placement from left to right is based on the year the song was from.


23 Feared Dead As Plane Crashes In Congo
by Olugbenga IgeTwenty-three bodies were recovered on Sunday after a small plane crashed on takeoff into a densely populated area of Goma in the Democratic Republic of Congo, rescue workers said.
“We are up to 23 bodies now,” Goma rescue service coordinator Joseph Makundi told AFP.
Goma airport official Richard Mangolopa told AFP no survivors were expected from the disaster.
The Dornier-228 aircraft had been headed for Beni, 350 kilometres (220 miles) north of Goma when it went down in a residential area near the airport in the east of the country.
“There were 17 passengers on board and two crew members. It took off around 9-9.10 am (0700 GMT),” Busy Bee airline staff member Heritier Said Mamadou said.
Busy Bee, a recent company, has three planes serving routes in North Kivu province.
One of the company’s maintenance workers at the site reportedly blamed a “technical problem” for the crash.


Go Back
Added to cart.
Title:
Category:
Sub Category:
Brand:
List Price:
₹
Our Price:
₹
Status:
Our Price:
₹
List Price:
₹
You save:
₹
Qty:
Add to Cart
In Stock
Only
In Stock
Unavailable
Description:


src/components/device/boxfish.ts
Controller class for Boxfish/IQ camera.
IDeviceManager
Properties |
Methods |
|
Accessors |
constructor(uvcCameraInstance: any, transport: IUsbTransport, uvcControlInterface: any, cameraDiscoveryEmitter: EventEmitter)
|
||||||||||||||||||||
|
Defined in src/components/device/boxfish.ts:75
|
||||||||||||||||||||
|
Creates an instance of Boxfish.
Parameters :
|
| _api |
Type : Api
|
|
Defined in src/components/device/boxfish.ts:52
|
|
Common Api wrapper class for invoking common functionality across device controller classes. |
| discoveryEmitter |
Type : EventEmitter
|
|
Defined in src/components/device/boxfish.ts:68
|
|
Event emitter instance emitting attach and detach events for Huddly Cameras. |
| productName |
Type : string
|
Default value : 'Huddly IQ'
|
|
Defined in src/components/device/boxfish.ts:75
|
|
Comercial product name for this controller class. |
| transport |
Type : IUsbTransport
|
|
Defined in src/components/device/boxfish.ts:45
|
|
Transport instance for communicating with cameras (sending command and reading data) |
| uvcControlInterface |
Type : any
|
|
Inherited from
UvcBaseDevice
|
|
Defined in
UvcBaseDevice:59
|
|
The uvc control interface for sending standard uvc commands to camera. |
| Async closeConnection |
closeConnection()
|
|
Defined in src/components/device/boxfish.ts:125
|
|
Teardown function for cleaning up the state.
Returns :
Promise<any>
{Promise |
| Async ensureAppMode | ||||||||||||
ensureAppMode(currentMode: string, timeout?: number)
|
||||||||||||
|
Defined in src/components/device/boxfish.ts:165
|
||||||||||||
|
Make sure the camera is running on application mode (which is the default mode).
Parameters :
Returns :
unknown
Resolves when the camera boots in app mode. |
| Async eraseErrorLog | ||||||||||
eraseErrorLog(timeout: number)
|
||||||||||
|
Defined in src/components/device/boxfish.ts:196
|
||||||||||
|
Erases the application log.
Parameters :
Returns :
Promise<void>
{Promise |
| getAutozoomControl | ||||||||
getAutozoomControl(opts: AutozoomControlOpts)
|
||||||||
|
Defined in src/components/device/boxfish.ts:471
|
||||||||
|
Get autozoom control class instance.
Parameters :
Returns :
ICnnControl
{ICnnControl} The instance of the autozoom control class. |
| getDetector | ||||||||
getDetector(opts?: DetectorOpts)
|
||||||||
|
Defined in src/components/device/boxfish.ts:492
|
||||||||
|
Get detector control class instance.
Parameters :
Returns :
IDetector
{IDetector} The instance of the detector control class. |
| Async getDiagnostics |
getDiagnostics()
|
|
Defined in src/components/device/boxfish.ts:303
|
|
Get diagnostics for power usage on camera.
Returns :
Promise<Array<DiagnosticsMessage>>
{Promise<Array |
| Async getErrorLog | ||||||||||||||||||||
getErrorLog(timeout: number, retry: number, allowLegacy: boolean)
|
||||||||||||||||||||
|
Defined in src/components/device/boxfish.ts:181
|
||||||||||||||||||||
|
Get application log.
Parameters :
Returns :
Promise<any>
{Promise |
| getFaceBasedExposureControl |
getFaceBasedExposureControl()
|
|
Defined in src/components/device/boxfish.ts:481
|
|
Get face based exposure control class instance.
Returns :
ICnnControl
{ICnnControl} The instance of the face-based exposure control class. |
| Async getInfo |
getInfo()
|
|
Defined in src/components/device/boxfish.ts:135
|
|
Get device software and hardware information.
Returns :
Promise<any>
{Promise |
| Async getInterpolationParams |
getInterpolationParams()
|
|
Defined in src/components/device/boxfish.ts:527
|
|
Get interpolation curve parameters from target.
Returns :
Promise<InterpolationParams>
{Promise |
| Async getPowerUsage |
getPowerUsage()
|
|
Defined in src/components/device/boxfish.ts:206
|
|
Get current power usage on the camera.
Returns :
Promise<any>
{Promise |
| Async getState |
getState()
|
|
Defined in src/components/device/boxfish.ts:502
|
|
Get Autozoom/GF state on target
Returns :
Promise<any>
{Promise |
| Async getTemperature |
getTemperature()
|
|
Defined in src/components/device/boxfish.ts:220
|
|
Get current temperature on the camera.
Returns :
Promise<any>
{Promise |
| Async getUpgrader |
getUpgrader()
|
|
Defined in src/components/device/boxfish.ts:347
|
|
Helper function for getting the respective upgrader controller class for upgrading Huddly Boxfish/IQ
Returns :
Promise<IDeviceUpgrader>
{Promise |
| Async initialize |
initialize()
|
|
Defined in src/components/device/boxfish.ts:109
|
|
Initializes the controller class. Must be called before any other commands.
Returns :
Promise<void>
{Promise |
| Async reboot | ||||||||||
reboot(mode: string)
|
||||||||||
|
Defined in src/components/device/boxfish.ts:320
|
||||||||||
|
Soft boot camera.
Parameters :
Returns :
Promise<void>
{Promise |
| Async setInterpolationParams | ||||||||
setInterpolationParams(params: InterpolationParams)
|
||||||||
|
Defined in src/components/device/boxfish.ts:517
|
||||||||
|
Set interpolation curve parameter used to zoom on regions when GF is enabled
Parameters :
Returns :
Promise<any>
{Promise |
| Async upgrade | ||||||||
upgrade(opts: UpgradeOpts)
|
||||||||
|
Defined in src/components/device/boxfish.ts:423
|
||||||||
|
Performs software upgrade (async) on Huddly Boxfish/IQ
Parameters :
Returns :
Promise<any>
{Promise |
| Async uptime |
uptime()
|
|
Defined in src/components/device/boxfish.ts:337
|
|
Get camera uptime
Returns :
unknown
Resolves with the uptime information (double in milliseconds) |
| getPanTilt |
getPanTilt()
|
|
Inherited from
UvcBaseDevice
|
|
Defined in
UvcBaseDevice:280
|
|
Gets the uvc PANTILT parameter value.
Returns :
any
{*} The value of the PANTILT uvc parameter on camera. |
| getSetting | ||||||||||||
getSetting(key, forceRefresh)
|
||||||||||||
|
Inherited from
UvcBaseDevice
|
||||||||||||
|
Defined in
UvcBaseDevice:236
|
||||||||||||
|
Gets a setting value from the camera through the uvc control interface.
Parameters :
Returns :
any
{*} The setting value for the corresponding setting key. |
| getSettings | ||||||||
getSettings(forceRefresh)
|
||||||||
|
Inherited from
UvcBaseDevice
|
||||||||
|
Defined in
UvcBaseDevice:259
|
||||||||
|
Get the uvc camera settings.
Parameters :
Returns :
any
{*} The uvc camera settings. |
| getSupportedSettings |
getSupportedSettings()
|
|
Inherited from
UvcBaseDevice
|
|
Defined in
UvcBaseDevice:224
|
|
Get the supported settings from the uvc control interface,
Returns :
any
{*} The supported settings. |
| getUVCParam | ||||||
getUVCParam(param)
|
||||||
|
Inherited from
UvcBaseDevice
|
||||||
|
Defined in
UvcBaseDevice:324
|
||||||
|
Helper function for retrieving a uvc parameter value from the device.
Parameters :
Returns :
any
The value of the uvc parameter on the camera. |
| Async getXUControl | ||||||||
getXUControl(controlNumber: number)
|
||||||||
|
Inherited from
UvcBaseDevice
|
||||||||
|
Defined in
UvcBaseDevice:202
|
||||||||
|
Gets the value of a custom XU control setting.
Parameters :
Returns :
Promise<any>
{Promise |
| isAlive |
isAlive()
|
|
Inherited from
UvcBaseDevice
|
|
Defined in
UvcBaseDevice:349
|
|
Check if the uvc insterface is up/alive.
Returns :
boolean
{boolean} A boolean reporting whether the uvc insterface is alive or not. |
| resetSettings | ||||||||||
resetSettings(excludeList: [])
|
||||||||||
|
Inherited from
UvcBaseDevice
|
||||||||||
|
Defined in
UvcBaseDevice:270
|
||||||||||
|
Control command for resetting the settings on the uvc control interface.
Parameters :
Returns :
any
{*} The state of the action. |
| Async setPanTilt | ||||||||
setPanTilt(panTilt: any)
|
||||||||
|
Inherited from
UvcBaseDevice
|
||||||||
|
Defined in
UvcBaseDevice:291
|
||||||||
|
Sets new value for the PANTILT uvc parameter.
Parameters :
Returns :
unknown
The state of the action performed as promise. |
| setSettingValue | |||||||||
setSettingValue(key, value)
|
|||||||||
|
Inherited from
UvcBaseDevice
|
|||||||||
|
Defined in
UvcBaseDevice:248
|
|||||||||
|
Sets a setting value on the camera through the uvc control interface.
Parameters :
Returns :
any
{*} The state of the action performed. |
| setUVCParam | |||||||||
setUVCParam(param, value)
|
|||||||||
|
Inherited from
UvcBaseDevice
|
|||||||||
|
Defined in
UvcBaseDevice:303
|
|||||||||
|
Sets a new value for the given uvc parameter
Parameters :
Returns :
any
The state of the action. |
| Async setXUControl | ||||||||||||
setXUControl(controlNumber: number, value: any)
|
||||||||||||
|
Inherited from
UvcBaseDevice
|
||||||||||||
|
Defined in
UvcBaseDevice:214
|
||||||||||||
|
Updates XU control value through the uvc control interface.
Parameters :
Returns :
Promise<any>
{Promise |
| usbReEnumerate |
usbReEnumerate()
|
|
Inherited from
UvcBaseDevice
|
|
Defined in
UvcBaseDevice:339
|
|
Re enumerates the usb interace through the uvc control interface
Returns :
any
A state reporting whether the usb re-enumeration is completed. |
| api |
getapi()
|
|
Defined in src/components/device/boxfish.ts:99
|
import { EventEmitter } from 'events';
import IDeviceManager from '@huddly/sdk-interfaces/lib/interfaces/IDeviceManager';
import IDetector from '@huddly/sdk-interfaces/lib/interfaces/IDetector';
import IDeviceUpgrader from '@huddly/sdk-interfaces/lib/interfaces/IDeviceUpgrader';
import UpgradeOpts from '@huddly/sdk-interfaces/lib/interfaces/IUpgradeOpts';
import DetectorOpts from '@huddly/sdk-interfaces/lib/interfaces/IDetectorOpts';
import InterpolationParams from '@huddly/sdk-interfaces/lib/interfaces/IInterpolationParams';
import AutozoomControlOpts from '@huddly/sdk-interfaces/lib/interfaces/IAutozoomControlOpts';
import AutozoomControl from '../autozoomControl';
import ReleaseChannel from '@huddly/sdk-interfaces/lib/enums/ReleaseChannel';
import IUsbTransport from '@huddly/sdk-interfaces/lib/interfaces/IUsbTransport';
import ICnnControl from '@huddly/sdk-interfaces/lib/interfaces/ICnnControl';
import HuddlyHEX from '@huddly/sdk-interfaces/lib/enums/HuddlyHex';
import Logger from '@huddly/sdk-interfaces/lib/statics/Logger';
import Api from './../api';
import UvcBaseDevice from './uvcbase';
import Locksmith from './../locksmith';
import CameraEvents from './../../utilitis/events';
import Detector from './../detector';
import { MinMaxDiagnosticsMessage, DiagnosticsMessageData } from '../diagnosticsMessageData';
import DiagnosticsMessage from '@huddly/sdk-interfaces/lib/abstract_classes/DiagnosticsMessage';
import { createBoxfishUpgrader } from './../upgrader/boxfishUpgraderFactory';
import BoxfishUpgrader from './../upgrader/boxfishUpgrader';
import FaceBasedExposureControl from '../faceBasedExposureControl';
const MAX_UPGRADE_ATTEMPT = 3;
/**
* Controller class for Boxfish/IQ camera.
*
* @export
* @class Boxfish
* @extends {UvcBaseDevice}
* @implements {IDeviceManager}
*/
export default class Boxfish extends UvcBaseDevice implements IDeviceManager {
/**
* Transport instance for communicating with cameras (sending command and reading data)
*
* @type {IUsbTransport}
* @memberof Boxfish
*/
transport: IUsbTransport;
/**
* Common Api wrapper class for invoking common functionality across device controller classes.
*
* @type {Api}
* @memberof Boxfish
*/
_api: Api;
/**
* The uvc control interface for sending standard uvc commands to camera.
*
* @type {*}
* @memberof Boxfish
*/
uvcControlInterface: any;
/** @ignore */
locksmith: Locksmith;
/**
* Event emitter instance emitting attach and detach events for Huddly Cameras.
*
* @type {EventEmitter}
* @memberof Boxfish
*/
discoveryEmitter: EventEmitter;
/**
* Comercial product name for this controller class.
*
* @type {string}
* @memberof Boxfish
*/
productName: string = 'Huddly IQ';
/**
* Creates an instance of Boxfish.
* @param {*} uvcCameraInstance Uvc camera instance acquired from device-api-uvc discovery manager.
* @param {IUsbTransport} transport The transport instance for communicating with the camera.
* @param {*} uvcControlInterface Uvc control interface for performing standard uvc control commands.
* @param {EventEmitter} cameraDiscoveryEmitter Emitter instance sending attach & detach events for Huddly cameras.
* @memberof Boxfish
*/
constructor(
uvcCameraInstance: any,
transport: IUsbTransport,
uvcControlInterface: any,
cameraDiscoveryEmitter: EventEmitter
) {
super(uvcCameraInstance, uvcControlInterface);
this.transport = transport;
this.uvcControlInterface = uvcControlInterface;
this.locksmith = new Locksmith();
this.discoveryEmitter = cameraDiscoveryEmitter;
}
get api(): Api {
return this._api;
}
/**
* Initializes the controller class. Must be called before any other commands.
*
* @return {*} {Promise<void>} Void function. Use `await` when calling this method.
* @memberof Boxfish
*/
async initialize(): Promise<void> {
this._api = new Api(this.transport, this.locksmith);
this.transport.init();
try {
this.transport.initEventLoop();
} catch (e) {
Logger.error('Failed to init event loop when transport reset', e, 'Boxfish API');
}
}
/**
* Teardown function for cleaning up the state.
*
* @return {*} {Promise<any>} Promise that carries out the teardown step.
* @memberof Boxfish
*/
async closeConnection(): Promise<any> {
return this.transport.close();
}
/**
* Get device software and hardware information.
*
* @return {*} {Promise<any>} Object representing software & hardware info of the camera. Function must be awaited.
* @memberof Boxfish
*/
async getInfo(): Promise<any> {
const info = await this.api.getCameraInfo();
const status = {
id: this['id'],
serialNumber: this['serialNumber'],
vendorId: this['vendorId'] || HuddlyHEX.VID,
productId: this['productId'],
version: this.extractSemanticSoftwareVersion(info.softwareVersion),
location: this['location'],
name: this.productName,
...info,
};
if (this['pathName'] !== undefined) {
status.pathName = this['pathName'];
}
return status;
}
/** @ignore */
extractSemanticSoftwareVersion(appVer: string) {
return appVer.replace(/\D+-/, '');
}
/**
* Make sure the camera is running on application mode (which is the default mode).
*
* @param {string} currentMode Current mode on camera.
* @return {*} Resolves when the camera boots in app mode.
* @memberof Boxfish
*/
async ensureAppMode(currentMode: string, timeout?: number) {
if (!currentMode || currentMode === 'app') return Promise.resolve();
else {
throw new Error(`Cannot set camera to app mode from ${currentMode} mode!`);
}
}
/**
* Get application log.
*
* @param {number} [timeout=60000] Maximum allowed time (in milliseconds) for fetching the log.
* @param {number} [retry=1] Number of retries to perform in case something goes wrong.
* @param {boolean} [allowLegacy=true] Should allow legacy error log retrival in case the standard procedure fails.
* @return {*} {Promise<any>} A promise which when completed contains the camera application log.
* @memberof Boxfish
*/
async getErrorLog(
timeout: number = 60000,
retry: number = 1,
allowLegacy: boolean = true
): Promise<any> {
return this.api.getErrorLog(timeout, retry, allowLegacy);
}
/**
* Erases the application log.
*
* @param {number} [timeout=60000] Maximum allowed time (in milliseconds) for erasing the log.
* @return {*} {Promise<void>} Resolves when the erase is completed.
* @memberof Boxfish
*/
async eraseErrorLog(timeout: number = 60000): Promise<void> {
await this.api.eraseErrorLog(timeout);
}
/**
* Get current power usage on the camera.
*
* @return {*} {Promise<any>} An object containing voltage, current and power usage on camera. Method must be awaited.
* @memberof Boxfish
*/
async getPowerUsage(): Promise<any> {
const response = await this.api.sendAndReceiveMessagePack('', {
send: 'get_power',
receive: 'get_power_reply',
});
return response;
}
/**
* Get current temperature on the camera.
*
* @return {*} {Promise<any>} An object containig internal and external temperature values.
* @memberof Boxfish
*/
async getTemperature(): Promise<any> {
const response = await this.api.sendAndReceiveMessagePack('', {
send: 'get_temperature',
receive: 'get_temperature_reply',
});
return response;
}
/**
* @ignore
* Get power monitoring diagnostics (voltage and current).
*
* @param {*} powerUsage Power usage data retrieved from camera
* @return {*} {Array<DiagnosticsMessage>} Power usage data retrieved from camera
* @memberof Boxfish
*/
getPowerMonitorDiagnostics(powerUsage: any): Array<DiagnosticsMessage> {
const minVoltage = 4.6;
const maxVoltage = 5.25;
const maxCurrent = 0.955;
const minCurrent = 0;
const voltageTip = 'Check your cables';
let diagnostics = [];
if (powerUsage.voltage) {
const voltage = new MinMaxDiagnosticsMessage(
'Voltage',
minVoltage,
maxVoltage,
powerUsage.voltage.min,
powerUsage.voltage.max,
powerUsage.voltage.curr,
voltageTip,
voltageTip
);
diagnostics = [...diagnostics, voltage];
}
if (powerUsage.current) {
const current = new MinMaxDiagnosticsMessage(
'Current',
minCurrent,
maxCurrent,
powerUsage.current.min,
powerUsage.current.max,
powerUsage.current.curr,
voltageTip,
voltageTip
);
diagnostics = [...diagnostics, current];
}
return diagnostics;
}
/**
* @ignore
* Get diagnostics info on camera
*
* @return {*} {Promise<Array<DiagnosticsMessage>>} An array of data representing diagnostics information.
* @memberof Boxfish
*/
async getDiagnosticsInfo(): Promise<Array<DiagnosticsMessage>> {
const message = await this.api.sendAndReceiveMessagePack(
'',
{
send: 'diagnostics/get_info',
receive: 'diagnostics/get_info_reply',
},
3000
);
return [new DiagnosticsMessageData('USBMODE', 'USB Ok', message.usb)];
}
/**
* Get diagnostics for power usage on camera.
*
* @return {*} {Promise<Array<DiagnosticsMessage>>} An array of data representing the power usage diagnostics.
* @memberof Boxfish
*/
async getDiagnostics(): Promise<Array<DiagnosticsMessage>> {
const powerUsage = await this.getPowerUsage();
const powerDiagnostics = this.getPowerMonitorDiagnostics(powerUsage);
const infoDiagnostics = await this.getDiagnosticsInfo();
return [...powerDiagnostics, ...infoDiagnostics];
}
/**
* Soft boot camera.
*
* @param {string} [mode='app'] Tell the camera which mode to boot to.
* @return {*} {Promise<void>} Void function. Use `await` when calling this method.
* @memberof Boxfish
*/
async reboot(mode: string = 'app'): Promise<void> {
await this.locksmith.executeAsyncFunction(async () => {
await this.transport.clear();
if (mode === 'mvusb') {
this.transport.write('upgrader/mv_usb', Api.encode({}));
} else {
await this.transport.write('camctrl/reboot');
}
});
}
/**
* Get camera uptime
*
* @return {*} Resolves with the uptime information (double in milliseconds)
* @memberof Boxfish
*/
async uptime() {
return this.api.getUptime();
}
/**
* Helper function for getting the respective upgrader controller class for upgrading Huddly Boxfish/IQ
*
* @return {*} {Promise<IDeviceUpgrader>} The upgrader controll instance.
* @memberof Boxfish
*/
async getUpgrader(): Promise<IDeviceUpgrader> {
return createBoxfishUpgrader(this, this.discoveryEmitter);
}
/**
* @ignore
* Internal API
*
* @memberof Boxfish
*/
async createAndRunFsblUpgrade(opts: UpgradeOpts, deviceManager: IDeviceManager) {
const upgrader = new BoxfishUpgrader(deviceManager, this.discoveryEmitter);
const mvusbFile = opts.file;
const timeoutMs = opts.bootTimeout * 1000;
return new Promise<void>((resolve, reject) => {
const bootTimeout = setTimeout(() => {
clearTimeout(bootTimeout);
reject('Fsbl upgrade timed out');
}, timeoutMs);
upgrader.flashFsbl(mvusbFile).then(() => {
clearTimeout(bootTimeout);
resolve();
});
});
}
/**
* @ignore
* Internal API
*
* @memberof Boxfish
*/
async createAndRunUpgrade(
opts: UpgradeOpts,
deviceManager: IDeviceManager,
createNewUpgrader: boolean
) {
let upgrader: IDeviceUpgrader = opts.upgrader;
if (!upgrader || createNewUpgrader) {
upgrader = await createBoxfishUpgrader(deviceManager, this.discoveryEmitter);
}
upgrader.init(opts);
upgrader.start();
return new Promise<void>((resolve, reject) => {
upgrader.once(CameraEvents.UPGRADE_COMPLETE, async (deviceManager) => {
const upgradeIsOk = await upgrader.upgradeIsValid();
if (upgradeIsOk) {
resolve();
} else {
reject({
message: 'Upgrade status is not ok, run again',
runAgain: true,
deviceManager,
});
}
});
upgrader.once(CameraEvents.UPGRADE_FAILED, (reason) => {
Logger.error('Upgrade Failed', reason, 'Boxfish API');
reject(reason);
});
upgrader.once(CameraEvents.TIMEOUT, (reason) => {
Logger.error('Upgrader returned a timeout event', reason, 'Boxfish API');
reject(reason);
});
});
}
/**
* Performs software upgrade (async) on Huddly Boxfish/IQ
*
* @param {UpgradeOpts} opts Upgrade options for performing the upgrade
* @return {*} {Promise<any>} Resolves when the upgrade is completed. Rejects if something goes wrong.
* @memberof Boxfish
*/
async upgrade(opts: UpgradeOpts): Promise<any> {
let upgradeAttempts = 0;
return new Promise<void>((resolve, reject) => {
const tryRunAgainOnFailure = async (deviceManager: IDeviceManager) => {
try {
await this.createAndRunUpgrade(opts, deviceManager, upgradeAttempts > 0);
resolve();
} catch (e) {
if (e.runAgain && upgradeAttempts < MAX_UPGRADE_ATTEMPT) {
upgradeAttempts += 1;
Logger.warn(
`Upgrade failure! Retrying upgrade process nr ${upgradeAttempts}`,
'Boxfish API'
);
tryRunAgainOnFailure(e.deviceManager);
} else {
Logger.error('Failed performing a camera upgrade', e, 'Boxfish API');
reject(e);
}
}
};
tryRunAgainOnFailure(this);
});
}
/**
* @ignore
* Internal API
*
* @memberof Boxfish
*/
async upgradeFsbl(opts: UpgradeOpts): Promise<any> {
try {
await this.createAndRunFsblUpgrade(opts, this);
Promise.resolve();
} catch (e) {
Logger.error('Failed performing a FSBL camera upgrade', e, 'Boxfish API');
Promise.reject(e);
}
}
/**
* Get autozoom control class instance.
*
* @param {AutozoomControlOpts} opts Autozoom control options.
* @return {*} {ICnnControl} The instance of the autozoom control class.
* @memberof Boxfish
*/
getAutozoomControl(opts: AutozoomControlOpts): ICnnControl {
return new AutozoomControl(this, opts);
}
/**
* Get face based exposure control class instance.
*
* @return {*} {ICnnControl} The instance of the face-based exposure control class.
* @memberof Boxfish
*/
getFaceBasedExposureControl(): ICnnControl {
return new FaceBasedExposureControl(this);
}
/**
* Get detector control class instance.
*
* @param {DetectorOpts} [opts] Detector control options.
* @return {*} {IDetector} The instance of the detector control class.
* @memberof Boxfish
*/
getDetector(opts?: DetectorOpts): IDetector {
return new Detector(this, opts);
}
/**
* Get Autozoom/GF state on target
*
* @return {*} {Promise<any>} Resolves with information about the GF state when action is completed.
* @memberof Boxfish
*/
async getState(): Promise<any> {
const response = await this.api.sendAndReceiveMessagePack('', {
send: 'camera/get_state',
receive: 'camera/get_state_reply',
});
return response;
}
/**
* Set interpolation curve parameter used to zoom on regions when GF is enabled
*
* @param {InterpolationParams} params The interpolation cruve parameters.
* @return {*} {Promise<any>} Resolves when the interpolation parameters are updated on target.
* @memberof Boxfish
*/
async setInterpolationParams(params: InterpolationParams): Promise<any> {
this.api.setInterpolationParameters(params);
}
/**
* Get interpolation curve parameters from target.
*
* @return {*} {Promise<InterpolationParams>} Resolves with the interpolation curve parameters.
* @memberof Boxfish
*/
async getInterpolationParams(): Promise<InterpolationParams> {
return this.api.getInterpolationParameters();
}
/**
* @ignore
* Internal API
*
* @memberof Boxfish
*/
async getLatestFirmwareUrl(releaseChannel: ReleaseChannel = ReleaseChannel.STABLE) {
return this.api.getLatestFirmwareUrl('iq', releaseChannel);
}
}


Needless to say, in order to make a Dualsword, you first need two swords. They can be either Superior weapons, Common weapons or Masterwork weapons. Superior weapons can only be combined with other Superior weapons, Common weapons can only be combined with other Common weapons, and Masterwork weapons can only be combined with other Masterwork weapons. Additionally, a Masterwork Dualsword can be made only using swords above B grade. Since I must make a living, I do charge a small fee. And since a fire is needed and the cost of fuel is so high... Hmm... As you probably know, it's extremely difficult to handle a Dualsword without training and coordination. This is also why only the same grade swords can be combined. I can combine swords up to grade C. If you want something better, you'd better go to a bigger city. Remember as well that an Enchanted weapon loses its effect once it is combined with another. Don't forget! Oh, one more thing. If you invest some kind of a skill in a weapon, it won't work. I'm afraid that it simply can't be combined with another. Perhaps I've told you too much?  Now then, please select the type of sword you wish me to craft!


FILL THE BOOKING FORM
your message is send
Reg Number:
Title:
Miss
Ms
Mrs
Gender
Male
Female
First Name:
Midlle Name:
Last Name:
Nationality
Rwanda
Burundi
Kenya
Uganda
Zambia
Mozambique
university
Kist
Huye Campus
CMHS
CBE
email:
confirm email:
Phone Number:
Payment Method
Payment option
Monthly
Adress:
Date of Birth
Make your payment Here
Payment
Submit


In addition to walls, which can block Reeborg’s path, there are a number of images that are used to represent various objects.
Reeborg can interact with various objects. He can take() and put() down the following such objects, in particular, token, Reeborg’s favourite object. Tokens are like coins, except most people find them of little value, especially with the smiling face image; Reeborg begs to differ.
If there are more than one object present, and Reeborg needs to specify which object to take() or put() down, Reeborg uses the name of the object as a string of character, as in put("token") or take('token') [both single and double quotes can be used, as long as they occur in pairs.]
In addition to tokens, Reeborg can interact with various geometrical shapes, fruits, flowers, vegetables, etc. [Many of these images have been adapted from http://openclipart.com]
| apple: | |
|---|---|
| banana: | |
| carrot: | |
| daisy: | |
| dandelion: | While they can be pretty, dandelions are usually considered to be weeds - and often need to be removed from the world. |
| leaf: | Reeborg doesn’t particularly likes leaves. The presence of a leaf (or more) in Reeborg’s World usually indicates that Fall has arrived, the leaves are falling from the trees, and Reeborg must rake them instead of playing. Given the opportunity, Reeborg always prefer to play. |
| orange: | |
| strawberry: | |
| tulip: | |
| square: | |
| star: | |
| triangle: | A triangle of this kind could only exist inside Reeborg’s World. Here’s a close-up view of this triangle. |
The objects above can also be drawn purely as decorative objects. When this is done, Reeborg cannot interact with them, and they are not taken into account when deciding if a task has been accomplished or not.
Whereas the number of “normal” objects found at a given location is indicated, no number is drawn for decorative objects.
| grass: | Harmless for Reeborg to walk on. |
|---|---|
| gravel: | Harmless for Reeborg to walk on. |
| water: | Can cause Reeborg to drown. Fortunately, Reeborg can detect it using front_is_clear(). |
| mud: | Can cause Reeborg to get hopelessly stuck. Reeborg cannot detect mud before stepping into it. |
| brick wall: | Reeborg can crash into this; fortuntaly, it can detect it using front_is_clear(). |
| ice: | Causes Reeborg to slip and continue it movement towards the next tile. This could be problematic if an obstacle lies there. Reeborg cannot detect ice before stepping into it. |
It is possible to specify a single image to be used as background for the entire world. This is done by providing an address (URL) where the image file can be found.
When editing a world, the wall grid is drawn above that image so that it is visible; in execution mode, this grid is drawn behind. However, “real” walls are drawn above the background image and are thus visible.
The background image is drawn as-is: its size is not ajusted in any way (except when small tiles are used). To figure out the size of the image required, one simply has to count the number of grid squares: each square is 40 by 40 pixels.
Special objects, like normal objects, are drawn above background tiles. However, they can not be picked up by Reeborg and they can change the expected behaviour of a tile.
| bridge: | Allows Reeborg to cross safely over water. Reeborg will always express its happiness at being able to cross over a bridge instead of falling in water. |
|---|---|
| fences: | - - - Can be detected by Reeborg. If Reeborg is asked to move where a fence is located, Reeborg will attempt to jump over it but will fail miserably. Note that to make enclosed areas, you might have to overlap the image of the last one over one of the other three images. |
| box: | Boxes are pushed out of the way by Reeborg … provided something else, like a wall or another box, etc., is not preventing the box to move. A box pushed by Reeborg in the water will float and become a bridge allowing Reeborg to safely cross over water. The example below illustrates this |
Reeborg, must accomplish certain goals, like reaching a final position, or dropping certain objects at a certain location. To indicate that one (or more) object must be dropped at a given position, these grey images are used:
To indicate that Reeborg must end its task at a given final position, one of these images is used:


Already have an account?
Conquer virtual enemies with this Sony PlayStation 4. This Sony PlayStation 4 has a 1TB hard drive, so you can store plenty of gaming files.
When you buy the Xbox One S Gears of War 4 console bundle, a free extra controller and headset (an $84.98 value), will be automatically added to your cart.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet numquam aspernatur!


Our team will review your information and let you know when you are fully verified.
You pay
{{to_currency.from_currency.symbol}}
They receive
{{to_currency.to_currency.symbol}}


---
layout: archive
title: Resources
type: page
image:
feature: resources-feature.jpg
---
When I started this blog I knew I wanted to have some way to organize and keep track of interesting material I came across concerning web application development. This page is my attempt at congregating all of that material in one place both for my own benefit and anyone else who might be interested
Learning Ruby on Rails
Gems
- Ruby Toolbox - A great site to easily find a gem for a specific task. Rates and compares against other similar gems so you know what is best for your app
Ruby Podcasts
- RailsCasts - Screencasts covering a vast array of topics ranging from individual gems to meta programming techniques
- Ruby5 - ~5 minute podcasts covering "the latest news in the Ruby and Rails community"
- Ruby Rogues - More discussion based podcast covering interesting topics and developments in the Ruby community
- 5by5 Ruby on Rails Podcast
Programming Challenge Sites
- Ruby Quiz - Problems to be solved with Ruby
- Project Euler - Mathematical problems ideally solved through programming (not Ruby specific)
- Code Quizzes - More traditional quizzes and questions than challenges per say
Design
Virtual Machines and Vagrant
- JumpStartLab: Vagrant with Ruby on Rails - This was the most helpful resource when I was trying to set up my Vagrant box and provision it with all the necessary components for a Ruby on Rails stack
- Vagrant Docs - Official documentation and guides from the Vagrant website
Startups
- TechCrunch - News and articles for startups and development
Miscellaneous


Côte d'Ivoire and Egypt earn Tokyo 2020 berths
by FIFA.com- Côte d'Ivoire and Egypt advanced to the U-23 Africa Cup of Nations final
- Both teams reach next year's Men's Olympic Football Tournament
- Winner of Ghana-South Africa will get Africa's third and final ticket
Côte d'Ivoire and Egypt became the first two teams from Africa to qualify for the Men's Olympic Football Tournament Tokyo 2020 after booking their place in the final of the CAF U-23 Africa Cup of Nations.
The Young Elephants of Côte d'Ivoire kicked the day off in Cairo by defeating fellow West Africans Ghana 3-2 on penalties after the semi-final finished 2-2 after extra time.
Youssouf Dao scored a brace for Côte d'Ivoire with a goal in either half, while Ghana midfielder Evans Mensah forced the match into extra time with a stoppage-time equaliser after Yaw Yeboah had equalised for The Black Meteors early in the second half. Eliezer Ira Tape was the hero in the penalty shootout, saving three Ghanian spot kicks to send his side into the final and secure a ticket to Tokyo 2020, which will be the nation's first appearance at the Men's Olympic Football Tournament since Beijing 2008.
In the evening's final game, hosts Egypt sealed their Tokyo 2020 qualification thanks to star man Ramadan Sobhi, who converted an early second-half penalty, and Abdelrahman Magdy's late brace.
After a goalless first half, Sobhi and Magdy's late double put the result beyond doubt to get the Cairo crowd thinking about travel plans to Tokyo next year.
The winner in the match for third place on 22 November between Ghana and South Africa will secure Africa's third and final ticket to Tokyo.


Roles and permissions (example)¶
Because vCloud Director is a cloud portal that abstracts the resources of the underlying RPC-VMware environment, your use of the underlying RPC-VMware services is limited to read-only access to the vCenter Server user interface and APIs. Although the features listed in the RPC-VMware handbook are still available, you can consume those features only as they are enabled in the customer role of the vCloud Director services or by opening a ticket with Rackspace support to make modifications to the underlying RPC-VMware services and environment.
Predefined roles¶
To implement the separation of customer and Rackspace duties in RPC-VMware, Rackspace uses built-in roles in vCloud Director. Rackspace assigns you a maximum permission role (Organization Administrator) and any lesser privileged roles that you request for specific users or groups.
Predefined roles and the permissions that they contain are available in all organizations. All of the roles in the following table are available for the customer. Rackspace support has the System Administrator role at the System organization level, which is used to manage the vCloud Director configurations.
| Role | Description |
|---|---|
| Organization Administrator | After creating an organization, Rackspace assigns the role of Organization Administrator to the user or group provided by the customer. Users with the Organization Administrator role can use the vCloud Director Web console or the vCloud API to manage users and groups in their organization and assign them roles, including the Organization Administrator role. A user with this role can use the vCloud API to create or update role objects that are local to the organization. Roles created or modified by an organization administrator are not visible to other organizations. |
| Catalog Author | The permissions associated with the Catalog Author role allow a user to create and publish catalogs. |
| vApp Author | The permissions associated with the vApp Author role allow a user to use catalogs and create vApps. |
| vApp User | The permissions associated with the vApp User role allow a user to use existing vApps. |
| Console Access Only | The permissions associated with the Console Access Only role allow a user to view VM states and properties and to use the guest OS. |
Permissions¶
Customers have the permissions to create, delete, and manage VMs within their vCloud Director. Rackspace manages the vCloud Director Server, vCenter Server, and ESXi hosts. Customers have limited permissions on hosts and servers. The following tables detail the vCloud Director permissions for the predefined roles that can be assigned for customer use.
Permissions associated with catalogs
| Permission | Description | Admin | Catalog Author | vApp Author | vApp User | Console Access Only |
|---|---|---|---|---|---|---|
| Catalog: Add vApp from My Cloud | Permission to add a vApp to a catalog from My Cloud. | X | X | X | ||
| Catalog: Change Owner | Permission to change the owner of a catalog. | X | ||||
| Catalog: Create or delete a Catalog | Permission to create and delete catalogs. | X | X | |||
| Catalog: Edit Catalog Properties | Permission to edit catalog properties. | X | X | |||
| Catalog: Allow External Publishing or Subscriptions for the Catalogs | Permission to publish catalogs for external consumption and to subscribe to external catalog feeds. | X | X | |||
| Catalog: Share a Catalog to Users or Groups within Current Organization | Permission to share catalogs to users and groups in the same organization. | X | X | |||
| Catalog: View Private and Shared Catalogs within Current Organization | Permission to view both private and shared catalogs in the organization. | X | X | X | ||
| Catalog: View Shared Catalogs from Other Organizations | Permission to view catalogs shared from other organizations. | X |
Permissions associated with independent disks
| Permission | Description | Admin | Catalog Author | vApp Author | vApp User | Console Access Only |
|---|---|---|---|---|---|---|
| Disk: Create | Permission to create independent disks. | X | X | X | ||
| Disk: Delete | Permission to delete independent disks. | X | X | X | ||
| Disk: Edit Properties | Permission to edit the properties of an independent disk. | X | X | X | ||
| Disk: View Properties | Permission to view the properties of an independent disk. | X | X | X | X |


Source code for flask_wkhtmltopdf
'''
Flask-WkHTMLtoPDF
-----------------
Convert JavaScript dependent Flask templates into PDFs with wkhtmltopdf.
:copyright: (c) 2015 by Chris Griffin
:license: MIT, see LICENSE file for more info
'''
#Backward compatibility for 2.7
from __future__ import absolute_import, division, print_function, unicode_literals
from flask import render_template, make_response
import celery
import subprocess
import os
import tempfile
[docs]class Wkhtmltopdf(object):
'''Wkhtmltopdf class container to use the robust wkhtmltopdf library which is
capable of generating a PDF from HTML, CSS, and JavaScript using a modified
WebKit engine. This extension allows you to easily incorporate this functionality
into your Flask app.
In addition to the dependencies automatically installed, you must manually
download the appropriate wkhtmltopdf command line tool from
http://wkhtmltopdf.org/downloads.html
The main function render_template_to_pdf() works similar to Flask's built-in
render_template() function and in fact utilizes some of the same underlying
functions. However, as the name suggests, it will return a pdf instead of
a rendered webpage.
To initialize, pass your flask app's object to Flask-WkHTMLtoPDF::
from flask_wkhtmltopdf import Wkhtmltopdf
app = Flask(__name__)
wkhtmltopdf = Wkhtmltopdf(app)
Then pass the template to the render_template_to_pdf() function. You can
pass Jinja2 params just like with render_template()::
render_template_to_pdf('test.html', download=True, save=False, param='hello')
Celery, an asynchronous task queue, is highly suggested when using Flask-WkHTMLtoPDF as rendering
the PDF can be resource heavy and take an unacceptable amount of time to generate. To
enable Celery, set 'WKHTMLTOPDF_USE_CELERY = True' in your Flask app's config.
You must add three variables to your Flask app's config::
WKHTMLTOPDF_BIN_PATH = r'C:\Program Files\wkhtmltopdf\bin'
PDF_DIR_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'static', 'pdf')
'''
use_celery = False
def __init__(self, app=None):
if app is not None:
self._init_app(app)
def _init_app(self, app):
'''Initalizes the app with Flask-WkHTMLtoPDF.
:param app: The Flask application object.
'''
self.use_celery = app.config.get('WKHTMLTOPDF_USE_CELERY', False)
self.add_path = app.config.get('WKHTMLTOPDF_BIN_PATH', None)
self.pdf_dir_path = app.config.get('PDF_DIR_PATH', None)
#checks to see if condition is true before applying decorator.
def _maybe_decorate(condition, decorator):
return decorator if condition else lambda x: x
@_maybe_decorate(use_celery, celery.task())
[docs] def render_template_to_pdf(self, template_name_or_list, save=False, download=False, **context):
'''Renders a template from the template folder with the given
context and produces a pdf. As this can be resource intensive, the function
can easily be decorated with celery.task() by setting the WKHTMLTOPDF_USE_CELERY to True.
:param template_name_or_list: The name of the template to be
rendered, or an iterable with template names.
The first one existing will be rendered.
:param save: Specifies whether to save the temporary pdf generated. Defaults to False.
:param download: Specifies if the pdf should be displayed in the browser
or downloaded as an attachment. Defaults to False (in browser).
:param context: The variables that should be available in the
context of the Jinja2 template.
'''
#Get the system's PATH and add wkhtmltopdf to it if necessary
path = os.getenv("PATH")
if "wkhtmltopdf" not in path:
if self.add_path is None:
raise ValueError('WKHTMLTOPDF_BIN_PATH config variable must be set in the Flask app or added to the OS PATH')
os.environ["PATH"] += os.pathsep + self.add_path
#render appropriate template and write to a temp file
rendered = render_template(template_name_or_list, **context)
with tempfile.NamedTemporaryFile(suffix='.html', dir=os.path.dirname(__file__), delete=False) as temp_html:
temp_html.write(rendered)
#Checks to see if the pdf directory exists and generates a random pdf name
if self.pdf_dir_path is None:
raise ValueError('PDF_DIR_PATH config variable must be set in the Flask app')
if not os.path.isdir(self.pdf_dir_path):
os.makedirs(self.pdf_dir_path)
with tempfile.NamedTemporaryFile(suffix='.pdf', dir=self.pdf_dir_path, delete=False) as temp_pdf:
pass
#Run wkhtmltopdf via the appropriate subprocess call
wkhtmltopdfargs = "wkhtmltopdf" + " " + temp_html.name + " " + temp_pdf.name
subprocess.check_output(wkhtmltopdfargs, shell=True)
#Remove the temporary files created
os.remove(temp_html.name)
with open(temp_pdf.name, 'rb') as f:
binary_pdf = f.read()
response = make_response(binary_pdf)
response.headers['Content-Type'] = 'application/pdf'
if download is True:
response.headers['Content-Disposition'] = 'attachment; filename=%s.pdf' % temp_pdf.name
else:
response.headers['Content-Disposition'] = 'inline; filename=%s.pdf' % temp_pdf.name
if save is False:
os.remove(temp_pdf.name)
return response


{% extends 'layout.html' %} {% block title %}Terms of Use{% endblock %} {% block content %}
This site is a development site and does not aim to be used in production. This Terms of Use apply for this site as well as serve as a blueprint for other derived web applications.
By using this site ("Service"), you are agreeing to be bound by the following terms and conditions ("Terms of Service").

If We make material changes to these Terms, We will notify you by email or by posting a notice on Our site before the changes are effective. Any new features that augment or enhance the current Service, including the release of new tools and resources, shall be subject to the Terms of Service. Continued use of the Service after any such changes shall constitute your consent to such changes. You can review the most current version of the Terms of Service at any time at: Terms of Use
Violation of any of the terms below will result in the termination of your Account. While We prohibit such conduct and Content on the Service, you understand and agree that We cannot be responsible for the Content posted on the Service and you nonetheless may be exposed to such materials. You agree to use the Service at Your own risk.


This step will publish TestComplete results from the worksapace-based location of result file(s).
For more information see
Exporting Test Results article.
Scenario is the following:
-
If .mht location given: decompress result .mht file to %WORKSPACE%\MHTParse folder
-
Generate JUnit test result report %WORKSPACE%\junitresult.xml
-
Publish junitresult.xml with 'Publish JUnit test result report' step
-
Optional:
-
Publish HTML result with 'Publish HTML reports' step
-
Publish screenshots with 'Publish HTML reports' step
-
If .mht location given: publish .mht file itself with 'Archive the artifacts' step


PLANET SICK-BOY: http://www.sick-boy.com
When Still Crazy was nominated for two Golden Globe awards (Best Picture [Comedy] and Best Original Song [Comedy]) in January, most people had never heard of it. At best, they knew that it was about a popular ‘70s British glam-rock combo named Strange Fruit, and that the film showed them trying to hit the road after being disbanded for several years in an attempt to ride the current wave of retro popularity. Early viewers described the film as This is Spinal Tap meets The Full Monty.
In its heyday, Strange Fruit had its share of problems. Original frontman Keith Lovell died and was replaced by the less charismatic Ray Simms (Golden Satellite nominee Bill Nighy, FairyTale: A True Story), who always had trouble living in Keith's shadow. Keith's brother, guitarist Brian, was institutionalized years ago and is presumed to be dead as the film opens. The remaining band members have been out of the music game for years, but are itching to regroup once keyboard player Tony Costello (Stephen Rea, The Butcher Boy) suggests they give it a go.
The hilarious Billy Connolly (Mrs. Brown) is underused as a veteran roadie (he's also the narrative voice of the film), but of more interest is the casting of actor-turned-director Bruce Robinson as Brian. Robinson hasn't acted since the late ‘70s, but did write the recent debacle In Dreams, as well as the Oscar-winning The Killing Fields, and directed Jennifer Eight. Robinson looks eerily like a washed-up rock star. Also worth a mention is the performance of Jimmy Nail (Evita) as the Strange Fruit bassist. Actually, his performance isn't noteworthy at all, but he does look like a cross between Anthony LaPaglia in So I Married an Axe Murderer and MTV's Tom Green.
Directed by Brian Gibson (What's Love Got to do with It), Crazy is honestly not much like the `mock'-documentary-style Tap. The only part that was even remotely like Monty was when the band auditions a young `hired gun' to play guitar for their tour, in place of Brian. Actually, it's probably more akin to The Commitments, which Crazy writers Dick Clement and Ian La Frenais also penned. Unfortunately, Crazy isn't nearly as entertaining. (1:40 - R for language, sexuality and drug content)
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


{% block css %} {% endblock %}
Toggle navigation
Home
Armor Generator
Weapon Generator
System Generator
Settlement Generator
Inventory Generator
Starship Generator
Loot Generator
Encounter Generator
Trap Generator
Character Concept
Generator
Monster Builder
Character Sheet
Buy creator a space beer
{% block body %} {% endblock %}
{% block includes %} {% endblock %}


During the extent of the course IASC 1P02, it is very evident of how my programming and design skills have evolved.
Below, there is a example of music that I have created over the span of a couple years. it is a quick song that I created in some spare time here at Brock. I have been making 'beats' on my computer for several years now, and if you'd like you can check out my Soundcloud
As I mentioned in the "About Me" section, I also like to write poetry. During my senior year of highschool, I took a course titled "Writers Craft," where I learned how to write poetry in several forms. Below is a sample of a free verse poem that I created for an assignment.
Every groove, every spin, every listen,
They never change, don’t they?
Every stream, every download, every purchase,
They all convey feelings.
Music is what makes me.
What makes me move,
What makes me love,
What makes me dance.
What makes me breathe.
If one does not have music in their life, then why be living at all?
You don’t need drugs to get there,
They’re hiding in plain sight.
Hundreds of thousands of stories that you can have
Here, right now, or
Tonight.
You don’t need a compass to find what you're looking for,
All you need is time.
Some music you won’t like, some you will, and that’s fine.
What is your prescription? What really makes you go?
What will get your body shaking, right to the dancefloor?
But of course, you don’t need to dance, no, not all the time.
Sometimes its just nice to sit and relax, headphones on,
Or in the car, speakers blaring,
even earbuds in;
I’m fine.


10: Man pages
If every Unix command has so many options, you might be wondering how you find out what they are and what they do. Well, thankfully every Unix command has an associated 'manual' that you can access by using the man
command. E.g.
man ls
man cd
man man # yes even the man command has a manual page
When you are using the man command, press space
to scroll down a page, b
to go back a page, or q
to quit. You can also use the up and down arrows to scroll a line at a time. The man command is actually using another Unix program, a text viewer called less
, which we'll come to later on.


By Time
By Tutor
We’re super excited to meet and start working with you! Enjoy browsing our comprehensive community of tutors, mentors, and partners.
100% of profits are donated to a variety of charitable causes.


H e l p C o n t e n t s
What is DSDSSE
Running Model Examples
Graphical Model Creator
Simulating Engine


Poll observer arrives
by Staff ReporterAbhishek Kumar, who has been appointed by the Election Commission of India as an election observer for the Vijayanagar byelections, arrived in the constituency on Friday.
The Delhi-based IAS officer is entrusted with the responsibility of monitoring election expenses being incurred by candidates and parties for the byelections.
He will stay at the Hosapete government guesthouse.
People can contact him on his mobile number Ph:<PHONE_NUMBER>.
In a release, Shiek Tanveer, Returning Officer for Vijayanagar constituency, appealed to the people to contact the officer for any election expenditure-related complaints and grievances between 10 a.m. and 11 a.m. every day.


Dong Hyeong Lee
Enthusiastic
developer
Lovely
coding works
I am Web Developer. I ❤ coffee and web development works
What I have learned
Front-End Development
Back-End Development
Full-Stack Development
Work Experience
Dates
Work
2019-2020
Division Engine (OpenGL C++)
2019-2020
AI-BS (AI-Behaviour System)
Skills
C++ OpenGL Development
⭐⭐⭐⭐⭐
Unity & Unreal Development
⭐⭐⭐⭐⭐
Web Development
⭐⭐⭐
iOS Development
⭐⭐
My Hobbies
Contact Me


Jack Duffy had a solid high school football career as a defensive back for Joliet Catholic Academy in Joliet, Illinois from 2012-2016. He is also one of my cousins. If you enjoy watching film, you can view his here. He had some offers from DII and DIII schools to continue playing, but instead opted to attend the University of Illinois as a student. This is a path many take after their high school playing days. However, for Jack, his football story does not end there.
After his senior season, Jack was presented with an opportunity to continue to be involved in football while in college, that of a football student manager. It is this experience that is the point of this post, as we take an insider look at what a student manager does.
How does one become a student manager? Like many things in life, it helps to know people.
“It all ending up coming about due to a connection. My high school football coach, Jake Jaworski, introduced me to the position about midway through my senior year of high school.” Jack began to explain. “He had graduated from U of I about 15 years ago and had this job throughout his 4 years at University of Illinois, and still happened to be in touch with his boss. He gave me a reference and I came down and met with the head equipment manager (Trent Chesnut) to talk about a position, and everything progressed from there.”
Talking to many former athletes, many don’t miss the early mornings, the late nights, the hot days, or the grueling practices (some might and hats off to those who do) day after day. However, when asked what they do miss, many of the common answers are the games, the thrill of being able to compete, and of course the teammates. The camaraderie and being a part of team striving for something bigger than themselves, and going to battle with a group of guys day after day.
Although the same exact words weren’t used by Duffy, it’s easy to see many of the same sentiments are there when he describes his desire to continue to be around the game.
“I had just finished my last season of football, so the opportunity definitely intrigued me.” He explains. “The biggest thing I think is that I’m still able to be around football. That was something that was pretty cool to me. I loved playing throughout high school and this was about as close as I could get to playing in college. Continuing to be around the game and being around team are huge reasons why I wanted to take the job.”
Jack was an unpaid volunteer in his first year over the fall season and spring ball, which is fitting for a freshman, paying their dues before getting a shot at a paid opportunity, which he did and officially started this August with the beginning of fall camp. As to what exactly he will be doing as a student manger, Jack goes into his first college fall camp with a mix of familiar and unknown awaiting him. Here’s what he had to say about his spring ball experiences:
“On spring practice days, we would arrive about thirty or forty-five minutes before players showed up. This was to gather and set up equipment that we would need for practice that day.” Duffy states, displaying insight and understanding to the importance of his role. “After players were done with their stretching and warm ups, I would help with drills. Some we did every day, and others would vary, which was nice so it wasn’t just the same thing every day. I could be doing anything really. From shagging footballs, throwing footballs in the actual drill, holding a pad and acting as an offensive or defensive player, or just observing and grabbing something if the coach needed it at any given time.”
He’s also eagerly looking forward to starting up for fall camp, although waking up at 4am and . “I am not entirely sure every specific thing I will be doing in the fall, but I’m sure it’ll be very similar to a spring practice day, at least as far as practices. I do know I will be given a specific positional responsibility to stick with through the year, but I’m not sure what position I will be working with yet.”
From the information Jack shared, it’s clear that the student manager plays a pretty integral role in team practices. Fans who watch practice highlights that get posted from time to time may catch a glimpse of student managers in the roles described above.  It may not be the most glamorous job, but it would be hard to argue that the job wasn’t important.
If things keep going well for Jack, he could have a significant role on game day sometime before he graduates.
“Again, I’m not sure on my game day role yet, but there are many different things I could end up doing. On game days, student managers can be doing anything from being a ballboy, to having a headset and holding up calls for the offense or defense. As we get closer to the season I’ll be given a responsibility, but during our spring game I helped raise the field goal net with another peer.”
Jack and the other student managers won’t see snaps on the field this fall. They won’t score any touchdowns or make any tackles. However, they will still get up for practices, as well as play a role in the drills. They will still have to prepare, be focused, and excel at the little things. They will play a role in getting the team ready each week for the game and be expected to grow and improve as the season goes on. Their playing days may be over, but their connection to football is still going.


Get_Ur_Pet is a renowned Online Store, Launched in 2020,December 11.
Our founders believe that the internet can break economic barriers and change the way business is done. Therefore, we want to bring e-commerce into the people's lives.
Pets can be adobted here at reasonable price!!
Register Now to stay connected with us for Weekly Offers and Discounts!


Hand selected products by passionate gardeners for loving homes
Products that every gardener needs
Products to treat and nuture your pets
Personalise indoors and outdoors with a selection of ornaments


This page attempts to set a number of cookies and then tests if they are available for use in a cross-site / third-party context in your browser. The results are compared with the expected behaviour defined in the IETF draft "Incrementally Better Cookies" (IBC).
For more context, see "SameSite cookies explained".
Ping @rowan_m for issues / questions with these tests. You can 💻 access the code on Glitch.
Each row shows the method used to set the cookie, if that cookie was successfully set, if it's available in a cross-site / third-party context, and if that behaviour matches the new IBC defaults.
If all rows show a green ✔ then your browser
is implementing the new behaviour.
User-Agent:
| Cookie set? | Cross-site? | IBC compliant? |
|---|---|---|
| Baking cookies… 🍪 results will display here… |


SEMODULE_DEPS
Section: NSA (8)Updated: June 2006
Index Return to Main Contents
NAME
semodule_deps - show the dependencies between SELinux policy packages.SYNOPSIS
semodule_deps [-v -g -b] basemodpkg modpkg1 [modpkg2 ... ]DESCRIPTION
semodule_deps is a developer tool for showing the dependencies between policy packages. For each module it prints a list of modules that must be present for a module's requirements to be satisfied. It only deals with requirements, not optional dependencies.
In order for semodule_deps to give useful information the list of packages passed in cannot have unsatisfied dependencies. In general this means that the list of modules will usually be quite long.
By default options to the base module are excluded as almost every module has this dependency. The -b option will include these dependencies.
In addition to human readable output, semodule_deps can output the dependencies in the Graphviz dot format (http://www.graphviz.org/) using the -g option. This is useful for producing a picture of the dependencies.
OPTIONS
- -v
- verbose mode
- -g
- output dependency information in Graphviz dot format
- -b
-
include dependencies to the base module - by default these are excluded
SEE ALSO
checkmodule(8), semodule_package(8), semodule(8), semodule_link(8)AUTHORS
This manual page was written by Karl MacMillan<EMAIL_ADDRESS>The program was written by Karl MacMillan<EMAIL_ADDRESS>Index
This document was created by man2html, using the manual pages.
Time: 05:34:29 GMT, December 24, 2015


mailbomb
`Prev `__
M
`Next `__
--------------
**mailbomb**
(also mail bomb) [Usenet]
1. v. To send, or urge others to send, massive amounts of
`*email* <../E/email.html>`__ to a single system or person, esp. with
intent to crash or `*spam* <../S/spam.html>`__ the recipient's system.
Sometimes done in retaliation for a perceived serious offense.
Mailbombing is itself widely regarded as a serious offense — it can
disrupt email traffic or other facilities for innocent users on the
victim's system, and in extreme cases, even at upstream sites.
2. n. An automatic procedure with a similar effect.
3. n. The mail sent. Compare `*letterbomb* <../L/letterbomb.html>`__,
`*nastygram* <../N/nastygram.html>`__, `*BLOB* <../B/BLOB.html>`__
(sense 2), `*list-bomb* <../L/list-bomb.html>`__.
--------------
+-------------------------------+----------------------------+---------------------------------+
| `Prev `__ | `Up <../M.html>`__ | `Next `__ |
+-------------------------------+----------------------------+---------------------------------+
| mail storm | `Home <../index.html>`__ | mailing list |
+-------------------------------+----------------------------+---------------------------------+


For all questions regarding recruitment, please email us at<EMAIL_ADDRESS>For all questions regarding sponsorships, project opportunities, or other general inquiries, please fill out the client request form below.
Subscribe to our external newsletter and get immediate updates about our club opportunities, external events, project updates, blog posts, and more.


Name:
Age:
Final Object:
Readable Format:
PRODUCT INVENTORY
Product Name:
Stocks:
Unit Price:
Product List:
Calculate
Product Total Value:


An idea that came from watching my wife play Draw Something and I was wondering if I could create a similar drawing pad on the net.
As time progresses and I work on this more then I plan to make it all open source.
Goals
Basic proof of concept with rough code.
Create a jQuery plugin to emcompass the basic development already done as a proof of concept.
Redploy and integrate with a Node.js and Express solution using socket.io to enable a single shared canvas.
Add abilities to create groups/rooms with a shared canvas.
Continue to add more features...
For now enjoy what you can get from it. You can get the plugin source here.
This site was designed by @dniswhite and for simplicity by using bootstrap.
Go check out jQuery UI and jQuery for lots of cool ideas.
Icons from Glyphicons Free, licensed under CC BY 3.0.
Colorpicker from Colorpicker for Bootstrap
Site Created and work deployed
Responsive fixes for width but still need to resolve height.
More responsive fixes and also resolved issue with pen width in dropdown not working.
When you click on the Pad Info button you can JSON object reprsenting it all.
Fixed bug in redraw causing the timer loop to get stuck in a loop. My senses are though that the redraw code will continue to need more work.
Fixed redraw code so that it doesn't stop in the middle of redrawing the pad information.
With article complete for plugin I updated the web site to use it. Will update later with article link when published.
Bug Fixes and made some visual improvements as well as added a new color picker.


The good news is that C syntax is almost identical to that of C++. However, there are many things you're used to that aren't available in C:
new
and delete
<< >>
//
comment character
/* this is a comment */ /* This is a multiline comment */You cannot nest comments.
/* This is /*nested */ comment. And is illegal. */
#include <stdio.h> int main() { printf("Hello World"); }printf() has a variable number of arguments, the first of which is a format string. The format string can contain both ordinary characters (what you want to appear on the screen like 'Hello World' above) and conversion character sequences. You can think of conversion characters as placeholders for a specific type formatted in a particular way. Conversion character sequences begin with % and end with a conversion character. An example will perhaps make this clearer. Here we're printing out the integers from 0 to 9.
int i; for (i = 0; i < 10; i++) { printf("the variable 'i' is: %d", i); }The conversion sequence is %d, which you can think of as a placeholder for an integer. Since this is the first conversion character sequence, the value of the first argument after the format string--in this case the value of 'i'-- will be placed in the held spot. Conversion characters can specify type, precision, and all sorts of other formatting information. See K&R or the man pages for all the gory details, but here are essential ones cribbed from K&R:
sequence type : produces %d or %i - int : signed decimal notation %s - char * : prints characters until the null character is reached %x - int : hexidecimal notation %p - void * : prints as a pointer
printf() always prints to standard out. If you want to print to another place, such as standard error, use fprintf() which takes as its first argument the stream you're printing on:
fprintf(stderr, "Fatal Error #2212. We're hosed"); /* or with values */ fprintf(stderr, "Fatal Error in foo(): value of bar is %p\n", bar);Note that we're calling standard in, out, and error slightly different names than we do in C++:
C++ C cin stdin cout stdout cerr stderrFinally, fputs() will also allow us to write to a stream.
int fputs(const char *str, FILE *stream);fputs() takes a null-terminated string 'str' and writes it to 'stream'. It omits the null character when it does this. It returns a non-negative integer if okay and EOF on error. An example:
if ( (fputs("Hello world", stdout)) == EOF) { fprint(stderr, "Whoops, something went wrong"); }fputs() functions similarly to printf() when it writes to stdout, but it doesn't do any conversion which probably means it's quite a bit faster.
char *fgets(char *buffer, int size, FILE *stream);fgets() reads up to size-1 characters from stream and stores them in buffer. fgets() stores the null character ('\0') after the last character read into the buffer and returns 'buffer' if everything works fine, or NULL on error or end of file. Here's an example:
char *cptr; char buffer[256]; printf("Enter some stuff:\n"); cptr = fgets(buffer, 256, stdin); if(cptr != NULL) { printf("You typed : %s\n", cptr); }Here's a more complicated example. Readline() uses fgets() to read up to MAX_LINE - 1 characters into the buffer 'in'. It strips preceding whitespace and returns a pointer to the first non-whitespace character.
char *Readline(char *in) { char *cptr; if (cptr = fgets(in, MAX_LINE, stdin)) { /* kill preceding whitespace but leave \n so we're guaranteed to have something*/ while(*cptr == ' ' || *cptr == '\t') { cptr++; } return cptr; } else { return 0; } }
new
and
delete
in C. All memory allocation is done with the
function malloc(). Here's its prototype:
void * malloc(int nbytes)malloc() takes an int indicating the number of bytes you want allocated and it returns a void pointer to the start of the allocated memory.
/* We're going to allocate enough space for an integer and assign 5 to that memory location */ int *foo; /* malloc call: note the cast of the return value from a void * to the appropriate pointer type */ foo = (int *) malloc(sizeof(int)); *foo = 5;Even more complicated structures like arrays are allocated through malloc():
/* Here we're allocating space for 5 integers */ int *foo; foo = (int *) malloc(sizeof(int) * 5); foo[0] = 17; foo[4] = 22;Freeing memory is done with the function free(). The prototype:
void free(void *);Here's an example of it being used:
free(foo);Pretty simple. However, note that it's disastrous to free a piece of memory that's already been freed.
More information is available in the man pages.
for(int i = 0; i < 200; i++) {Forgetting that you can't declare variables just anywhere is one of the most frequent causes of 'it won't compile' problems for programmers moving from C++ to C.
#define MAX_LEN 1024 #define NUM_CALLS 20This is also valid C++ code, though the use of #define is usually discouraged in C++. Like all preprocessor directives, #defines usually appear at the top of the source file.
struct
:
struct point { int x; int y; };You would then use it like so:
struct point p; p.x = 0; p.y = 0;While this is acceptable, the preferred approach is to use pointers when using structures:
struct point *p; p = (struct point *) malloc(sizeof(struct point)); p->x = 0; p->y = 0;The struct qualifier is required any time you're referring to a struct. You can see this above in the cast of the return value from malloc() and in the sizeof expression. In other words, having declared the struct point, we can't simply write:
/* this code won't work */ point p; p.x = 0;as we would with a C++ class. We can get rid of this repetition of the struct qualifier by using typedefs. The
typedef
keyword essentially creates an alias. Thus we can typedef struct
point to Point (or to lowercase 'point', but we're using uppercase to
remind ourselves it's a struct).
typdef struct point Point; Point *p; p = (Point *) malloc(sizeof(Point); p->x = 0;
bool
keyword in C. Instead booleans in C are
the same as integers with a value of 0 for false or 1 for true. Thus
the following is an infinite loop:
while(1) { ; /* do nothing */ }
#include <stdlib.h> #include <string.h>This is similar to C++ but the .h is required.
Here are some of the most useful C libraries:
int *(*foo[20]) (char *c);It also has a pretty good description of program memory.


Toggle navigation
Phosphenes
Home
Daily Quests
Profile
My Uploads
Sign Out
Share.
Take a picture from your device and upload it.
Upload