This post is the first of a two parts series of articles on how to tune Akka configurations
- Part-1: Initial Akka Configurations
- Part-2: Gather and analyze Akka metrics with Kamon and stackable traits
At some point, whether it during your new actor-based system planning, or after you have some prototype working, you’ll probably find yourself dig into the Akka Docs to find the right combinations of the various possibilities of routing, dispatchers, number of actors instances and so forth.. Depending on the complexity of your system and performance requirements, this could get tedious.
Part-1: Initial Akka Configurations
Let’s start with Akka configuration, specifically the configuration of actor-instances, routing strategy and dispatchers & executors. Below is the relevant section of the application.conf
{
akka {
actor {
akka.actor.deployment {
/my-service {
nr-of-instances = ???
router = ???
dispatcher = "my-dispatcher"
}
my-dispatcher {
executor = ???
type = ???
}
Let’s review some scenarios in which you may want to scale your routees:
Number of Actor Instances
I like to start by thinking about how many instances of an actor should I have?
akka.actor.deployment {
/my-service {
nr-of-instances = ???
}
}
The size may depend on other configurations like routing strategy, dispatcher, threadpool size and more. Nevertheless, the nr-of-actor ‘strategy’ can be decided at this point. Let’s review our options and use cases:
Single instance (or- Domain actor)
- A dedicated actor for low-priority side-effects like sending metrics, write to a log or to a cache and so forth.
- A mutable, single-source that needs to be handled(Cache)
- When you just have to work sequentially for whatever reason
Fixed number of instances
- Instance per-a copy of a resource, or per a mutable resource
- For sharding, i.e. when you manage a distributed key-value cache, and want to shard the inputs, then you might want to have an actor to manage each shard.
- To execute tasks in parallel, and don’t think you’ll need to manage Back-Pressure nor to scale up
Resizeable number of instances(when using a router)
akka.actor.deployment {
/parent/router {
resizer {
lower-bound = ???
upper-bound = ???
pressure-threshold = ???
messages-per-resize = ???
...
}
}
}
It is possible to configure resizable routees(actors instances managed by a router).
routees can be added or removed dynamically, based on performance. You can configure specifically how much to scale up and down in case of unusual behavior.
Scale / Back-Pressure DIY!
When one component is struggling to keep-up, the system as a whole needs to respond in a sensible way.
You’re somewhat familiar with Akka-Streams, which widely known as a framework that manages back-pressure for you. You can imitate the general behavior by yourself.
Let’s review some scenarios in which you may want to scale your routees:
The producer(In our use case, one of your actors), can produce faster than the received consumer(actor or any other source) can handle.
In this case you may:
-
Back-pressure the producer, i.e. reduce the number of producer’s routees.
-
Add more consumers(routees…)!
-
Leave it. You don’t necessary need to back-pressure, Note it may lead to a loss of messages(Bounded mailbox)/ running out of memory…
The consumer is faster than the producer.
Here the consumer will block waiting for the next item.
-
Remove some consumers(routees…)!
-
Add more producers if your system can theoretically produce faster.
-
Leave it. Then you may not get the most from your machine.
Actor per-request
“You press, you make a request, the Meeseeks fulfills the request, and then it stops existing”(Rick Sanchez)
Actor per request works very similarly. An instance is created for every request, process it and then will be destroyed.
You can configure Spray/Akka-HTTP to work in actor-per-r
You can configure Spray/Akka-HTTP to work in actor-per-request mode, or do it yourself, however it is not part of the Akka configuration so I won’t get deep into details. In a nutshell-
-
Easy to manage state in the actor, because the context is always of a specific request, hence you don’t have to maintain any mapping of State => Request
Note that there is a context-switches overhead and could theoretically lead to memory issues
Routing
Akka provides “strategies” for the Akka router to define workload distribution among actors.
akka.actor.deployment {
/my-service {
router = ???
}
}
Strategies Overview
Let’s quickly review the the routing strategies
- Random - Distributes messages *randomly
- Round-Robin - Distributes messages sequencely*
- Smallest-Mailbox - Sends the message to the smallest mailbox
- Broadcast - Distributes every message to all routees.
- Scatter-Gather-First - Distributes every message to all routees. Only the first to respond execute the task.
- Tail-Chopping - Sends the message to one, randomly picked, Routee and then after a small delay to a second Routee.
- Consistent-hashing - uses consistent hashing to select a Routee based on the sent message
- In-Code - Custom your own routing by route it yourself
Strategies Cheatsheet
| Strategy | When? | Pros (when used as recommended) | Cons (and misused implications) |
| Random |
|
|
|
| Round-Robin |
|
|
|
| Smallest-Mailbox |
|
|
|
| Broadcast |
|
|
|
| Scatter-Gather-First |
|
|
|
| Tail-Chopping |
|
|
|
| Consistent-hashing |
|
||
| In-Code |
|
*Can be solved by increasing the number of routees (which may cost in context-switches overhead)
**As a replacement for ‘smallest mailbox’. 2. Latency differences could be high among connections to remote actors )
***the overhead depends on the task, whether it on the same machine or not
Dispatchers and Executors
akka.actor.deployment {
/my-service {
dispatcher = ???
type = ???
}
}
Dispatchers are what makes Akka actors “tick”, means put messages in mailboxes and route them. In addition, they are also an implementation of ExecutionContext, means they can execute Runnables and so a Scala Future.
my-dispatcher {
executor = ???
throughput = ???
....
}
Fork-Join-executor
my-dispatcher {
executor = "fork-join-executor"
....
}
Java 7 introduced the Fork-Join executor.
As the name suggests, it forks a task into subtasks, each executed by a different thread, and joined the results.
There are 2 main characters that worth mentioning here. According to Oracle docs -
- “It is designed for work that can be broken into smaller pieces recursively”.
It hence best for recursive problems - where a task can be broken into sub-tasks such that they would be executed in parallel and their results would be collected.
- “The fork/join framework is distinct because it uses a work-stealing algorithm. Worker threads that run out of things to do can steal tasks from other threads that are still busy”
Fork-Join shows better performance in most cases, compare to old Thread-Pool-Executor, as it makes a better uses of the resources, as the idle threads can steal tasks from busier threads.
However there is a build-in danger here.
From the first statement, when a ‘Fork’ performed, we have multiple threads and each of them is responsible to run a task.
From the second, when a thread is done it can take some other task. But what if he got stuck on this task? The other threads will wait on the ‘Join’ at some point, which is a threads starvation.
my-dispatcher {
executor = "fork-join-executor"
fork-join-executor {
# Min number of threads to cap factor-based parallelism number to
# Note that these threads will be created anyway on fork'
# so try to avoid an unnecessary overhead.
parallelism-min = ???
# Parallelism (threads) ... ceil(available processors * factor)
parallelism-factor = ???
# This is NOT an upper bound on the total number of threads!
# Max number of threads to cap factor-based parallelism number to
parallelism-max = ???
....
}
}
A common case is to use Fork-Join executor for futures inside an actor. Here, the dispatcher’s configuration of the actor should be considered as well. For example, the more threads you have for the actor, the more ‘future’ tasks would be performed, and you’ll may want more threads for them.
Thread-pool-executor
The old Java 5 executor for asynchronous task execution can still fit in some cases, and without the Fork-Join overhead.
While Fork-Join breaks the task for you, if you know how to break the task yourself, then your code built already as minimal task that should be executed by a single thread, which fit thread-pool-executor.
Thread-pool executor is used by akka Dispatcher and PinnedDispatcher.
Dispatcher let you define min, max and increase factor / fixed size for your threadpool.
my-dispatcher {
type = Dispatcher
executor = "thread-pool-executor"
thread-pool-executor {
# Min number of threads to cap factor-based parallelism number to
parallelism-min = ???
# Parallelism (threads) ... ceil(available processors * factor)
parallelism-factor = ???
# Max number of threads to cap factor-based parallelism number to
parallelism-max = ???
}
....
}
The key is to find the right balance for an actor instances to work in parallel and use the threads as much as they need so other actors and processes would be able to work as well. Its also true for the Fork-Join executor and needs to be quite accurate. In Part 2 //TBA (link to part 2)
We’ll talk about how to measure it.
PinnedDispatcher dedicates a unique thread for each actor. This is usually not the pattern you want for the machine’s resources are limited. Hence it makes sense for the actor to share a pool of threads. However, if your actor performs a prefered task and you don’t want its instances to share its pool.
Do not use it if you have more instances than the number of cores in the machine.
It is also not recommended for Futures, because you’ll probably need more than 1 thread…
Affinity-pool-executor
my-dispatcher {
executor = "affinity-pool-executor"
....
}
This executor tries its best to have your actor instance always schedule with the same thread, which should increase throughput.
It is recommended for small number of actor instances, for if you have much more instances than threads, it is just not possible.
Tips
-
Don’t use the Akka default dispatcher for your actorSystem nor for the actors themselves. Note that external Akka based frameworks use it as default, and you should configure a dedicated dispatcher for them as well.
-
Have a different Dispatcher for each actor, and for Futures inside an actor.
-
Dispatchers has ‘throughput’ parameter, which “defines the maximum number of messages to be processed per actor before the thread jumps to the next actor” Setting It to higher value than the default, 1, is likely to improve performance if it is not part of Affinity-pool dispatcher, and if your actors generally not very busy (otherwise the lack of fairness can cause a high load in some mailboxes).
-
Read this terrific post in ScalaC blog. It explains Dispatcher’s internals in details.
Next
In Part-2 I will show how we monitor and analyze our actor-based system.
Inneractive maintains an Exchange server, which, simply put, gets an advertisement for a mobile application from Ad-Networks.
In fact there are ~500 server instances at a given moment, dealing with ~10,000,000 Ad requests per a minute.
During the process the Exchange server performs a real-time auction by going out (with scala.Future)s to multiple Ad-Networks(consumers).
This translates to ~150,000,000 transactions per a minute.
The Exchange server is akka-based, it uses Spray as a server side-http, and the entire flow is actor-based.
We use other Akka frameworks in other modules like Akka-Http and Akka Streams.


{% set location = locations_map[location_id] %} {% set locations_tree = locations_tree[location_id] %} {% set location_permissions = permissions_by_id[location_id] %} {% if current_user.is_admin or not location.is_hidden or not is_full_location_tree_hidden(locations_map, locations_tree) %}
{% if locations_tree and not is_full_location_tree_hidden(locations_map, locations_tree) %} {{_("This location has been hidden from location lists, but will be shown because it contains other locations that have not been hidden.") }} {% else %} {{_("This location has been hidden from location lists.") }} {% endif %}
{% endif %} {% include "locations/responsible_users.html" %} {% if location.description %}{{ location.description | get_translated_text }}{% endif %} {% else %} {{ _('Location') }} #{{ location_id }} {% endif %} {% if locations_tree %}


Coin Game
问题描述 :
After hh has learned how to play Nim game, he begins to try another coin game which seems much easier.
The game goes like this:
Two players start the game with a circle of n coins.
They take coins from the circle in turn and every time they could take 1~K continuous coins.
(imagining that ten coins numbered from 1 to 10 and K equal to 3, since 1 and 10 are continuous, you could take away the continuous 10 , 1 , 2 , but if 2 was taken away, you couldn’t take 1, 3, 4, because 1 and 3 aren’t continuous)
The player who takes the last coin wins the game.
Suppose that those two players always take the best moves and never make mistakes.
Your job is to find out who will definitely win the game.
The game goes like this:
Two players start the game with a circle of n coins.
They take coins from the circle in turn and every time they could take 1~K continuous coins.
(imagining that ten coins numbered from 1 to 10 and K equal to 3, since 1 and 10 are continuous, you could take away the continuous 10 , 1 , 2 , but if 2 was taken away, you couldn’t take 1, 3, 4, because 1 and 3 aren’t continuous)
The player who takes the last coin wins the game.
Suppose that those two players always take the best moves and never make mistakes.
Your job is to find out who will definitely win the game.
输入:
The first line is a number T(1<=T<=100), represents the number of case. The next T blocks follow each indicates a case.
Each case contains two integers N(3<=N<=109,1<=K<=10).
Each case contains two integers N(3<=N<=109,1<=K<=10).
输出:
The first line is a number T(1<=T<=100), represents the number of case. The next T blocks follow each indicates a case.
Each case contains two integers N(3<=N<=109,1<=K<=10).
Each case contains two integers N(3<=N<=109,1<=K<=10).
样例输入:
2 3 1 3 2
样例输出:
Case 1: first Case 2: second
题目链接：http://acm.hdu.edu.cn/showproblem.php?pid=3951
题目大意：给你n个硬币，把它围成一个圆圈。现在有两个人玩这样的一个翻转游戏，每次翻转1–k个硬币，最后一个翻转硬币者胜。
思路：博弈
1） 若k=1,则一次只能去翻一枚，奇数先手赢，偶数后手赢。
2）若k>1:
a: 先手一次翻完，先手赢；
b: 先手不能翻完，第一次必定断环。只要后手一次翻完，或将其分为相等数量的两段，
之后先手怎么操作后手就怎么操作，后手必赢。
代码：
#include<iostream> using namespace std; int main() { int t,n,k,i; cin>>t; for(i=1;i<=t;i++) { cin>>n>>k; if(k==1) { if(n%2==1) { cout<<"Case "<<i<<": first"<<endl; } else { cout<<"Case "<<i<<": second"<<endl; } } else { if(k>=n) { cout<<"Case "<<i<<": first"<<endl; } else { cout<<"Case "<<i<<": second"<<endl; } } } return 0; }
版权声明：本文为博主原创文章，未经博主允许不得转载。
参考：http://blog.csdn.net/no_retreats/article/details/8693435
(adsbygoogle = window.adsbygoogle || []).push({});
sb是么~ 平时看一群喷子，我捍卫你说话的权利。现在还真当自己上帝视角了？ 一个字，滚！好么
第二个方法挺不错。NewHead代表新的头节点，通过递归找到最后一个节点之后，就把这个节点赋给NewHead，然后一直返回返回，中途这个值是没有变化的，一边返回一边把相应的指针方向颠倒，最后结束时返回新的头节点到主函数。
以了解 想問為甚麼 Tbl[6001] = {1} 初始化都是1
為何不是Tbl[0]=1 其他為0
scanner改用StreamTokenizer就不超时了
great!
厉害，支持
嗯 分析得很到位，确实用模板编程能让面试官对你的印象更好。在设置辅助栈的时候可以这样：push时，比较要push的elem和辅助栈的栈顶，elem<=min.top()，则min.push(elem).否则只要push（elem）就好。在pop的时候，比较stack.top()与min.top(),if(stack.top()<=min.top()),则{stack.pop();min.pop();}，否则{stack.pop();}.
有的，已更新
可以参考算法导论中的时间戳。就是结束访问时间，最后结束的顶点肯定是入度为0的顶点，因为DFS要回溯
第一题是不是可以这样想，生了n孩子的家庭等价于n个家庭各生了一个1个孩子，这样最后男女的比例还是1:1
程序员会算法，等于一个古惑仔带了zhi抢啊
有点意思
补充：此算法求出的不一定是最优解，之前理解错了
很好！！
我觉得是D哎……


Setting the Folders to Store Repository Files
How to set the options that manage file storage for the Repository module.
-
- Maximize the Repository Settings section.
- In the Folder for Approved Files text box, enter/edit the full path to the location where the Repository folder will be located for storing approved files.
E.g. C:\Inetpub\WWWRoot\DNN20\Portals\0\Repository
- At the Do you wish to store each user's files in their own folder?, select from these options:
- Mark the check box at Store uploaded files in User folders to store each user's files within their own separate folder inside the Approved Files folder.
- Unmark the check box to store all approved files in the Approved Files folder.
- At Folder for Unapproved Files text box, enter/edit the full path to the location where the Repository folder will be located for storing unapproved files.
E.g. C:\Inetpub\WWWRoot\DNN5\Portals\0\Repository\Unapproved
- At Folder for Anonymous Files text box, enter/edit the full path to the location where the Repository folder will be located for storing anonymous files.
E.g. C:\Inetpub\WWWRoot\DNN5\Portals\0\Repository\Anonymous
-
Setting the Folders to store Repository Files


Welcome to Dell
Please make your pick
Working to make your lives better. Introducing the new feature to make support for products better.


Hi, I'm Tiffany Navales! I'm a UX/UI designer and a front-end developer with a passion for responsive design, user experience, and accessibility.
I work best with great music and a hot cup of tea.


|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.numericalmethod.suanshu.interval.Intervals<T>
T
- a class that is Comparable
public class Intervals<T extends java.lang.Comparable<T>>
This class represents a disjoint set of Interval
s.
This implementation keeps the disjointed intervals sorted in ascending order. That is, suppose I1 is indexed before I2. It means that the end of I1 is strictly smaller than the begin of I2, as defined by the partial ordering relation.
| Constructor Summary | |
|---|---|
Intervals()
Construct an empty set of Interval s. |
|
Intervals(Interval<T>... intervals)
Construct a set of Interval s from the given intervals. |
|
Intervals(Interval<T> interval)
Construct a set that contains only one Interval . |
|
Intervals(Intervals<T> that)
Copy constructor. |
|
Intervals(T begin,
T end)
Construct a set that contains only one interval [begin, end] . |
| Method Summary | |
|---|---|
void |
add(Interval<T>... intervals)
Add a collection of Interval s to the set. |
void |
add(Interval<T> interval)
Add an Interval to the set. |
boolean |
equals(java.lang.Object obj)
|
Interval<T> |
get(int i)
Get the i -th interval. |
int |
hashCode()
|
int |
size()
Get the number of disjoint intervals. |
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public Intervals()
Interval
s.
public Intervals(Interval<T> interval)
Interval
.
interval
- an Interval
public Intervals(T begin, T end)
[begin, end]
.
begin
- the beginning of an Interval
end
- the end of an Interval
public Intervals(Interval<T>... intervals)
Interval
s from the given intervals.
intervals
- Interval
spublic Intervals(Intervals<T> that)
that
- another Intervals| Method Detail |
|---|
public int size()
public Interval<T> get(int i)
i
-th interval.
The intervals are sorted such that if I1 is indexed before I2, then the end of I1 is strictly smaller than the begin of I2.
i
- the index, counting from 0
i
-th intervalpublic void add(Interval<T> interval)
Interval
to the set.
The union remains disjoint and sorted.
interval
- an Interval
public void add(Interval<T>... intervals)
Interval
s to the set.
The set remains disjoint.
intervals
- an array of Interval
spublic java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
|
SuanShu, a Java numerical and statistical library | |||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Adding a Site Alias
How to add multiple domain names that can be used to navigate to a site. This could be a local address (i.e. local host), an IP address (i.e. <IP_ADDRESS>), a full URL (i.e. www.domain.com), or a server name (i.e. MYSERVER). Restricted to SuperUsers only.
- Navigate to Host > Site Management and click the Edit button beside the title of the required site - OR - Navigate to Admin > Site Settings.
- Select the Advanced Settings tab.
- Expand the Site Aliases section.
- Click the Add New Alias button.
- A new row is now displayed in the Manage Alias(es) table below the existing aliases.
- In the Site Alias column, enter the new alias into the text box without the http:// protocol prefix.
- Optional. Select the Primary check box to set this new alias as the primary alias for this site. The default alias is used in conjunction with the "Site Alias Mapping Mode" field. When the mode is set to Canonical then the default alias is used as the canonical alias for search engines, however when the mode is set to Redirect then the default alias is used as the permanent redirect.
- At Language, select the language of this site.
- Click the Save button. The newly added site alias is now displayed in the HTTP Alias list.


In this blog post we will learn about two algorithms that allow us to quickly check that a given integer is a power of two. Both of these algorithms use only bit operators - they are very efficient.
Algorithm I
We will start by looking at the algorithm implementation, then I will explain how it works:
Before we move on it is a good time to remind ourselves that
along an algorithm implementation we
should always specify the range of valid inputs
and expected outputs.
In the code above I used Javadoc comments to state that our algorithm
accepts any number (positive, negative or zero) but it
considers only positive numbers to be powers of two.
For example isPowerOfTwo(8)
should return true
but
isPowerOfTwo(-16)
should return false
.
Now let’s explain how the algorithm works. If we look at the binary representation of the powers of two we can see the following bit pattern - there is only a single bit set:
Now comes the tricky part. Computers use two’s complement encoding to efficiently store and perform operations on both positive and negative numbers.
To explain how two’s complement works we must first
realise that pure binary encoding can only be used
to store positive numbers:
One naive extension to pure binary encoding that supports
storing negative numbers is to
sacrifice MSB (the most significant bit) to represent number sign:
But this solution comes with its own problems,
for example we will end up with two different
bit patterns that represent the value of zero (+0
and -0
).
This also unnecessary complicates CPU design
(we will need two different circuits to perform unsigned and signed
arithmetic) and reduces the range of
possible values that can be represented within a single byte
(again because zero is now unnecessarily
represented by two distinct values).
Two’s complement encoding solves all these problem. The main idea is to assign negative weight to the most significant bit of the number, for example: The positive numbers have the same representation as they have in pure binary encoding. There is also a simple procedure to negate a number, first negate all bits and then add one to the result:
Above procedure works for all numbers except one - the maximum negative
value (-128
for a single byte, -2147483648
for a 4-byte int
):
This is the consequence of the fact that
range of numbers that can be represented using two’s complement
is asymmetric around zero. For example in a single byte we can
represent values from -128
up to 127
.
Since we are here it is also worth to mention that we may use
the same addition algorithm to add numbers encoded in pure
binary encoding and in two’s complement encoding.
Subtraction is also very easy. Say you want to subtract
numbers a
and b
, you just negate b
(using NOT
and INC
instructions)
and then add it to a
.
Now let’s go back to our algorithm.
Let’s assume that we have a number that is a power of two,
such a number has only one bit set. So we may assume that
our number n
has form:
As discussed above arithmetic negation is performed by first negating all bits and then adding one, in our case:
As we can see n
and -n
share a single common bit, AND
ing both
values yields:
So we ended up with the same value as we started.
In other words (n & -n) == n
returns true.
This is illustrated for n = 32
on the diagram below:
Now consider a number that is not a power of two, such a number will have at least two bits set (we will deal with zero later). We will divide number into three parts, the bits before first set bit on the left, the bits after the last set bit on the right and the middle bits. Let’s see what will happen when we use our algorithm on such a number:
I used ?
to mark middle bits that can have any value.
The most important observation is that the leftmost set bit
in n
is cleared after negation.
Now let’s see what will be returned by AND
:
As we can see all bits before ?
are cleared after performing AND
operation. This guarantees that (n & -n)
expression returns
different value than n
which has one bit set before ?...?
bits.
And so (n & -n) == n
returns false
as expected.
Diagram below illustrates how algorithm works for n = 36
:
There are two special values that need more attention.
One is of course zero which is handled explicitly by the condition
(number > 0)
. The other value is Integer.MIN_VALUE
.
The Integer.MIN_VALUE
may be treated either as a power of two
(it has only single bit in the binary representation) or not.
This depends on how we want to tread int
value in Java
(as a singed number or as an unsigned one).
At the beginning we decided that our algorithm accepts negative values
and so number
is a signed value.
To be consistent we again use (number > 0)
condition to return
false
for Integer.MIN_VALUE
.
Algorithm II
Again we will start with the implementation:
This algorithm is much more simpler than previous one. So how does it work? We already know that numbers that are powers of two have only single bit set in their binary representation:
When we substract one from such a number we get:
As we can see the leftmost bit of n
is cleared
after subtraction. When we AND
n
and n-1
we get zero:
Numbers that are not powers of two (except zero) have at least two bits set. Again we use our trick with dividing number into three parts: bits before first set bit, bits after last set bit and the middle bits.
This shows us that the leftmost bit of n
is not cleared by the AND
operation and so the final value cannot be equal to zero.
Two special cases for zero and maximum negative value are
handled in exactly the same way as in Algorithm I by (number > 0)
condition.
Diagram below illustrates how Algorithm II works for 113
:
Versions of algorithm I and II for unsigned numbers
Some programming languages e.g. C# and C++ supports
unsigned numbers. Such numbers can only store zero and positive values.
We may use the fact that all values are non-negative to
simplify condition (number > 0)
into (number != 0)
which
may be better optimized by some compilers.
It may be surprising that unsigned numbers support
arithmetic negation operator (-)
.
For them negation just means combination of NOT
and INC (+1)
instructions that we described previously.
Here are versions of both algorithms that operate on unsigned numbers in C#:
JavsScript peculiarities
JavaScript uses double
type to represent all numbers.
double
s are capable of accurately storing integers in range
-2^53 .. +2^53
. Unfortunately when we perform bit operations
in JavaScript
both operands are first converted to 32 bit signed integers and
then operation proceeds.
This means that both presented algorithms will work in JS only
for numbers in range -2^30 .. +2^30-1
.
This is demonstrated by program:


So I've played through the OC's already, but as I've done so it has always been with the benefit and use of the henchmen allowed.
I was wondering if anyone has solo'ed any/all of the OC's, and what character types they may have used to complete it/them.
A specific build would be ideal, but a general sense of what classes/skills/feats/etc. would be very helpful.
Most of my characters tend to be of a melee nature. I tend to favor monks (fave is monk/sorc/rdd) and bards (b/f/rdd).
Thanks in advance.
When you play the OC's you get so good equipment that you can solo any class and almost any build, unless it's completely crippled.
I had no serious problems completing the NWN OC soloing a sorc that NEVER used any henchmen, familiar or summons. I had to run a lot in the lower levels though.
Once I played a Rogue/Fighter that specialized in unarmed combat, going with what equipment I could find or buy. The damage output was weak compared to any weapon, but I had no problems completing the OC.
On the other hand, completing the OC's WITHOUT using all the good equipment - that's a challenge for a character builder.
If I had to complete the game, soloing a melee character with mundane equipment, I'd probably try a cleric. _________________ I generally avoid temptation, unless I can't resist it...
Edited By Mick Dagger on 06/15/05 13:40
I went clericX/Fighter4 my first run through. Was pretty much a breeze; died once or twice early on while I was trying to get the hang of the game.


{% extends 'inspector/form_base.html' %} {% block title %}Upload Model - {{ block.super }}{% endblock %} {% block form %}
LINSPECTOR supports a limited number of vanilla AllenNLP models:
{% for classifier in classifiers %}{{ classifier }}{% if not forloop.last%}, {% endif %}{% endfor %}
LINSPECTOR supports the following HuggingFace Transformers models:
{% for classifier in huggingface %}{{ classifier }}{% if not forloop.last%}, {% endif %}{% endfor %}
For static embeddings files each line should contain a token followed by a vector separated by whitespace. Learn more.


This new way of writing options is only supported from Chrome 40 onwards. See the old documentation, or you can start migrating now.
To allow users to customize the behavior of your extension, you may wish to provide an options page.
If you do, an Options link will be shown on the extensions management page at chrome://extensions which opens a dialogue containing your options page:
Always use the $(ref:storage.sync) API to persist your options. This will make them accessible from script within your extension, on all of your user's devices.
Use the options_ui
manifest field to declare the options page and
how it should be displayed:
{ "name": "My extension", ... "options_ui": { // Required. "page": "options.html", // Recommended. "chrome_style": true, // Not recommended; only provided for backwards compatibility, // and will be unsupported in a future version of Chrome (TBD). //"open_in_tab": true }, ... }{{+partials.manifest_type type:apis.extensions.extensionsManifestTypes.byName.OptionsUI /}}
Here's an example, including an options page and JavaScript to persist the options:
<!DOCTYPE html>   <title>My Test Extension Options</title>    Favorite color: <select id="color"> <option value="red">red</option> <option value="green">green</option> <option value="blue">blue</option> <option value="yellow">yellow</option> </select>  <input type="checkbox" id="like"> I like colors.

 <button id="save">Save</button>
// Saves options to chrome.storage.sync. function save_options() { var color = document.getElementById('color').value; var likesColor = document.getElementById('like').checked; chrome.storage.sync.set({ favoriteColor: color, likesColor: likesColor }, function() { // Update status to let user know options were saved. var status = document.getElementById('status'); status.textContent = 'Options saved.'; setTimeout(function() { status.textContent = ''; }, 750); }); } // Restores select box and checkbox state using the preferences // stored in chrome.storage. function restore_options() { // Use default value color = 'red' and likesColor = true. chrome.storage.sync.get({ favoriteColor: 'red', likesColor: true }, function(items) { document.getElementById('color').value = items.favoriteColor; document.getElementById('like').checked = items.likesColor; }); } document.addEventListener('DOMContentLoaded', restore_options); document.getElementById('save').addEventListener('click', save_options);
Options pages embedded inside chrome://extensions have some subtle behavior you should consider while writing them, mostly caused by not being hosted inside their own tabs.
If you want to link to your options page, call
$(ref:runtime.openOptionsPage chrome.runtime.openOptionsPage())
.
This has been available since Chrome 42.
Linking directly to chrome-extension://yourextensionid/youroptionspage.html will be a bad user experience. Linking directly to chrome://extensions?options=yourextensionid isn't advisable either, as Chrome may change the embedding URL in the future.
$(ref:runtime.openOptionsPage chrome.runtime.openOptionsPage())
will always open the canonical location, and has nice behavior like re-focusing
an open options page if there is one.
<button id="go-to-options">Go to options</button>
document.querySelector('#go-to-options').addEventListener(function() { if (chrome.runtime.openOptionsPage) { // New way to open options pages, if supported (Chrome 42+). chrome.runtime.openOptionsPage(); } else { // Reasonable fallback. window.open(chrome.runtime.getURL('options.html')); } });
Options page code cannot assume that it's hosted inside a tab, and this may affect how the $(ref:tabs Tabs API) can be used. For example,
It is easy to work around these issues or use alternative APIs. Generally speaking you shouldn't need to manipulate the tab containing your extensions options page.
You can use $(ref:runtime.connect) and $(ref:runtime.sendMessage) because your options page is an extension page.
If your options page sends a message using $(ref:runtime.connect) or $(ref:runtime.sendMessage), the $(ref:runtime.MessageSender.tab Sender's tab) won't be set, and the $(ref:runtime.MessageSender.url Sender's URL) will be your options page URL.
The embedded dialogue should automatically determine its own size based on the options page content. However, the dialogue may not find a good size for some types of options pages. This problem is most common for options pages that adjust their size based on window size.
If this is an issue, provide fixed minimum dimensions for the options page to ensure that the dialogue will find an appropriate size.
At least until Chrome 40 is stable, you should specify both
the options_ui
and the options_page
fields.
Older versions of Chrome will only recognize options_page
, and
only open in tabs. Chrome 40 and onwards prefer to use the
options_ui
field if it's specified.
The options_ui
manifest field and embedded extension options
were introduced in Chrome 40. Prior to these changes, options pages were always
displayed in new tabs and were declared using the options_page
field:
{ "name": "My extension", ... "options_page": "options.html" ... }
See this document for full details.
Chrome will continue to support the options_page
manifest field,
but new and existing extensions should use the options_ui
to
ensure that their options pages are displayed as intended.
If you specify both, Chrome 40 and onwards will ignore the value of
options_page
.
In a future version of Chrome, any extension which specifies
options_page
will change to match the options_ui
behavior - most importantly, they will always be embedded in
chrome://extensions - so migrate as soon as possible.


|
|
def | __init__ |
| |
|
def | key |
| |
|
def | set_key |
| |
|
def | clear_key |
| |
|
def | has_key |
| |
|
def | value |
| |
|
def | set_value |
| |
|
def | clear_value |
| |
|
def | has_value |
| |
|
def | MergeFrom |
| |
|
def | Equals |
| |
|
def | IsInitialized |
| |
|
def | ByteSize |
| |
|
def | ByteSizePartial |
| |
|
def | Clear |
| |
|
def | OutputUnchecked |
| |
|
def | OutputPartial |
| |
|
def | TryMerge |
| |
|
def | __str__ |
| |
|
|
| has_key_ |
| |
|
| key_ |
| |
|
| has_value_ |
| |
|
| value_ |
| |
|
|
int | has_key_ = 0 |
| |
|
string | key_ = "" |
| |
|
int | has_value_ = 0 |
| |
|
string | value_ = "" |
| |
|
int | kkey = 1 |
| |
|
int | kvalue = 2 |
| |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/files/file_service_pb.py


This is a tiny css library for dice icons. These icons are svg vector images that you can use as inline icons. Usage is the same as font-awesome or glyphicons.
Download: dice-1.0.min.css (3.0 kB minified, 554 bytes gzipped)
0.5em
1em
2em
3em
4em
Source Code: https://github.com/diafygi/dice-css
Released under the MIT License


Before Change
m = mock_open()
with patch("streamlit.credentials.open", m, create=True) as m:
c.save()
m.return_value.write.assert_called_once_with(truth)
def test_Credentials_activate_already_activated(self):
Test Credentials.activate() already activated.
c = Credentials.get_current()
After Change
m = mock_open()
with patch("streamlit.credentials.open", m, create=True) as m:
c.save()
if sys.version_info >= (3, 0):
m.return_value.write.assert_called_once_with(truth)
else:
m.return_value.write.assert_called_once_with(truth2)
def test_Credentials_activate_already_activated(self):
Test Credentials.activate() already activated.
c = Credentials.get_current()
c.activation = Activation("some_email", "some_code", True)


{% set grids = [ { name: 'Critcal Care', id: '1', updated: '01 Mar 2021 08:05:33', data: { 'Are you currently accepting primary triage candidate positive major trauma patients?': 'Yes', 'TU OPEL status': '0', 'Number of Major Trauma Inpatients': '2', 'Number of Major Trauma Inpatients on the Intensive Care Unit (ICU)': '1', 'Number of Patients waiting for specialist rehabilitation': '', 'Is it planned that your site can accept Primary triaged candidate positive major trauma Patients for the next 24 hours (Yes/No)': '', 'Is it planned that your site will have staff to support critical secondary transfers for the next 24 hours (Yes/No)': 'Yes', 'Number of trauma Inpatients awaiting transfer to Major Trauma Centre': 'Yes', 'Comments regarding trauma': '', 'L3 beds empty and available': '0', 'L2 beds empty and available': '0', 'Total L3/L2 Mix': '6', 'L3 patients on unit': '3', 'L2 patients on unit': '2', 'L1/0 patients in unit': '1', 'L3 patients outside unit': '0', 'L2 patients outside unit': '0', 'Beds committed': '0' } }, { name: 'Critcal Care 2222', id: '2', updated: '02 Mar 2021 08:05:33', data: { 'Are you currently accepting primary triage candidate positive major trauma patients?': 'Yes', 'L3 patients outside unit': '0', 'L2 patients outside unit': '0', 'Beds committed': '0' } }, { name: 'Trauma Grid', id: '3', updated: '03 Mar 2021 08:05:33', data: { 'Are you currently accepting primary triage candidate positive major trauma patients?': 'Yes', 'L3 patients outside unit': '0', 'L2 patients outside unit': '0', 'Beds committed': '0' } } ] %} {% for grid in grids %}


Beyond the stand-alone jar
The Elda standalone jar is just a delivery mechanism for getting started with LDA functionality: it packs together the Elda code and a Jetty server running an Elda webapp.
To use Elda in your own webapps, you can copy the constructed
Elda webapp from the unzipped Elda-VERSION/webapps/elda directory
and edit its web.xml as you require. The necessary jars are all
in webapps/elda/WEB-INF/lib
.
If you have downloaded the Elda repository, then you can rebuild the Elda working jars (json-rdf-VERSION.jar and lda-VERSION.jar) and webapp using Maven; see below.
The demo jar is given the name elda-standalone-VERSION.jar by the "mvn install" process.
Anatomy of the standalone web.xml
The Elda servlet
<servlet> <servlet-name>elda</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.epimorphics.lda.restlets</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
The Elda servlet is just boilerplate to invoke Jersey; it
requests that JAX-RS resources be loaded from the
package com.epimorphics.lda.restlets
.
LDA requests to Elda are handled by the class
RouterRestlet
from that package.
Invoking the servlet
<servlet-mapping> <url-pattern>/API/*</url-pattern> <servlet-name>elda</servlet-name> </servlet-mapping>
URLs for this webapp who's path starts API is handled by the Elda servlet. (Below we see how this is set up.)
Assets
<servlet-mapping> <url-pattern>/</url-pattern> <servlet-name>default</servlet-name> </servlet-mapping>
Everything else is handled by the default servlet, which delivers all the static files inside the webapp.
URL rewriting
URL paths handled by the Elda webapp are first rewritten using
the org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
.
This extra layer of flexibility makes it easier to control what
URL paths map to what. The boilerplate filter in web.xml
enables rewriting on all URLs according to the rules found in
urlrewrite.xml
.
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Two rewrite rules are used in this configuration.
The first leaves unchanged all the asset paths —
all the fixed resources such as scripts and stylesheets —
that start with specs
(LDA configuration files)
or lda-assets
(which holds images, css, scripts,
etc) so that the servlet mappings will send them on to the default
servlet for static content. The second rule then rewrites
everything else to start with API so that it is
captured by the Elda servlet.
<urlrewrite decode-using="null" use-query-string="true"> <rule> <from>^/(lda-assets|specs)/(.*)$</from> <to last="true" type="forward">/$1/$2</to> </rule> <rule> <from>^/(.*)$</from> <to last="true" type="forward">/API/$1</to> </rule> </urlrewrite>
Loading the LDA configuration
The LDA configurations that are to be part of this webapp
are specified to a servlet that invokes Elda's
com.epimorphics.lda.routing.Loader
class.
<servlet> <servlet-name>loader-init</servlet-name> <servlet-class>com.epimorphics.lda.routing.Loader</servlet-class> <init-param> <param-name>com.epimorphics.api.initialSpecFile</param-name> <param-value> hello::specs/hello-world.ttl , again::specs/hello-again-world.ttl , tiny::specs/tiny-education.ttl , mini::specs/mini-education.ttl , full::specs/full-education.ttl , old::specs/old-education.ttl </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
The configurations are loaded according to the value of the
initialSpecFile
parameter, which is a comma-separated
list of configuration directives. (All spaces, tabs, and newlines
in the value are ignored to make big configurations easy to
read and write.)
Each directive is a filename, with an optional leading
prefix specification consisting of a name followed by
::
. The filename is webapp-relative.
If the prefix is supplied, then all of the URI templates in the configuration are implicitly prefixed with it; this allows different configurations to be loaded together even if they happen to share URI templates.
The string {file}
in the prefix is replaced
by the base of the filename with any trailing .ttl
removed. The string {api}
in the prefix is replaced
by the local name(s) of the API resouce(s) in the spec.
Restrictions on shortname selection
In an (E)lda configuration file, the configurer may define "short names" for properties and resources. However, the current supplied example XSLT stylesheets expect that the properties used to define the metadata about a query and its results have certain specified shortnames.
Elda reserves and predefines those shortnames; the configuation writer should not attempt to define them themselves.
The reserved names are the local names (except where otherwise indicated) of the properties:
| prefix | term | term | term |
|---|---|---|---|
| rdf | type | value | |
| rdfs | label | comment | |
| xsd | integer | decimal | string |
| xsd | boolean | int | short |
| xsd | byte | long | double |
| xsd | date | time | |
| doap | implements | releaseOf | homepage |
| doap | repository | browse | location |
| doap | wiki | revision | |
| doap | bug-database
(as bug_database)
|
programming-language
(as programming_language)
|
|
| opmv | software | ||
| api | definition | extendedMetadataVersion | page |
| api | items | item | processor |
| api | property | selectionResult | termBinding |
| api | variableBinding | viewingResult | wasResultOf |
| dct | format | hasFormat | hasPart |
| dct | hasVersion | isFormatOf | isPartOf |
| dct | isVersionOf | ||
| elda | listURL | sparqlQuery | |
| foaf | isPrimaryTopicOf | primaryTopic | |
| OpenSearch | itemsPerPage | startIndex | |
| sparql | endpoint | query | url |
| xhv | first | next | prev |
Velocity template rendering
This release of Elda includes the ability to use Velocity templates for rendering. This feature is provisional; it may change significantly in future releases.
To use the Velocity renderer to generate HTML, attach this formatter to your API spec:
<yourSpec> api:defaultFormatter [a elda:VelocityFormatter ; api:name "html" ; elda:className "com.epimorphics.lda.renderers.VelocityRendererFactory" ; api:mimeType "text/html" ]
By default, this will render the template
page-shell.vm
found in
webapp/WEB-INF/classes
; Elda supplies an
example template there. To change the
rendered template, set the api:stylesheet
property of the formatter to the name of the desired
template.
You may choose to specify a Velocity formatter as a property of an endpoint rather than as the API-wide default.
You can change the associated suffix of the formatter by changing the
value of its api:name
property, and change the content-type
of the generated page by changing the value of the api:mimeType property.
If there is a file velocity.properties
in the webapp directory, it is loaded into Velocity
to configure it. If that file is absent, or contains
no property defintions, Eda defaults to setting the
resource loader to a classpath loader (hence the appearance
of the templates in WEB-INF/classes
code>).
Setting these properties in the way defined by Velocity
allows you to fetch templates from elsewhere.
When rendering a page using Velocity, Elda binds several names in the context:
| name | value |
|---|---|
| thisPage | A WrappedNode for a resource with the URI of this page. |
| isItemEndpoint | A boolean, true iff this page is for an item endpoint. |
| isListEndpoint | A boolean, true iff this page is for a list endpoint. |
| primaryTopic | A WrappedNode for the primary topic of this page, only defined if this page is for an item endpoint. |
| names |
a map from resources to their short names, passed
when needed to methods on WrappedNode s.
|
| formats | a list of Format objects in order of their names. Each Format has a getName and getLink method; a format's Link is the URI needed to fetch the version of the current page in this format. |
| items |
the list of selected items. Each item is a
WrappedNode .
|
| meta |
A map from string pathnames to WrappedNode
values. Each pathname is the dot-separated concatenation
of the short names of the properties in the path. The
proeprty chains are those of the metadata in the result
model, disregarding the termBinding s and
the variableValues since these have their own
context variables.
|
| vars |
A map from LDA variable names to WrappedNode s
representing their values.
|
| ids |
An IdMap object which contains a map from Resources to their
identifiers for use in HTML id= attributes.
|
WrappedNodes are wrappers round Jena RDFNodes.  They have the following methods:
| signature | description |
|---|---|
| boolean equals(Object other) | A WrappedNode is .equals to another object if that object is a WrappedNode and their underlying RDFNodes are equal. |
| String getId() | Answer the id of this WrappedNode, allocating a fresh one if necessary. |
| WrappedString getLabel() | Return this wrapped resource's preferred label; the first literal of (a) this resources skos:prefLabel, (b) an unlanguaged rdfs:label, (c) a languaged rdfs:label, (d) the local name of this resource. |
| WrappedString getLabel(String wantlanguage) |
If wantLanguage is "", return getLabel(). Otherwise,
return the lexical form of some label of this wrapped
resource which has wantLanguage . If there isn't
one, return some lexical form with no language. If there
isn't one, return the local name of the resource.
|
| boolean isJustALabel() |
Returns true if this WrappedNode is a Resource node
which has exactly one property, and that property
has predicate rdfs:label .
|
| WrappedString shortForm() | If this node is a wrapped Resource, return the shortname associated with that Resource or its localname if it has no shortname. If this node is a wrapped Literal, return the lexical form of that literal. |
| WrappedString getURI | If this WrappedNode is a Resource, return its URI. |
| boolean isLiteral | Return true iff this WrappedNode is a wrapped Literal. |
| boolean isResource | Return true iff this WrappedNode is a wrapped Resource (which may be a blank node). |
| boolean isAnon | Return true iff this WrappedNode is a blank node. |
| String getLanguage | If this node is a wrapped Literal, return its language if any, otherwise return the empty string. |
| WrappedString getLiteralType() | Return the short form of the URI representing the type of this wrapped literal node. |
| Object getLiteralValue() | Return the unadorned value of this literal. |
| boolean isList | Return true iff this WrappedNode wraps a Resource representing an RDF list. |
| List<WrappedNode>asList | Return a Java list of WrappedNodes wrapping the elements of the RDF list represented by this WrappedNode. |
| List<WrappedNode> getProperties | Return a Java list of WrappedNodes which are the wrapped form of the different properties of this WrappedNode. |
| List<WrappedNode> getInverseProperties | Return a Java list of WrappedNodes which are the wrapped form of predicates P where there is some subject S such that (S, P, this wrapped node). |
| List<WrappedNode> getValues(WrappedNode property) |
Return a Java list of WrappedNodes which are the
objects of all statements for which this WrappedNode
is the subject and the argument property
is the predicate. (This argument will typically be
an element from the getProperties list.)
|
| List<WrappedNode> getInverseValues(WrappedNode property) |
Return a Java list of WrappedNodes which are the
subjects of all statements for which this WrappedNode
is the object and the argument property
is the predicate. (This argument will typically be
an element from the getInverseProperties list.)
|
| WrappedNode change(String prefix, WrappedNode p, WrappedNode v) |
Return a new WrappedNode wrapping a resource with the same URI
as this one, except that all query parameters whose name is
prefix prefixed onto p's shortname have been
discarded and replaced by a parameter with that name and with
value v.toString().
|
Where a String result might contain HTML-significant characters, WrappedNodes return a WrappedString object.
| signature | description |
|---|---|
| WrappedString cut() | Returns a new wrapped string who's content is the content of this wrapped string but with spaces inserted in place of runs of '_' and between a lower-case letter followed by an upper-case one, with that letter converted to lower-case. |
| String toString() | Return the content of this WrappedString, performing HTML escaping. |
| String raw() | Return the content of this WrappedString without escaping. |
Additional Elda features
Configuration variables
Elda reserves LDA variable names that begin "_" for configuration purposes.
Variables used by the stylesheet
The built-in Elda stylesheet generates HTML pages that require http access to images, CSS stylesheets, and Javascript served by the Elda server. Because the webapp root isn't fixed, the stylesheet reads location information from LDA variables that are set as part of creating an Elda webapp.
- _resourceRoot: the location from which the resources will be served, relative to the server root. May include a domain:port if the resources are on a different server.
- activeImageBase: the location within the resource root where the active (enabled) images used by the stylesheet are fetched from.
- inactiveImageBase: the location within the resource root where the inactive (disabled) images used by the stylesheet are fetched from.
Variables used by the Elda code
- _strip_has: (OBSOLESCENT) If this variable is defined and has the value "yes", the XML renderer will rename properties "hasWhatever" (ie where the fourth character is upper-case) to "whatever". This is for compatability with Puelia when using a Puelia-specific stylesheet.
- _suppress_media_type: If there is no .formatter suffix in the request URL, and no _format= query parameter, then the prescribed LDA behaviour is to see if the request headers specify an appropriate media type. If the requesting entity is a browser it almost always will (with */*), which is inconvenient when testing for the default default behaviour of sending JSON. Setting this variable to "yes" will cause Elda to ignore the supplied media type.
- _exceptionIfEmpty: by default, if a query for
an item template returns no item (because the requested
item has none of the required properties) Elda will
generate a 404 response rather than displaying an
empty item endpoint page. If the variable _exceptionIfEmpty
does not have the value "
yes
", then the empty page is displayed.
wildcard '*' in view property chains
A property chain appearing in a view specification may contain the special element '*', meaning "any property". In the generated query it is replaced by a fresh variable. There can be any number of *-elements, anywhere within the chain.
api:base
An LDA configuration may specify an api:base property. This should, if possible, be used to specify where the Elda webapp is served from. If specified, all Elda's constructed URIs (such as those for different views or formats of the displayed page) will use that base URI with the path and query parameters supplied in the request. This means that a server at location A can generate URIs as though it were at location B (from which it may have been redirected).
elda:describeAllLabel
If a new viewer is declared with the property
elda:describeAllLabel
, it becomes a
variant of the describeAllViewer
where the label property used is the object of
that property rather than rdfs:label
.
elda:allowedReserved
Experimental: may be revised or removed.
Normally (and as prescribed by the spec) Elda will
generate a 400 status for queries that try and use
unknown reserved parameter names (those beginning
with _), eg ?_example=17
.
The property elda:allowReserved
may be
attached to an API or to an endpoint. Its values
are the names of reserved parameters that should be
ignored rather than generating status 400.
Attachments to the API apply to all endpoints; attachments to one endpoint affect only that endpoint. Elda automatically makes the parameter name "_" allowed, since it is often used in JASONP queries.
etag generation
Experimental: may be revised or removed.
If an endpoint has the property elda:enableETags
with value true
, or it does not have that
property but its parent API spec does with value
true
, then Elda will generate an etag
on successful responses. The value of the etag is derived
from hashes of:
- the request URI
- the Accept header (if present)
- the Accept-Encoding header (if present)
- the response's media type
- the content of the model
item template fallback
If an inbound URI does not match any of the uriTemplates of the endpoints, Elda attempts to match that URI against any item templates of the endpoints. If it finds a match, then the query is redirected to that item endpoint.
This behaviour is currently not configurable.
SPARQL 1.1 features
Some generated queries -- those that have view defined by property chains and are applied to many selected items -- are rather large (exceeding a megabyte). These queries are repetitions of the view property accesses specialised by the selected item. If the SPARQL server supports nested selects (part of, but not limited to, SPARQL 1.1), then these repetitions can be replaced by a single application of the view wrapped round a nested select that fetches the items.
Elda automatically uses nested selects if the data source
is a local: or tdb: model, or it the
sparqEndpoint
value of the API is a
resource with an extras:supportsNestedSelects
value of true, "true", or "yes". (We anticipate that
later versions of Elda will dynamically check the server
to see if nested selects work.)
DESCRIBE thresholds
Support for nested selects applies to DESCRIBE queries as well,
which may consist of a great many URIs when the selection
phase generates many items. To give greater control over
the use of nested selects for DESCRIBE, a view may be defined
with the property extras:describeThreshold
. This
makes that view a DESCRIBE view on which nested selects
(if available) are then only used if the number of selected
items exceeds the value of this property.
The default default threshold value is 10. However, it can be
changed. Setting the extras:describeThreshold
property on an endpoint makes all the (describe) viewers
created for that endpoint have that value for their threshold.
Setting that property on an api:API
makes the
default for all its endpoints be that value.
(Values and defaulting rules may change in leater releases of Elda according to reported experience.)
configuration rendering
Elda provides the api:base-relative URI path /api-config
.
Browsing this URI delivers a rendering of the various APIs that
the Elda instance provides. Each API description shows the
different endpoints, with their variable bindings and named views,
and the dictionary of shortnames appropriate to this endpoint.
By default the descriptions are hidden (for compactness) and
are revealed by clicking on the section titles.
The api:base-relative URI path
/meta/some/uri/template
provides the same configuration description as /api-config
,
but the API and endpoint for
some/uri/template
are already opened.
Formatting extensions
If the object of an api:stylesheet
directive starts
with the prefix "xsl:", then the stylesheet is loaded from Elda's
stylesheet directory, wherever that is. (By default it is
webapp/xsltsheets
, but this will become configurable.)
If a formatter has the property
http://www.epimorphics.com/vocabularies/lda#className
,
then the (String) object of that property must be the name of a Java
class that implements the RendererFactory
interface.
When rendering is required, an instance of that class is invoked
to deliver a Renderer, and that Renderer is used to render the
result set.
statistics
The api:base-relative URI path /control/show-stats
displays
statistics about the queries that this Elda instance has handled, including:
- the total number of requests made
- the number of requests that failed
- the number of selection cache hits
- the number of view cache hits
(Elda maintains two internal caches, one mapping the computed selection query to the list of items it generates, the other mapping (list of item, view) pairs to generated result sets. These are independant of any caches provided by eg an Apache server wrapping Elda.)
- the elapsed time dealing with all requests
- the elapsed time taken for item-selection queries
- the elapsed time taken for view-display queries
- the elapsed time taken to render an Elda result
- any remaining non-query non-rendering time
All of these results show the total time, the mean time over all requests, and the maximum and minimum times over all requests.
- the size of the rendered results
- the size of the select queries
- the size of the view queries
All of these results show the total size (in [kilo-]bytes), and the mean, maximum, and minimum over all requests.
The display also breaks down rendering sizes and times by the rendering format (ie JSON/XML/HTML ...).
Cache
Elda caches the results of queries so that they may be re-served quickly. When the cache gets "too full", it is reset. "Too full" by default is measured by the number of triples in the cache.
Using Elda directly
You don't need to go through a servlet (or restlet) framework to exploit Elda. You can call the components yourself and supply whatever glue you like.
Creating an APISpec
The constructor
APISpec(Resource config, ModelLoader forVocab)delivers a new APISpec object configured from the given Resource. You may have chosen a Resource with a known URI in a config model, or found one with
rdf:type
api:API
, depending on your usecase. The
ModelLoader
is only used if the config has
api:vocabulary
elements, in which case it
loads the models for its API vocabulary.
Given an APISpec, the method getEndpoints()
delivers a list of APIEndpoint
objects corresponding
(in no defined order) with the endpoint descriptions in the
config model.
Running an endpoint
You can then invoke
APIEndpointUtil.call( control, match, requestUri, formatSuffix, queryParams )where
- Controls c is a Controls object that controls whether the
Elda cache can be used for this request and records timing information;
new Controls()
will do fine. - Match match wraps the endpoint object and the variable bindings that
made when matching the endpoint's
api:uriTemplate
against the request URI. The usual way to get a Match object is to callgetMatch
on a suitableRouter
value. - URI requestURI is the request URI for this request.
- String formatSuffix is the format suffix associated with this request,
to be returned as the format name if the endpoint
call
does not supply an alternative. The usual way to get the format suffix is from the end of the request URIs path. - MultiMap queryParams is a map from query parameter names to their (string) values.
The call returns a three-element object which contains the
ResultSet
of the query execution (the result
model and selected items), the name of the result formatter
that has been selected by the endpoint, and the variable
Bindings.
Rendering results
Once you have chosen a renderer R
to use for the
result set, the invocation
R.render( t, rc, results )where
t
is a Times
object,
delivers a String which is the rendering of results
according to the RenderContext rc
, which you can
construct from the VarValues
embedded in the call
context, the context path, and an AsURL object to convert URI
fragments into full URIs.
The method call R.getMediaType()
returns the media
type for the renderer's result.
Building Elda
Prerequisites: Java (underlying platform), Mercurial (to fetch the sources), Maven (build management). Maven will download remaining necessary jars for Jena, Jersey, etc.
Download the Elda sources:
hg clone https://elda.googlecode.com/hg/ eldaplaces the Elda sources in ./elda (which is created if necessary).
Running
mvn clean installwill now build the Elda jars and put them into your local Maven repository, along with all the jars that they depend on. You can then either use Maven to build your own application with those jars as dependencies, or extract them and embed them in your own libraries.
Look in the (automatically created) file
/lda/src/main/java/com/epimorphics/lda/Version.java
to see which version of Elda is being built. If you want to use
a non-SNAPSHOT version, use
hg update -r REVISIONbefore running maven, where REVISION is your choice of the revision tags you get from running:
hg tagsand selecting a tag that looks like
elda-1.X.Y
;
that is the shape of tag generated by the Elda release process.
Accepted content types
Elda accepts the following content types by default.
- text/javascript, application/javascript: for JSONP on some browsers.
- text/plain: Plain text JSON.
- application/rdf+xml, text/turtle: RDF/XML or Turtle representations of models.
- application/json: model rendered as JSON.
- text/xml, application/xml: model rendered as XML with whichever content type was asked for. (The renderings are identical.)
- text/html: model rendered by stylesheet applied to XML rendering.


Online iot dashboard for http://CloudEngine.com Please visit.
Iot Dashboard Nedir?¶
Banana Pi, NanoPC, Intel Edison, Parallella, Raspberry Pi with Python / Django REST framework working on single-card computers such as Improved Web Api service. GET, POST, PUT and DELETE through Web Api by contacting IoT devices It is designed to be able to perform operations easily. IoT: Platform for Internet of Things CloudEngine.com
What?
CloudEngine is a web service network project that transfers data between internet connected objects (iot). CloudEngine with Arduino, Raspberry Pi, Android, iOS, Windows Phone, Web Site, Banana Pi, Orange Pi, Beaglebone, ARM, Pic, Windows, Mac OS X, ve Linux based systems.
Why CloudEngine?¶
- You can create unlimited channels,
- You can add unlimited elements,
- You can easily send data with all your devices (post),
- Easily receive data from all iot devices (get),
- You can track your data in real time,
- Create real-time graphs for your data,
CloudEngine allows you to transfer data between all your devices easily Supports communication protocols.
Google developer chart integrated real-time monitoring of data


How to quickly select, move, and delete notes on iPhone and iPad with two-finger tap
by Michael PotuckWant to boost your Notes app management efficiency on iPhone or iPad? Read along for how to quickly select, move, and delete multiple notes with a two-finger tap and drag on iPhone and iPad.
iOS 13 and iPadOS 13 bring a myriad of changes including UI updates across the built-in iOS apps. With the latest software, accessing edit options in Notes is more difficult than in iOS 12 and earlier releases, but fortunately, there’s a handy two-finger shortcut.
Below, we’ll look at how to quickly select, move, and delete multiple Notes on iPhone and iPad. And the same two-finger tap and drag works for other apps like Messages, Mail, and more.
How to quickly select, move, and delete notes on iPhone and iPad with two-finger tap
- Open the Apple Notes app and have a folder open
- Give a two-finger tap on any of your notes to enter edit mode
- Use a two-finger drag to select multiple messages
- At the bottom of your iPhone or iPad, tap Move to or Delete
Here’s how this looks on iPhone:
Read more 9to5Mac tutorials:
AirPods Pro:
- Shopping for AirPods Pro? Here’s how to find available stock without waiting weeks
- How to clean your dirty AirPods Pro and charging case
- AirPods Pro: How to customize Force Sensor controls
- AirPods Pro: How to use Ear Tip Fit Test and change tips
- AirPods Pro: How to use noise cancellation and Transparency mode
- AirPods Pro vs Powerbeats Pro: How specs, size, price, and more compare
- What’s the difference in AirPods and AirPods Pro? Here’s how size, price, and features compare
iPhone & iPad:
- How to remove Memoji Stickers from your iPhone keyboard
- How to use the Deep Fusion iPhone 11 and iPhone 11 Pro camera feature
- iOS 13: How to use custom fonts on iPhone and iPad
- How to edit messages on iPhone and iPad with two-finger tap
- How to use the ‘Remind when messaging’ feature on iPhone, iPad, and Mac
- How to make subtasks and sublists with Reminders in iOS 13 and macOS Catalina
- How to get started with and use ‘Sign in with Apple’ on iPhone, iPad, and Mac
- How to use the ultra wide camera on iPhone 11 and iPhone 11 Pro
macOS Catalina:
- How to check iPad and Mac Sidecar requirements
- How to get your Mac ready for macOS Catalina
- How to create a bootable macOS Catalina 10.15 USB install drive [Video]
- How to sync iPhone and iPad to your Mac in macOS Catalina without iTunes
FTC: We use income earning auto affiliate links. More.


A set of constants for the style that can be used for the selectionStyle property of Titanium.UI.TableViewRow.
| Name | Type | Description |
|---|---|---|
| BLUE | int | The cell when selected has a blue background. This is the default value. |
| GRAY | int | Then cell when selected has a gray background. |
| NONE | int | The cell has no distinct style for when it is selected. |


A match prediction engine for the popular game Dota2. The previous efforts at hero recommendation, buuilding on these to provide a more complete exploration of machine learning algorithms applied to this problem. The details about the feature selection and method selection is discussed.
View ProjectThis report aims to present a study on how machine learning techniques can be applied to such a requirement to recommend TV programs via distributed learning system that uses Spark as its computation engine. A brief description of machine learning models, their relevance and their components is discussed. These techniques are connected with various paradigms of Recommendation methods considering in detail the mathematical modelling for ALS formulation in the context of TV programs. Also a brief outline of Apache Spark is included to introduce the higher level API within the machine learning library.
View Project


Tillman
This page contains an index of all the individuals in the database with the surname of Tillman. Selecting the person’s name will take you to that person’s individual page.
| Given Name | Birth | Death | Partner | Parents |
|---|---|---|---|---|
| Ada T. | 1895 | Tillman, William Henry Power, Ada Miriam | ||
| Alma E.B. | 1898 | 1900 | Tillman, Samuel Miles, Mary A. | |
| Amelia | 1891 | 1893 | Tillman, Samuel Miles, Mary A. | |
| Blanche | 1880-09-25 | 1958-11-07 | Kay, Willis | Tillman, Samuel Davison, Margaret Jane |
| Blanche | c1908 | Tillman, George Davison Pilcher, Mary E. | ||
| Daisy P. | 1894 | Henley, Ernest R. | Tillman, John Davison Middenway, Annie Kembla | |
| David, ( Painter) | 1887-02-03 | 1948-11-12 | Beaver, Pearl C., Gregg, Frances M., Corbett, Myrtle Elizabeth | Tillman, Samuel Davison, Margaret Jane |
| David T. | 1929 | Tillman, Maude Mary | ||
| Emma Potts | 1867-03-16 | 1949-08-14 | Webster, James | Tillman, Samuel Davison, Margaret Jane |
| Female | 1881 | 1881 | Tillman, Samuel Davison, Margaret Jane | |
| Florence M. | 1892 | Evans, Archie | Tillman, John Davison Middenway, Annie Kembla | |
| Francis John | 1914-07-04 | 1991-12-11 | Fawcett, Noelle Alice | Tillman, Henry "Harry" Cooper, Minnie May |
| George D. | 1903 | Starr, Ella S. | Tillman, George Davison Pilcher, Mary E. | |
| George Davison | about 1871 | 1953-09-12 | Pilcher, Mary E. | Tillman, Samuel Davison, Margaret Jane |
| Harold Kevin | 1928 | 1944-04-09 | Tillman, John Davison Clyde Crawley, Theresa "Florence" C. | |
| Henry “Harry” | 1882-10-31 | 1959-09-17 | Cooper, Minnie May | Tillman, Samuel Davison, Margaret Jane |
| Henry Samuel | 1913-06-06 | 1987-07-11 | Earnshaw, Bessie | Tillman, Henry "Harry" Cooper, Minnie May |
| Iris M. | 1908 | Semken, Charles E. | Tillman, David T. Tillman, Maude Mary | |
| Isabella | 1879-11-14 | 1948-06-21 | Barnes, Leslie George | Tillman, Samuel Davison, Margaret Jane |
| Jack E. | about 1921 | 1921 | Tillman, David ( Painter) Beaver, Pearl C. | |
| John Davison | 1865-11-21 | 1951-10-22 | Middenway, Annie Kembla | Tillman, Samuel Davison, Margaret Jane |
| John Davison Clyde | 1899 | Crawley, Theresa “Florence” C. | Tillman, John Davison Middenway, Annie Kembla | |
| Laurel M. | 1905 | Hopton, Norman G. | Tillman, David T. Tillman, Maude Mary | |
| Lillian M. | 1890 | Parker, Norman C. | Tillman, John Davison Middenway, Annie Kembla | |
| Lorna & Jimes | Tillman, Henry Samuel Earnshaw, Bessie | |||
| Mabel L. | 1893 | Hayes, Arthur M. | Tillman, Samuel Miles, Mary A. | |
| Madge | 1884 | Gillespie, Adam Curruthers | Tillman, Samuel Davison, Margaret Jane | |
| Margaret “Mag” | 1875 | Anstiss, Thomas A. | Tillman, Samuel Davison, Margaret Jane | |
| Marie V. | 1901 | Fry, Sidney R. | Tillman, Samuel Miles, Mary A. | |
| Mary M.C. | 1905 | Tillman, William Henry Power, Ada Miriam | ||
| Maude Mary | Tillman, David T., Cannan, Raymond D. | |||
| Nellie I. | 1905 | Tillman, George Davison Pilcher, Mary E. | ||
| Pamela | Tillman, John Davison Clyde Crawley, Theresa "Florence" C. | |||
| Phyllis Edna | 1906 | Bege, Sydney Frederick | Tillman, John Davison Middenway, Annie Kembla | |
| Samuel | 1843-08-25 | 1913-08-15 | Davison, Margaret Jane, Clelland, Elizabeth Widow | Potts, Margaret (Margarey) |
| Samuel | about 1869 | 1933 | Miles, Mary A. | Tillman, Samuel Davison, Margaret Jane |
| Samuel H.G. | 1895 | Tillman, Samuel Miles, Mary A. | ||
| Stanley Roy | 1902-03-22 | Reeves, Faith | Tillman, John Davison Middenway, Annie Kembla | |
| Vera Kembla | 1897 | 1917-12-28 | Tillman, John Davison Middenway, Annie Kembla | |
| William Henry | 1874 | 1933-05-10 | Power, Ada Miriam | Tillman, Samuel Davison, Margaret Jane |
| William Henry | 1899 | 1958-05-18 | ????, Grace | Tillman, William Henry Power, Ada Miriam |
| Winifred M. | 1901 | Hogan, William J. A. | Tillman, David T. Tillman, Maude Mary | |
| [Living] | Liddell, William Alexander | Tillman, John Davison Middenway, Annie Kembla | ||
| [Living] | Martin, Florence E. | Tillman, John Davison Middenway, Annie Kembla | ||
| [Living] | Tillman, David ( Painter) Beaver, Pearl C. | |||
| [Living] | Griffin, Elizabeth Lavina | Tillman, John Davison Middenway, Annie Kembla | ||
| [Living] | Tillman, Francis John Fawcett, Noelle Alice | |||
| [Living] | Tillman, William Henry ????, Grace | |||
| [Living] | ???, [Living] | Tillman, William Henry ????, Grace | ||
| [Living] | ???, [Living] | Tillman, William Henry ????, Grace |


gulp_place("app._BUILD_.example_el= toELID(app._BUILD_.example_el_id++)", "eval"); gulp_place("app._BUILD_.example_onkeyup= toKeyUp(app._BUILD_.example_el)", "eval");
Method .update
also accepts function returning object (it will be combinet with internal data with Object.assign
):


This is an implementation of a client side framework written from scratch, providing an easy way to create and design decoupled components with html css and javascript and easily aggregate inside your page providing also an api of intercomponent communication.
The implementation is designed to work on any type of plain static HTTP server.
The last part is not mandatory, it can be ran on a simple apache server. The reason I implemented the static server is because I use a variable for temperature that can be set and retrieved.
If the application is ran on apache - the temperature will be retrieved from a static file, and will send a POST request to the server that won’t change the static file but will pop up an alert.
Here I will describe how you should design your components and serve them to the client. For further description of the frameworks api please check the doc/dev/ folder.
In the folder components you have to create a folder representing the component’s name. In the created folder you have to have a meta.json file which represents a basic configuration for that component an 3 folders: css, template, js. The meta.json must look like this:
1 2 3 4 5 | {
"view": "index.html"
"controller": "index",
"css": ["index.css"]
}
|
The template folder should contain a .html file representing the view for that component. You don’t have to right    tags inside this html you just design the layout for your component.
The controller folder should contain a .js file and the name of the file should be added in the meta.json of the component. If you have for example button.js in your controller folder than in the meta.json in the controller property you will have button.
The controller should be designed in a standard way following this signature:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | define([], function () {
/**
* The name of the constructor
*/
function ControllerName() {}
/**
* Init method, you must not do DOM logic here, you can instantiate some variables
* but not depending on the DOM elements.
*/
ControllerName.prototype.init = function () {
};
/**
* Start method, here you would add your DOM prelucration and other type of logic
*/
ControllerName.prototype.start = function () {
}
/**
* Destroy method, this is the method called when the component is removed from page
* you can also set some logic here, Currently this is not working.
*/
ControllerName.prototype.destroy = function () {
};
return ControllerName;
})
|
The 3 methods init, start and destroy are mandatory because the client framework invokes a lifecycle for the controller, apart from this you can add what other methods you want.
The controller is also injected by the framework and set on the this of the component with the following properties:
1 2 3 4 5 6 7 8 9 10 11 | define([], function () {
function Controller(){}
Controller.prototype.init = function () {};
Controller.prototype.start = function () {
this.context.getComponent('button').then(function (button) {
alert(button.value());
}
}
});
|
In the css folder from your component’s folder you must have a .css file which you later declare in the controller`s meta.json.
The framework also uses handlebars templating engine that the framework can process, so it is easy to reuse other components/aggregate.
If you are in the component’s template folder in the html file you should use {{component name=”nameOfComponent” sid=”uniqueSid” [other parameters used in the template]}} So if you have a template like this:

{{label}}

And you aggregate it in another component that has a html like this:

{{component name="button" sid="button" value="myValue" label="customLabel"}}

If this component was requested in the browser than the content in the browser will look like this:

customLabel

Always remember that the component name must be the name of the folder from the ``components`` folder! The sid must be unique throughout the page - This restriction will be removed in the future
If you want to aggregate components in the index.html that you serve - this representing the applications index that is accessed by the client, you must use the contains of the  tag provided in my example and in the body you must always have something like this:

{{component name="button" sid="button"}}

The flow works as described in the previous aggregation example, and this usage is only necessary in the index.html of the application that you want to server to the clients not also in other components.
The type=”x-handlebars-template” is mandatory otherwise the framework will not know that there you want to aggregate a component.
A component’s html must never be accessed directly from the browsers url, components must always be served via the application’s index.html
this doesn’t affect the usage. Recomended browsers: FF 15+, Chrome 24+.
If you want to run my static express server you must install node.js 0.8.24+ and than go in the project’s root (where you unzip the project) enter cmd if windows or in terminall run npm install -d, afterwards in the terminal go to the server folder and run node server.js and you are ready to test - the server runs on port 8080.
Access the application like so: http://localhost:8080/public/template/
If you want to use it in apache please go in the public/template/index.html and change the server variable in the  tag.
The generation of documentation has been done with jsdoc and sphinx rst.


Tracks and notifies about unsaved form changes and ask for confirmation in case of:
ObUnsavedChangesGuard & ObUnsavedChangesDirective
ObUnsavedChangesDirective
ObUnsavedChangesDirective
ObUnsavedChangesDirective
The custom message shown in the popup asking for confirmation can be changed by overriding i18n.validation.unsavedChanges
. It
is only shown when navigating to another route but not when leaving or reloading the page. In the latter case, the message comes directly
form the browser and cannot be changed.


scheme.rs in the browser!
Enjoy isamert's
scheme.rs
running in the browser !
evaluate!
(see console for results!)


Download .dat-File
Damping
γ
Driving strength
α
Driving frequency
ω
Time step length
Δt
Time steps
n
(max. 500000)
ϑ(0)
ϑ
(0)
Differential equation:
ϑ
= - sin(ϑ) - 2γ
ϑ
+ αsin(
ω
t)
Method: Runge-Kutta 4


Preview: Panthers welcome reeling Rangers squad to town
by APTV: FOX Sports Florida
TIME: 6:30 p.m.
STREAM IT LIVE ON FOX SPORTS GO
New York Rangers (8-7-2, sixth in the Metropolitan Division) vs. Florida Panthers (9-5-5, third in the Atlantic Division)
BOTTOM LINE
The New York Rangers visit Florida after Vincent Trocheck scored two goals in the Panthers’ 4-3 loss to the Jets.
The Panthers are 6-3-3 against Eastern Conference opponents. Florida has scored 67 goals and is seventh in the league averaging 3.5 per game. Jonathan Huberdeau leads the team with nine.
The Rangers are 2-2-0 against opponents from the Metropolitan Division. New York serves 13.5 penalty minutes per game, the most in the NHL. Brendan Lemieux leads the team serving 45 total minutes.
In their last meeting on Nov. 10, Florida won 6-5.
TOP PERFORMERS
Huberdeau leads the Panthers with nine goals and has totaled 24 points. Aleksander Barkov Jr. has totaled six goals and 11 assists over the last 10 games for Florida.
Pavel Buchnevich leads the Rangers with a plus-eight in 17 games played this season. Filip Chytil has six goals and one assist over the last 10 games for New York.
LAST 10 GAMES
Rangers: 6-3-1, averaging 3.8 goals, 6.3 assists, 5.1 penalties and 15.4 penalty minutes while allowing 3.5 goals per game with a .904 save percentage.
Panthers: 5-3-2, averaging 3.8 goals, 6.4 assists, 3.3 penalties and 8.3 penalty minutes while giving up 3.7 goals per game with a .879 save percentage.
Panthers Injuries: Jayce Hawryluk: out (upper body).
Rangers Injuries: Kaapo Kakko: day to day (illness), Jacob Trouba: day to day (undisclosed), Mika Zibanejad: day to day (upper body), Marc Staal: out (ankle).


| |
JAREK
Managing Director
Jarek has 15 years experience as a software developer and managed development teams around the
world. He gained his MSc at the Technical University in Brno in 1983. He spends most of his leisure time at the swimming
pool couching a water polo team of boys aged 15-18 years.
TONY
Senior Hardware Designer
Tony graduated at the Brno Technical University, majoring
in the computer sciences. He
gained his MSc in 1994. Tony has been working for the Euclio Company from its very beginning. He is a keen
airplane modeler.
BRONĚK
Senior Programmer
Broněk has graduated at Brno Technical
University in 1992.He received his MSc .Since 92 he's been
working as a software developer .In his spare time he plays a
guitar ,he likes biking and skiing and sometimes he works out in
the gym.
IVO
Programmer
Ivo has also graduated at the Brno Technical University. That was in
1998 when he received his MSc in the computer sciences. His prefered sports are mountain
biking, swimming, water polo, and basketball.
TOMÁŠ
Programmer
Tomas studied the computer sciences at the Technical University in Brno,
where he graduated in 1998. In his free time you will probably meet him biking. His hobby is also literature.
TOM
Programmer
Tom had finished his studies in SPŠE Pardubice. Since 1994
he has been developing graphic systems for the air trafic control for 6 years. His free time is divided between his family and his hobby - literature.
KATKA
Marketing and Administration
Katka had studied Foreign Trade and Languages at the School
of Economics. Except her favourite sports, which are swimming and biking, she
loves literature.
MARTINA
Marketing and Administration
Martina had studied Business economy at the
Business school in Brno.In her spare time she likes to play
tenis,snowboarding and she loves to go to the movies
.
.
|
|


Payments Information
*****Payment gateway is working fine now*****
Instructions
- Below mentioned fees is for each participant.
- Check the price of individual workshops
- Accommodation for both events and workshops participants can only be availed on online payments on or before 12th February.
- The free t-shirt offer on online payment has been closed now. Other offers like free passes to think talks, exhibitions are applicable till further notice.
Benefits of Online Payment
- Hospitality in campus for 5 days.
- Free Technex T-shirt (OFFER ENDED)
- Free Technex Hospitality Kit
- Free passes to Game Dungeon - the informal events
Technex Registration
- Accommodation
- Benefits of Online Payment
- All Events Participation
- Free passes to all Guest Lectures
- Free passes to all Exhibitions
- Free passes to Kaleidoscope
Technex Registration with Accommodation
- Accommodation
- Benefits of Online Payment
- All Events Participation
- Free passes to all Guest Lectures
- Free passes to all Exhibitions
- Free passes to Kaleidoscope
Workshop Registration
- Free Accommodation
- Benefits of Online Payment
- All Events Participation
- Free passes to all Guest Lectures
- Free passes to all Exhibitions
- Free passes to Kaleidoscope
Startup Fair Registration
(Free Accommodation)
- Accommodation
- Benefits of Online Payment
- All Events Participation
- Free passes to all Guest Lectures
- Free passes to all Exhibitions
- Free passes to Kaleidoscope


Automates the process of creating a scale bar and north arrow in any package that uses base graphics to plot in R. Bounding box tools help find and manipulate extents. Finally, there is a function to automate the process of setting margins, plotting the map, scale bar, and north arrow, and resetting graphic parameters upon completion.
| Version: | 0.2.2 |
| Imports: | digest, rjson, httr, plyr |
| Suggests: | maptools, raster, rosm, testthat, rgdal, sp |
| Published: | 2017-09-20 |
| Author: | Dewey Dunnington |
| Maintainer: | Dewey Dunnington <dewey at fishandwhistle.net> |
| BugReports: | https://github.com/paleolimbot/prettymapr/issues |
| License: | GPL-2 |
| URL: | https://github.com/paleolimbot/prettymapr |
| NeedsCompilation: | no |
| CRAN checks: | prettymapr results |
| Reference manual: | prettymapr.pdf |
| Package source: | prettymapr_0.2.2.tar.gz |
| Windows binaries: | r-devel: prettymapr_0.2.2.zip, r-release: prettymapr_0.2.2.zip, r-oldrel: prettymapr_0.2.2.zip |
| OS X binaries: | r-release: prettymapr_0.2.2.tgz, r-oldrel: prettymapr_0.2.2.tgz |
| Old sources: | prettymapr archive |
| Reverse imports: | rclimateca, rosm |
| Reverse suggests: | ggspatial, rcanvec |
Please use the canonical form https://CRAN.R-project.org/package=prettymapr to link to this page.


Web Developer
Academic Projects
A website for a desserts-only restaurant. The homepage, and the contest page - a memory game with a twist, are developed by me.