`97dd38b` corrects diliyhium installation instructions - gcharang
`355ba43` Merge branch 'sidd' into gcharang - gcharang
`84e60f6` adds details to reqs for home user in the mm2-L... - gcharang
`6a93ce6` Merge branch 'sidd' into gcharang - gcharang
`5d3eb8b` adds missing " to curl commands in atomicdex-ap... - gcharang
`3fcdb50` Use a JSON string for the orderbook price in or... - ArtemGr
`4776442` Merge branch 'sidd' into sidd - siddhartha-crypto
`684a149` Merge pull request #113 from ArtemGr/sidd - siddhartha-crypto
`97dd38b` corrects diliyhium installation instructions - gcharang
`355ba43` Merge branch 'sidd' into gcharang - gcharang
`84e60f6` adds details to reqs for home user in the mm2-L... - gcharang
`6a93ce6` Merge branch 'sidd' into gcharang - gcharang
`5d3eb8b` adds missing " to curl commands in atomicdex-ap... - gcharang
Filed on JL's request in the dev-marketmaker channel.
When a setprice or other BOB order exists with the 'max' variable set, automagically adjust the order size when any swaps are executed, based on the funds available after the swap.
Example:
- have 10 DEX
- create a setprice order to sell max DEX
- by or transfer in another 10 DEX
- auto-adjust the existing order to 20 DEX
This is related to the proposed solution to the existing issue of dummy orders staying on the books when ...
We might still want to use precision 9 instead of 8 for the divided price, in order to avoid the rounding error from spreading further.
Here's an example of the rounding error spreading:


ParamBuilder
Constructor Summary
| Public Constructor | ||
| public |
constructor(filter: FilterBuilder) |
Member Summary
| Private Members | ||
| private |
_filter: * |
Method Summary
| Public Methods | ||
| public |
between(valFrom: *, valTo: *): * True if the value is between the two specified values greater than or equal to first value and less than or equal to second value. |
|
| public |
eq(value: *): FilterBuilder Equivalence |
|
| public |
Numerical greather than (>) Valid for numberical and date values. |
|
| public |
Numerical greater than of equal (>=) Valid for numberical and date values. |
|
| public |
inq(values: *): * In an array of values. |
|
| public |
LIKE operators for use with regular expressions |
|
| public |
Numerical less than (<) Valid only for numerical and date values. |
|
| public |
Numerical less than or equal (<=) Valid only for numerical and date values. |
|
| public |
For geolocations, return the closest points, sorted in order of distance. |
|
| public |
neq(value: *): * Not equal (!=) |
|
| public |
nin(values: *): * Not in an array of values. |
|
| public |
NOT LIKE operators for use with regular expressions |
|
| public |
Regular expression |
| Private Methods | ||
| private |
_setValue(value: *) Sets the value to the filter builder |
Public Constructors
public constructor(filter: FilterBuilder) source
Params:
| Name | Type | Attribute | Description |
| filter | FilterBuilder |
Private Members
private _filter: * source
Public Methods
public between(valFrom: *, valTo: *): * source
True if the value is between the two specified values greater than or equal to first value and less than or equal to second value.
Params:
| Name | Type | Attribute | Description |
| valFrom | * | ||
| valTo | * |
Return:
| * |
public gt(value: string | number | Date): * source
Numerical greather than (>) Valid for numberical and date values. For Geopoint values, the units are in miles by default.
Return:
| * |
public gte(value: string | number | Date): * source
Numerical greater than of equal (>=) Valid for numberical and date values. For Geopoint values, the units are in miles by default.
Return:
| * |
public inq(values: *): * source
In an array of values.
Params:
| Name | Type | Attribute | Description |
| values | * |
Return:
| * |
public like(value: string): * source
LIKE operators for use with regular expressions
Params:
| Name | Type | Attribute | Description |
| value | string |
Return:
| * |
public lt(value: string | number | Date): * source
Numerical less than (<) Valid only for numerical and date values. For Geopoint values, the units are in miles by default.
Return:
| * |
public lte(value: string | number | Date): * source
Numerical less than or equal (<=) Valid only for numerical and date values. For Geopoint values, the units are in miles by default.
Return:
| * |
public near(near: string, maxDistance: number, unit: string): * source
For geolocations, return the closest points, sorted in order of distance. Use with limit to return the n closest points. maxDistance and unit can also be passed on same level as near to configure the search.
Return:
| * |
public neq(value: *): * source
Not equal (!=)
Params:
| Name | Type | Attribute | Description |
| value | * |
Return:
| * |
public nin(values: *): * source
Not in an array of values.
Params:
| Name | Type | Attribute | Description |
| values | * |
Return:
| * |
public nlike(value: string): * source
NOT LIKE operators for use with regular expressions
Params:
| Name | Type | Attribute | Description |
| value | string |
Return:
| * |
public regexp(regexp: string): * source
Regular expression
Params:
| Name | Type | Attribute | Description |
| regexp | string |
Return:
| * |
Private Methods
private _setValue(value: *) source
Sets the value to the filter builder
Params:
| Name | Type | Attribute | Description |
| value | * |


High-Speed Graphics in the Browser
Bartek Drozdz
bartekdrozdz.com @bartekd
What is WebGL?
It is an implementation of OpenGL ES in Javascript
It is an API for fast graphics redering on the GPU
What WebGL is not?
It is not a 3D engine
In fact, it is not related to 3D at all
Parts of WebGL
1. Buffers
2. Shaders
3. Textures
Buffers
A buffer is an array
WebGL coordinate space
[x, y] - [0, 0]
[angle, radius] - [2PI * random, 0.5 + random * 0.25] * 10k
[angle, radius, speed] - [2PI * random, 0.5 + random * 0.25, random] * 20k
[x, y] - [-0.5, 0.5, -0.5, -0.5, 0.5, 0.5]
red [-0.5, 0.5, -0.5, -0.5, 0.5, 0.5]
green [0.5, -0.5, -0.5, -0.5, 0.5, 0.5]
A cube or simply 6 triangles?
The illusion of the 3rd dimension!
7062 triangles
Shaders
A shader tells the GPU where and how to draw things
Shaders
A shader tells the GPU where and how to draw things
Oh, and they're not written in JS, but in GLSL instead
Simplest possible shader
//#vertex
//[x,y] - [0,0]
attribute vec2 aPosition;
void main() {
gl_Position = vec4(aPosition, 0.0, 1.0);
}
//#fragment
//[r,g,b] - [1,0,0]
uniform vec3 uColor;
void main() {
gl_FragColor = vec4(uColor, 1.0);
}
Normals
Using normals for light calculation
Textures
A texture is a bitmap - image, animation or video
Basic texturing
Texture coordinate space
Framebuffers
Render-to-texture
Tilt-shift effect
Depth of field effect
shadertoy.com / Main Sequence Start by flight404
shadertoy.com / Seascape by TDM
Thank you!
Bartek Drozdz
bartekdrozdz.com @bartekd


Las Vegas bans homeless people from sleeping rough if shelter beds available
by Agence France-Presse
Las Vegas has passed a law banning sleeping on the street if there are places in homeless shelters available.
To combat the growing number of homeless people in the city, the new law will impose punishments of a $1,000 fine and six months in prison.
The ordinance - the latest in a series of measures by US cities to grapple with rising vagrancy - comes into force on Sunday, but its criminal provisions will not be applied until February.
Sleeping on the streets of the gambling hub will only be illegal in downtown Las Vegas and residential areas - not the famous casino "Strip," which comes under a different jurisdiction.
It will not apply when homeless shelters are full.
Opponents of the law focused their anger on Las Vegas Mayor Carolyn Goodman before and during the vote late Wednesday.
Demonstrators outside City Hall chanted "Housing, not handcuffs" and held signs proclaiming "Poverty is not a crime," local media reported.
Ms Goodman said the law is necessary for a city that is highly dependent on tourism revenues and to protect "the health and safety of the entire community."
The law is not intended to punish the homeless but to help with their reintegration into society, she said, according to NPR radio.
It has been backed by Las Vegas's Chamber of Commerce.
According to the latest census, 5,500 people sleep on the streets of southern Nevada each night. Only 2,000 beds are available through municipal services and charities.
--


Being a developer
Learning to code is a lifelong endeavour. Around every corner,
you find more to learn that you didn’t know existed
I've being in the world of programming for the past 5 years, developing basic websites
and writing small desktop applications. Not until 2013 when I choose to be a full-grown
professional web developer using modern tools. I've worked in different institution like web
master for high schools/colleges, writing web-based ERP softwares for small enterprises and
others. But nowadays, I do Mostly freelance jobs on the web.
My area of interest is building web application project for
which I have to assemble the proper technologies
and architecture.
This is where my experience as a developer pays off; I have completed
enough projects, using best-in-class technologies (MVC Frameworks) ,
that I can speak with authority when designing a new system
Of course, nothing is perfect, and freelancing has a large downside
(and I'm not talking about the lack of paid benefits!). A contractor must keep the work
"pipeline" full. That requires a significant amount of time and effort. Establishing
a consistent pay rate that matches your market value is difficult, because not
all clients can afford a senior engineer. Sure, there are lots of job boards
that act as dating services between contractors and clients, but they have about
the same success rate as real dating services.
The job boards simply haven't figured out the correct business model yet.
The better way to connect clients with contractors is to have a pre-vetted
pool of contractors and retain them with repeated project success.
Vetting a new contractor must be technically thorough, and done by other engineers.
It can't be the slipshod qualifying that is done by the typical,
technology-illiterate headhunter. That's where Toptal comes in.
Toptal is a broker for clients and contractors, like the job boards,
but Toptal maintains a community of elite engineers and developers
that have qualified themselves with multiple levels of skill tests.
This formula is a win-win for clients and contractors. Clients have
a higher probability of project success,
and contractors have a steady supply of work at consistent rates.


REVIEW: La Confidential By Luke Buckmaster<EMAIL_ADDRESS>On the Buckmaster scale of 0 stars (bomb), to 5 stars (a masterpiece): 4 and a half stars
Curtis Hanson, the director of River Wild and The Hand That Rocks the Cradle, now features two of Australia's finest actors in his latest film LA Confidential. Bursting of class and realism, the film is set in "The City of Angels", Los Angeles, in the chaotic 1950's. But all is not well in paradise - as an apparently gleaming city is corrupted with mass murdering, drug dealing and high-class porn - all types of organized crime. The law enforcement's aren't much help either, as the image of fat cops accepting pay offs is spreading quickly whilst high ranking authorities and the corruption they deal in is rotting away the structures of society.
Although set long after the days of Al Capone and The Untouchables, little has changed in both the city and the situation of the film. Cops are either crooked or abnormally honest, so it's clear to see what sorts of characters are going to develop from the slick opening scenes of the film. But the mechanics of the film, the real oomph, is hidden behind twists and developments in the tricky and often very involving plot.
The two most intriguing characters, Ed Exley and Bud White, are played by Aussie sensations Guy Pearce and Russel Crowe who successfully give the "good cop bad cop" routine a much needed polishing and end up looking simply sensational as two very different screen detectives. Exley, a by-the-book and very noble officer, is not afraid to conceal the truth - even if that means ratting on one of his colleagues. On the other side of the spectrum, Bud White is a brutal and relentless member of the force who will stop at nothing to make sure that justice is served. With a particular grudge against women bashers; White becomes quickly known as someone to keep friendly with, although he serves his fellow officers with respect and perhaps even admiration. Along with Jack Vincennes (Kevin Spacey), the celebrity cop who never forgets to bring a camera on stake outs, Exley and White quickly become involved in a web of murder, blackmail, deceit and intrigue. But as the plot thickens, and the search to find the "man that gets away with it" continues, Exley and White eventually realize that the only way to uncover the mystery is to work as a team.
LA Confidential, a movie of class and quality, has added itself successfully to this year's most impressive Hollywood line up. I should be said that some people may not find this film to be as special as I did - but everyone can admire the way LA Confidential steers clear of main stream ideas and characters and presents us with intriguing situations and personalities.
In its worst moments, the more subtle viewer will notice LA Confidential's excessive use of violence to demonstrate the era it's set in, but in its best moments the word "excellence" is taken to new standards.
Email<EMAIL_ADDRESS>to subscribe to my newsletter (unless, of course, you already have) or<EMAIL_ADDRESS>for any inquiries or feedback
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


Sample Application
Code On GitHub
Enter a number from 0 and 1 to see it converted to a percentage
{{error}}
Submit
Random
Clear
{{num}}%


Creating a Service in CloudForms for Virtual Machine Provisioning
Overview
ManageIQ provides the ability to define services, which can include one or more virtual machines or instances, and can be deployed across hybrid environments. Services can be made available to users through the Self Service user interface, allowing users to order predefined IT services without IT operations getting involved.
The following three items are required to make a service available to users from the ManageIQ Self Service user interface:
-
Service Dialog: A service dialog is where you allow users to configure virtual machine or instance options. A service dialog determines which options users get to change. You can choose the options presented to the user, from setting the service name to changing all provisioning dialog options.
-
Service Catalog: A service catalog is used to group service dialogs together.
-
Service Catalog Item: A service catalog item is the actual service which combines a service dialog with a provisioning dialog.
Examining the Provisioning Dialog
Understanding provisioning dialogs is important when working with services in ManageIQ. Every provider in ManageIQ comes with a sample provisioning dialog covering the options specific to that provider. The process begins with the provisioning dialog, which presents the basic configuration options for a virtual machine or instance. The options presented are dependent on the provider you are using. For instance, a cloud provider might have flavors of instances, whereas an infrastructure provider might allow you to set the memory size or number of CPUs on a virtual machine.
To see the sample provisioning dialog for Red Hat Virtualization:
-
Navigate to menu:Automation[Automate > Customization].
-
Expand the Provisioning Dialogs accordion and select Sample RedHat VM Provisioning Dialog under VM Provision.
This is a textual representation of the dialog you will get when you provision a virtual machine.
Creating a Service Dialog
Using a service dialog you can determine which options users get to change. When users access a service, the majority of options available to them are preset and cannot be altered. A service dialog exposes some of those options to the user so that even if they are ordering a basic RHEL 7 machine, for example, they can at least choose the amount of memory, virtual CPUs, or other options available to the instance they order. In cases where certain fields must be unique, such as the name of virtual machines in Red Hat Virtualization, users must enter their own unique name for the virtual machine they choose or the operation will fail, so this field must be exposed.
A service dialog contains three components:
-
One or more Tabs.
-
Inside the tabs, one or more Sections. Note that in the previous method of creating a service dialog using the ManageIQ user interface, Sections were referred to as Boxes.
-
Inside the sections, one or more Elements. Elements are controls that accept input. Elements contain methods, like check boxes, drop-down lists or text fields, to fill in the options on the provisioning dialog.
The following procedure outlines how to create a service dialog for your sample service:
-
Navigate to menu:Automation[Automate > Customization].
-
Click the Service Dialogs accordion.
-
Click (Configuration), and then (Add a new Dialog).
-
Enter basic information for your dialog under General:
- Enter
Provision RHV VM
in Dialog’s name, and enter a description for the dialog in Dialog’s description.
- Enter
-
Add a new tab to the dialog:
-
Click Create Tab. Then, click the icon on the new tab to edit tab information.
-
Enter
General
in Label. -
Optional: Enter a description for the tab in Description.
-
Click Save.
-
-
Add a new section to the tab:
-
Click Add Section. Then, click the icon on the upper-right to edit section details.
-
Enter
Service and VM Name
in Label. -
Optional: Enter a description for the section in Description.
-
Click Save.
-
-
Add a Text Box element to the section for the service name:
-
From the list of elements on the left, click the Text Box element, then drag-and-drop it inside the section. Then, click the icon next to the element to edit its field details.
-
Enter
Service Name
in Label. -
Enter
service_name
in Name. -
Click Options, then select String from the Value Type list.
-
Click Save.
-
-
Add a Text Box element to the section for the virtual machine name:
-
From the list of elements on the left, click the Text Box element, then drag-and-drop it inside the section. Then, click the icon next to the element to edit its field details.
-
Enter
VM Name
in Label. -
Enter
vm_name
in Name. -
Click Options, then select String from the Value Type list.
-
Click Save.
-
-
Add a Text Box element to the section for the virtual machine description:
-
From the list of elements on the left, click the Text Box element, then drag-and-drop it inside the section. Then, click the icon next to the element to edit its field details.
-
Enter
VM Description
in Label. -
Enter
vm_description
in Name. -
Click Options, then select String from the Value Type list.
-
Click Save.
-
-
Add a new section to the tab:
-
Click Add Section. Then, click the icon on the upper-right to edit section details.
-
Enter
VM Characteristics
in Label. -
Optional: Enter a description for the section in Description.
-
Click Save.
-
-
Add a Dropdown element to the section for the number of CPUs:
-
From the list of elements on the left, click the Dropdown element, then drag-and-drop it inside the section. Then, click the icon next to the element to edit its field details.
-
Enter
Number of CPUs
in Label. -
Enter
option_0_cores_per_socket
in Name. -
Click Options. Next to Entries, click + to add individual entries for the values
1
,2
, and4
, and their description. -
Click Save.
-
-
Add a Dropdown element to the section for the virtual machine memory:
-
From the list of elements on the left, click the Dropdown element, then drag-and-drop it inside the section.
-
Click the icon next to the element to edit its field details.
-
Enter
VM Memory
in Label. -
Enter
option_0_vm_memory
in Name. -
Click Options. Next to Entries, click + to add individual entries for the values
1024
,2048
, and4096
and their description. -
Click Save.
-
-
Click Save to save the dialog.
Your service dialog is now added in the Service Dialogs accordion.
Creating a Catalog Item
Create a service catalog item to represent that service in a catalog.
-
Navigate to menu:Services[Catalog].
-
Click the Catalog Items accordion.
-
Click (Configuration), and then (Add a new Catalog Item).
-
Select RHEV from the Catalog Item Type list.
-
Enter the basic details in the Basic Info tab:
-
Enter a name for the catalog item in Name.
-
Enter a description for the catalog item in Description.
-
Select Display in Catalog.
-
Select the catalog you created from the Catalog list.
-
Select the service dialog you created from the Dialog list.
-
-
Click the Details tab:
- Enter a description of the catalog item using HTML tags.
-
Click the Request Info tab to enter the request details. Enter the same data you did in the traditional provisioning dialog.
-
In the Catalog tab, select the template on which to base the virtual machine from the Selected VM area.
-
Enter
changeme
as the default name of the virtual machine in VM Name. -
In the Network tab, select rhevm from the vLan list.
-
-
Click Add.
You can now provision a virtual machine through Red Hat Virtualization using the Self Service user interface.
Provisioning a Virtual Machine Using the Self Service User Interface
-
Log in to the Self Service User Interface at https://<hostname/ui/service>.
-
Click the Service Catalog tab.
-
Click the service you created.
-
In the Service and VM Name:
-
Enter the service name in Service Name.
-
Enter the virtual machine name in VM Name.
-
Enter the virtual machine description in VM Description.
-
-
In VM Characteristics, enter Number of CPUs and VM Memory.
-
Click Add to Shopping Cart and access the shopping cart by clicking its icon on the upper-right corner of the screen.
-
Click Order.
You have ordered a new provisioning request. You can follow its progress and see additional details of the order request by selecting it from the Orders tab.
Also, see the Self Service User Interface Guide for more information about using the Self Service user interface.
Summary.
As part of the above sample service, you created a provisioning dialog that defines the options that can be set on a virtual machine. Then, you created a service dialog which allows us to expose certain options to be set by the user. For our example, the service name, virtual machine name, virtual machine description, and virtual machine characteristics are configurable. Additionally, you created a service catalog and finally a catalog item. The catalog item combines the service dialog with all of the options in the provisioning dialog. Lastly, you provisioned a Red Hat Virtualization virtual machine using the Self Service user interface.


The Replacement Killers (R) ***
Hong Kong action star Chow Yun-Fat is a living legend, and it's about time that mainstream America found out. The ever-charismatic Chow will certainly have no trouble winning new fans with his English language debut, Antoine Fuqua's brisk, explosive The Replacement Killers.
In comparison to the dark, complex collaborations with John Woo (who executive produced) that made Chow an international superstar, Replacement is not exactly the sturdiest of vehicles. The entire storyline of Ken Sanzel's thin script can be summed up by its title. Chow plays John Lee, a hitman who wants out of a contract with his mob boss employer (Kenneth Tsang), who hence dispatches "replacements" to kill him and his ally, a document forger named Meg Coburn (a game Mira Sorvino, running around in an open shirt).
The plot is just the glue that holds together what is essentially one long series of wildly choreographed gunfights, which is far from a bad thing. Fuqua, whose slick style is best described as a cross between Michael Bay and (of course) Woo, wisely lets Chow be Chow--in other words, do all the things that makes him the coolest actor around. Throughout the film, I found myself breathing sighs of relief as the outrageous derring-do from the Chow I know and love appeared onscreen--sliding on floors, flying through the air, rolling around and flipping, firing from each hand. Early on, though, Fuqua makes a serious miscalculation by having Chow hold a gun with both hands (believe it or not, Columbia Pictures reportedly brought in someone to teach trigger-happy Chow how to shoot a gun), and his discomfort is obvious. But there is only one scene where he does so, and soon after Chow is allowed to ease into his normal routine.
As well as Chow is serviced by The Replacement Killers, it still only scratches the surface of his talent. His dour role erases all traces of his appealing sense of humor; Fuqua, perhaps caught up in his reverence for the man, takes Chow's character a bit _too_ seriously, sometimes eliciting an odd chuckle from the audience. And the depth of his dramatic range is only hinted at in the silent, subtly acted scene where Lee cannot go through with what is to be his last hit. But I suppose all depth will have to be reserved for when Chow reunites with Woo (which he is slated to do in the forthcoming action comedy King's Ransom). Until then, Replacement will do. It delivers all the mayhem and thrills one would want--and expect--from a popcorn action film and serves as a perfectly adequate American introduction to the living legend that is Chow Yun-Fat.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS><EMAIL_ADDRESS>|<EMAIL_ADDRESS><EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Mr. Brown's Movie Site: http://members.tripod.com/~MrBrown/ Personal Page: http://members.tripod.com/~MrBrown/home.html CinemaReview Magazine: http://www.CinemaReview.com
Michael Jordan Beyond the Court: http://www.geocities.com/Colosseum/Field/2302/ A Michael Jordan Fan's Heartbreak: http://members.tripod.com/~mj23/mj.html
"Don't be like me. Be better than me." --Michael Jordan
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


Caitlyn Jenner Says Preparing To Transition Is Harder Than Competing In Olympics
by Cameron FrewCaitlyn Jenner, a former gold medal-winning athlete, says coming out as a trans woman was more difficult than competing in the Olympic Games.
Caitlyn, previously known as Bruce, came out as transgender in 2015. Going from Olympic athlete in a former life to reality star, alongside ex-wife Kris Jenner and the other high-profile family members, Keeping Up With The Kardashians put her further in the spotlight.
However, while ‘everyone loved the games’, Caitlyn Jenner felt far less accepted after transitioning from male to female.
The 70-year-old reality star recently spoke on the BBC’s Don’t Tell Me the Score Podcast, saying people ‘hated her guts’ when she transitioned.
Caitlyn said:
I trained 12 years for the games. I trained 65 years to transition in 2015. It was harder to do, it was less accepted. Everyone loved the games, a lot of people when they see you transition hate your guts. Look at the quotes on Instagram. By far that was a lot more difficult.
Caitlyn, who has six children, said: ‘I have the great double. Olympic decathlon champion [in 1976] and Glamour’s Woman of the Year.’ However, she added that while she enjoyed succeeding at sports, training helped her to ‘run away from her issues’.
Caitlyn explained:
A lot of the training was really running away from the issues I had. I remember getting up the next morning, didn’t have a stitch of clothes on, walking to the bathroom, medal sitting there on the table, put the medal around my neck, looking in the mirror and I go: what have you just done?
Am I stuck with this person the rest of my life? Did you build up this person so big, that you’re stuck with him the rest of your life? It was scary.
Following transition, the 70-year-old has raised around $2.6 million for trans organisations. However, while ‘a lot of them are extraordinarily appreciative of it’, others are apparently wary of how controversial Caitlyn can be.
While on the podcast, she also took a moment to comment on the International Olympic Committee’s approach to trans athletes competing in the 2020 Olympic Games, saying ‘they deserve the opportunity to play sports’.
Caitlyn added:
I think the most important thing, is people that are different, people that are dealing with trans issues… I think they deserve an opportunity to play sports.
Sports was very, very good to me. We should not deny them of that opportunity. But also we should look at it closely and almost deal with it on an individual basis. But the Olympic Committee is doing a good job.

After graduating from Glasgow Caledonian University with an NCTJ and BCTJ-accredited Multimedia Journalism degree, Cameron ventured into the world of print journalism at The National, while also working as a freelance film journalist on the side, becoming an accredited Rotten Tomatoes critic in the process. He’s now left his Scottish homelands and took up residence at UNILAD as a journalist.


Usage Nomenclature
Evolution CSS classes are semantic and transparent in meaning. Numerical scales help make it easy to experiment with different sizes, colors, or other values, simply by guessing.
Nomenclature
There are two types of class names. The first type are those that begin with the prefix evo-
, such as these color classes which can be applied to text.
evo-color
vs. color-15
Suffixes such as -bg
help create special powers. By adding -bg
to our color classes, we target the background-color instead.
evo-color-bg
vs. color-15-bg
The evo-
prefix generally indicates that a class is controlled from the Evo theme, which is defined in a variables file. Changing these variables will alter the overall Evo framework on a global level.
evo-color
evo-font
evo-box
evo-line
etc.
The second type of classes are descriptive and utilitarian. These classes may also be controlled by variables, but most are hard-coded.
text-size-8
gray-15
text-tracking-4
image-size-25
etc.
The utility numbers are usually set on a modular scale, from 0 to 15, or 0 to 25, or higher, depending on the element.
- 15
- 14
- 13
- 12
- 11
- 10
- 9
- 8
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0


Open source REST service to provide information for any address in Toronto, Canada.
Learn more about the open-source Geocoder.
Contains public sector Datasets made available under the City of Toronto's Open Data Licence v2.0.
Try out the service for 200 Adelaide St W, Toronto.


Create a musician profile and portfolio, share posts and connect with other musicians and industry professionals.


This week’s top stories: Stadia isn’t really 4K, dwindling Pixel 3 stock, Dynamic Email on mobile, more
by Kyle BradshawIn this week’s top stories: Google Stadia isn’t actually running all games at 4K, the Pixel 3 goes out of stock on the Google Store, Dynamic Email releases for Gmail on Android and iOS, and more.
Google Stadia launched this week, following some less-than-stellar early reviews. One of the more critical complaints about Stadia is that its games do not appear to currently be running at 4K, as Google’s Phil Harrison promised. Games like Destiny 2 and Red Dead Redemption 2 run at 1080p and 1440p, respectively, on Google Stadia, relying on upscaling to get to 4K. Needless to say, this is not okay.
Since the first reveal of Stadia, Google has bragged about the powerful hardware running the service and how it can handle 4K at 60fps without breaking a sweat, even leveraging multiple instances to better improve the quality.  If the company had said that some games ran at lower resolutions and relied on upscaling or even pushed the underlying hardware prowess less, this would be less of a problem.
The Google Pixel 4 launched over a month ago in the United States, albeit to extensive criticism of its battery life. Despite the Pixel 4’s issues, it’s still Google’s flagship for 2019 into 2020, which means last year’s Pixel 3 is next on the Google Store chopping block. For a brief period, the Google Pixel 3 was completely out of stock on both the Google Store and Google Fi, but as of now the Not Pink Pixel 3 XL is still available.
In past years, Google would put the previous generation flagship on sale to get rid of excess inventory after the new phone launched. Given that the Pixel 3 was not a retail success, a deep $300 discount was instituted in early August and was extended in late September until November 23rd. Sundar Pichai during Q1 2019 earnings this April reported lower year-over-year Pixel sales due to “recent pressures in the premium smartphone market.”
Earlier this year, Google released an Accelerated Mobile Pages based technology for desktop Gmail that allows emails to have the most up-to-date information about its contents, rather than static content. This week, the feature, called “dynamic email,” is rolling out to Android and iOS users.
Yahoo Mail, Outlook.com, and Mail.Ru have also announced support. Besides Google Docs, other senders that support the interactive format include Booking.com, Despegar, Doodle, Ecwid, Freshworks, Nexxt, OYO Rooms, Pinterest, and redBus. Google reviews who can send dynamic emails through a registration program.
This week in Samsung news, the Galaxy S9 and Note 9 were announced to be receiving an Android 10 beta, joining Samsung’s 2019 flagships in receiving the update. As of Wednesday, this Android 10 beta has become available to download for S9 and Note 9 phones in South Korea.
This really is fantastic news for those hoping to get Android 10 in the coming months, as getting test builds out is a sign that we’ll see stable builds potentially before the year is out. That said, as this is only confirmation of a Korean Android 10 beta, it may take a little longer for localizations and carrier builds to be offered globally.
The Google Play Store on Android TV received a major overhaul this week, and our Ben Schoon took some time to get an early hands on with the redesign and all of the improvements it brings. As the Play Store is the primary discovery method for new apps and games, the redesign goes a long way toward revitalizing Android TV as a whole.
Outside of the design, Google has also improved the functionality of this new Play Store on Android TV. One way you’ll see that is with the new “My Apps” screen. Here, Google still shows a list of apps waiting for updates and everything you’ve got installed, but there’s also a new section for apps you have installed on other devices. From what I can tell, though, this only pulls from other Android TV devices and not smartphones attached to your account.
Finally, in some “killed by Google” news, the company is shutting down its Cloud Print service, after a 10 year “beta test.” Cloud Print was originally intended as a way for Chromebooks and Android phones to be able to easily and seamlessly print, but in the intervening years Chrome OS has greatly improved its native printing capabilities.
Google highlights many equivalent Chrome OS features that are already live or will be added to the operating system’s native printing functionality by the end of the year. There are also a few features in the works to come before Google Cloud Print is officially deprecated at the end of next year.
The rest of this week’s top stories follow:
Google Stadia |
- [Update: Resolved] Stadia Founders invite codes not arriving as promised, Google working on a solution
- How to get your Google Stadia code, set up, and claim your Stadia name
- [Update: First invite codes sent] Google starts shipping Stadia Founder’s Edition
- Some Chromecast Ultra units are overheating and shutting down while playing Stadia [U]
- Google’s ‘CLAW’ accessory can damage the Stadia Controller when you put it on
- Google Stadia first impressions: It works!
- PSA: Destiny 2 is down on all platforms, not just Google Stadia
- How to improve your internet connection for Google Stadia
- Google launches Stadia, an ambitious streaming service that could change gaming
- Comment: Google Stadia won’t matter for a year
Android |
- How to force Android TV’s new Google Play Store redesign on your device
- Samsung Galaxy S11 renders show central punch-hole, new camera layout, more
- OnePlus 7T Pro McLaren review: The fastest phone gets slightly faster [Video]
- Google’s Material Design guidelines now identify components that are still in ‘Beta’
- Alleged OnePlus 8 Pro design diagrams leak w/ dual punch-hole notch, more
- Samsung Galaxy Note 10+ gets ‘Star Wars: The Rise of Skywalker’ bundle in December
- Android flaw allowed apps to take and upload pictures, some devices still vulnerable
Apps & Updates |
- [Update: Fixed] Latest Chrome Canary for Android renamed to ‘Clankium’ — what we think it means
- Latest Nvidia Shield TV hotfix update fixes Disney+ and other issues
- The spiritual successor to Inbox, Spark, now has a dark mode on mobile
- Microsoft to add Gmail, Drive, and Google Calendar integration to Outlook.com
- Google combining classic Hangouts and Hangouts Chat settings for G Suite admins
- Microsoft xCloud hands-on: Almost Xbox gaming on the go [Video]
- Google Phone 42 preps automatic call screening to block robocalls [APK Insight]
- Bank of America updates Android app to support Pixel 4 face unlock
Made by Google |
- Is Google Pixel 4 and 4 XL worth it?
- Review: Google’s Pixel 4 fabric case is still great, but a step backward
- The Android 10 update seems to be breaking Wi-Fi on some Pixel 2 devices
- JerryRig’s latest teardown shows what a clear-backed Pixel 4 XL would look like
- Nest Mini Review: Why Google’s latest smart speaker is worth buying
- Latest ‘Star Wars: The Rise of Skywalker’ poster makes a great Pixel wallpaper
- Report: Google silent so far on Fitbit plans, balked at Assistant on Versa 2
- Made by Google releases fun ad for fabric Pixel 4 Cases [Video]
Videos |
FTC: We use income earning auto affiliate links. More.


Marlin on Fly
Black marlin on fly, Cape Bowling Green, Queensland
An edited version of this article appeared in (Australian) “Modern Fishing” magazine, April 1994, pp. 50-53.
It is hard to explain to the non-flyfisherman what we are actually trying to prove when we go saltwater flyfishing. The mechanics of casting, the long rods, the special flylines etc. seem to serve to make it as hard as possible to catch a given fish. The flyfisherman goes out fishing, gets outfished five to one by his mates using conventional gear, and goes away feeling superior. I don’t think I can explain why we do it, its just that when you catch a fish on a fly, the experience is so much more enjoyable.
One of my fishing ambitions was to catch a marlin on a fly. If saltwater flyfishing is an eccentric pursuit anyway, why not try to catch the most glamorous fish of them all?
To catch a marlin on a fly, there is only one place in Australia to go: Cape Bowling Green. These grounds, pioneered by Calvin Tilley, are arguably the world’s most prolific juvenile marlin waters, and 10 marlin a day is nothing unusual at Cape Bowling Green.
With the advice of Andrew Brzoz, proprietor of the Australian Fly Fisherman shop and the person who caught the first sailfish in Australia on a fly, we booked a 4 day charter on “Seaducer” through Angling Adventures. Andrew caught his sailfish from Seaducer and it was also the boat from which Jack Samson caught his black marlin which is described in his book, “Saltwater Fly Fishing”.
The trip was taken with my usual fishing mates, Ian Moore and Warren Monks. Ian was keen to flyfish whereas Warren would use conventional tackle.
After booking the trip, we had to organise our fly gear. We opted for Composite Developments 12-14 weight rods and Scientific Angler’s System II 12-13 reels. We were confident that the 12-13 reel would do the job, and it holds A LOT of line - about 400 yards of 30 lb backing, shooting line plus shooting head.
The fly of choice was a big white streamer with a tandem hook arrangement. We tied 8 of these on 4/0 hooks. These flies had a deerhair popping head and we prerigged them with a a 12 inch, 80lb Mason (hard type) shock tippet and a 10kg class tippet to form our fly/leader arrangement. We fished 10kg since it offered the advantage of being a new IGFA line class and not many record claims had been made. It also didn’t hurt to fish heavier leaders.
We finally got onboard Seaducer and met the captain, Calvin Tilley and deckhand Peter Reyne. It was a dark, windy day with a 1.5 meter swell. We reached Cape Bowling Green and started trolling deadbaits on conventional 6 kg tackle to get a feel for the fishing before we broke out the flyrods. This proved to be a pretty good formula and although we could have gone lighter, we did lose a few fish with broken lines etc.
The first thing we did was to stop on top of a bait school and get some livebait. Obtaining livies involved dropping a bait jig over the side, a couple of jerks, and winding in the jig, which by now would have a bait on each hook. In about five minutes, we had enough bait. The bait schools at Cape Bowling Green have to be seen to be believed. Some were about half a kilometer in diameter. Calvin said that they are sometimes kilometers in diameter!
In the first fifty meters of trolling, we had a hookup. Warren had no trouble landing it. It was a mack tuna. Warren was actually pretty happy with it, but Peter and Calvin looked at it in disgust, mumbling that it wasn’t a marlin.
By lunchtime, we had already caught 5 black marlin, all three of us having caught at least one. The marlin were about 50 to 70lb. In addition, we got two mack tuna and a spotted mackerel.
In the afternoon we started on fly. The procedure that we used was nearly exactly the same as that described in the Billy Pate video “Flyfishing for Billfish”. The marlin are teased up to the surface by trolling hookless teasers. On my first shot, the marlin actually took the fly, but I struck while it was still facing me and thus did not set the hook.
That evening, we practised casting by connecting a plastic milk bottle to the teaser rod and retrieving it as if it was a marlin. The person practising, would cast a fly to the “marlin” as it approached the boat. As we did this, a giant barracuda appeared from nowhere and smashed the milk bottle, completely crushing it. Warren, who was holding the rod, cast it out again and this time the barracuda took the milk bottle and raced away. For a few seconds he fought the barracuda until it finally let go of the milk bottle and swam away. As Calvin said, “There are so many fish out here you can catch them on milk bottles!”.
For the next four days, we tried and tried to get one on fly. We would troll at the unproductive times (and usually catch a few marlin) and then when the fish were on the bite (usually around the full tide), we would try the fly. We had about about sixteen shots up to the last afternoon of the charter and missed them all.
Some of the problems that we had were that the teasers were not cleared in time, we cast but the marlin didn’t seem interested in the fly, marlin ate the teaser etc. However, every shot was a new experience and every time was exciting. Imagine a fish about 50 to 80 lb charging up behind the boat to grab the teasers and then sight casting to it!
On the second day, Warren was fighting another mack tuna and suggested that I jump in the water and take some pictures of the fight from the water. Seconds after he finished this sentence, a huge blob appeared in the water. Warren pumped the fish in frantically, and the blob got bigger and bigger, and finally a huge whaler shark could be seen deep in the water. Dispite Warren’s efforts, the shark ate the estimated 25 lb tuna in one bite and disappeared.
Just after lunch on the last day, Peter suggested that we tie a different fly. The one that we were using wasn’t that visible and it was hard to smash it on the water with enough commotion that the marlin could hear the fly over the diesels and wake of the boat. We ended up tying the “mother” fly. I tied the fly with specifications given by Peter - “tie me the biggest ugliest fly you can”. To achieve this, I used half a pack of saddles on the rear hook and white, brown and grey deerhair on the front hook. The finished fly looked like a small bird and I had doubts as to what a marlin could possibly mistake it for.  The resulting beast looked so ugly it had to work!
At about 2:30pm I saw a marlin come up on the teaser with its tail and dorsal fin sticking out of the water. “Marlin” I shouted and all of the crew rushed to bring in the other teasers. Peter teased the fish to about 30 ft from the back of the boat. “Are you ready?”, shouted Peter. “Ready”, I yelled and started my backcast as Calvin put the boat into neutral. I smashed the fly onto the water, in front of, and to the right of Mr Marlin. I gave it one twitch and the marlin turned and grabbed the fly. This was the perfect opportunity since the marlin was side on to me and I could set the hook into the side of the mouth. I struck once, twice, three times, then a fourth but nothing happened - the marlin must not have even felt it. Then, after hitting the fish five or six times, the marlin moved slowly away and I cleared my line. It accelerated, stripping off about 100 yards of line in a couple of seconds. It made the first of many jumps out at about 100 yards. After jumping a few more times, Calvin started backing the boat towards the fish and I wound frantically.
After a few more jumps, the marlin went down. Even on a game rod, if a marlin fights by going down deep, it can take half an hour to raise it. On a fly rod, it would be many times worse. Luckily, this marlin only went down about 40 feet and we could see it easily in the clear waters at Cape Bowling Green. I gradually fought it to the surface by continually changing the direction of pull. Calvin also positioned the boat to always be fighting the fish from a different angle. During the entire fight, Peter was giving me advice, and with their help, it gradually came to the surface.
My main problem at this stage was that my hands were covered with sweat and I was struggling to hold on to the rod, let alone fight the fish. I was holding the rod just under the first guide and pulling up as hard as I could. When the fish made a run or jump, the rod was quickly pointed at the fish so as to minimise the line tension. After about 15 minutes, the fish was about 8 foot from the back of the boat and Peter managed to tag it on the first attempt. Upon being tagged, the fish swam down again and it took another 5 minutes to bring it back up. It was brought to the side of the boat without too much drama and Peter grabbed it by the bill and lifted it onboard for a quick photo.
The fish was about 2.2 m and weighed an estimated 25 kg. After the photo, it was revived and then released. Congratulations were given all around and we had the whole afternoon to try to get one for Ian.
Ian had put on my “mother” fly and not long after, I heard Calvin shout “Fish”. Peter grabbed the teaser rod and Warren and I raced over and wound in the other teasers. In a few moments, I looked around and Ian was striking like a madman, the rod being loaded with a decent bend. The next second, the fish let go of the fly and it descended into the depths.
Unfortunately, although Ian had one final chance, it was not to be. I’m sure he will be back there to try again. In total, we caught 13 marlin and a sailfish, only one marlin falling to the fly. We had one double hookup with both fish landed. We did miss some greater than 70 lb black marlin on fly which we would have submitted for an IGFA 10 kg record claim, however, although this was always a possibility, we were not chasing records, but just trying to catch a marlin on fly.


I’m available for hire and enjoy partnering with others for fun and interesting projects. If you’re interested in hiring me, please contact me.


Whatever you search, it has to be expressed so that the result is unique.
You can search for a specific piece of text.
Images can be found using their alt-text.
In case all else fails, use data-uitesteri -attribute.
Various kinds of form fields can be controlled.


See: Description
| Interface | Description |
|---|---|
| RsConstants |
Constants related to the representation of ResourceSync documents as xml.
|
| Class | Description |
|---|---|
| ObjectFactory |
Factory class for creating the root elements of sitemaps: <urlset> and <sitemapindex>.
|
| ResourceSyncContext |
JAXBContext for marshalling and unmarshalling of ResourceSync documents.
|
| RsBuilder |
Utility class for building
RsRoot class hierarchies. |
| RsItem<T extends RsItem> | |
| RsLn | |
| RsMd | |
| RsRoot<T extends RsRoot,C extends RsItem> | |
| Sitemapindex | |
| SitemapItem | |
| UrlItem | |
| Urlset | |
| ZonedDateTimeAdapter |
Adapter for conversion between a
ZonedDateTime and an ISO 8601 profile know as W3C Datetime format. |
| Enum | Description |
|---|---|
| Capability |
A mandatory attribute in all ResourceSync documents.
|
The class RsBuilder
can be used to marshal and unmarshal
ResourceSync sitemap documents to and from a class hierarchy.
RsBuilder rsBuilder = new RsBuilder(new ResourceSyncContext()); Optional<RsRoot> maybeRoot = rsBuilder.setInputStream(inStream).build();
RsRoot
is the superclass of two classes that represent
the two possible root elements of a sitemap: <sitemapindex> and <urlset>: the classes
Sitemapindex
and Urlset
.
RsBuilder
can also be used to marshal a class hierarchy to its
xml-representation. Continuing from the previous example (and knowing the unmarshalled thing was a Urlset):
Urlset urlSet = rsBuilder.getUrlset().orElseThrow(RuntimeException::new); String xml = rsBuilder.toXml(urlSet, true);
Copyright © 2017. All rights reserved.


Description
eXpress is a streaming tool for quantifying the abundances of a set of target sequences from sampled subsequences. Example applications include transcript-level RNA-Seq quantification, allele-specific/haplotype expression analysis (from RNA-Seq), transcription factor binding quantification in ChIP-Seq, and analysis of metagenomic data. It is based on an online-EM algorithm [1] that results in space (memory) requirements proportional to the total size of the target sequences and time requirements that are proportional to the number of sampled fragments. Thus, in applications such as RNA-Seq, eXpress can accurately quantify much larger samples than other currently available tools greatly reducing computing infrastructure requirements. eXpress can be used to build lightweight high-throughput sequencing processing pipelines when coupled with a streaming aligner (such as Bowtie), as output can be piped directly into eXpress, effectively eliminating the need to store read alignments in memory or on disk.
In an analysis of the performance of eXpress for RNA-Seq data, we have observed that this efficiency does not come at a cost of accuracy. eXpress is more accurate than other available tools, even when limited to smaller datasets that do not require such efficiency [2]. Moreover, like the Cufflinks program [3], eXpress can be used to estimate transcript abundances in multi-isoform genes. eXpress is also able to resolve multi-mappings of reads across gene families, and does not require a reference genome so that it can be used in conjunction with de novo assemblers such as Trinity, Oases, or Trans-ABySS. The underlying model is based on previously described probabilistic models developed for RNA-Seq [4] but is applicable to other settings where target sequences are sampled, and includes parameters for fragment length distributions, errors in reads, and sequence-specific fragment bias [5].
eXpress can be used to resolve ambiguous mappings in other high-throughput sequencing based applications. The only required inputs to eXpress are a set of target sequences and a set of sequenced fragments multiply-aligned to them. While these target sequences will often be gene isoforms, they need not be. Haplotypes can be used as the reference for allele-specific expression analysis, binding regions for ChIP-Seq, or target genomes in metagenomics experiments. eXpress is useful in any analysis where reads multi-map to sequences that differ in abundance.
Features
- Time proportional to number of reads, memory proportional to transcriptome size.
- Maximum of 3 free processor cores required (2 without bias correction). Try it on your laptop!
- Outputs FPKM, estimated counts, and posterior count distributions for differential analysis.
- Supports alignments with unlimited multi-mappings and errors.
- Transcript-level abundance estimation when used for RNA-Seq.
- Can be used for allele-specific expression estimates in RNA-Seq.
- Corrects for sequence-specific fragment biases.
- Learns first-order Markov model for sequencing errors for use in probablistic read assignment.
- Models indels in reads.
- Learns fragment length distribution for use in probablistic assignment of paired-end reads.
- Supports both directional and non-directional sequencing.
- Written in C++ and runs on Mac, Linux, and Windows.
Methods
A complete description of the eXpress method can be found in the manuscript [2].
References
- Cappé O and Moulines E. (2009).
On-line expectation–maximization algorithm for latent data models.
Journal of the Royal Statistical Society.
→doi:10.1111/j.1467-9868.2009.00698.x - Roberts A and Pachter L (2012).
Streaming fragment assignment for real-time analysis of sequencing experiments.
Nature Methods.
→doi:10.1038/nmeth.2251 - Trapnell C, Williams BA, Pertea G, Mortazavi AM, Kwan G, van Baren MJ, Salzberg SL, Wold B, Pachter L (2010).
Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation.
Nature Biotechnology.
→doi:10.1038/nbt.162 - Pachter, L (2011).
Models for transcript quantification from RNA-Seq.
Submitted.
→arXiv:1104.3889v2 - Roberts A, Trapnell C, Donaghey J, Rinn JL, Pachter L (2011).
Improving RNA-Seq expression estimates by correcting for fragment bias.
Genome Biology.
→doi:10.1186/gb-2011-12-3-r22


| Home | Libraries | People | FAQ | More |
This section covers the regular expression syntax used by this library, this
is a programmers guide, the actual syntax presented to your program's users
will depend upon the flags used during expression compilation.
这节涵盖了库使用的正则表达式语法，这是编程指南，出现在你程序用户的实际语法依赖于表达式编译中使用的标记。
There are three main syntax options available, depending upon how you construct
the regular expression object:
有三个主要语法选项，取决于你如何构造正则表达式对象：
You can also construct a regular expression that treats every character as
a literal, but that's not really a "syntax"!
你同样可以构造一个正则表达式，将每个字符作为字面意思，但这并不是真正的"语法"！


How was our payment service?
Please complete this short survey to help us improve the service.
It will take less than a minute to complete.
No thanksPlease complete this short survey to help us improve the service.
It will take less than a minute to complete.
No thanks


All functions |
|
|---|---|
Classificatoin |
|
Resolve a text term into IRI |
|
Return the NeXML object |
|
pk_get_study |
|
Query the list of studies by taxa, anatomical entities, and quqlities. |
|
pk_get_study_meta |
|
pk_get_study_xml |
|
Test if a list of taxa is descendant/ancestor of a given term |
|
Test if a taxon is extinct. |
|
Returns a NeXML-format evolutionary character matrix. |
|
|
|
Get details about a given term |


GPA: 3.11
Develop Account Management application - Core System of Mandiri Utama Finance. Performed analysis to the existing system as part of gathering requirement to develop the new one. Performed Data Migration from the existing system to the new system.
Developed Core System application (web-based) for Mandiri Utama Finance.
Re-engineering existing systems using Microservice Architecture.
Technology: Go, Echo Framework, Postgre SQL, Docker, Rabbit MQ, Sentry, FCM, Swagger
Integration between the Travellergram system with many supplier system hotel room bookings.
Technology: PHP Codeigniter, Go and My SQL Database
Integration between the Travellergram system and the Hotelspro system hotel room bookings.
Technology: PHP Codeigniter and My SQL Database
Developed web-based application for manage Machine.
Technology: ASP.Net, JQuery and SQL Server
Developed web-based application for manage each Travellergram order and customer service needs.
Technology: PHP Laravel, JQuery, Bootstrap and MySQL Database
Integration between the Travellergram system and the Google Hotel Ads system for hotel room bookings via Google.
Technology: XML and PHP Codeigniter
Integration between the Travellergram system and the Hotelbeds system hotel room bookings.
Technology: PHP Codeigniter and My SQL Database
Travellergram system to build commercial networks between users.
Technology: PHP Codeigniter and My SQL Database
Integration between the Travellergram system and the Midtrans system for payment needs.
Technology: PHP Codeigniter and My SQL Database
Social media application for Travellergram users.
Technology: PHP CodeIgniter and My SQL Database
Developed web-based application for management to manage and monitor contract or institutions that cooperates with BNPB.
Technology: Laravel, Jquery, and Bootstrap
Developed web-based application to create a manual journal for Head Office of Mandiri Utama Finance.
Technology: Codeigniter, Jquery, and Bootstrap
Developed web-based application that specifically for customer’s contract cancellation.
Technology: Codeigniter, Jquery, and Bootstrap
Developed web-based application to record dealer billing documents.
Technology: Codeigniter, Jquery, and Bootstrap
Developed web-based application for Loan Application using SMS Gateway.
Technology: Jquery, Bootstrap, and PHP Native
Developed web-based application for Vehicle Management at PT Indah Cargo Logistic.
Technology: Codeigniter, Jquery, and Bootstrap


| Package | Description |
|---|---|
| org.jclouds.cloudstack.compute.strategy | |
| org.jclouds.cloudstack.features | |
| org.jclouds.cloudstack.options |
| Class and Description |
|---|
| DeployVirtualMachineOptions
Options used to control what disk offerings are returned
|
| Class and Description |
|---|
| AccountInDomainOptions
Options for services that apply to accounts in domains
|
| AddClusterOptions
Options to the GlobalHostApi.addHost() API call
|
| AddHostOptions
Options to the GlobalHostApi.addHost() API call
|
| AddSecondaryStorageOptions
Options for the GlobalHostApi.addSecondaryStorage() API call
|
| AssignVirtualMachineOptions
Options used to control what disk offerings are returned
|
| AssociateIPAddressOptions
Options used to acquire and associate a public IP to an account.
|
| CreateAccountOptions
Optional fields for account creation
|
| CreateDiskOfferingOptions
Options to control how disk offerings are created
|
| CreateDomainOptions
Options used to control how a domain is created
|
| CreateFirewallRuleOptions
Options used to control how a firewall rule is created
|
| CreateIPForwardingRuleOptions
Options used to create an ip forwarding rule
|
| CreateLoadBalancerRuleOptions
Options used to control what load balancer rules are returned
|
| CreateNetworkOptions
Optional fields for network creation
|
| CreatePodOptions
Options to the GlobalPodApi.createPod API call.
|
| CreateServiceOfferingOptions
Options to control how service offerings are created
|
| CreateSnapshotOptions
Options for the Snapshot createSnapshot method.
|
| CreateTemplateOptions
Options used to control how a template is created.
|
| CreateUserOptions
Optional fields for user creation
|
| CreateVlanIPRangeOptions
Options to the createVlanIPRange API call.
|
| CreateVMGroupOptions
Options used to control options for creating a VM group
|
| CreateZoneOptions
Options used to control how a zone is created
|
| DeleteHostOptions
Options to the GlobalHostApi.deleteHost() API call
|
| DeleteISOOptions
Options for the ISO deleteISO method.
|
| DeleteTemplateOptions
Options used to control how a template is created.
|
| DeployVirtualMachineOptions
Options used to control what disk offerings are returned
|
| ExtractISOOptions
Options for the ISO extractISO method.
|
| ExtractTemplateOptions |
| GenerateUsageRecordsOptions
Options to the GlobalUsageApi.generateUsageOptions() API call
|
| ListAccountsOptions
Options used to control what account information is returned
|
| ListAlertsOptions
Options to the listAlerts command.
|
| ListAsyncJobsOptions
Options used to control what asyncJobs information is returned
|
| ListCapacityOptions
Options to the listCapacity command.
|
| ListClustersOptions
Options used to control what cluster information is returned
|
| ListConfigurationEntriesOptions
Options used to control what configuration entries are returned
|
| ListDiskOfferingsOptions
Options used to control what disk offerings are returned
|
| ListDomainChildrenOptions
Options used to control what domain children are returned
|
| ListDomainsOptions
Options used to control what domains are returned
|
| ListEgressFirewallRulesOptions
Options used to control what egress firewall rules are returned
|
| ListEventsOptions
Options used to control what events are returned
|
| ListFirewallRulesOptions
Options used to control what firewall rules are returned
|
| ListHostsOptions
Options used to control what hosts information is returned
|
| ListIPForwardingRulesOptions
Options used to control what ip forwarding rules are returned
|
| ListISOsOptions
Options for the ISO listISOs method.
|
| ListLoadBalancerRulesOptions
Options used to control what load balancer rules are returned
|
| ListNetworkOfferingsOptions
Options used to control what network offerings are returned
|
| ListNetworksOptions
Options used to control what networks information is returned
|
| ListOSTypesOptions
Options used to control what OSType information is returned
|
| ListPodsOptions
Options to the GlobalPodApi.listPods API call.
|
| ListPortForwardingRulesOptions
Options used to control what port forwarding rules are returned
|
| ListProjectsOptions
Options used to control what account information is returned
|
| ListPublicIPAddressesOptions
Options used to control what ip addresss information is returned
|
| ListResourceLimitsOptions |
| ListSecurityGroupsOptions
Options used to control what security groups are returned
|
| ListServiceOfferingsOptions
Options used to control what service offerings are returned
|
| ListSnapshotPoliciesOptions
Options for the Snapshot listSnapshotPolicies method.
|
| ListSnapshotsOptions
Options for the Snapshot listSnapshots method.
|
| ListSSHKeyPairsOptions |
| ListStoragePoolsOptions
Options to the GlobalStoragePools[Async]Client.listStoragePools API call
|
| ListTemplatesOptions
Options used to control what templates information is returned
|
| ListUsageRecordsOptions
Options to the GlobalUsageApi.listUsageOptions() API call
|
| ListUsersOptions
Options used to control what user information is returned
|
| ListVirtualMachinesOptions
Options used to control what virtual machines information is returned
|
| ListVlanIPRangesOptions
Options to the listVLANIPRanges() API call
|
| ListVMGroupsOptions
Options used to control what VMGroups information is returned
|
| ListVolumesOptions
Options used to control what volume
|
| ListZonesOptions
Options used to control what zones information is returned
|
| RegisterISOOptions
Options for the ISO registerISO method.
|
| RegisterTemplateOptions
Options used to control how a template is registered.
|
| StopVirtualMachineOptions
Options for stopping virtual machines.
|
| UpdateAccountOptions
Optional arguments for updating an Account
|
| UpdateClusterOptions
Options for the GlobalHostApi.updateCluster() API call.
|
| UpdateDiskOfferingOptions
Options to control how disk offerings are created
|
| UpdateDomainOptions
Options used to control how a domain is created
|
| UpdateHostOptions
Options to the GlobalHostApi.addHost() API call
|
| UpdateISOOptions
Options for the ISO updateISO method.
|
| UpdateISOPermissionsOptions
Options for the ISO updateISOPermissions method.
|
| UpdateLoadBalancerRuleOptions
Options used to control how a load balancer rule is updated
|
| UpdateNetworkOfferingOptions
Options to control how network offerings are created
|
| UpdatePodOptions
Options to the GlobalPodApi.updatePod API call.
|
| UpdateServiceOfferingOptions
Options to control how service offerings are created
|
| UpdateTemplateOptions
Options used to control how a template should be updated.
|
| UpdateTemplatePermissionsOptions
Options used to control how a template should be updated.
|
| UpdateUserOptions
Optional arguments for updating an User
|
| UpdateVMGroupOptions
Options used to control updates to VMGroups
|
| UpdateZoneOptions
Options used to control how a zone is updated
|
| Class and Description |
|---|
| AccountInDomainOptions
Options for services that apply to accounts in domains
|
| AddClusterOptions
Options to the GlobalHostApi.addHost() API call
|
| AddHostOptions
Options to the GlobalHostApi.addHost() API call
|
| AddSecondaryStorageOptions
Options for the GlobalHostApi.addSecondaryStorage() API call
|
| AssignVirtualMachineOptions
Options used to control what disk offerings are returned
|
| AssociateIPAddressOptions
Options used to acquire and associate a public IP to an account.
|
| CreateAccountOptions
Optional fields for account creation
|
| CreateDiskOfferingOptions
Options to control how disk offerings are created
|
| CreateDomainOptions
Options used to control how a domain is created
|
| CreateFirewallRuleOptions
Options used to control how a firewall rule is created
|
| CreateIPForwardingRuleOptions
Options used to create an ip forwarding rule
|
| CreateLoadBalancerRuleOptions
Options used to control what load balancer rules are returned
|
| CreateNetworkOptions
Optional fields for network creation
|
| CreatePodOptions
Options to the GlobalPodApi.createPod API call.
|
| CreateServiceOfferingOptions
Options to control how service offerings are created
|
| CreateSnapshotOptions
Options for the Snapshot createSnapshot method.
|
| CreateTemplateOptions
Options used to control how a template is created.
|
| CreateUserOptions
Optional fields for user creation
|
| CreateVlanIPRangeOptions
Options to the createVlanIPRange API call.
|
| CreateVMGroupOptions
Options used to control options for creating a VM group
|
| CreateZoneOptions
Options used to control how a zone is created
|
| DeleteHostOptions
Options to the GlobalHostApi.deleteHost() API call
|
| DeleteISOOptions
Options for the ISO deleteISO method.
|
| DeleteTemplateOptions
Options used to control how a template is created.
|
| DeployVirtualMachineOptions
Options used to control what disk offerings are returned
|
| ExtractISOOptions
Options for the ISO extractISO method.
|
| ExtractTemplateOptions |
| GenerateUsageRecordsOptions
Options to the GlobalUsageApi.generateUsageOptions() API call
|
| ListAccountsOptions
Options used to control what account information is returned
|
| ListAlertsOptions
Options to the listAlerts command.
|
| ListAsyncJobsOptions
Options used to control what asyncJobs information is returned
|
| ListCapacityOptions
Options to the listCapacity command.
|
| ListClustersOptions
Options used to control what cluster information is returned
|
| ListConfigurationEntriesOptions
Options used to control what configuration entries are returned
|
| ListDiskOfferingsOptions
Options used to control what disk offerings are returned
|
| ListDomainChildrenOptions
Options used to control what domain children are returned
|
| ListDomainsOptions
Options used to control what domains are returned
|
| ListEgressFirewallRulesOptions
Options used to control what egress firewall rules are returned
|
| ListEventsOptions
Options used to control what events are returned
|
| ListFirewallRulesOptions
Options used to control what firewall rules are returned
|
| ListHostsOptions
Options used to control what hosts information is returned
|
| ListIPForwardingRulesOptions
Options used to control what ip forwarding rules are returned
|
| ListISOsOptions
Options for the ISO listISOs method.
|
| ListLoadBalancerRulesOptions
Options used to control what load balancer rules are returned
|
| ListNetworkOfferingsOptions
Options used to control what network offerings are returned
|
| ListNetworksOptions
Options used to control what networks information is returned
|
| ListOSTypesOptions
Options used to control what OSType information is returned
|
| ListPodsOptions
Options to the GlobalPodApi.listPods API call.
|
| ListPortForwardingRulesOptions
Options used to control what port forwarding rules are returned
|
| ListProjectsOptions
Options used to control what account information is returned
|
| ListPublicIPAddressesOptions
Options used to control what ip addresss information is returned
|
| ListResourceLimitsOptions |
| ListSecurityGroupsOptions
Options used to control what security groups are returned
|
| ListServiceOfferingsOptions
Options used to control what service offerings are returned
|
| ListSnapshotPoliciesOptions
Options for the Snapshot listSnapshotPolicies method.
|
| ListSnapshotsOptions
Options for the Snapshot listSnapshots method.
|
| ListSSHKeyPairsOptions |
| ListStoragePoolsOptions
Options to the GlobalStoragePools[Async]Client.listStoragePools API call
|
| ListTemplatesOptions
Options used to control what templates information is returned
|
| ListUsageRecordsOptions
Options to the GlobalUsageApi.listUsageOptions() API call
|
| ListUsersOptions
Options used to control what user information is returned
|
| ListVirtualMachinesOptions
Options used to control what virtual machines information is returned
|
| ListVlanIPRangesOptions
Options to the listVLANIPRanges() API call
|
| ListVMGroupsOptions
Options used to control what VMGroups information is returned
|
| ListVolumesOptions
Options used to control what volume
|
| ListZonesOptions
Options used to control what zones information is returned
|
| RegisterISOOptions
Options for the ISO registerISO method.
|
| RegisterTemplateOptions
Options used to control how a template is registered.
|
| StopVirtualMachineOptions
Options for stopping virtual machines.
|
| UpdateAccountOptions
Optional arguments for updating an Account
|
| UpdateClusterOptions
Options for the GlobalHostApi.updateCluster() API call.
|
| UpdateDiskOfferingOptions
Options to control how disk offerings are created
|
| UpdateDomainOptions
Options used to control how a domain is created
|
| UpdateHostOptions
Options to the GlobalHostApi.addHost() API call
|
| UpdateISOOptions
Options for the ISO updateISO method.
|
| UpdateISOPermissionsOptions
Options for the ISO updateISOPermissions method.
|
| UpdateLoadBalancerRuleOptions
Options used to control how a load balancer rule is updated
|
| UpdateNetworkOfferingOptions
Options to control how network offerings are created
|
| UpdatePodOptions
Options to the GlobalPodApi.updatePod API call.
|
| UpdateServiceOfferingOptions
Options to control how service offerings are created
|
| UpdateTemplateOptions
Options used to control how a template should be updated.
|
| UpdateTemplatePermissionsOptions
Options used to control how a template should be updated.
|
| UpdateTemplatePermissionsOptions.Operation |
| UpdateUserOptions
Optional arguments for updating an User
|
| UpdateVMGroupOptions
Options used to control updates to VMGroups
|
| UpdateZoneOptions
Options used to control how a zone is updated
|
Copyright © 2009-2013 The Apache Software Foundation. All Rights Reserved.


TCBlobDownloaderDelegate Protocol Reference
| Conforms to | NSObject |
| Declared in | TCBlobDownloader.h |
Overview
The TCBlobDownloaderDelegate
protocol defines the methods supported by TCBlobDownloader
to notify you of the state of the download.
Instance Methods
download:didFinishWithSuccess:atPath:
Optional. Called when the download is finished or when the operation has been cancelled. The TCBlobDownloader
operation will be removed from TCBlobDownloadManager
just after this method is called.
- (void)download:(TCBlobDownloader *)blobDownload didFinishWithSuccess:(BOOL)downloadFinished atPath:(NSString *)pathToFile
Parameters
- blobDownload
The
TCBlobDownloader
object whose execution is finished.
- downloadFinished
YES
if the file has been downloaded,NO
if not.
- pathToFile
The path where the file has been downloaded.
Availability
1.3
Declared In
TCBlobDownloader.h
download:didReceiveData:onTotal:progress:
Optional. Called on each response from the server while the download is occurring.
- (void)download:(TCBlobDownloader *)blobDownload didReceiveData:(uint64_t)receivedLength onTotal:(uint64_t)totalLength progress:(float)progress
Parameters
- blobDownload
The
TCBlobDownloader
object which received data.
- receivedLength
The total number of already received bytes.
- totalLength
The total number of bytes of the file.
- progress
A value between 0 and 1 defining the progress of the download.
Note
If you pause and restart later a download, the new
TCBlobDownloader
will resume it from where it has stopped (seefileName
property for more explanations). Therefore, you might want to track yourself the total size of the file when you first tried to download it, otherwise thetotalLength
is the actual remaining length to download and might not suit your needs if you do something such as a progress bar.
Availability
1.0
Declared In
TCBlobDownloader.h
download:didReceiveFirstResponse:
Optional. Called when the TCBlobDownloader
object has received the first response from the server.
- (void)download:(TCBlobDownloader *)blobDownload didReceiveFirstResponse:(NSURLResponse *)response
Parameters
- blobDownload
The
TCBlobDownloader
object receiving the first response.
- response
The
NSURLResponse
from the server.
Availability
1.0
Declared In
TCBlobDownloader.h
download:didStopWithError:
Optional. Called when an error occur during the download. If this method is called, the TCBlobDownloader
will be automatically cancelled just after, without deleting the the already downloaded parts of the file. This is done by calling cancelDownloadAndRemoveFile:
- (void)download:(TCBlobDownloader *)blobDownload didStopWithError:(NSError *)error
Parameters
- blobDownload
The
TCBlobDownloader
object which trigerred an error.
- error
The trigerred error.
Availability
1.0
Declared In
TCBlobDownloader.h


"UZZIEL "strength of God. (1.) One of the sons of Kohath, and uncle of Aaron (Exodus 6:18; Leviticus 10:4). (2.) A Simeonite captain (1 Chronicles 4:39-43). (3.) A son of Bela, and grandson of Benjamin (1 Chronicles 7:7). (4.) One of the sons of Heman (1 Chronicles 25:4); called also Azareel(18). (5.) A son of Jeduthan (2 Chronicles 29:14). (6.) The son of Harhaiah (Nehemiah 3:8). V
"UZZIEL "strength of God. (1.) One of the sons of Kohath, and uncle of Aaron (Exodus 6:18; Leviticus 10:4).
(2.) A Simeonite captain (1 Chronicles 4:39-43).
(3.) A son of Bela, and grandson of Benjamin (1 Chronicles 7:7).
(4.) One of the sons of Heman (1 Chronicles 25:4); called also Azareel(18).
(5.) A son of Jeduthan (2 Chronicles 29:14).
(6.) The son of Harhaiah (Nehemiah 3:8).
V


pyAB¶
pyAB is a Python package for Bayesian & Frequentist A/B Testing.
Features:¶
Bayesian A/B Test:
- Conduct quick experiments to check for winning variant with additional prior information (Beta Distribution parameters).
- Try different evaluation metrics (Uplift Ratio, Uplift Difference & Uplift Percent Gain) & vary number of mcmc simulations.
- Visualize & inspect Uplift Density & Cumulative Density distributions.
Frequentist A/B Test:
- Conduct quick experiments to check for winning variant using two sample proportion test (Statistical significance).
- Estimate required sample size per variant to reach provided Type-II error rate.
- Visualize & inspect power curve for varying alternative proportions.
Usage:¶
Bayesian A/B Test¶
Let us assume we have two Banner Ads and want to run an AB Test to decide on the final version. We run the test and collect 1000 samples per version. We observe 100 and 120 clicks for version-A & Version-B respectively (10 % & 12.5 % Click-through-rates). From our previous experience, we know that the average Click-through-rate for our previous Ads was around 12 %.
We first need to import ABTestBayesian
class and provide prior clicks success_prior
and prior impressions trials_prior
. Then, call the conduct_experiment
method with successful clicks and impressions per version.
For uplift_method
, there are three metrics to choose from are 'uplift_ratio'
, 'uplift_percent'
& 'uplift_difference'
. We also choose mcmc num_simulations
, which samples from Uplift Probability Density function.
# import Bayesian class
from pyab.experiments import ABTestBayesian
# provide beta priors
ad_experiment_bayesian = ABTestBayesian(success_prior=120, trials_prior=1000)
# conduct experiment with two variants successes and trials, along with uplift method and number of simulations
ad_experiment_bayesian.conduct_experiment(success_null=100, trials_null=1000,
success_alt=125, trials_alt=1000,
uplift_method='uplift_ratio', num_simulations=1000)
Bayesian A/B test results can extremely useful to understand & communicate test results with other stakeholders and answers the main business question: Which version works the best ?
Output:
pyAB Summary
============
Test Parameters
_______________
Variant A: Successful Trials 100, Sample Size 1000
Variant B: Successful Trials 125, Sample Size 1000
Prior: Successful Trials 120, Sample Size 1000
Test Results
____________
Evaluation Metric: uplift_ratio
Number of mcmc simulations: 1000
90.33 % simulations show Uplift Ratio above 1.
Frequentist A/B Test¶
Let us now run a Frequentist A/B Test and verify if there is a significant difference between two proportions provided the sample sizes and Type-I Error rate. From above, we know the performance of version-A & version-B (10 % & 12.5 % Click-through-rates), for 1000 impressions of each version.
We first need to import ABTestFrequentist
class and provide type of alternative hypothesis alt_hypothesis
, 'one_tailed'
or 'two_tailed'
& Type-I error rate alpha
(default = 0.05). Then, we call the conduct_experiment
method with successful clicks and impressions per version.
This traditional methodology might be slightly tricky to communicate, and Type-I & Type-II error rates need to be accounted for, unlike Bayesian methods.
# import Frequentist class
from pyab.experiments import ABTestFrequentist
# provide significance rate and type of test
ad_experiment_freq = ABTestFrequentist(alpha=0.05, alt_hypothesis='one_tailed')
# conduct experiment with two variants successes and trials, returns stat & pvalue
stat, pvalue = ad_experiment_freq.conduct_experiment(success_null=100, trials_null=1000,
success_alt=125, trials_alt=1000)
Output:
pyAB Summary
============
Test Parameters
_______________
Variant A: Success Rate 0.1, Sample Size 1000
Variant B: Success Rate 0.125, Sample Size 1000
Type-I Error: 0.05, one_tailed test
Test Results
____________
Test Stat: 1.769
p-value: 0.038
Type-II Error: 0.451
Power: 0.549
There is a statistically significant difference in proportions of two variants.
Given that the current Type-II error is 0.451 at 1000 samples per variant, we can find out required sample size per variant to reach Type-II error of 0.1.
# required sample size per variant for given beta
ad_experiment.get_sample_size(beta=0.1)
Output:
2729


5th December 2014
So we have been playing in the early days of Arrays & Hashes this week. I struggle to come up with pithy titles and puns for these data structures - but you know what? They're actually pretty cool - throw in Ruby enumerable methods and they rock!
1. Arrays keep your life orderly and prioritised - just how you like it!:
To be precise: "Ruby arrays are ordered, integer-indexed collections of any object. Each element in an array is associated with and referred to by an index." Which in simple terms means that data (integers, strings, other arrays/hashes!) stored in an array is kept in numerical order - item one is at index 0, item two at index 1, item three at index 2 ... The really helpful thing about this is that we can therefore access any item within the array by simply referencing it's index number. It makes finding data within the array simple.
2. Hashes keep a tonne of info handy and accessible with easy retrieval:
A Hash on the other hand is a collection of key-value pairs like this: "employee" => "salary". It is similar to an Array, except that indexing is done via arbitrary keys of any object type, not an integer index.
While the lack of an ordered index means we can't simply go and find the data at index 3, we can find the data using its "key". For instance, we could create a hash to store all the information we need to know about a contact in our address book using key value pairs:
{ Name (key) => John Smith (value)
Phone (key) =><PHONE_NUMBER> (value)
Email (key) =><EMAIL_ADDRESS>(value)
Address (key) => #22 Smith Street (value) }
3. Ruby Enumerables just ROCK: Ruby has a large number of Enumerable Methods laid out at Ruby Docs which make traversing, searching, sortomg and manipulating arrays & hashes (almost) easy. Rather than writing long loops & complicated code the enumerable methods provide ready-built-in methods to do many of the things you will want to do with your arrays & hashes. Like sorting, flattening, counting, mapping and all sorts!


Welcome to OACrowdMark
| {{mybookmark.bookmarktitle}} |
| {{bookmarkaddress}} |
|
Say hi to {{global.user.name}} for me!
No mybookmarks yet.

What live Here?
This is the home viewalso broooo!!!
First let's call out our {{oneTitle}} callback shall we?
Do We Have Dinosaurs!?!?!?
{{dinobookmarks}}
This is the home viewalso broooo!!!
First let's call out our {{oneTitle}} callback shall we?
Let's try to view our own here:
lets also say hi to {{global.user.name}}
Then Down here we try a little front end magicianship:
Superman?
Wonder Woman?
O
Just abusing this view now:
This is the home viewalso broooo!!!
First let's call out our {{oneTitle}} callback shall we?
Do We Have Dinosaurs!?!?!?
{{newdinos}}


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Electro-Air Canada
Legal Name:
Electro-Air Canada
Operating Name:
Five Seasons Comfort Limited
Mailing Address:
351 North Rivermede Rd.CONCORD, Ontario
L4K 3N2
Location Address:
351 North Rivermede Rd.CONCORD, Ontario
L4K 3N2
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Company Profile
Five Seasons Comfort Limited, along with its sister company,
Electro-Air Canada, have been manufacturing High Efficiency
Electronic Air Cleaners, since 1962. The company is a world
leader in the air cleaning industry and is well known in Canada,
Europe, Russia, the Middle East and the Pacific Rim.
Located in Concord (Toronto), Ontario, Five Seasons operates in a
modern, 70,000 square foot facility, and employs an average of
90 persons. All products are completely designed and
manufactured in-house. Based on a visionary outlook that
emphasizes continous product development, virtually every aspect
of the company is geared towards providing excellence in design,
efficiency and workmanship. Manufacturing efforts are focused on
quality control and constant improvement in technology and
production efficiencies, through the implementation of a
certified quality assurance program.
For over 30 years, the companies have not only marketed their
products under their own brand names, but exclusively brand label
for many of the world's largest HVAC OEM's and retail chains.
Five seasons manufactures a complete line of room air cleaners
for residential and commercial use; duct-mount air cleaners for
residential and commercial use; ceiling-mount air cleaners for
commercial use and industrial models for various industries.
As global awareness of indoor and environmental air quality
concerns continue to increase into the next millennium, so does
the demand for high quality air cleaning products. Five Seasons
Comfort is committed to offering its customers excellence in
indoor air quality products for the home and workplace, at
competitive prices, and with outstanding customer support
programs.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
to 1/2 of dirty air. Tightly sealed 3-stage filtration
system: 1) Activated Carbon Prefilter removes lint and odors. 2)
Long-life HEPA (High Efficiency Particulate Air) Filter removes
99.97% of particles 0.3 micron and larger. 3) Activated Carbon
VOC (Volatile Organic Compound) Filter (standard) removes
unpleasant odors and gases or optional upgrade Carbon/Potassium
Permanganate VOC Filter removes noxious odors and fumes like
formaldehyde, heptane, methyl ethyl keytones,
tetrachloroethylene, toluene, radon daughters and much more,
emitted from household sources such as carpeting, cabinets,
furniture, paints, solvents, household cleaning products,
personal care products, etc. Contains an ultra-quiet, energy
efficient motor which delivers 550 cfm of filtered
air. Gives 66 whole-house air changes/day to 1500 sq ft house or
40 whole-house air changes/day in a 2500 sq ft house. Versatile
installation can be free-standing, ceiling-mounted or
wall-mounted. 5 Year Limited Warranty.
Typical applications include brazing, cold forming, gear cutting, heat treating, machining, milling, rubber grinding, soldering, threading, welding, and wet grinding. Different models available depending on application, and air changes required. Custom industrial air cleaners can be equipped with water wash systems, fan housing and charcoal filtration. Lifetime filter system never has to be replaced.
Features include: lifetime filter system that never has to be replaced; custom design engineering and installation; modular design allows easiest and fastest installation possible; power board designed and manufactured in-house under strict quality control standards; durable efficient, reliable and built to give years of peak performance.
A complete line of Portable High Efficiency Air Cleaners are available in many different models for single room applications.
away. Clean air is then dispersed from the side grills in four directions allowing for a circular air flow pattern. Removes up to 95% of tobacco smoke particulates, cooking smoke and grease, dust, mold, bacteria and more down to 0.01 µm. Energy consumption is reduced by as much as two-thirds because warm/cooled air will be cleaned and recirculated instead of exhausted. Lifetime filter system never has to be replaced.
Features include: lifetime filter system that never has to be replaced; custom design engineering and installation; modular design allows easiest and fastest installation possible; power board designed and manufactured in-house under strict quality control standards; durable efficient, reliable and built to give years of peak performance.
A complete line of Portable High Efficiency Air Cleaners are available in many different models for single room applications.
3439-Miscellaneous Welding, Soldering, and Brazing Supplies and Accessories
6007-Filters
7290-Miscellaneous Household and Commercial Furnishings and Appliances
Market profile
Industry sector market interests:
- Consumer Products
- Environment
- Medical/Biotechnology/Chemical
Geographic markets:
Export experience:
- Greece
- Japan
- Malaysia
- Taiwan
- Turkey
- United Kingdom
- United States
Actively pursuing:
- Algeria
- Australia
- Belgium
- Cyprus
- Denmark
- Finland
- France
- Germany
- Iceland
- Iran, Islamic Republic of
- Italy
- Korea, Republic of
- Luxembourg
- Netherlands
- New Zealand
- Norway
- Portugal
- Russian Federation
- Saudi Arabia
- Singapore
- Sweden
- Switzerland
- Thailand
- United Arab Emirates
- California
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
to 1/2 of dirty air. Tightly sealed 3-stage filtration
system: 1) Activated Carbon Prefilter removes lint and odors. 2)
Long-life HEPA (High Efficiency Particulate Air) Filter removes
99.97% of particles 0.3 micron and larger. 3) Activated Carbon
VOC (Volatile Organic Compound) Filter (standard) removes
unpleasant odors and gases or optional upgrade Carbon/Potassium
Permanganate VOC Filter removes noxious odors and fumes like
formaldehyde, heptane, methyl ethyl keytones,
tetrachloroethylene, toluene, radon daughters and much more,
emitted from household sources such as carpeting, cabinets,
furniture, paints, solvents, household cleaning products,
personal care products, etc. Contains an ultra-quiet, energy
efficient motor which delivers 550 cfm of filtered
air. Gives 66 whole-house air changes/day to 1500 sq ft house or
40 whole-house air changes/day in a 2500 sq ft house. Versatile
installation can be free-standing, ceiling-mounted or
wall-mounted. 5 Year Limited Warranty.
Typical applications include brazing, cold forming, gear cutting, heat treating, machining, milling, rubber grinding, soldering, threading, welding, and wet grinding. Different models available depending on application, and air changes required. Custom industrial air cleaners can be equipped with water wash systems, fan housing and charcoal filtration. Lifetime filter system never has to be replaced.
Features include: lifetime filter system that never has to be replaced; custom design engineering and installation; modular design allows easiest and fastest installation possible; power board designed and manufactured in-house under strict quality control standards; durable efficient, reliable and built to give years of peak performance.
A complete line of Portable High Efficiency Air Cleaners are available in many different models for single room applications.
away. Clean air is then dispersed from the side grills in four directions allowing for a circular air flow pattern. Removes up to 95% of tobacco smoke particulates, cooking smoke and grease, dust, mold, bacteria and more down to 0.01 µm. Energy consumption is reduced by as much as two-thirds because warm/cooled air will be cleaned and recirculated instead of exhausted. Lifetime filter system never has to be replaced.
Features include: lifetime filter system that never has to be replaced; custom design engineering and installation; modular design allows easiest and fastest installation possible; power board designed and manufactured in-house under strict quality control standards; durable efficient, reliable and built to give years of peak performance.
A complete line of Portable High Efficiency Air Cleaners are available in many different models for single room applications.
3439-Miscellaneous Welding, Soldering, and Brazing Supplies and Accessories
6007-Filters
7290-Miscellaneous Household and Commercial Furnishings and Appliances
Market
Market profile
Industry sector market interests:
- Consumer Products
- Environment
- Medical/Biotechnology/Chemical
Geographic markets:
Export experience:
- Greece
- Japan
- Malaysia
- Taiwan
- Turkey
- United Kingdom
- United States
Actively pursuing:
- Algeria
- Australia
- Belgium
- Cyprus
- Denmark
- Finland
- France
- Germany
- Iceland
- Iran, Islamic Republic of
- Italy
- Korea, Republic of
- Luxembourg
- Netherlands
- New Zealand
- Norway
- Portugal
- Russian Federation
- Saudi Arabia
- Singapore
- Sweden
- Switzerland
- Thailand
- United Arab Emirates
- California


Supermarket appeals for longer delivery hours following empty shelves complaints
Fresh bread isn’t appearing in the aisles at Asda in Motherwell until mid-morning, prompting complaints from frustrated customers.
by Wishaw Press, https://www.dailyrecord.co.uk/authors/wishaw-press/Shoppers are facing empty shelves because of a ban on early morning deliveries at a Motherwell supermarket.
Fresh bread isn’t appearing in the aisles at Asda until mid-morning, prompting complaints from frustrated customers.
Asda says it’s because strict planning conditions prevent it from unloading deliveries until 8am.
The store, which employs 280 people, is close to flats and houses in the Watson Street area.
Environmental health officers say longer delivery hours would have a “significant adverse noise impact” on residents.
Deliveries are allowed only between 8am and 10pm.
In a submission to North Lanarkshire Council, Asda said: “This causes huge difficulties.
“Fresh produce arrives at 8am which means shelves are being stacked from 8.30am which is a busy period.
“Our bread delivery is delayed until 10.30am because other fresh produce is in the delivery bay from 8am.
“An extra hour at each end of the day would mean big benefits for the store and customers.”
Shoppers using Asda’s feedback service have complained about empty shelves in the bakery and other fresh produce sections, and warned they’re having to shop elsewhere.
The council will be urged later this month to extend delivery hours at the store for a one-year trial period.
Motherwell councillor Agnes Magowan supports longer hours.
She said: “Customers can’t buy their fresh produce in time for starting their work as staff are still filling the shelves.
“These delivery hours put Asda at a disadvantage compared to their competitors.”