Developed Tensorflow assignments and Docker based auto-graders for Coursera’s Deep Learning specialization
Worked on the video-on-demand applications team to develop streaming applications like Netflix and Amazon Prime for Linux-based Tizen-OS for Smasung's Smart TV platform


welcome
node module system
npm config
npm install
infos for production
npm init
package
.json
semver
npm link
for windows user:
this
or run a shell as administrator
npm scripts
.travis.yml
npm registry
npm adduser
npm publish
npm unpublish
npm deprecate
npm shrinkwrap
npm outdated
thanks to our sponsor
the end


Convenience base trait for string Uniformity
s.
Provides mechanisms that enable errors to be accumulated in “accumulating Or
s,” Or
s whose
Bad
type is an Every
.”“
Contains a “bad” value.”“
Convenience class for extractors that match and return Throwable
s based on a type and Boolean
condition.
Abstract class used to enforce type constraints for equality checks.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require that either the types of the two values compared are in a subtype/supertype
relationship, or that an implicit conversion is available that can convert from one type to the other.
Defines a custom way to determine equality for a type when compared with another value of type Any
.
Defines a custom way to determine equality for a type when compared with another value of the same type.
Type alias for String
.
An ordered, immutable, non-empty collection of elements.
Provides ScalaTest's “explicitly DSL,” which facilitates the
explicit specification of an Equality[T]
or a Uniformity[T]
where
Equality[T]
is taken implicitly.”“
Indicates a validation failed, describing the failure with a contained error value.
Contains a “good” value.”“
Provides an implicit conversion that will be applied only if a higher-priority implicit conversion declared a subtrait is not applicable.
Provides an implicit conversion that will be applied only if a higher-priority implicit conversion declared a subtrait is not applicable.
An Every
that contains two or more elements.
Provides an implicit method that loosens the equality constraint defined by TypeCheckedTripleEquals
or ConversionCheckedTripleEquals
for Scala Map
s to one that more closely matches Scala's approach to Map
equality.
Provides an implicit conversion that allows norm
to be invoked on any value of type
T
for which an implicit Normalization[T]
exists.
Defines a custom way to normalize instances of a type.
An Equality[A]
implementation that determines the equality of two objects by normalizing
one or both objects, then comparing the results using an “after normalization” equality referenced from
the afterNormalizationEquality
member.”“
An Equivalence[A]
implementation that determines the equality of two objects by normalizing
one or both objects, then comparing the results using an “after normalization” Equivalence
referenced from
the afterNormalizationEquivalence
member.”“
An Every
that contains exactly one element.
Represents a value that is one of two possible types, with one type being “good” and the other “bad.“”“
A function that given any object will produce a “pretty” string representation of that object, where “pretty” is in the eye of the implementer.”“”“
Provides an implicit conversion that enables pretty
to be invoked on any
object, to transform that object into a String
representation.
Provides an implicit method that loosens the equality constraint defined by TypeCheckedTripleEquals
or ConversionCheckedTripleEquals
for Scala Seq
s to one that more closely matches Scala's approach to Seq
equality.
Provides an implicit method that loosens the equality constraint defined by TypeCheckedTripleEquals
or ConversionCheckedTripleEquals
for Scala Set
s to one that more closely matches Scala's approach to Set
equality.
Provides methods that produce Uniformity[String]
instances for various
ways to normalize strings for equality comparisons.
Trait providing an implicit conversion that adds a times
method to Int
s that
will repeat a given side-effecting operation multiple times.
Trait containing an implicit conversion that adds a +-
method to Numeric
types, which enables
spreads to be expressed in terms of a pivot and tolerance.
Provides Equality
and Equivalence
instances for Numeric
types that
compare for equality with a given tolerance.
Provides three implicit methods that loosen the equality constraint defined by TypeCheckedTripleEquals
or ConversionCheckedTripleEquals
for Scala Traversable
s to one that more closely matches Scala's approach to Traversable
equality.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require no relationship between the types of the two values compared.
Trait that defines abstract methods used to enforce compile-time type constraints for equality comparisons, and defines ===
and !==
operators
used by matchers.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require the types of the two values compared to be in a subtype/supertype
relationship.
Defines a custom way to normalize instances of a type that can also handle normalization of that type when passed as Any
.
Represents the result of a validation, either the object Pass
if the validation
succeeded, else an instance of Fail
containing an error value describing the validation failure.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require that either the types of the two values compared are in a subtype/supertype
relationship, or that an implicit conversion is available that can convert from one type to the other.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require no relationship between the types of the two values compared.
Provides ===
and !==
operators that return Boolean
, delegate the equality determination
to an Equality
type class, and require the types of the two values compared to be in a subtype/supertype
relationship.
Companion object to trait Accumulation
that allows Accumulation
's members to be imported
rather than mixed in, and also contains nested traits used by implicit conversions declared in
trait Accumulations
.
Companion object for Catcher
that provides a factory method for creating Throwable
extractors.
Companion object to trait ConversionCheckedLegacyTripleEquals
that facilitates the importing of ConversionCheckedLegacyTripleEquals
members as
an alternative to mixing it in.
Companion object to trait ConversionCheckedTripleEquals
that facilitates the importing of ConversionCheckedTripleEquals
members as
an alternative to mixing it in.
Companion object for trait Equality
that provides factory methods for producing Equality
instances.
Companion object for trait Equivalence
that provides a factory method for producing
default Equivalence
instances.
Companion object for abstract class Every
.
Companion object for Explicitly
, which enables the ScalaUtils explicitly DSL to
be imported rather than mixed in, like this:
Companion object for Good
that offers, in addition to the standard factory method
for Good
that takes single “good” type, an parameterless apply
used to narrow the Good
type when creating a Bad
.”“
Companion object to trait LegacyTripleEquals
that facilitates the importing of LegacyTripleEquals
members as
an alternative to mixing it in.
Companion object that facilitates the importing of MapEqualityConstraints
members as
an alternative to mixing it in.
Companion object for NormMethods
enabling its members to be imported as an alternative to mixing them in.
The companion object for Or
providing factory methods for creating Or
s from Either
s and Try
s.
Indicates a validation succeeded.
Companion object for Prettifier
that provides a default Prettifier
implementation.
Companion object for trait PrettyMethods
enabling its members to be imported as an
alternative to mixing them in.
Companion object that facilitates the importing of SeqEqualityConstraints
members as
an alternative to mixing it in.
Companion object that facilitates the importing of SetEqualityConstraints
members as
an alternative to mixing it in.
Companion object to trait StringNormalizations
that provides an
alternative to mixing it in.
Companion object that facilitates the importing of TimesOnInt
members as an alternative to mixing it in.
Companion object to trait Tolerance
that facilitates the importing of Tolerance
members as
an alternative to mixing it in.
Companion object for TolerantNumerics
that enables its members to be imported as an alternative to
mixing them in.
Companion object that facilitates the importing of TraversableEqualityConstraints
members as
an alternative to mixing it in.
Companion object to trait TripleEquals
that facilitates the importing of TripleEquals
members as
an alternative to mixing it in.
Companion object to trait TypeCheckedLegacyTripleEquals
that facilitates the importing of TypeCheckedLegacyTripleEquals
members as
an alternative to mixing it in.
Companion object to trait TypeCheckedTripleEquals
that facilitates the importing of TypeCheckedTripleEquals
members as
an alternative to mixing it in.
Returns the result of evaluating the given block f
, wrapped in a Good
, or
if an exception is thrown, the Throwable
, wrapped in a Bad
.
Returns the result of evaluating the given block f
, wrapped in a Good
, or
if an exception is thrown, the Throwable
, wrapped in a Bad
.
Here are some examples:
scala> import org.scalautils._ import org.scalautils._scala> attempt { 2 / 1 } res0: org.scalautils.Or[Int,Throwable] = Good(2)
scala> attempt { 2 / 0 } res1: org.scalautils.Or[Int,Throwable] = Bad(java.lang.ArithmeticException: / by zero)
the block to attempt to evaluate
the result of evaluating the block, wrapped in a Good
, or the
thrown exception, wrapped in a Bad


Technical Blog: Variable Scope
April 5, 2015
Ruby has scopes that define variable accessibility. Ruby has global, class, instance, local and constant variables. Each variables has their own special naming conventions. For example:
$global variable - starts with $ sign with lower case letters @@class variable - starts with double @ sign with lower case letters @instance variable - starts with single @ sign with lower case letters local variable - starts with lower case letters or _ CONSTANT variable - with ALL CAPS
Global variables are accessible from anywhere in the program. It's used rarely and discouraged. Because it is accessible from anywhere in the program and you can alter its value anywhere in the program, thus it would affect other objects behave unexpectedly. For example:
$hello = "Hello, world."
Class variables are accessible within a class and its all instances. Similar to global variable but within its class. That said, the same goes for its value alteration. If the value is modified it will affect all other objects using this class variable. Class variables must be initialized at the creation. For example:
@@hello = "Hello, world."
Instance variables are widely used. It's accessible within its class it belongs to and is similar to class variables, but its values are local and specific to that instance. For example:
@hello = "Hello, world."
Local variables that are declared in a method or a loop and are accessible only within that method or a loop. You cannot access it outside of that loop or method. For example:
hello = "Hello, world."
Constants store values and once assigned a value, it should not be altered. Its values are alterable, but Ruby will throw a warning message. Similar to global variable and are accessible within the context of that class or module.
HELLO = "Hello, world."


| Home | About | Experience | Education | Blog | Projects | Contact |
The first week of Phase 0 has flown by and I’m a little surprised how much I’ve learned in such a short period of time. I had a basic understanding of command line from dabbling with basic terminal commands over the years, but now I actually feel comfortable working in the command line environment. This is just the beginning!
Over the course of the first week I learned plenty about version control. In my current role as a Client Services Representative, we use a cloud service called Hightail, similar to Dropbox, but supposedly more secure. When someone on my team updates a file and saves it, the existing filename remains the same but a version number is appended to the end. This is version control in a very basic sense, and it helps us keep track of changes as we go along. If we need to revert back to a previous state of the file, we just go back to previous iterations and go from there.
Git has a similar but more complex system that facilitates version control. Any person on a team can pull files from the master repository that they would like to modify into a branch, modify as they see fit, and then push the files back to the master. If there is a problem with the changes made to the master, you can easily revert back to the previous state before the changes were made. With Git, the process of changing a file is a little more involved than the Hightail process described above. You can use the git status command at any point during the process to see what state a file is in.  The beauty of Github is in fact the social and collaborative nature of the platform. If you want to work on an open source project, all you have to do is create a separate fork, make a commit, and create a pull request so the changes can be reviewed. If the code looks good and everything else is in order, your changes will be merged into the master repository!


Thanks for taking action {[{ name_or_email }]},
help us to see which actions are being successful by clicking one of the buttons below.
(
Not {{ request.current_signup.name_or_email }}?)
Well done! Could you share some information about your action with us?
It's optional, if you'd prefer to claim your badge and move on, then you can click the "Claim Badge" button below, but providing this information will help us understand how effective these actions are.
This information helps us to qualify and quantify the impact that Climate for Change is having.
Doing this let's us know what impact our work is having so we can make sure that we're doing the best work we can to solve the climate crisis.
Thank you for taking time to fill this out, it's a great help to us.
{% submit_tag "Claim Badge", class:"submit-button btn btn-primary" %}
{% endform_for %}Sorry to hear you had some trouble with this action. Could you provide us some feedback so we can improve it?
To help us fix your problem, please answer all the questions below:
Thank you for taking action!
Sign in to get suggestions on what action to take next and track your progress.
By signing in, you'll help us to track which actions are popular so we can improve the actions we offer.


Toggle navigation
Developer Console
JS Docs
JSHint
Karma Unit Tests
Karma Coverage Tests
Protractor Functional Tests


This is a daily word guessing game that is a clone of one that used to be available on simbase.org (blog). Special thanks to Joon there for creating the original, Pavel for telling me about it, and Malvika for supporting me in making a new one when the original went down.


The Adapter.reload method allows to reload the Scroller. This includes resetting the items Buffer and the Viewport params. The reload method has 1 optional argument: index. It specifies the index of the item to be first in the visible part of the viewport after reload.
If index argument is not set, settings.startIndex will be used as the first index. If neither index argument not startIndex setting is present, the default value 1 will be used. See also startIndex setting demo.
The Adapter.reload method is safe and needs not to be protected with the Adapter.relax (though it could be protected if that's the UX requirement). This method interrupts the Scroller's flow and synchronously terminates any pending processes on the Scroller's end. The same is true also for the Adapter.reset method.


Professional Learning Network
Home
Tutorial
Search TripleE Evaluations
Evaluate Your Lesson Using TripleE
Account
Login
Logout
Profile


Web desighn is pretty cool
TV shows I like
The Flash
Some Assembly Required
Merlin
Video Games I Like
Plants VS. Zombies "All of the games"
roblox
Minecraft
Black OPS
Cops And Robbers
horror games
sonic


Punctuation is the system of signs or symbols given to a reader to show how a sentence is constructed and how it should be read.
Sentences are the building blocks used to construct written accounts. They are complete statements. Punctuation shows how the sentence should be read and makes the meaning clear.
Every sentence should include at least a capital letter at the start, and a full stop, exclamation mark or question mark at the end. This basic system indicates that the sentence is complete.
The Basic Signs of Punctuation are:
The comma is useful in a sentence when the writer wishes to:
For example, in the following sentence the phrase or clause between the commas gives us more information behind the actions of the boy, the subject of the sentence:
The boy, who knew that his mother was about to arrive, ran quickly towards the opening door.
A full stop should always be used to end a sentence. The full stop indicates that a point has been made and that you are about to move on to further explanations or a related point.
Less frequently, a series of three full stops (an ellipsis) can be used to indicate where a section of a quotation has been omitted when it is not relevant to the text, for example:
“The boy was happy… at the start of his summer holiday.”
An exclamation mark indicates strong feeling within a sentence, such as fear, anger or love. It is also used to accentuate feeling within the written spoken word.
For Example:
"Help! I love you!"
In this way, it can also be used to indicate a sharp instruction
or to indicate humour
The exclamation mark at the end of a sentence means that you do not need a full stop.
Exclamation marks are a poor way of emphasising what you think are important points in your written assignments; the importance of the point will emphasise itself without a sequence of !!! in the text. An exclamation mark should only be used when absolutely essential, or when taken from a direct quote.
The exclamation mark should be used sparingly in formal and semi-formal writing.
The question mark simply indicates that a sentence is asking a question. It always comes at the end of a sentence:
For example:
Are we at the end?
The semi-colon is perhaps the most difficult sign of punctuation to use accurately. If in doubt, avoid using it and convert the added material into a new sentence.
As a general rule, the semi-colon is used in the following ways:
When joining two connected sentences.
For example:
We set out at dawn; the weather looked promising.
or
Assertive behaviour concerns being able to express feelings, wants and desires appropriately; passive behaviour means complying with the wishes of others
The colon within a sentence makes a very pointed pause between two phrases. There are two main uses of the colon:
It is most commonly used when listing.
For example:
She placed the following items into the trolley: beer, fruit, vegetables, toilet rolls, cereals and cartons of milk.
Quotation or speech marks are used to:
For example:
My grandpa said, "Share your chocolates with your friends."
"George, don't do that!"
"Will you get your books out please?” said Mrs Jones, the teacher, “and quieten down!"
The hyphen is used to link words together.
For Example:
Education is what survives when what has been learned has been forgotten.


When it comes to Rich Internet Applications Sencha's Ext JS is definitely one the richest and most
powerful library on the market. Not only does Ext JS help developers build amazing web based applications, the community
around Ext JS is one the most active and most creative.
At NTT DATA we have been writing big scale J2EE applications with Ext JS
as the framework of choice for the UI for years now. Even though we were always able to get things done(and believe us we wrote some of the craziest Ext JS based applications), there is one thing we could'nt deny :
As the code base grows JavaScript becomes extremely difficult to maintain and work with.
And when the team is spread around the globe the maintainability and scalability problem becomes even bigger.
This is not an attempt to diss the JavaScript language! With the browser becoming a stronger platform everyday we all know
that there is no doubt that JavaScript will play an even bigger role in the future. But there are facts
that can't by denied and made us think about a new way of writing enterprise applications with Ext:
- Compile time errors
Being able to catch errors before the application even runs is capital for any project(specially big scale one).
Let's have a look at a example in JavaScript:
You get the problem right ? The code above wont run as expected and no tool will catch that. Now imagine having
this type of errors hidden in a 10K line of code project. As the code base grows cathing this type of errors becomes more and more difficult.
- Tooling a.k.a IDE Support
JavaScript tooling has gotten better and better over the time. IDEs like Aptana and JetBrain's IntelliJ have made writing JavaScript code enjoyable.
Sencha just released a set of tools to make Ext JS development easier. But real software development goes beyond autocompletion and content assist.
Refactoring JavaScript code for example is not easy and a JS based tool will only be able to do basic string search and replace.
- Real Software Engineering
Interface based design, Design patterns, Composition, Encapsulation, this are things that are not built in the JavaScript language.
Off course they can be emulated and Sencha came up with a nice class System for Ext JS.
The problem with emulation is that there are tons of way to do the same things. While working on a big scale project it s almost
impossible to ensure that everyone is following the same code style.
- Backend Integration
Even though Ext JS provides some nice tools to deal with any type of backend (Ext Direct) one always has to deal with two programming models(unless she
is working with NodeJS). The ability to leverage to same language through out the entire project is a huge productivity boost.
The Extj library is our attempt to solve the problems mentioned above by giving developers the ability to program in Java and having the Google Web Toolkit Compiler
generate high efficient JavaScript for you.
Note that this is not about promoting the Java language or stating that Java is a better language than JavaScript. But Java was designed from
the ground up to support big scale applications. Plus the tons of free available powerful tools in the Java ecosystem makes it a good candidate for
enterprise software.
This toolkit targets project that must use Ext JS but not necessary JavaScript as the input language. If your project is not bound the an Ext JS license(like ours)
and you are free to choose another library you might want to consider Sencha's GXT library.
In our case our customers allready have an Ext JS license an were not willing to buy a license for a new product(Yes Ext JS and GXT require two different licenses).
Now what does Ext4j has to offer ? let s look at some of the features
- Free to use
Ex4j is free to use with an Apache 2 license.So you dont owe NTT Data anything to use this library.
But keep in mind that EXT JS is not free. You will need a commercial license if you
are building a commercial application.
- 100% implementation of Ext JS API
Starting with EXT JS 4.1 Ext4j aims to support all the features of Ext and add even more capabilities that native JavaScript development can not provide
- Strong tooling support
This is pretty obvious. Because we leverage Java you get all the goodies of Java development and that for free!.Lets have a look a some of the features available.
*) Code completion: Explore the methods and fields available to the object you're working on.
*) Outline view: List the classes, methods, and functions in a simple tree display.
*) Debugging: Set breakpoints, inspect variables, and step over, into, and out of code..
*)Static Analysis: See warnings when inconsistencies and potential problems are detected..
- Easy to learn
The API is simple and aims look familiar to all developers.
- Declarative User Interface (a.k.a UI Binders)
Let's face Java is pretty verbose and one can end up writing a lot of code to layout the UI. That s why Ext4j introduced support for GWT UI Binders.
UI binders give the ability the layout the UI in a more declarative way.
Think about how you would write the same code in Java or in JavaScrit. Plus a designer will understand this code better than the
Java or JavaScript version of it.
- Easy (JEE) backend Integration
Because Ext4j leverage to Google Web Toolkit. Integrating any type of backend is a piece of cake. But if your backend is Java
then you will love Ext4j. GWT provides mechanisms to directly call Java methods from within you client side code. No need of Ext Direct
or anything like that.
- A lot more ...
We just scratched the surface here. Ext4j offers a lot more feature and we do have lot in the pipeline for the coming releases.
To see what s possible with Ext4j have a look at the - examples section.
By the way did you notice that this application itself is written using Extj4 :)
To see how to get started with Ext4j click here
For more information about the Google Web Toolkit please visit: The GWT WebSite
For more information about Sencha and Ext JS please visit: Sencha.com
For more information about NTT DATA please visit: NTT DATA Global


Spanish holiday accommodation pros and cons
Villa near Alicante Pros and Cons
There is a direct flight from Stansted to Alicante. The table will summarise the villas I have found, all of which have private pools. Driving time are all from Alicante.
Villa link
Location
Price (1 week)
Pros
Cons
Villa Kenchico
1h drive
£1145
check-in time slightly earlier at 2pm
big pool and nice bar area
near Montgo mountain and the sea
quiet surroundings
décor looks a bit old
need to bring beach/pool towels
20min drive to beach
change-over day needs to be Saturday from 4pm, so not very flexible
Villa Casa Del Sol
40min drive
£1368
right in front of a beach, take 20min walk to Calpe
Very nice view
a lot of bars and restaurants on the beach
separate studio/bedroom for different families
playroom for children
maybe noisy as lots of bars around
Villa Filipinas
50min drive
£2061
décor looks quite new
review said there is a bus service to the beach, so could do without hiring a car
lots of amenities nearby
A lot of houses around, so may overlook the pool and it looks a little cramp.
bit far out without a car
not as spacious as others
Galatea Rural
50min drive via a troll
£2115
décor looks quite new and the garden is relaxing
quiet but natural surroundings
landlord lives in the same building but in a separate apartment
good bed sizes (quite a few king size beds)
only one review
limited electricity use of 300 kwh per week
Ciudad Quesada
40min drive
£1534
décor looks quite new and the garden is relaxing
game room, jacuzzi and big bar area
close to amenities and nature walk is also 5min away
all rooms are en-suite
good reviews and owners can arrange transfer and may not need car
residential area looks quite cramp
may need to ask for bikes when going to supermarket
Vallenaranjos complex
40min drive
£1742
in the forest with two pools, jacuzzi and looks a little like a tree house
quiet nature setting
17km from beach
not sure about amenities around
Villa near Barcelona/Sitges Pros and Cons
There is a direct flight from Stansted to Barcelona. The table will summarise the villas I have found, all of which have private pools. Driving time are all from Barcelona. One plus point for Barcelona is Olly can drive there and we can rent 2 5-seater which may lower the price.
Villa link
Location
Price (1 week)
Pros
Cons
Villa Can Suria
40min drive
£1743
modern décor
pool towels provided
fencing around the swimming pool for extra security
sounds like it's agent run, need to check-in at Sitges office
pool looks quite narrow
only has fans on top floor, no air-con
one bed short (for a kid)
need a car, but short drive to Sitges, Barcelona
Villa Antonia
40min drive
£1630
décor looks ok
big pool
enough bed for everyone
on top of the hill so good view, nearby Mataró beach is quite nice
pool side is not very big
not very big outdoor sitting area
5-10min drive to local shops and restaurants
Cabrera de Mar Villa
40min drive
£1435
quite a few attractions, beach, ruined castle
in the mountain park so quite natural
enough bed for everyone
nice children play area
decor is outdated
no review, although quite recently started to rent out
maybe hard to drive to
Villa Ananda
55min drive
£1865
walking distance to amenities and beach
decor quite contemporary
enough bed for everyone
very big pool
car not necessary, taxi cost 75euro one way
no review, although quite recently started to rent out
Vilanova i la Geltru Villa
20min drive
£1289
easy access to amenities and train station to Barcelona (30min train)
nice garden, pool and children play area
enough bed for everyone
secure after closing the automatic gate
walking to seafront at Cubelles is easy


The setProcNumPerNode function specifies the number of SPEs per node.
This function does not return any value.
By default, each Slave node only starts one SPE to process data. This function can request multiple SPEs to be started. Using this can speed up Sphere process without inter-node data movement.


My Team
Susan Dentry
Manager
ID: 654789
Email:
<EMAIL_ADDRESS>Office Number:
(123) 456-7980
Edward Blitz
Engineer
ID: 415798
Email:
<EMAIL_ADDRESS>GitHub:
SirUbu
Blake Lantern
Engineer
ID: 123756
Email:
<EMAIL_ADDRESS>GitHub:
lakelant
Lary Trops
Engineer
ID: 453985
Email:
<EMAIL_ADDRESS>GitHub:
troperl
Creg Anderson
Intern
ID: 546756
Email:
<EMAIL_ADDRESS>School:
University of Utah


| 003:136 Khan | : |
For such, the reward is Forgiveness from their Lord, and Gardens with rivers flowing underneath (Paradise), wherein they shall abide forever. How excellent is this reward for the doers (who do righteous deeds according to Allah's Orders). |
| 003:136 Maulana | : |
Their reward is protection from their Lord, and Gardens wherein flow rivers, to abide in them. And excellent is the reward of the workers! |
| 003:136 Pickthal | : |
The reward of such will be forgiveness from their Lord, and Gardens underneath which rivers flow, wherein they will abide for ever - a bountiful reward for workers! |
| 003:136 Rashad | : |
Their recompense is forgiveness from their Lord, and gardens with flowing streams; they abide therein forever. What a blessed reward for the workers! |
| 003:136 Sarwar | : |
Their reward will be forgiveness from their Lord and gardens wherein streams flow and wherein they will live forever. How blessed is the reward of those who labor. |
| 003:136 Shakir | : |
(As for) these-- their reward is forgiveness from their Lord, and gardens beneath which rivers flow, to abide in them, and excellent is the reward of the laborers. |
| 003:136 Sherali | : |
It is these whose reward is forgiveness from their Lord, and gardens beneath which rivers flow, wherein they will abide; and an excellent is the reward of good workers. |
| 003:136 Yusufali | : |
For such the reward is forgiveness from their Lord, and Gardens with rivers flowing underneath,- an eternal dwelling: How excellent a recompense for those who work (and strive)! |
Concepts/Themes Covered: الإيمان > الإيمان بالله > التوبة Faith> Belief In Allah> Repentance الإيمان > الغيب > الجنة > أصحاب الجنة Faith> The Unseen World> The Paradise> The Companions of the Garden الإيمان > الغيب > الجنة > صفات الجنة Faith> The Unseen World> The Paradise> Characteristics of Paradise الإيمان > الغيب > الخلود > الخلود في النعيم Faith> The Unseen World> The Eternity> The Immortality in Happiness الإيمان > اليوم الآخر > جزاء العمل الحسن Faith> The Hereafter> The Reward of Good Action العمل > العمل الصالح > التقوى Action(Work)> The Good Deeds>The Piety العمل > العمل الصالح > العمل المفضي إلى النجاح Action(Work)> The Good Deeds>Achtion which Leads to Success
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


The parties have indicated their acceptance of this Agreement by executing it below.
SIGNED BY [[t|0|n:Name]] on [[d|0|n:Date|p:1]], duly authorised for and on behalf of the Consultant:
[[s|0|n:Signature]]
SIGNED BY [[t|1|n:Name]] on [[d|1|n:Date|p:1]], duly authorised for and on behalf of the Client:
[[s|1|n:Signature]]


not PM. not architect. not developer advocate.
dotnet watch is a dotnet CLI tool that runs a specific dotnet CLI command, with a specified set of parameters, as soon as any source file changes in the project.
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools"
Version="1.0.1" />
</ItemGroup>
C:\app>dotnet watch run
C:\app>dotnet watch run -f net462
C:\app>dotnet watch test
C:\app>dotnet watch script foo.csx
C:\code\IdentityWebApp>dotnet watch run
watch : Started
Hosting environment: Production
Content root path: C:\code\IdentityWebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
watch : Exited with error code 1
watch : File changed: C:\code\IdentityWebApp\Translation\JwtTranslationGrant.cs
watch : Started
Hosting environment: Production
Content root path: C:\code\IdentityWebApp
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
<ItemGroup>
<ProjectReference Include="..\DataAccessLibrary\DataAccessLibrary.csproj" Watch="false" />
</ItemGroup>
<ItemGroup>
<Watch Include="**\*.csx" Exclude="Codegen\**\*.cs;$(DefaultExcludes)" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Translations.resx" Watch="false" />
</ItemGroup>
Edit-and-Continue was already present in "Visual Studio .NET 2003",
but only for C/C++ code. Since Visual Studio 2005 you can make changes to code in break mode while debugging.
They are applied to the CLR directly without a need to restart the debugging
session.
Program logic should not be tested in the debugger. You are wasting your time and your company's time if you do so.
Edit and continue is a bug-introducing machine. Why? Because you get to focusing on that one bug and twiddle the code to fix that one bug and introduce six more.
Roslyn introduced a ton of improvements to Edit-and-Continue, as the entire compiler part of that functionality was rewritten.
Not exhaustive information. More: https://github.com/dotnet/roslyn/wiki/EnC-Supported-Edits
Visual Studio 2017 Version 15.3 introduces Edit-and-Continue for C# 7 features.
class Program
{
public static void Main()
{
Console.WriteLine(1);
}
}
class Program
{
public static void Main()
{
Console.Write(2);
}
}
// read metadata from the original compilation or using metadata reader
var originalMetadata = AssemblyMetadata.CreateFromStream(originalCompilationStream);
var baseline = EmitBaseline.CreateInitialBaseline(originalMetadata.GetModules()[0],
handle => default(EditAndContinueMethodDebugInformation));
MemoryStream mdStream = new MemoryStream(), ilStream = new MemoryStream(), pdbStream = new MemoryStream();
var updatedMethods = new List<MethodDefinitionHandle>();
var edits = new[] {
new SemanticEdit(SemanticEditKind.Update,
originalCompilation.GlobalNamespace.GetMembers("Program").First().GetMembers("Main").First(),
changedCompilation.GlobalNamespace.GetMembers("Program").First().GetMembers("Main").First())
};
var emitDifferenceResult = changedCompilation.EmitDifference(baseline, edits, mdStream, ilStream, pdbStream, updatedMethods);
// ilStream and mdStream can be now applied to the CLR
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldc.i4.2
IL_0001: call 0x0A000006
IL_0006: ret
A Read–Eval–Print Loop (REPL), also known as an interactive toplevel or language shell, is a simple, interactive computer programming environment that takes single user inputs (i.e. single expressions), evaluates them, and returns the result to the user; a program written in a REPL environment is executed piecewise.
CSI is bundled with MSBuild Tools. It supports Desktop .NET only, but works cross platform via Mono.
~/Documents$ csi
Microsoft (R) Visual C# Interactive Compiler version <IP_ADDRESS>424
Copyright (C) Microsoft Corporation. All rights reserved.
Type "#help" for more information.
> #r "System.Net.Http"
> using System.Net.Http;
> var client = new HttpClient();
> await client.GetStringAsync("https://gist.githubusercontent.com/filipw/7c22467439759c5f56cb2154717cdbe8/raw/93a4d2aa8034426c4ebcd20c67ac73daa11761dc/hello.txt");
"Hello from a gist"
>
public enum SourceCodeKind
{
Regular,
Script
}
public static CSharpCompilation Create(string assemblyName,
IEnumerable<SyntaxTree> syntaxTrees = null,
IEnumerable<MetadataReference> references = null,
CSharpCompilationOptions options = null);
public static CSharpCompilation CreateScriptCompilation(string assemblyName,
SyntaxTree syntaxTree = null,
IEnumerable<MetadataReference> references = null,
CSharpCompilationOptions options = null,
CSharpCompilation previousScriptCompilation = null,
Type returnType = null,
Type globalsType = null);
C# Interactive Window is built into Visual Studio. It can be found under View > Other Windows menu.
C# Interactive Window shares most of the code with CSI (the command line REPL).
At the moment C# Interactive Window does not support .NET Core.
// REPL global variables are compiled into fields
var numbers = new[] { 1, 2, 3, 4 };
// this is legal in a C# REPL
// in "regular" C# such shadowing produces CS0136
var x = numbers.Where(x => x % 2 == 0);
Xamarin Workbooks provide a fantastic mix of a C# REPL and documentation. Workbook files are stored as Markdown files.
---
title: "UrhoSharp: Planet Earth in C#"
platforms:
- Console
packages:
- id: UrhoSharp
version: 1.5.22
---
# UrhoSharp: Planet Earth in C#
[UrhoSharp](https://developer.xamarin.com/guides/cross-platform/urho/) is a powerful 3D game engine for Xamarin and .NET developers. Start by loading URho into the workbook and import some namespaces that we’ll want to consume.
```csharp
#r "Urho"
using Urho;
using Urho.Actions;
using Urho.Shapes;
var app = SimpleApplication.Show(new ApplicationOptions("Data") { Width = 600, Height = 600, TouchEmulation = true });
```
We have created a window containing a `ApplicationOptions`. Let’s add a new `Node` to the scene, representing the Earth.
```csharp
var earthNode = app.RootNode.CreateChild(name: "Earth");
var earth = earthNode.CreateComponent<Sphere>();
```
Internally, Xamarin Workbooks uses Roslyn scripting to provide its REPL-like features.
Live Unit Testing was introduced in Visual Studio 2017. At the moment it is available only for Visual Studio Enterprise.
[20:01:31.934 Error] Outdated package 'xunit'. Installed version: '1.9.2'.
Minimum supported version: '2.0.0'. Please update the package.
[20:01:31.949 Error] No test adapters are referenced by this solution.
If you have a test project, add a NuGet reference to a test adapter corresponding to the test framework used in order to run the tests.
If you already have the required NuGet reference in your test project, performing a NuGet restore may resolve the issue.
[20:01:31.949 Info] Start failed.
[20:01:31.965 Info] Live Unit Testing stopped.
| Framework | Version | Test Adapter |
|---|---|---|
| xUnit | 2.0.0+ | xunit.runner.visualstudio 2.2.0+ |
| NUnit | 3.5.0+ | NUnit3TestAdapter 3.5.1+ |
| MSTest | 1.1.11+ | MSTest.TestAdapter 1.1.11+ |
Visual Studio 2017 Version 15.3 introduces Live Unit Testing for .NET Core projects.
| Find issue | Change code | Diagnostic | Distribution | |
|---|---|---|---|---|
| Analyzer | 🕵 | 🦄 | ||
| Code fix | 🔧 | 🦄 | ||
| Refactoring | 🔧 |
[DiagnosticAnalyzer(LanguageNames.CSharp)]
public class RemoveRegionAnalyzer : DiagnosticAnalyzer
{
public const string DiagnosticId = "RemoveRegionAnalyzer";
private const string Category = "Naming";
private static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, "Regions are banned",
"Region '{0}' can't be used. In fact no regions can.", "Sanity", DiagnosticSeverity.Error,
isEnabledByDefault: true);
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create(Rule);
public override void Initialize(AnalysisContext context)
{
context.RegisterSyntaxNodeAction(ctx => {
var diagnostic = Diagnostic.Create(Rule, context.Node.GetLocation());
context.ReportDiagnostic(diagnostic);
}, ImmutableArray.Create(SyntaxKind.RegionDirectiveTrivia, SyntaxKind.EndRegionDirectiveTrivia));
}
}


This directive defines an upper limit on the number of file
descriptors that Squid should open for reading and writing cache
files on disk. It is relevant for only the ufs
and aufs storage schemes. It is a relatively
simple hack for measuring the level of Squid's disk
activity. Experience shows that performance degrades significantly
when Squid hits a filesystem bottleneck. If Squid reaches this limit, it doesn't attempt to
store subsequent cachable responses. Each time that happens, Squid
increments the no.too_many_open_files counter (see
Section <IP_ADDRESS>). Note that hitting this limit has a
negative impact on your hit ratio. You can monitor the number of open
disk files by requesting the info page from the
cache manager (see Section <IP_ADDRESS>). If you set this directive to 0, Squid
doesn't place any limits on the number of open disk
file descriptors. |
Syntax
|
max_open_disk_fds N
| |
Default
|
max_open_disk_fds 0
| |
Example
|
max_open_disk_fds 100
|
|


Yes, I tried employing the Just Like Me and Three Assumptions techniques to grow trust and sincerity.
I felt it went well. I have always tried to be a kind, loving, caring, and compassionate person. This has sometimes been at the cost of my own boundaries, and projecting my own hopes and desires for the other person onto the other person (whether they like it or not!).
I felt these techniques and exercises helped me
I listened to a friend's problems over the weekend. To help my friend feel heard, safe to share their vulnerabilities with me, and comforted by my insights, I
The first time I tried this exercise, I thought of my husband and everything I wanted for him. He was easy to visualise, and it was easy to convey loving kindness for him. In fact it was... too easy. It was actually pretty intense!
From the intensity of the first attempt of this meditation, I decided to put change to object of my meditation from my husband to a former coworker. This coworker and I had a disagreement at one point, which I sincerely regret.
When I visualised my coworker, I was also able to explore our disagreement objectively, and see why we had the disagreement from our perspectives. I was able to calmly analyse that neither of us did anything wrong: we wanted the same outcome for our own reasons, but we could not agree on our approaches. There was nothing personal or malicious about it; just the conflict in our respective approaches.
Once I found the loving kindness for my coworker, I reflected on how I could have done things differently, with positivity and kindness, and helped them bring out their own positivity and kindness as well. This is a valuable lesson I have learnt for when I work together with my cohort at EDA.
Difficult situation: When I was 18 and working in retail, a customer wanted to return several items back to our store for a refund. The customer called ahead and asked a coworker of mine if they were entitled to the return. My coworker clarified with the customer that since the transaction was originally a credit card transaction, as long as the same credit card was used to complete the refund, the customer was entitled to a refund.
My coworker invited the customer to the store to carry out the return, and briefed me on the conversation in case I had to serve the customer. Sure enough, I ended up serving the customer while my coworker was out on a break.
Situation as though I am 100% correct and reasonable: The customer arrived with the items to be returned, and I went through all of the items to ensure they were fit for return (i.e in condition fit for sale). Once I cleared that, I went to process the transaction on the credit card. This was when the twist happened...
Both the customer and my coworker had failed to validate that the customer was the cardholder of the credit card. It turns out she was not the authorised/named cardholder: it was her husband's credit card. Moreover, it was an Australian Defence Force-issued credit card, so I knew we were in risky territory. While it was the same credit card that had been used for the original transaction, and the items in question were eligible for a return, the customer in the store could not authorise transactions for a credit card that was not in her name.
I explained this to the customer, and understandably, she was upset. Both my coworker and she had failed to establish this fact prior to her making the effort to packing up the goods for returning: as long as the original credit card was involved, it should all be smooth sailing. However, the credit card's use for any transaction, purchase or return, could only be authorised by the named cardholder. Otherwise, we're going into fraud territory.
To protect the store's credibility, reputation, and financial integrity, I had to deny the processing of that transaction. I asked the customer if her husband could come in as the authorised cardholder; however, her husband had just gone on deployment, and wouldn't be back in the country for months. As a gesture of goodwill, I offered to extend the terms of the return from 30 days to 6 months to accommodate this need. I also offered my line manager's direct contact details to see if he could explore any other arrangements for the customer.
I do not think there was an alternate outcome for the customer. It's quite possible she has all of those items to this very day.
Situation as though the other is 100% correct and reasonable: Understandably, the customer was very upset and very angry with me: I did not react or counter her anger with me. I knew that I was not doing this out of malice: I was doing this out of protecting all parties involved, including the customer. If there had been any disputes involving the credit card and that transaction, all parties would have been liable in some way.
Eventually, the customer took all of the items she had wanted to return and left. She contacted my manager and gave her account of the situation. Looking at it logically, pragmatically, and considering my reasoning of the situation, my manager gave me his full backing with the customer. He acknowledged that my coworker should have made the effort to clarify that she was the authorised cardholder during the phone conversation, but all lines of credit with a lending institute are subject to strict conditions such as these.
All in all from this experience, I learned that life is complex and not black-and-white. I cannot hold people to account when they vent their anger and frustration at me for upholding processes that are designed to protect them. Neither of us were in the complete right; I should have asked my coworker about whether he had clarified the cardholder situation before the lady came in.
Even though I was 18, I was already working with kindness, integrity and goodwill. I will strive to continue doing so, but I also realise that I have a long way to go before I can be the very best version of myself.


1. 'Where ___________ yesterday?'
2. What's ___________name?
3. Jane's ___________ nice and polite.
4. ___________ a light?
5. Margaret ___________ usually come by bus
6. They ___________ home last night
7. What ___________you say?
8. Why ___________ crying?
9. Where ___________to spend your holidays next summer?
10. ___________ never been to the theatre before.
11. Seiko watches ___________ in Japan.
12. Where ___________ when you met him?


The ComputeFarm project is a compute server framework for running compute-intensive
jobs in parallel. A {@link org.tiling.computefarm.Job} is a piece of work generated by
a client of the ComputeFarm, which the client gets the ComputeFarm to run using a
{@link org.tiling.computefarm.JobRunner}.
Typical Job
s might be testing a large Mersenne prime candidate for primality, or ray-tracing
a scene from a cartoon movie.
The client divides the
Job
into small pieces that implement the {@link org.tiling.computefarm.Task} interface.
Each Task
is executed independently to produce a single result object, then
the Job
combines the individual results into a final, overall result.
The underlying implementation of the ComputeFarm is pluggable. The only distributed
implementation at the time of writing is the one using JavaSpaces technology. If you want to
use this implementation then Task
objects and the results they return after being executed
must also implement java.io.Serializable
.
There is also a simple, local implementation of ComputeFarm which is handy for testing.


Fun examples with Xoces-Tree
Square nodes outcome tree
Circle nodes outcome tree
With custom coloring and center label tree


type TCombineMode = (cmBlend, cmMerge);
Description
TCombineMode defines how drawing operations combine the foreground color with
the background.
It also determines how a bitmap is combined with the background when DrawMode is
set to dmBlend.
- cmBlend - Fast blending of foreground color with the background color using the supplied alpha. This method is
not suited for working and preserving alpha-channels. Use this more if you want to blend directly to the display buffer.
- cmMerge -
Uses a completely different formula that also merges the alpha-channels. This mode is slower than blending but
is suited for working with alpha-channels (eg. when composing in temporary buffers).


100%
Name:
Public
Items
Save game
×
Name:
Width:
Height:
Src:
Select
Background Src:
Select
Can be turned:
Can be rotaded:
Rotation steps:
Is stack:
Draw stack items closed:
Stack items Src:
Select
×
×
Files:


Don't have an account?
Take a minute and register!
sign up
Have an account?
Log into your profile!
login
Login
Email
*
Password
*
login
Register
Name
*
Email
*
Password
*
register
Do you have an account?
Login or register!
login
sign up
Login
login
Register
register


Created by Jackie Keiser
Here's a collection of things I've learned
about Sass since I started using it.
$example: 'value' !default;
You can assign variables if they are not already assigned by using !default. You can see examples of this in the Foundation framework's components files.
$image-path: /templates/images;
.example-image {
background-image: url('#{$image-path}/image.jpg');
}
Interpolation is where variables are replaced with their values within a string or expression
In CSS, @import
is for linking to other stylesheets. In Sass, @import
works with partials to actually take the the contents of a partial and insert them directly into the output CSS.
Partials are a special kind of Sass file. They must be imported into another stylesheet to be used and their filenames must start with an underscore.
scss/
|
|-- partials/ # Partials
| |-- _buttons.scss # buttons
| |-- _grids.scss # grids
| |-- _home.scss # homepage styles
| |-- _typography.scss # typography
| |-- _variables.scss # variables
| ...
|
|-- framework/ # Framework
| ...
|
`-- styles.scss # Primary Sass file that imports partials
Using a base file that imports partials helps organize files
The Inception Rule: don’t go more than four levels deep.
Check your output!
@media #{$small-only} { // Mobile datepicker uses the popup theme
@import "custom/pickadate-default";
@import "custom/pickadate-default-date";
}
@media #{$medium-up} { // Tablet up datepicker uses the inline theme
@import "custom/pickadate-classic";
@import "custom/pickadate-classic-date";
}
I found nesting partials to be helpful when I had a plugin that needed different styles for different media queries.
Play with this gist on SassMeister.
The ampersand is a way to reference parent selectors when nesting.
Play with this gist on SassMeister.
A mixin allows you to define reusable styles. They can take arguments to manipulate those styles.
Play with this gist on SassMeister.
A function can also take arguments but it is meant to return a value.
Placeholders are similar to mixins in that they are a group of reusable styles. The differences are that they do not accept arugments and instead of repeating the same block of styles, they group selectors together.
@for, @each, @while
$jackies-fav-colors: #9ECC16 #AA81FF #F92672;
Lists are like arrays. In Sass they can be comma or space seperated.
sass --watch input:output
sass --check input:output
Only checks syntax, doesn't evaluate.
sass --line-numbers input:output
Adds comments to the generated CSS that indicates the line numbers in the Sass files.
sass --quiet input:output
Silence warnings and status messages while compiling.
sass --style NAME input:output
Changes the style of your output. The options are nested (default), compact, compressed, or expanded.
sass --help
--help
or -h
works with a lot of things in the command line. Try it out!
Debugging with Sass partials got you down?
Add --sourcemap to your sass command
sass --watch --sourcemap sass/styles.scss:styles.css
Source maps allow you to see the original source CSS while debugging. When you run --sourcemap
it adds a comment to the end of the css file that links to a .map
file it created.
Enable source maps in your browser
Chrome, Firefox, and Safari supports source maps.
Check out Using source maps with Sass 3.3 on The Sass Way to find out how to enable them.
(http://thesassway.com/intermediate/using-source-maps-with-sass)
Sass is useful but with the addition of variables and partials, comments are more important than ever.
Using //
will prevent your comments from showing up in your output. All comments are removed in compressed format.
//------------------------------------//
// **STOP**
//------------------------------------//
// This project currently uses Grunt. The grunt files have not been commited.
// Please contact Jackie before you make changes.
// Watch example
// sass --watch styles.css:scss/styles.scss
// Sass partials got you down? Add source maps for chrome
// https://developer.chrome.com/devtools/docs/css-preprocessors
// sass --watch --sourcemap styles.css:scss/styles.scss
//------------------------------------//
// Contents
//------------------------------------//
// Variables that can be used globally
@import "custom/variables";
@import "bourbon/bourbon";
// Makes browsers render all elements more consistently and in line with modern standards
@import "normalize";
// Foundation Settings
@import "foundation/settings";
// Foundation component calls. Comment out the ones that are not being used.
@import "foundation";
// All of the foundation overrides and additions
@import "custom";
//------------------------------------//
// General Notes on Eden Roc
//------------------------------------//
// Eden Roc is responsive and built mobile first. If you make a change, remember to
// check on all screen sizes because it will cascade.
// 320px - 767px (Mobiles, Small Tablets)
// 768px - 1229px (Tablets, Netbooks)
// 1230px - 1680+ (Desktop, Full-width)
// - This is the only file you need to watch
// - Media queries are nested and should follow this order:
// .element {
// Small styles
// @media #{$medium-up} { Medium up styles }
// @media #{$large-up} { Large up styles }
// }
// - CSS rules with one or two properties can be on one line. Rules with more than
// two declarations should be on multiple lines.
// .example { color: #999; font-size: 12px; }
// .example-2 {
// color: #999;
// background-color: red;
// font-size: 12px;
// }
// - Try to comment your code like I've done here! Use // so that it gets removed
// when sass compiles.
// - Add global variables to /custom/_variables.scss. Variables specific to a
// certain section or partial can be declared at the top of that section or
// partial.


Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, mattis eget, convallis nec, purus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. Nullam tristique diam non turpis. Cras placerat accumsan nulla. Nullam rutrum. Nam vestibulum accumsan nisl.
;;;; emacs-term.lisp
;; This program depends on wmctrl to be on the path
;; You can install it on Ubuntu/Debian with:
;; sudo apt install wmctrl
;;
(in-package #:emacs-term)
(defparameter *socket-path* "/home/thawes/.emacs.d/server/server")
(defparameter *start-client*
(concatenate 'string
"emacsclient"
" --socket-name=~A"
" --frame-parameters='(quote (name . \"~A\"))'"
" -cne '(~A)'"))
(defun trim-all (str)
(string-trim '(#\Space #\Newline #\Backspace #\Tab
#\Linefeed #\Page #\Return #\Rubout)
str))
(defun get-window-id (window-name)
(multiple-value-bind (window-id stderr status)
(uiop:run-program (format nil "xdotool search --classname ~A" window-name)
:output :string
:ignore-error-status t)
(let ((id (trim-all window-id)))
(if (zerop (length id))
nil
(first (cl-ppcre:split "\\s+" id))))))
(defun desktop-geometry ()
"Returns the desktop geometry as a string (W H). Assumes all
workspaces are the same geometry."
(multiple-value-bind (geom stderr status)
(uiop:run-program '("xdotool" "getdisplaygeometry") :output :string
:ignore-error-status t)
(mapcar 'parse-integer (cl-ppcre:split "\\s+" (trim-all geom)))))
(defun window-geometry (name)
"Returns the current geometry of the given window by name."
(multiple-value-bind (line backref)
(multiple-value-bind (results stderr status)
(uiop:run-program (format nil "xdotool getwindowgeometry ~A"
(get-window-id name))
:output :string :ignore-error-status t)
(cl-ppcre:scan-to-strings "Geometry: ([0-9]*x?[0-9]*)"
(trim-all results)))
(mapcar 'parse-integer
(cl-ppcre:split "x" (elt backref 0)))))
(defun maximize-client (name)
"Maximizes window by name."
(uiop:run-program
(format nil "wmctrl -xr ~A -b toggle,maximized_vert,maximized_horz" name)
:ignore-error-status t))
(defun maximized-p (name)
"Returns true if client is already maximized."
(let ((desktop (desktop-geometry))
(window (window-geometry name)))
(and (< (- (first desktop) (first window)) 80)
(< (- (second desktop) (second window)) 80))))
(defun maximize (name)
"Will make sure window, selected by name, is maximized. Maximize is
a toggle, so try to make sure window is not already maximized."
(when (null (maximized-p name))
(maximize-client name)))
(defun start-term (name command)
)
(defun start-window (name command)
"Starts the window with name and command, waits a maximum of 5
seconds for window to open for window to open."
(uiop:run-program (format nil *start-client* *socket-path* name command)
:ignore-error-status t)
(loop for n from 0 below 20
until (plusp (length (get-window-id name))) do
(sleep 0.25)))
(defun active-window ()
"Returns the ID of the active window"
(multiple-value-bind (name err status)
(uiop:run-program
'("xdotool" "getactivewindow" "getwindowname")
:output :string :ignore-error-status t)
(string-trim '(#\Space #\Tab #\Newline) name)))
(defun window-active-p (name)
(string-equal name (active-window)))
(defun kill-window (name)
(multiple-value-bind (stdout stderr status)
(uiop:run-program (format nil "wmctrl -xc ~A" name)
:ignore-error-status t)
(zerop status)))
(defun raise-client (name)
"Raises the given window by name."
(uiop:run-program
(format nil "wmctrl -xR ~A" name) :ignore-error-status t)
(loop for n from 0 below 20
until (not (null (window-active-p name))) do
(sleep 0.25)))
(defun run (name command)
(if (window-active-p name)
(if (maximized-p name)
(kill-window name)
(maximize name))
(progn
(when (null (get-window-id name))
(start-window name command))
(raise-client name)
(maximize name))))
(defun -main ()
(let ((name "Eshell")
(command "eshell"))
(run name command)))


{% extends "helpdesk/base.html" %}{% load i18n %}{% load url from future %} {% block helpdesk_title %}{% trans "Ignored E-Mail Addresses" %}{% endblock %} {% block helpdesk_body %}{% blocktrans %}
The following e-mail addresses are currently being ignored by the incoming e-mail processor. You can add a new e-mail address to the list or delete any of the items below as required.
{% endblocktrans %}| {% trans "Name" %} | {% trans "E-Mail Address" %} | {% trans "Date Added" %} | {% trans "Queues" %} | {% trans "Keep in mailbox?" %} | {% trans "Delete" %} |
|---|---|---|---|---|---|
| {{ ignore.name }} | {{ ignore.email_address }} | {{ ignore.date }} | {% for queue in ignore.queues.all %}{{ queue.slug }}{% if not forloop.last %}, {% endif %}{% empty %}{% trans "All" %}{% endfor %} | {% if ignore.keep_in_mailbox %}{% trans "Keep" %}{% endif %} | {% trans "Delete" %} |
{% trans "Note: If the 'Keep' option is not selected, emails sent from that address will be deleted permanently." %}
{% endblock %}


Console error reporting
A thousand errors
Syntax error
Shallow error
Deep error
Throw
Uncaught exception
DOM error
Two errors via events
Steps to reproduce
Open Firebug
Enable the
Script
and
Console
panel and switch to the
Console
panel
Click every button above
Expected result
Every button generates an error, which is displayed inside the
Console
panel


This week I worked on setting up an A/B test with Google Optimize. This feature of Google Analytics is incredibly useful because it allows the developer to track the success of changes to the user interface of a web app or website.
Setting up Google Optimize was a little temperamental, but once it was set up on my wine-time app I was really intrigued by how beneficial it was to have a set of data for two separate versions of my app.
Initial ideas for A/B test
Before setting up Google Optimize I thought about which variant I wanted to test on my app. While analyzing it, I realized that it may be slightly confusing for a new user to understand how this app works and what its purpose is. Although I prefer simplicity, I also want people to understand how to use this app, so I wrote a very short sentence on the homepage of the app that provides instructions on how to use it.
Since I wasn’t 100% sure of this change, I thought it would be an excellent source for an A/B test. From one perspective, adding more context and instructions to an app typically makes it easier to use, however, adding more text creates more clutter and could potentially confuse users as well. So, for my variant I decided to delete the instructions I had added to see if having them or not having them made a difference to my user statistics.
Setting up the A/B test
My first step in setting up Google Optimize (A/B test) was to link to my Google Analytics account with my Google Analytics ID. After that I “created a new experience,” by adding the url of the site/app I wanted to test and then chose “A/B” as the type of test that I would like to conduct. At this point I added a new variant by clicking “add variant.” The default settings for the A/B test takes 100% of my users and shows 50% of them the original version and the other 50% the new variant version.
Since I had already changed my app to include instructions, this became my “original” variant. To edit the new variant I named “deleted instructions for app”, I clicked the “edit” button next to it, which then took me to a wysiwyg editor where I deleted the container that included the text instructions for the app.
Once this process was complete I needed to set up an objective for the users so I could measure the success of each version. For my objective I used a click event that I had used previously to test the effectiveness of my app. Basically the entire functionality of my app is built into the search button on the main screen of the app so If users aren’t clicking this button then they’re not using the app for its intended function. This made it the obvious choice for the objective to measure which version of the app is more effective.
The Data
I wasn’t too surprised by the data I’ve gotten back from my A/B test so far. The results for each variant were very similar. After two days, the original version (version with instructions) had seven views and five successful conversions (when users clicked the search button). In contrast the version without instructions had seven views and four conversions.
Conclusion
As of right now I think it’s too soon to make a final decision on which version is more effective and currently the data isn’t dramatically skewed in one direction. Moving forward, if they continue to produce similar or close to the same conversion rates I will choose the version that I think is the most appropriate. In this case it would be the version with the instructions. Although it hasn’t yet proved to be exceedingly more effective than the second variant, I think it’s important to make it clear what the purpose of the app is to the user, even if they do understand the concept immediately. I’d be making a gross generalization if I assumed every user will understand the app instantly and if there is anything I have learned while studying usability it’s to assume nothing – ever.


Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.77 [quality_of_1_plus_years_employment_rate_value] => 0.71 [wage_growth] => 2.8786436942803 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.78 [quality_of_1_plus_years_employment_rate_value] => 0.915 [wage_growth] => 1.6409157550468 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.66 [quality_of_1_plus_years_employment_rate_value] => 0.725 [wage_growth] => 3.0833801060181 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.875 [wage_growth] => 1.1794099314357 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.765 [wage_growth] => 1.1585548885077 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.74 [quality_of_1_plus_years_employment_rate_value] => 0.765 [wage_growth] => 1.1585548885077 )
Array ( [features] => 0.5 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.8 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.78 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.78 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.4 [quality_of_1_plus_years_employment_rate_value] => 0.535 [wage_growth] => 1.0904314873827 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.86 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.6875 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.57 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 1 [quality_of_1_plus_years_employment_rate_value] => 1 [wage_growth] => 1.4186046511628 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 1 [quality_of_1_plus_years_employment_rate_value] => 1 [wage_growth] => 1.4186046511628 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.53 [quality_of_1_plus_years_employment_rate_value] => 0.85 [wage_growth] => 0.88377396137675 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.53 [quality_of_1_plus_years_employment_rate_value] => 0.85 [wage_growth] => 0.88377396137675 )
Array ( [features] => 0.5 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.66 [quality_of_1_plus_years_employment_rate_value] => 0.915 [wage_growth] => 1.4942995470873 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.53 [quality_of_1_plus_years_employment_rate_value] => 0.695 [wage_growth] => 1.4949515060155 )
Array ( [features] => 0.6875 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.73 [quality_of_1_plus_years_employment_rate_value] => 0.905 [wage_growth] => 1.0904914381178 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.84 [quality_of_1_plus_years_employment_rate_value] => 0.92 [wage_growth] => 1.3264012675777 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.84 [quality_of_1_plus_years_employment_rate_value] => 0.92 [wage_growth] => 1.3264012675777 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.84 [quality_of_1_plus_years_employment_rate_value] => 0.92 [wage_growth] => 1.3264012675777 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.49 [quality_of_1_plus_years_employment_rate_value] => 0.85 [wage_growth] => 1.099167467179 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.75 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.75 [quality_of_1_plus_years_employment_rate_value] => 0.655 [wage_growth] => 1.0396153059136 )
Array ( [features] => 0.1875 [in_demand] => 1 [green] => 1 )
Array ( [features] => 0.5625 [cost] => 1 [in_demand] => 0 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.62 [quality_of_1_plus_years_employment_rate_value] => 0.755 [wage_growth] => 1.2265920435638 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.89 [quality_of_1_plus_years_employment_rate_value] => 0.94 [wage_growth] => 1.0204661739625 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.79 [quality_of_1_plus_years_employment_rate_value] => 0.92 [wage_growth] => 1.2092541436464 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.79 [quality_of_1_plus_years_employment_rate_value] => 0.92 [wage_growth] => 1.2092541436464 )
Array ( [features] => 0.125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.86 [quality_of_1_plus_years_employment_rate_value] => 0.89 [wage_growth] => 1.1880765288691 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.86 [quality_of_1_plus_years_employment_rate_value] => 0.825 [wage_growth] => 1.0628792769529 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.86 [quality_of_1_plus_years_employment_rate_value] => 0.825 [wage_growth] => 1.0628792769529 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.78 [quality_of_1_plus_years_employment_rate_value] => 0.955 [wage_growth] => 0.91914305459572 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 0 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.67 )
Array ( [features] => 0.1875 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.91 [quality_of_1_plus_years_employment_rate_value] => 0.905 [wage_growth] => 0.91865048084503 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.68 [quality_of_1_plus_years_employment_rate_value] => 0.825 [wage_growth] => 1.0036205648081 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.68 [quality_of_1_plus_years_employment_rate_value] => 0.825 [wage_growth] => 1.0036205648081 )
Array ( [features] => 1 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.6875 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.62 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.68 [quality_of_1_plus_years_employment_rate_value] => 0.84 [wage_growth] => 1.3473396024283 )
Array ( [features] => 1 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 1 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.83 )
Array ( [features] => 0.4375 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.83 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.56 [quality_of_1_plus_years_employment_rate_value] => 0.445 [wage_growth] => 0.69179351623978 )
Array ( [features] => 0.375 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.73 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 0 [green] => 1 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.77 )
Array ( [features] => 0.3125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.67 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.25 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 )
Array ( [features] => 0.6875 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.6875 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.125 [cost] => 1 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.72 )
Array ( [features] => 0.8125 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.5 [quality_of_1_plus_years_employment_rate_value] => 0.375 [wage_growth] => 1.2344503142714 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5625 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.625 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.9 )
Array ( [features] => 0.5 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.6875 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.78 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.75 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 [quality_of_1_plus_years_employment_rate_value] => 0.29 )
Array ( [features] => 0.75 [cost] => 1 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.71 [quality_of_1_plus_years_employment_rate_value] => 0.29 )
Array ( [features] => 0.375 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.375 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.3125 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 )
Array ( [features] => 0.1875 [in_demand] => 0 [green] => 1 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 0 [quality_of_6_month_employment_rate_value] => 0.3 [quality_of_1_plus_years_employment_rate_value] => 0.7 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0 )
Array ( [features] => 0.25 [in_demand] => 1 [green] => 0 [quality_of_6_month_employment_rate_value] => 0 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.8125 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.75 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.5625 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.5 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.4375 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 0 [green] => 0 )
Array ( [features] => 0.25 [in_demand] => 0 [green] => 0 )


{% extends "_base.html" %} {% block content %}
Use the insta-search below to search through the library by title.


getting-started.Rmd
This document covers the basic use of the package inflatably
.
When using costs in a cost analysis (e.g. cost-effectiveness calculation) there are several necessary considerations.
Often the specific cost with respect to time (and currency) is not available and so we need to inflate the observed cost to the desired target value for a given context.
We fill focus on context-dependent inflation. For further discussion and a focus on multiple currency inflation see (Turner et al. 2019).
For original cost \(C_0\), target cost \(C_T\) and fraction yearly inflationary factor \(i\) for \(n\) years, the general inflation formula is as follows.
\[ C_T = (1 + i_{1})(1 + i_{2}) \cdots (1 + i_{n}) \times C_0 \]
Clearly, for the same \(i\) each year this simplifies to
\[ C_T = C_0(1 + i)^n \]
The values of \(i\) are context dependent, e.g. different for salaries or resources. So, to be more precise, we can explicitly denote the inflation factor as \(i^s_{y_j}\) where \(s\) indicates the source (corresponding to the context) and \(y_j\) is the year from which a inflation factor is taken.
\[ C_T = (1 + i^s_{y_1})(1 + i^s_{y_2}) \cdots (1 + i^s_{y_n}) \times C_0 \]
In this example we inflate the original cost £1 observed in 2014 to 2016 prices using the Hospital and Community Health Services (HCHS) inflation rates.
library(inflatably)
inflation_adjust_cost_data(from_year = 2014,
to_year = 2016,
from_cost = 1,
inflation_df_nm = "HCHS")
#> [1] 9.99
#> attr(,"from_year")
#> [1] 2014
#> attr(,"to_year")
#> [1] 2016
#> attr(,"from_cost")
#> [1] 1
#> attr(,"reference")
#> [1] "HCHS"
1*1.004*1.01
#> [1] 1.01404
The function returns the inflated cost and also records the inflation source, original year and cost and target year for reproducability.
Turner, Hugo C., Jeremy A. Lauer, Bach Xuan Tran, Yot Teerawattananon, and Mark Jit. 2019. “Adjusting for Inflation and Currency Changes Within Health Economic Studies.” Value in Health 22 (9): 1026–32. https://doi.org/10.1016/j.jval.2019.03.021.


My active requests
Date of request
Leave dates
Type
Days
Status
There are no active requests
My pending approvals
Date of request
Requested By
Leave dates
Type
Days
Approve
Reject
There are no pending approvals
th:href="@{/requests/{id}(id=${request.id},reject)}" class="btn btn-danger">
available days


Ionic 4 Getting started
Ionic is a front-end focused framework which offers different tools for developing hybrid mobile applications. The web technologies used for this purpose are CSS, Sass, HTML5 and Typescript.
Why Ionic?
Ionic is used for developing hybrid applications, which means not having to rely on a specifyc IDE such as Android Studio or Xcode. Furthermore, development of native apps require learning different languages (Java/Kotlin for Android and Objective-C/Swift for Apple), with Ionic, a developer does not have to code the same functionality for multiple platforms, just use the adecuate libraries and components.
Basic environment set up
Install Ionic CLI
Although the devonfw distribution comes with and already installed Ionic CLI, here are the steps to install it. The instalation of Ionic is easy, just one command has to be written:
npm install -g ionic
Update Ionic CLI
To update the installed version of the CLI run:
npm install -g ionic@latest
If the devonfw’s ionic CLI has to be updated, the steps are a little bit different:
-
open the devonfw bundled console.
-
cd [devonfw_dist_folder]
-
cd software/nodejs
-
npm uninstall ionic --no-save
-
npm install ionic@latest --no-save
Basic proyect set up
The set up of an ionic application is pretty inmediate and can be done in one line:
ionic start <name> <template> --type=angular
-
ionic start: Command to create an app.
-
<name>: Name of the application.
-
<template>: Model of the application.
-
--type=angular: With this flag, the app produced will be based on angular.
To create an empty project, the following command can be used:
ionic start MyApp blank --type=angular
The image above shows the directory structure generated.
There are more templates available that can be seen with the command
ionic start --list
The templates surrounded by red line are based on angular and comes with Ionic v4, while the others belong to earlier versions (before v4).


This file is the main file of the cleaner.
"use strict";
always first :)
'use strict'
Require all the dependencies.
Firstly get the arguments from argv.litcoffee
yargs = require './argv'
Then there are some external dependencies…
_ = require 'lodash'
colors = require 'colors'
fs = require 'fs'
path = require 'path'
readline = require 'readline'
File searching function.
finder = require './finder'
File operation functions.
ops = require './operations'
The main()
function of the whole application.
Firstly it will get all the configurations from yargs
.
If given a --help
or -h
, we will print a help message no matter what else is given. Besides, if no valid argument is given, we will also print he help message.
I’d like to leave the argv
open.
It will give convenience if who want to require this module in his / her code instead of call it in CLI.
It will also give myself convenience when writing the UT.
The priority of each arguments is: —help > —list > —delete > —rename
And if nothing is given or any invalid arguments exists, it will also print the help message.
main = (argv) ->
configs = getConfigs(argv)
[ isConfigsValid, messages ] = checkIfValid(configs)
if isConfigsValid
messages.forEach (msg) -> console.war msg
if configs.help
printHelp()
else if configs.list
finder.find configs.destination, configs.extnames, ops.list
else if configs.remove
finder.findSync configs.destination, configs.extnames, ops.remove, configs.verbose
else if configs.removeDirectly
finder.findSync configs.destination, configs.extnames, ops.removeSilently, configs.verbose
else
finder.find configs.destination, configs.extnames, ops.rename, configs.renameTo, configs.verbose
else
messages.forEach (msg) ->
console.error 'Error: '.red.bold + msg
console.log ''
printHelp()
A function to print the help message to the users.
By default Yargs
will print the help message to stderr
. I don’t like it, so I redirected it to stdout
.
printHelp = ->
yargs.showHelp(console.log)
Get the configurations from yargs
.
getConfigs = (argv) ->
args = if argv?
yargs.parse argv
else
yargs.argv
configs = {}
configs.extnames = args.x.split(',').map (ext) -> ext.trim().replace(/^\./, '')
delete args.x
delete args.extname
configs.renameTo = args.r.trim().replace(/^\./, '')
delete args.r
delete args.rename
configs.remove = args.d
delete args.d
delete args.delete
configs.removeDirectly = args.D
delete args.D
delete args.deleteDirectly
delete args['delete-directly']
configs.list = args.l
delete args.l
delete args.list
configs.verbose = args.v
delete args.v
delete args.verbose
configs.help = args.h
delete args.h
delete args.help
configs.destinations = if args._? and args._.length > 0 then args._ else [ '' ]
delete args._
configs.destination = configs.destinations[0].toString()
configs.$0 = args.$0
delete args.$0
configs.unknown = args
configs
Check to see if the arguments given are valid.
checkIfValid = (configs) ->
messages = []
passed = true
_.forEach configs.unknown, (value, key) ->
messages.push "Unknown argument #{key}: #{value} is not allowed"
passed = false
if configs.destinations.length > 1
messages.push 'At most 1 destination is allowed'
passed = false
try
unless fs.statSync(path.resolve(configs.destination)).isDirectory()
messages.push 'Destination is not a directory'
passed = false
catch e
if e.code is 'ENOENT'
messages.push 'Destination is not existing'
passed = false
else
throw e
[ passed, messages ]
Now we can publish the main entry point. Or run it directly.
if require.main is module
main()
else
module.exports = main