Ergo1 is a smart contract platform running on its own blockchain. It provides a high-level language called ErgoScript used for writing contracts featuring Ethereum-like functionality but more closer to Bitcoin in the underlying design. For instance, it is based on short-lived objects (called UTXOs in Bitcoin and boxes in Ergo) instead of long-lived accounts to store data and code. It also has some features different from both Bitcoin and Ethereum relating to scalability and long-term survivability. For instance, it has a storage-rent component, so that boxes must pay rent to continue staying on the blockchain. Secondly, it allows running a fully verifying node on low-power devices using the idea of partially stateless clients implementation [1, 2]. Finally, it uses a PoW algorithm called Autolykos [3] that discourages mining-pool formation, which we informally term pool-resistance. This article gives an overview of Autolykos.
We assume that the reader is familiar with the basic structure of Bitcoin transactions and knows the terms such as UTXOs, inputs and outputs. Additionally, the reader is assumed to have some knowledge of how Bitcoin outputs are protected (locked) by scripts and how the spender unlocks them. Before getting into Autolykos, it is useful to understand the design of Bitcoin’s PoW.
In Bitcoin, a miner collects a number of unconfirmed transactions and concatenates them using a Merkle tree. All nodes of this tree except the leaves are 32 byte hashes computed from its children. The root of this tree, denoted t here, is stored in another structure called the block header, which also includes the hash of the previous block’s header h and a random string n called the nonce. We use the term m to denote the concatenation of Merkle root and the hash of the previous block. That is, m = t∥h and the header is of the form m∥n.
The solution is also determined by another parameter b < 2256, denoting the ‘difficulty’. Let H be a collision resistant hash function taking as input an arbitrary sized array of bits and outputting an array of 256 bits. The output of H can be considered a number between 0 and 2256 − 1. The header m∥n is considered a valid solution if H(m∥n) ≤ b.
A miner repeatedly tries different values of n (possibly changing m as well by including new transactions in between tries) until a solution is found. Since the output of Hash can be thought of as distributed uniformly in the output space, the probability of finding a solution in each try is τ = b∕2256. All proof-of-work algorithms (including that of Ergo) follow this basic idea of restricting the output to be less than some b. It is worth noting that, for Bitcoin, as of this writing (July 2019), b ≈ 2181, and so τ ≈ 2−75 ≈ 10−22.6 ≈ 0.0000000000000000000000257.
Bitcoin (and other cryptocurrencies) allows mining pools, which roughly work as follows. The pool distributes work, based on a some m that it decides. Each miner tries to find a solution for the given m and any solution found is sent to the network. A miner actually tries to find a share, which is like a solution but with reduced difficulty. Some of the shares may also be solutions for the actual difficulty, which become valid blocks. A miner gets paid by the number of shares submitted. The key observation with pools is that miners do work for some other entity who then distributes the rewards back to the workers. We define three levels of centralization in pools.
Ergo is derived from Bitcoin but has some major differences. The prime difference is that while in Bitcoin, the reward UTXO may be spendable by someone other than the miner finding a block, in Ergo, the reward box is spendable only by that miner. In other words, any Ergo node that finds a block also has the ability to spend those rewards. Furthermore, the converse is also true: anyone who spends the reward must necessarily have had the ability to generate that block. While this may not seem much of a difference from Bitcoin because the miner usually sends the reward to their own address, consider situations such as P2Pool [?], where the reward is sent to all the “share-holders” of that block.
If we try to create a system like P2Pool or even a centralized pool based on existing models, we find that anyone having the ability to find a solution is able to steal the rewards, thereby creating a race condition for spending the reward 720 blocks later. This is done using a combinations of two approaches in Ergo:
A Schnorr signature consists of a pair (d,w), where d is an integer and w is (the string encoding of) an elliptic curve group element. See Appendix A for details of Schnorr signature scheme.
The solution is valid if d has a certain number of leading zeros. The protocol is called Autolykos [3] and is described in Appendix B.
In a nutshell, an Ergo block header is of the form m∥n∥p∥w∥d such that:
A correct solution can be checked using one signature verification operation, which is designed to be fast (see Appendix B.2 for benchmarks).
Because of the nature of the signature scheme used, the value of d is almost uniformly distributed in [0..2256 − 1] (see Appendix B.3 for details). The only known approach to find such a d is to try different values of n (and possibly w), and then check if the resulting d is less than b. Thus, as in Bitcoin, the probability of d being in the correct range is approximately b∕2256, which is the probability of finding the right solution in one try.
In Autolykos, special care is taken to ensure that finding the right solution is memory hard, i.e., it requires either too much time or too much memory. It is done by constructing the hash function underlying the signature scheme in a specific way. The primary purpose of this is to make Autolykos ASIC resistant [3].
One of the goals of Ergo was to have a pool resistant protocol, which informally means that pool formation in economically unviable. However, Autolykos alone is not sufficient to obtain pool-resistance. In addition, Ergo uses an emission contract encapsulated in an emission box which has all the (finite amount of) rewards locked in. Each miner must spend this box to collect rewards. The contract inside this box has the following conditions:
Thus, any miner wishing to collect rewards from emission must store them in another box protected using the public key p, whose secret key is needed to generate the current solution. What this means is that anyone who has the ability to generate a solution also has the ability to collect rewards. Consequently, when the reward becomes permanent (720 blocks later), there will be a race between anyone knowing the secret key to grab the rewards. Contrast this with Bitcoin, where the reward may be sent to any address.
The key factor that allows pooling in the Bitcoin and other blockchains is the ability to send rewards to an address independent of the block solution (to a pool address or to all the participants). In Ergo, however, this requires that any operator running a pool and wanting the participants to pay the reward to some given address p must also share the corresponding secret key s, thereby giving the participants also the ability to spend the rewards. We note that there are other approaches to create a pool in Ergo that do not require paying to the pools address as discussed below.
We describe a simple approach to create a mining pool in Ergo. The key observation is that in a valid share, the reward need not necessarily be sent directly to the pool’s address. What is actually necessary is that an amount equivalent to the reward is sent to the pool’s address.  A pool operator collects such shares and any funds thus received are distributed among the miners based on the number of shares they submitted.
One drawback of the above method is that each miner must have an equivalent amount of ergs to cover the reward amount at any time, even though the reward become spendable only after 720 blocks. To overcome this, a pool may provide incentives such as allowing the miner to keep a small fraction of the reward (example for the current reward of 67.5 ergs, the pool may require only 65 ergs to be sent to it). A pool transaction can pay to any pool defined address. For instance, it could be a P2SH address of poolPubKey.
Securing the pool transaction: Let Alice be a miner with public key alice. If such a system is used in, say Bitcoin, then the system becomes insecure. Once the pool-paying transaction is publicized, anyone (not necessarily Alice) may use it as their pool transaction. However, ErgoScript allows us to use the block solution in the context, which we can use to solve the problem as follows. Instead of paying to the pool from an arbitrary box (or boxes), Alice will instead store these funds in a special box protected by the following script:
The first part ensures that when used to fund the pool output, the miner must be Alice. The second ensures that the coins are not stuck till Alice finds a block (if ever). Here bob is a public key owned by Alice or someone loaning the funds.
1. Leonid Reyzin, Dmitry Meshkov, Alexander Chepurnoy, and Sasha Ivanov. Improving authenticated dynamic dictionaries, with applications to cryptocurrencies. In Aggelos Kiayias, editor, Financial Cryptography and Data Security, pages 376–392, Cham, 2017. Springer International Publishing.
2. Leonid Reyzin, Dmitry Meshkov, Alexander Chepurnoy, and Sasha Ivanov. Improving authenticated dynamic dictionaries, with applications to cryptocurrencies. Technical Report 2016/994, IACR Cryptology ePrint Archive, 2016. http://eprint.iacr.org/2016/994.
3. Autolykos: The ergo platform pow puzzle. https://docs.ergoplatform.com/ErgoPow.pdf, 03 2019.
4. Amos Fiat and Adi Shamir. How to prove yourself: Practical solutions to identification and signature problems. In Andrew M. Odlyzko, editor, Advances in Cryptology — CRYPTO’ 86, pages 186–194, Berlin, Heidelberg, 1987. Springer Berlin Heidelberg.
5. Markku-Juhani O. Saarinen and Jean-Philippe Aumasson. The BLAKE2 Cryptographic Hash and Message Authentication Code (MAC). RFC 7693, November 2015.
6. Implementation of authenticated data structures within scorex. https://github.com/input-_output-_hk/scrypto/.
Autolykos is based on Schnorr identification, which we describe first. Let G be a cyclic group of prime order q such that computing discrete logarithms in G is hard and let g be a public generator of G.
The following 3-step protocol is used to prove knowledge of some secret x ∈ ℤq corresponding to public w = gx ∈ G.
The verifier accepts if pgd = wr.
The above is a proof of knowledge because we can construct an extractor for x if we can reset the prover and obtain the same commitment w (and thus, s) twice. Then d1 = x1 − s and d2 = xr2 − s with r1≠r2 will reveal (x,s).
Schnorr Signatures: Schnorr identification can be converted into a signature scheme keeping w as the public key and x as the private key. The idea is to make the the above protocol non-interactive by applying the Fiat-Shamir transform [4], where the role of the verifier is replaced by a collision resistant hash function F : {0,1}∗×G×Gℤq and the challenge is computed as r = F(m,w,p) for message m to be signed. Then (p,d) is a signature on the (public-key, message) pair (w,m). In the above signature scheme, it is important that p (and thus, x) be never reused for two different messages due to the extractor described above.
Since a signature is non-interactive, we can swap the roles of the public key and the commitment, so that (w,d) can be regarded as a signature for the (public-key, message) pair (p,m), with the requirement that w should never be reused for two different messages. This is what Autolykos uses; s is the miner’s secret key and p = gs is the corresponding public key.
The following is essentially reproduced from [3] with the only change that the genIndices method of [3] is renamed to I for brevity.
Autolykos [3] is defined using public parameters (k,N,H,I,b,M) where:
The parameters G,g are the same as in the Secp256k1 standard of Bitcoin. The remaining parameters are: k = 32 and N = 226. The hash functions H,I are derived from Blake2b256 [5] and explained in [3]. The message M is computed in Scala as 0 to 1023 flatMap (toByteArray), where toByteArray converts a Long type to an array of 8 bytes (i.e., 64 bits). Thus, ℓ = 65536.
A solution is a tuple (m,n,d,w,p) ∈ ℤ2256 × ℤ264 × ℤq × G × G s.t:
In addition to m, which is the payload, the solution consists of two public keys from G (of 32 bytes each), the signature d of 32 bytes (which contains several leading zeros) and a nonce of 8 bytes, giving a total of at most 104 bytes.
The verification of a solution essentially follows the same algorithm used to define the solution. In particular, it requires the following computation:
In our tests this took less than 2 ms on an Intel Core i5-7200U, 2.5GHz processor.
Here we discuss how to find a solution. Let s be the miner’s private key and p = gs be the corresponding public key used in the solution (m,n,d,w,p) for a block whose header hashes to m. To generate the remaining parameters n,d,w, the miner performs the following procedure. The process essentially involves first fixing a random w and then repeatedly trying different values of n to compute d (until the correct d is found). If the difficulty becomes so high that all 264 values of n are insufficient to get a solution then w can also be varied.
The miner generates a random secret x ∈ ℤq and sets w = gx ∈ G and proceeds with the non-interactive Schnorr identification protocol with the roles of commitments and public keys reversed. The part that makes Autolykos memory-hard is the way F is implemented.
The goal is to find a nonce n ∈{0,1}∗ and a solution d that results in −b ≤ d ≤ b, obtained using the following algorithm:
The complete solution is given by (m,p,w,n,d).
To get to such a solution, a miner must perform the following computation repeatedly (Steps 2-5):
Distrbution of d: The hash function H is constructed using another hash function H′ : {0,1}∗{0,1}256 and then computing H(x) = H′(x) mod q. If H′ behaves like a random oracle, then so does H and the value of d is uniformly distributed in ℤq.
For our implementation (Secp256k1), q = 2256 − 232 − 29 − 28 − 27 − 26 − 24 − 1. Thus, the probability of a random 256-bit integer not falling in ℤq is less than ≈ 2−223.9999 ≈ 10−67. Thus, for all practical purposes, d can be thought of as being uniformly distributed in {0,1}256.
Optimization 1 (Precomputing H for each block): Assume that the miner must perform the above operations α times before getting to a solution. This results in a total of αk invocations of H. We know that each aj above is from ℤN. Thus, there can only be N different values of H in Step 3.
If αk ≫ N, then it makes sense to precompute H once for all possible values of aj and store that list R in memory for further use (instead of computing H on the fly for different values of n). That is, we store (r0,r1,…rN−1), where ri = H(i∥M∥p∥m∥w) for i ∈ ℤN. Step 3 can then be rewritten as r = ∑ j=1kraj. This is more efficient assuming that memory lookup is much faster than hash computation and that the number of hashes to be computed is much larger than N. This turns out to be true in our implementation. Since each ri occupies 32 bytes, the space needed for keeping the entire list R = (r1,r2…rN) in memory is 32N bytes or 2Gb.
Without this optimization, a miner must compute the elements raj on the fly. However, in doing so, the number of calls to H will significantly increase. As an example, if the GPU can perform h = 230 hashes a second [?] and the block interval t is 120 seconds, then every element in R will be hashed approximately hkt∕N = 3 × 104 times on average, which will reduce efficiency and profit.
Optimization 2 (Precomputing one-time prehashes): Since the list R is quite large, filling it consumes a lot of time. Our initial tests [6] needed 25 seconds on Nvidia GTX-1070. This must be done for each block. However, because of the way stream ciphers work, we could store a list of unfinalized hashes H(i∥M∥p∥…) for i ∈ ℤN (this consumes approximately 5Gb additional memory). In this case, the work to compute the unfinalized hashes would be done only once during miner initialization and computing R for each block would consume only a few milliseconds to finalize the hashes (about 50 ms in our tests with GTX-1070).
The above solution is equivalent to the original Schnorr signature of Section A with a change of variable names. Note that the sizes of nonce n and message m is fixed, so I(m∥n) is equivalent to another hash function I′(m,n). Let m′ = (m,n). The signature is computed on m′ with r = F(m′,w,p) = ∑ j=1kH(aj∥M∥p∥m∥w), where aj is the jth element of I′(m,n).
Using Equation 1 and replacing m′ by m,n, we can rewrite this as
|
| (2) |
Solving the puzzle requires trying different nonces n and group elements w till we get a signature satisfying −b ≤ d ≤ b. Security follows if we assume that Schnorr signatures are unforgeable. Outsourcing the puzzle is equivalent to outsourcing the signature creating algorithm. The only difference from conventional Schnorr signature scheme of Section A is in the design of function F. In particular, it is constructed in a way that efficient massive evaluation with different nonces requires allocating a large amount of memory, while a single evaluation on the verifier’s side can be done on the fly.
The same w (and thus, x) should never be reused, otherwise this will leak the secret s as follows. Let d = xr − s and d′ = xr′− s be two solutions. Then x = (d − d′)∕(r − r′), using which we can compute s. One way to ensure that x is never reused for two different messages is to keep x = f(s,m), where f is a collision resistant hash function.


Graduated from Imperial College of Engineering and Research, Wagholi, Pune, and Completed Internship @ Mutex Innovations Software Pvt Ltd.
At Mutex, I spent a good amount of time learning technologies like Python, Flask, DJango and React JS. I also worked on client projects where I took various responsibility of communicating with client and understanding requirements and solved it thoroughly
CGPA: 7.74/10
Percentage: 77.88%
Percentage: 83.64%


General discussion about Komodo. For useful links and more info click the pinned messages to the right. DON'T DM @jl777
100 messages
Before 05-Dec-19 12:00 AM
crunchycat27-Mar-19 02:14 AM
wut?
PTYX27-Mar-19 02:14 AM
the backdoor would likely come from the project itself. not the other way around.
crunchycat27-Mar-19 02:14 AM
like Trump?
I've got a server, what's this election you speak of?
blackjok3r27-Mar-19 02:15 AM
I brought a 10year old quad CPU last year and run in a team with someone who klnew how to win an election.... I gave him half of my KMD this year, but now I will run for myself as I think the community will vote me in because of everything I've contributed this year.
Komodo is excited to announce that the third annual Notary Node Election will begin in April 2019! Learn more about how to participate in this post.
Feel free to run your node and participate. There's a testnet running in #notarynode
1
crunchycat27-Mar-19 02:16 AM
so let me get this right
`The Komodo Notary Node Elections are stake weighted, meaning that those who hold more KMD have more voting power in the election. `
so you're telling me the biggest KMD bag holders determine who's a notary
lol
ugh
blackjok3r27-Mar-19 02:18 AM
Yes but that doesnt matter really... I got a spot last year. If you can actually run a notary in th testnet that will prove a lot.
PTYX27-Mar-19 02:19 AM
In theory if you're a whale and hold a good percentage of the supply you could vote a node in.
crunchycat27-Mar-19 02:19 AM
wtf does that mean "that doesn't really matter?"
blackjok3r27-Mar-19 02:19 AM
I didnt 3even know how to use linux... had to learn how to build everything for the node from scratch, I think it took me 3 goes to get the testnet notary node up ... Spent a few weeks on it(edited)
PTYX27-Mar-19 02:19 AM
if that node performed poorly, everyone would see it and you can prevent that node from running or take other measures.
crunchycat27-Mar-19 02:19 AM
that matters completely, whoever has the biggest KMD sack votes who's the notary
PTYX27-Mar-19 02:19 AM
however, the community has more voting power than most whales, so it's not likely but still a possibility
blackjok3r27-Mar-19 02:20 AM
Pretty sure it was a whale who voted my team in, but that doesnt matter... I had liek 1000 KMD and got a spot lol is what im saying
crunchycat27-Mar-19 02:20 AM
is there a whale list?
PTYX27-Mar-19 02:20 AM
as with any voting mechanism that bases votes on the amount of tokens you hold
blackjok3r27-Mar-19 02:20 AM
yes
crunchycat27-Mar-19 02:20 AM
exactly @blackjok3r , that's prob how every single notary gets in
so what you're saying is I have no chance unless I buy enough KMD to become a whale and overwhelm all the other whales
1
PTYX27-Mar-19 02:21 AM
no
blackjok3r27-Mar-19 02:21 AM
Not sure how you contact the peopel who own thos address though.
PTYX27-Mar-19 02:21 AM
you dont need any kmd to be a notary node
the community votes for you
just convince them to vote for you
why should you be a notary?
crunchycat27-Mar-19 02:21 AM
dood, the community doesn't vote you in. Whoever has enough KMD votes you in
blackjok3r27-Mar-19 02:21 AM
No lol... be aprt of the comminuty make a propoisal of what your going to get done and hope you made enough noise to win.
crunchycat27-Mar-19 02:21 AM
okay I'll agree to disagree on that point
so tell me this
what happens when one notary decides to ddos the other notaries?
PTYX27-Mar-19 02:22 AM
it's all on the blockchain. you can see how many addresses actually voted for each notary
bishop27-Mar-19 02:22 AM
If you are a competent dev and add to the community, there are whales that will vote for you
2
PTYX27-Mar-19 02:22 AM
so you can deduce yourself who are and aren't the whale chosen ones
bishop27-Mar-19 02:22 AM
it's a matter of showing that
blackjok3r27-Mar-19 02:22 AM
what happens when one notary decides to ddos the other notaries? you could actualyl do this, but nobody has... because you would get blocked by everyone pretty fast.
PTYX27-Mar-19 02:23 AM
exactly, 99% of the notaries are doing things for the community and working on other things for Komodo
so it's not like just some random guys are getting picked that aren't doing anything
crunchycat27-Mar-19 02:23 AM
If some random guy is/knows a whale then yes, he is getting picked
blackjok3r27-Mar-19 02:24 AM
notary was my foot in the door to the whole space, ive learnt sooo much in the last year. Notary is agreat way to lean basics of blockchain just jump in the deep end. Write all your own scripts try to imporve how they work.
PTYX27-Mar-19 02:24 AM
ok, but that wont make him a good notary. and you can see their performance live
if the whale voted someone in but they performed well, what's the issue?
blackjok3r27-Mar-19 02:25 AM
Well... its about notarizing first and formost... but I made that so easy this year with all the big fixes ... that isnt really all of the job anymore IMO
PTYX27-Mar-19 02:25 AM
the purpose of the notary is to perform well and notarize. nothing else.
1
crunchycat27-Mar-19 02:25 AM
okay so what happens if I, just a random person, ddos all the notary nodes?
blackjok3r27-Mar-19 02:25 AM
you cant
they ignore the packets
you need to sign each packet with the privkey and you dont have one
crunchycat27-Mar-19 02:26 AM
really? So no amount of traffic would disable them from functioning?
PTYX27-Mar-19 02:27 AM
are you talking about an elected node spamming all other nodes?
blackjok3r27-Mar-19 02:27 AM
I dont think so, not all of them anyway... unles maybe your the NSA
crunchycat27-Mar-19 02:27 AM
nah, I'm talking about a random person ddosing the notaries
blackjok3r27-Mar-19 02:28 AM
Im not sure what you mean by dDOS ... what exactly do you mean.. .we tried various attacks already all that realy works is an elected notary acting badly... and they can be identified and blocked very easily
crunchycat27-Mar-19 02:28 AM
^^^^
blackjok3r27-Mar-19 02:29 AM
notary ips are mostly public
crunchycat27-Mar-19 02:29 AM
^^^^
blackjok3r27-Mar-19 02:29 AM
I guess someone has already dont this and it didnt do much... 64 nodes in world class DC's isnt something easy to ddoss down all at once I would imagine
how big is your botnet?
PTYX27-Mar-19 02:30 AM
@BlackJesus all you need is 11 nodes to form consensus right?
I mean I'm not familiar with Safe Coin or whatever that is, but kinda sounds like it
PTYX27-Mar-19 02:32 AM
Is that correct?
do you have any evidence to proof that komodo team members attacked another project?
crunchycat27-Mar-19 02:33 AM
I just posted a story about it
PTYX27-Mar-19 02:33 AM
a story
yes, but not evidence
bishop27-Mar-19 02:34 AM
You mean because the safecoin devs were incompetent to remove the keys of the notaries and the existing KMD notaries easy-mined it (within their right)?
hardly attacking it
crunchycat27-Mar-19 02:34 AM
lmao well I'm not Dick Tracy over here so no, I don't have verifiable evidence that would hold up in a court of law
bishop27-Mar-19 02:34 AM
it's code they put out in their repo
Sometime around their launch... but they rolled back their blockchain numerous times iirc
crunchycat27-Mar-19 02:36 AM
So you saw a flaw, then instead of alerting the devs you took advantage
nice
PTYX27-Mar-19 02:36 AM
Komodo in fact pointed out the issue, and some community members offered safecoin their help
bishop27-Mar-19 02:36 AM
are you rehashing nearly a year old story to lame troll?
PTYX27-Mar-19 02:36 AM
if it wasn't for komodo team members, safecoin would still be vulnerable
1
crunchycat27-Mar-19 02:36 AM
lol how many coins did you mine before you alerted them?
and yes, looks like it was a year ago
doesn't negate what looks like happened
PTYX27-Mar-19 02:37 AM
and let's not confuse komodo team members with community members
they aren't the same thing
crunchycat27-Mar-19 02:37 AM
okay
bishop27-Mar-19 02:38 AM
I think if you are going to fork a coin, you should be knowledgeable about the code and what it entails... if you leave a feature that KMD uses, well, what were you hoping to accomplish?
PTYX27-Mar-19 02:38 AM
@crunchycat who are you directing the question about mining to?


What can I say? Why restrict myself to getting good at only one type?
Professor
Celesteela
Slowbro
Mew
Victini
Excadrill
Mega Scizor
Mega Slowbro
"Get on Discord if real my nigglets"


St Johnstone 1 Aberdeen 1 as Matty Kennedy salvages draw for nine-man Saints - 3 talking points
It was a fiesty finish in Perth as Tommy Wright's men had two players sent off within the space of four minutes.
by Chris Doyle, https://www.dailyrecord.co.uk/authors/chris-doyle/Matty Kennedy salvaged a point for St Johnstone against Aberdeen in a frantic finish in Perth as the hosts finished with nine men.
Sam Cosgrove opened the scoring for Aberdeen in the first half before Kennedy sparked the game into life with an equaliser.
It was a feisty conclusion as Tommy Wright's side had two players sent off within the space of four minutes as Murray Davidson and Callum Hendry were shown red.
It was a dull start to the game and Cosgrove's classy strike was the only real moment of quality as he continued his fine start to the season, netting is 17th goal of the season.
Moments later Curtis Main and Niall McGinn somehow failed to double Aberdeen's lead.
A dangerous cross was played in and it seemed like all Main had to do was head the ball into the empty net, but it somehow came off the back of his head as replays showed a Wallace Duffy handball had diverted it away from the striker.
It then fell to McGinn who just had to put the ball on target and it was 2-0 but he skewed his shot wide.
The Saints didn't threaten in the first half but came into the game after the break.
Chances were few and far between but Kennedy put Tommy Wright's level after some brilliant link up play.
The playmaker was put through on goal as he fired his strike past Joe Lewis.
The game started to get tasty from that point on as both teams pushed for a winner.
St Johnstone were shortly down to ten men after Davidson lunged in on Craig Bryson and was given his marching orders.
Hendry was then guilty of an extremely late challenge on Lewis Ferguson as the Saints were reduced to nine men in the space of four minutes.
Aberdeen then went in search for a winner with the advantage but spurned a number of chances as it finished all sqaure.
3 talking points
Saints salvage point despite losing their cool
There wasn't much happening in the game until Kennedy equalised for the home side.
A few meaty challenges certainly livened things up, but the two red cards were horrendous tackles as St Johnstone completely lost their cool.
Kennedy's equaliser got them back in the game and who knows they could have went on to win it, but having two bodies less obviously handed the momentum back to Aberdeen.
They managed to hold on for the point which is important in the grand scheme of things as they sit at the bottom of the table.
But Wright will be disappointed the way his side lost their discipline when the game was there to be won, and it must be said they got away with one when Duffy's first-half handball went unpunished.
Where would Aberdeen be without Cosgrove?
Cosgrove was on target for Aberdeen once again and he's been invaluable to the Dons this season with 17 goals in 21 games.
It's fair to assume that the Reds would not be sitting on 25 points as it stands - he has scored eight of his side's 15 goals in the league.
It was another lovely finish and his general play was brilliant as his physicality was a handful for the Saints defence all afternoon.
It's a worry for Aberdeen they are struggling to find goals from elsewhere but they won't be complaining about his recent form.
An injury to the talisman and it's hard to see where Aberdeen could replace his production.
Considine reaches impressive milestone
There needs to be a special mention for Andrew Considine who made his 500th appearance for Aberdeen.
The management team showed a real touch of class as they handed him the armband for the trip to Perth.
Playing 500 times for any team is a remarkable achievement and a one-man club isn't something that happens especially in modern day football.
Considine came through the Pittodrie youth ranks and has been with the club for over 20 years and his performance today epitomised the type of player he is.
A no-nonsense defender puts his body on the line and even though he never got that coveted clean sheet, he'll be over the moon with his milestone.


By using the SPI you can create lookups that can be used by the users of the Lookup API. While the Lookup API consists of a couple of classes in the package org.openide.util.*, the SPI has its own package org.openide.util.lookup.*.
Lookups
to create a lookup for you. If you want only one
object to be returned, just call
Lookups.singleton(x)
where x is the object to be
returned by the lookup. Or if you want to supply more objects, use a call to the method
fixed(Object []x)
.
Note: The lookups returned from methods singleton(...)
and
fixed(...)
do
not support dynamic changes and attaching listeners. Their content is
fixed from the time you call the creating method.
You simply create a new lookup like this:
import org.openide.util.Lookup; import org.openide.util.lookup.*; Lookup lookup1 = ...; Lookup lookup2 = Lookups.singleton(MyService.class); return new ProxyLookup(new Lookup[] { lookup, lookup2 });
The most powerful way to provide a lookup is to directly define
what instances and items it should provide, by subclassing. For this,
AbstractLookup
is recommended as it is easiest to use.
The simplest way to use AbstractLookup
is to use its
public constructor (in which case you need not subclass it). Here you
provide an
AbstractLookup.Content
object which you have created and hold on to privately, and which
keeps track of instances and permits them to be registered and
deregistered. Often
InstanceContent
is used as the content implementation. To add something to the lookup,
simply use
add(Object)
(and remove(Object)
for the reverse). These may be called
at any time and will update the set of registered instances (firing
result changes as needed).
import org.openide.util.lookup.*; InstanceContent ic = new InstanceContent (); ic.add(firstObject); return new AbstractLookup (ic);
In case it is expensive to actually compute the object in the
lookup, but there is some cheap "key" which can easily generate it,
you may instead register the key by passing in an
InstanceContent.Convertor
.
This convertor translates the key to the real instance that the lookup
client sees, if and when needed. For example, if you have a long list
of class names and wish to register default instances of each class,
you might actually register the class name as the key, and supply a
convertor which really loads the class and instantiates it. This makes
it easy to set up the lookup, but nothing is really loaded until
someone asks for it.


ARM is specially designed to bring about order, efficiency and comfort in places such as Banks, Telcos, Hospital and Government and other places where people have to wait in line to get a service. It reduces real & apparent waiting time, speeds up service delivery, improves service quality & increases customer satisfaction.
ARM is more than a traditional Q Management System. ARM provides accurate customer waiting, service time and counter staff productivity. Comprehensive insight is provided via our data analysis reports presented in dynamic 3D graphical charts and drill down. The data allows organization to analyze the bottle necks and let them plan, improve their service offerings to the customers resulting in more “Happy and Satisfied” customer resulting in more efficient business.
For customers, ARM offers freedom to move about in lobby, read advertising brochures or simply take a seat and to be kept continuously informed of progress while waiting for their turn to be served.
For employees we offer good working conditions - where they can be efficient yet relaxed without being intimated by the queue of overlooking people awaiting service and better use of skills and time.
For manager, we offer Daily Efficiency Reports that allow him to optimize resource allocation, and ease work flow respond to staff workloads and provide better service to his customers.


 Be sure to dissolve completely. Let cool. Add vodka. Pour into two sterilized bottles. Add 1/2 vanilla bean to each bottle. Let age at least 30 days. Mary Hamilton gave me this recipe and I prefer it to the original. I think it’s the vanilla bean.
Ingredients: 1 cup sugar
3/4 cup Tang
1/3 cup instant tea
1/2 tsp. cinnamon
1/2 tsp. cloves
1/2 small pkg. lemonade mix
Mix all together. Store in tightly covered jar. Stir 1 - 2 tsp. into cup of boiling water for each serving.
Our family likes curry and I am so disappointed with the quality of store-bought chutney that I make this up when cranberries are in season.
Ingredients: 1 lb. fresh cranberries
1 cup seedless raisins
1 2/3 cup sugar
1 Tbsp ground cinnamon
1 1/2 tsp. ground ginger
1/4 tsp ground cloves
1 cup water
1/2 cup chopped onion
1 medium-sized apple, pared, cored and chopped
1/4 cup chopped almonds
Combine cranberries, raisins, spices and water in a large saucepan. Bring to a boil and cook 15 min. or until berries pop and mixture thickens. Stir in onion, apple and nuts. Simmer 15 min. more. Mixture should be thick. Pour into sterilized jars. Store in refrigerator. Makes 4 cups.
Ingredients: 2 - 16 oz. cans beets, chopped
4 cups cabbage, chopped
4 oz. horseradish
1 cup sugar
3/4 cup light corn syrup
1 tsp. salt
1/8 tsp. pepper
1 cup white vinegar
1 cup water
Combine first seven ingredients. Bring the vinegar and water to a boil. Pour over the vegetables. Put in hot, sterilized jars. Store in refrigerator.
Note: Both the chutney and the relish could be processed in a hot water bath. Then you would not need to store them in the refrigerator. I’m lucky enough to have lots of refrigerator space and prefer foods that have not been "canned".
My family thinks that Pesto is one of the all-time great culinary inventions. It’s wonderful on hot pasta, rice or stirred into sautéed shredded zucchini Put a few Tablespoons full into a canned soup such as Minestrone or spread on fresh halves of tomatoes and bake. John likes chicken marinated in Pesto and broiled. You can vary the amounts of basil and parsley to suit your taste. This recipe is our favorite.
Ingredients: 4 cups fresh basil leaves
3 cloves garlic
1/2 - 1 cup fresh parsley(not cilantro)
1/2 cup olive oil
1/2 tsp. salt
1/2 cup pine nuts*
1/2 cup good Italian cheese (we like Pecarino)*
With food processor running, drop in 3 cloves garlic. When finely minced, add the basil and parsley and salt. Process until somewhat chopped; then add olive oil in a stream through top. Add more oil if necessary to make a smooth paste. IF you are going to use the pesto soon, add the nuts and cheese. *IF you are going to freeze it, omit these two ingredients. It keeps well in the refrigerator in an airtight container with l/2" olive oil on top. Freeze in 1/2 cup batches-sufficient for 4 servings of pasta. You just dilute the pesto with 2 Tbsp. of the hot water in. which you cooked the pasta, toss and serve.
For those of you unfamiliar with the gourmet qualities of the humble grits I dug out this recipe which is one of my favorites.
Ingredients: 1 cup quick grits, cooked as pkg. directs
1/4 lb. butter or margarine
6 oz good cheddar
1/2 cup milk, blended into 2 beaten eggs
Add butter and cheese to hot grits, then add egg/milk mixture. If the grits are very hot, stir 1/2 cup full of hot mixture into egg/milk mixture and then stir all into grits Blend all ingredients well. Turn into an oven-proof greased casserole and bake at 350° for 45 min. Knife should come out clean.
Ingredients: 1 egg, stirred into 1 cup medium buckwheat groats (kasha)
3 Tbsp oil
1 medium onion, chopped
3 1/2 cups boiling water
1/2 cup long grain rice (not instant)
2 bouillon cubes 1 cup frozen peas
In a large skillet, cook onion in oil until tender. Add kasha mixture and cook until the grains are dry and separated, stirring constantly. Slowly add boiling water, bouillon, and if you like, 1/2 tsp. salt. (I think the bouillon cubes give enough salt). Reduce heat to low. Cover and simmer 15 min. Add peas and cook 5 min more until liquid is absorbed. Serves 12. This pilaf goes well with Middle Eastern dishes such as the Greek Stew.
One of Leslie’s favorites is Pickled Okra. This recipe is from the LBJ Ranch.
Ingredients: 2 tsp. dill seed
2 pkg. (10 oz.) frozen okra or the equivalent of fresh
2 dried red peppers
2 canned chili peppers
4 cloves garlic, peeled
1 1/4 cups white vinegar
3 Tbsp. salt
If using frozen okra, thaw and drain. Sterilize 2 pint jars and lids and keep in hot water while preparing recipe. In small saucepan, combine vinegar, salt and 1/2 cup water. Bring to boiling. Place 1/2 tsp. dill seed in bottom of each jar. Pack okra into jars being careful not to break pods. On top of okra, put 1/2 tsp. dill seed, 1 red pepper, 1 chili pepper and 2 cloves garlic. Pour the hot vinegar mixture over the top of each jar. Cap according to manufacturer’s directions. Let stand at room temperature until completely cooled. Refrigerate at least 2 weeks before serving to let flavors develop. Serve chilled with a real Texas meal such as Barbecued Brisket and Beans.


--- title: "[Understanding Analysis by Stephen Abbott] - [Chapter 2 Sequences and Series] - [2.4 The Monotone Convergence Theorem and a First Look at Infinite Series]" published: true tags: RealAnalysis ---
Definition 2.4.1 A sequence \((a_n)\) is increasing if \(a_n \leqslant a_{n+1}\) for all \(n \in N\) and decreasing if \(a_n \geqslant a_{n+1}\) for all \(n \in N\). A sequence is monotone if it is either increasing of decreasing.
Theorem 2.4.2 Monotone Convergence Theorem. If a sequence is monotone and bounded, then it converges.
Proof. Let \((a_n)\) be monotone and bounded. To prove \((a_n)\) converges using the definition of convergence, we are going to need a candidate for the limit. Let's assume the sequence is increasing (the decreasing case is handled similarly), and consider the set of points \(\{a_n : n \in N\}\). By assumption, this set is bounded, so we can let $$ s = sup\{a_n : n \in N\} $$ It seems reasonable to claim that \(\lim a_n = s\)
To prove this, let \(\epsilon > 0\). Because \(s\) is the least upper bound for \(\{a_n : n \in N\}\), \(s - \epsilon\) is not an upper bound, so there exists a point in the sequence \(a_N\) such that \(s - \epsilon < a_N\). Now, the fact that \(a_n\) is increasing implies that if \(n \geqslant N\), then \(a_N \leqslant a_n\). Hence, $$ s - \epsilon < a_N \leqslant a_n \leqslant s < s + \epsilon $$ which implies \(|a_n - s| < \epsilon\), as desired.
The Monotone Convergence Theorem is extremely useful for the study of infinite series, largely because it asserts the convergence of a sequence without explicit mention of the actual limit.
Definition 2.4.3 Convergence of a Series. Let \((b_n)\) be a sequence. An infinite series is a formal expression of the form $$ \sum_{i=1}^\infty b_n = b_1 + b_2 + b_3 + b_4 + b_5 + \cdot \cdot \cdot $$ We define the corresponding sequence of partial sums \((s_m)\) by $$ s_m = b_1 + b_2 + b_3 + \cdot \cdot \cdot + b_m $$ and say that the series \(\sum_{n=1}^\infty b_n \) converges to \(B\) if the sequence \((s_m)\) converges to \(B\). In this case, we write \(\sum_{n=1}^\infty b_n = B\)
Theorem 2.4.6 Cauchy Condensation Test. Suppose \((b_n)\) is decreasing and satisfying \(b_n \geqslant 0\) for all \(n \in N\). Then, the series \(\sum_{n=1}^\infty b_n\) converges if and only if the series $$ \sum_{n=0}^\infty 2^n b_{2^n} = b_1 + 2b_2 + 4b_4 + 8b_8 + 16b_{16} + \cdot \cdot \cdot $$ converges.
Proof. First, assume that \(\sum_{n=0}^\infty 2^n b_{2^n}\) converges. Then the partial sums $$ t_k = b_1 + 2b_2 + 4b4 + \cdot \cdot \cdot + 2^k b_{2^k} $$ are bounded; that is, there exists an \(M > 0\) such that \(t_k \leqslant M\) for all \(k \in N\). We want to prove that \(\sum_{n=1}^\infty b_n\) converges. Because \(b_n \geqslant 0\), we know that the partial sums are increasing, so we only need to show that $$ s_m = b_1 + b_2 + b_3 \cdot \cdot \cdot + b_m $$ is bounded.
Fix \(m\) and let \(k\) be large enough to ensure \(m \leqslant 2^{k+1} - 1\). Then, \(s_m \leqslant s_{2^{k+1} - 1}\) and $$ \begin{align} s_{2^{k+1} - 1} &= b_1 + (b_2 + b_3) + (b_4 + b_5 + b_6 + b_7) + \cdot \cdot \cdot + (b_{2^k} + \cdot \cdot \cdot + b_{2^{k+1} - 1}) &\leqslant b_1 + (b_2 + b_2) + (b_4 + b_4 + b_4 + b_4) + \cdot \cdot \cdot + (b_{2^k} + \cdot \cdot \cdot + b_{2^k} ) &= b_1 + 2b_2 + 4b_4 + \cdot \cdot \cdot + 2^k b_{2^k} = t_k \end{align} $$ Thus, \(s_m \leqslant t_k \leqslant M\). By the Monotone Convergence Theorem, we can conclude that \(\sum_{n=1}^\infty b_n\) converges.
Corollary 2.4.7 The series \(\sum_{n=1}^\infty 1/n^p\) converges if and only if \(p > 1\)


Pay with credit card(TEST ONLY!)
Please enter the credit card
number
,
expiration date
and
security code
.
Card number *
Expiration date
CVV
Make Payment


Back Step 5 of 7
What amount of tax is under dispute?
Enter the amount shown on the original notice letter or review conclusion letter you received from HMRC.
Back Step 5 of 7
Enter the amount shown on the original notice letter or review conclusion letter you received from HMRC.


{% extends "easydmp/plan/base.html" %} {% load static %} {% load plan_tags %} {% block extrahead %} {{ form.media.css }} {% endblock %} {% block content %}
You currently have no plans. After creating or being given access to your first plan, it'll turn up here.
Create your first plan {% endif %}


Method to query for a specific FileShard record using the global ID value
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SchemaFlag | Bool | 10 | true | flag value to return the tabular result data with or without the DataTable metadata |
| FileShardGID | Text | 50 | true | the global ID value for the FileShard record |
| Return Name | Data | Description | ||
| FileShard.GetByID.base_DEFAULT | DataTable | the FileShard record found matching the ID value |
Method to query for a writable shard name
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| Return Name | Data | Description | ||
| FileShard.GetShardName.base_DEFAULT | DataTable | returns the ShardName of a writable shard (used in File Upload) |
Method to query for a list of file shard (segment) records with no segment data included
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SchemaFlag | Bool | 10 | true | flag value to return the tabular result data with or without the DataTable metadata |
| ShardName | Text | 50 | true | the ShardName of the shard to be queried |
| FileGID | Text | 50 | true | the global ID value for the File record |
| FileVersion | Int | true | the version number of the File record | |
| Return Name | Data | Description | ||
| FileShard.GetSegList.base_DEFAULT | DataTable | the set of FileShard records found matching the File ID and File Version values |
Method to query for a specific FileShard record using the global ID and SegNum values
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| ShardName | Text | 50 | true | the ShardName of the shard to be queried |
| FileShardGID | Text | 50 | true | the global ID value for the FileShard record |
| SegNum | Int | true | the SegNum value for the FileShard record | |
| Return Name | Data | Description | ||
| FileShard.GetSegDataByID.base_DEFAULT | Text | the SegData value of the record found matching the ID and SegNum values |
Method to query for a specific Folder record using the global ID value
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SchemaFlag | Bool | 10 | true | flag value to return the tabular result data with or without the DataTable metadata |
| ShardName | Text | 50 | true | the ShardName value indicating the shard to be queried |
| row_id | Long | true | the row_id value of the specific FileShard record to be returned | |
| Return Name | Data | Description | ||
| FileShard.GetByRowID.base_DEFAULT | DataTable | returns the FileShard record matching the row_id value, regardless of rec_state |
Method to query for a batch of source records that are newer than the placeholder value
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SchemaFlag | Bool | 10 | true | flag value to return the tabular result data with or without the DataTable metadata |
| SourceDB | Text | 50 | true | the name of the database to be queried for source records |
| StartID | Long | true | the row_id value of the last source record processed | |
| BatchSize | Int | true | the maximum number of records to return as a batch | |
| Return Name | Data | Description | ||
| FileShard.GetSource.base_DEFAULT | DataTable | a batch of records newer than the placeholder value |
Method to query for the existence of duplicate FileShard records
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| Return Name | Data | Description | ||
| FileShard.Duplicate.base_DEFAULT | DataTable | the results of the scan for duplicate records |
Method to query for the max src_id value and total number of source records in the destination table
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SrcDBName | Text | 50 | true | the unique name of the database to be queried |
| Return Name | Data | Description | ||
| FileShard.GetDestCounts.base_DEFAULT | Int | comma delimited list of the max src_id value and total count of records from the source database in the destination table |
Method to query table for the total number of source records and the number of source records less than the EndID (row_id) value in the source table
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SrcDBName | Text | 50 | true | the unique name of the database to be queried |
| EndID | Long | true | the maximum row_id value to be queried | |
| Return Name | Data | Description | ||
| FileShard.GetSrcCounts.base_DEFAULT | Int | comma delimited list of the total count of source records from the source database and the count of records less than the endid in the source table |
Method to insert a new Folder record
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| GroupGID | Text | 50 | true | the global ID of the DataGroup the parent File record belongs to |
| ShardName | Text | 100 | true | the ShardName of the shard to be used |
| FileGID | Text | 50 | true | the global ID of the parent File record |
| FileVersion | Int | true | the version number or the parent File record | |
| TotalSeg | Int | true | the total number of file segments for the file | |
| SegNum | Int | true | the segment number of the FileShard record | |
| SegSize | Int | true | the size of the file segment in bytes | |
| SegData | Text | MAX | true | the file segment data, Base64 encoded |
| Return Name | Data | Description | ||
| FileShard.New.base_DEFAULT | Text | if successful, the global ID of the new FileShard record; otherwise, the error message |
Method to update an existing Folder record (soft delete as update)
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| FileShardGID | Text | 50 | true | the global ID of the FileShard record to be deleted |
| GroupGID | Text | 50 | true | the global ID of the DataGroup the parent File record belongs to |
| ShardName | Text | 100 | true | the ShardName of the shard to be used |
| FileGID | Text | 50 | true | the global ID of the parent File record |
| FileVersion | Int | true | the version number or the parent File record | |
| TotalSeg | Int | true | the total number of file segments for the file | |
| SegNum | Int | true | the segment number of the FileShard record | |
| SegSize | Int | true | the size of the file segment in bytes | |
| SegData | Text | MAX | true | the file segment data, Base64 encoded |
| row_ms | Long | true | the unix time value of the record to be deleted | |
| Return Name | Data | Description | ||
| FileShard.Delete.base_DEFAULT | Text | returns the action and result code of the update |
Method to merge a batch of source records into a destination table; due to the size of the SegData value, records are replicated one at a time
| Param Name | Data | Length | Required | Description |
|---|---|---|---|---|
| SourceRecords | DataTable | true | a batch of source records to be merged into a destination table | |
| StartID | Long | true | the row_id value of the last source record processed (initial placeholder set to zero) | |
| Return Name | Data | Description | ||
| FileShard.Replicate.base_DEFAULT | Text | returns the new placeholder value of the last record merged into the destination table |


This scenario demonstrates how to use the MediaCapture API preview the camera stream and Photosequence using default initialization settings.


Class HeaderVariables
Represents the header variables of a DXF document.
Inheritance
Inherited Members
Namespace: netDxf.Header
Assembly: CADability.dll
Syntax
public class HeaderVariables
Constructors
| Improve this Doc View SourceHeaderVariables()
Initializes a new instance of the SystemVariables
.
Declaration
public HeaderVariables()
Remarks
The default values are the same ones that are apply to a new AutoCad drawing.
Properties
| Improve this Doc View SourceAcadVer
The AutoCAD drawing database version number.
Declaration
public DxfVersion AcadVer { get; set; }
Property Value
| Type | Description |
|---|---|
| DxfVersion |
Remarks
Only AutoCad2000 and higher DXF versions are supported.
Exceptions
| Type | Condition |
|---|---|
| System.NotSupportedException | Only AutoCad2000 and higher DXF versions are supported. |
Angbase
Angle 0 base.
Declaration
public double Angbase { get; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 0.
Angdir
The angle direction.
Declaration
public AngleDirection Angdir { get; }
Property Value
| Type | Description |
|---|---|
| AngleDirection |
Remarks
Default value: CCW.
AttMode
Attribute visibility.
Declaration
public AttMode AttMode { get; set; }
Property Value
| Type | Description |
|---|---|
| AttMode |
Remarks
Default value: Normal.
AUnits
Units format for angles.
Declaration
public AngleUnitType AUnits { get; set; }
Property Value
| Type | Description |
|---|---|
| AngleUnitType |
Remarks
Default value: Decimal degrees.
AUprec
Units precision for angles.
Declaration
public short AUprec { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int16 |
Remarks
Valid values are integers from 0 to 8. Default value: 0.
CeColor
Current entity color.
Declaration
public AciColor CeColor { get; set; }
Property Value
| Type | Description |
|---|---|
| AciColor |
Remarks
Default value: 256 (ByLayer). This header variable only supports indexed colors.
CeLtScale
Current entity line type scale.
Declaration
public double CeLtScale { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 1.0.
CeLtype
Current entity line type name.
Declaration
public string CeLtype { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Default value: ByLayer.
CeLweight
Current entity line weight.
Declaration
public Lineweight CeLweight { get; set; }
Property Value
| Type | Description |
|---|---|
| Lineweight |
Remarks
Default value: -1 (ByLayer).
CLayer
Current layer name.
Declaration
public string CLayer { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Default value: 0.
CMLJust
Current multiline justification.
Declaration
public MLineJustification CMLJust { get; set; }
Property Value
| Type | Description |
|---|---|
| MLineJustification |
Remarks
Default value: 0 (Top).
CMLScale
Current multiline scale.
Declaration
public double CMLScale { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 20.
CMLStyle
Current multiline style.
Declaration
public string CMLStyle { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Default value: Standard.
DimStyle
Current dimension style.
Declaration
public string DimStyle { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Default value: Standard.
DwgCodePage
Drawing code page; set to the system code page when a new drawing is created, but not otherwise maintained by AutoCAD.
Declaration
public string DwgCodePage { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
Extnames
Controls symbol table naming.
Declaration
public bool Extnames { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
Default value: 1.
Controls symbol table naming:
0 = Release 14 compatibility. Limits names to 31 characters in length.
Names can include the letters A to Z, the numerals 0 to 9,
and the special characters dollar sign ($), underscore (_), and hyphen (-).
1 = AutoCAD 2000.
Names can be up to 255 characters in length,
and can include the letters A to Z, the numerals 0 to 9, spaces,
and any special characters not used for other purposes by Microsoft Windows and AutoCAD.
HandleSeed
Next available handle.
Declaration
public string HandleSeed { get; }
Property Value
| Type | Description |
|---|---|
| System.String |
InsBase
Insertion base point for the current drawing.
Declaration
public Vector3 InsBase { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
Remarks
When you insert or externally reference the current drawing into other drawings, this base point is used as the insertion base point.
InsUnits
Specifies a drawing units value for automatic scaling of blocks, images, or xRefs when inserted or attached to a drawing.
Declaration
public DrawingUnits InsUnits { get; set; }
Property Value
| Type | Description |
|---|---|
| DrawingUnits |
Remarks
Default value: Unitless.
It is not recommend to change this value, if the LUnits variable has been set to Architectural or Engineering, they require the InsUnits to be set at Inches.
LastSavedBy
User name that saved the file.
Declaration
public string LastSavedBy { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
By default it uses the user name of the person who is currently logged on to the Windows operating system.
This header variable is not compatible with AutoCad2000 or lower versions.
LtScale
Global line type scale.
Declaration
public double LtScale { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 1.0.
LUnits
Units format for coordinates and distances.
Declaration
public LinearUnitType LUnits { get; set; }
Property Value
| Type | Description |
|---|---|
| LinearUnitType |
Remarks
Default value: Decimal.
If the LUnits is set to Architectural or Engineering the InsUnits variable will be set to Inches automatically.
LUprec
Units precision for coordinates and distances.
Declaration
public short LUprec { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int16 |
Remarks
Valid values are integers from 0 to 8. Default value: 4.
LwDisplay
Controls the display of line weights on the Model or Layout tab.
Declaration
public bool LwDisplay { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Remarks
Default value: false.
false = Line weight is not displayed.
true = Line weight is displayed.
MirrText
Controls if the text will be mirrored during a symmetry.
Declaration
public bool MirrText { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
PdMode
Controls the PointShape to draw a point entity.
Declaration
public PointShape PdMode { get; set; }
Property Value
| Type | Description |
|---|---|
| PointShape |
Remarks
Default value: PointShape.Dot.
PdSize
Controls the size of the point figures, except for PDMODE values 0 (Dot) and 1 (Empty).
Declaration
public double PdSize { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 0.
A setting of 0 generates the point at 5 percent of the drawing area height.
A positive PDSIZE value specifies an absolute size for the point figures.
A negative value is interpreted as a percentage of the viewport size.
PLineGen
Governs the generation of line type patterns around the vertexes of a 2D polyline.
Declaration
public short PLineGen { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int16 |
Remarks
Default value: 0.
1 = Line type is generated in a continuous pattern around vertexes of the polyline.
0 = Each segment of the polyline starts and ends with a dash.
PsLtScale
Controls paper space line type scaling.
Declaration
public short PsLtScale { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int16 |
Remarks
Default value: 1.
1 = No special line type scaling.
0 = Viewport scaling governs line type scaling.
TdCreate
Local date/time of drawing creation.
Declaration
public DateTime TdCreate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
Remarks
This date/time is local to the time zone where the file was created.
TdinDwg
Cumulative editing time for this drawing.
Declaration
public TimeSpan TdinDwg { get; set; }
Property Value
| Type | Description |
|---|---|
| System.TimeSpan |
TduCreate
Universal date/time the drawing was created.
Declaration
public DateTime TduCreate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
TdUpdate
Local date/time of last drawing update.
Declaration
public DateTime TdUpdate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
Remarks
This date/time is local to the time zone where the file was created.
TduUpdate
Universal date/time the drawing was created.
Declaration
public DateTime TduUpdate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
TextSize
Default text height.
Declaration
public double TextSize { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Remarks
Default value: 2.5.
TextStyle
Current text style.
Declaration
public string TextStyle { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Default value: Standard.
UcsOrg
Origin of current UCS (in WCS).
Declaration
public Vector3 UcsOrg { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
UcsXDir
Direction of the current UCS X axis (in WCS).
Declaration
public Vector3 UcsXDir { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
Remarks
The vectors UcsXDir and UcsYDir must be perpendicular.
UcsYDir
Direction of the current UCS Y axis (in WCS).
Declaration
public Vector3 UcsYDir { get; set; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
Remarks
The vectors UcsXDir and UcsYDir must be perpendicular.
Methods
| Improve this Doc View SourceAddCustomVariable(HeaderVariable)
Adds a custom HeaderVariable to the list.
Declaration
public void AddCustomVariable(HeaderVariable variable)
Parameters
| Type | Name | Description |
|---|---|---|
| HeaderVariable | variable | Header variable to add to the list. |
Remarks
All header variable names must start with the character '$'.
Header variable names that already exists in the known list cannot be added.
ClearCustomVariables()
Removes all custom HeaderVariable from the list.
Declaration
public void ClearCustomVariables()
ContainsCustomVariable(String)
Checks if a custom HeaderVariable name exits in the list.
Declaration
public bool ContainsCustomVariable(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Header variable name. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if a header variable name exits in the list; otherwise, false. |
Remarks
The header variable name is case insensitive.
CustomNames()
Gets a collection of the custom header variables names.
Declaration
public List<string> CustomNames()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<System.String> | A list with the custom header variables names. |
CustomValues()
Gets a collection of the custom header variables.
Declaration
public List<HeaderVariable> CustomValues()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<HeaderVariable> | A list with the custom header variables. |
KnownNames()
Gets a collection of the known header variables names.
Declaration
public List<string> KnownNames()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<System.String> | A list with the known header variables names. |
KnownValues()
Gets a collection of the known header variables.
Declaration
public List<HeaderVariable> KnownValues()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<HeaderVariable> | A list with the known header variables. |
RemoveCustomVariable(String)
Removes a custom HeaderVariable from the list.
Declaration
public bool RemoveCustomVariable(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | Header variable to add to the list. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the element is successfully found and removed; otherwise, false. |
Remarks
The header variable name is case insensitive.
TryGetCustomVariable(String, out HeaderVariable)
Gets the header variable associated with the specified name.
Declaration
public bool TryGetCustomVariable(string name, out HeaderVariable variable)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | The name of the header variable to get. |
| HeaderVariable | variable | When this method returns, contains the header variable associated with the specified name, if the name is found; otherwise, it contains null. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the list contains a header variable with the specified name; otherwise, false. |


Get insights that help your business grow.
Discover the benefits of data analytics and make better decisions regarding revenue, customer experience, and overall efficiency.
10k+
companies
314
templates
12m+
queries
Discover the benefits of data analytics and make better decisions regarding revenue, customer experience, and overall efficiency.
companies
templates
queries
Challenge by Frontend Mentor. Coded by Gilcllys de Souza Costa Here.


<Next version of Ox>
<Previous version of Ox>
Ox: Fixes and new features in version 1.10
New features and remarks, version 1.10
- Added two compiler warnings, see
Ox command line options.
- Improved OxRun: better run-time error handling, now allows
command-line arguments, better naming of GiveWin windows opened by OxRun.
- OX_BIG_ENDIAN and OX_Windows (etc.) constants, see
Predefined Constants;
created oxversion().
- Created armaforc(), armafit(), cumsum(), cumprod()
- Changed input of polyroots
(please note, this is a change from version 1.08: now the constant
is included in the input polynomial), created polymake(), polydiv()
- Online documentation in HTML format.
- now allows double("tinker") and string(double("tinker"))
- fopen: default is now reading
(please note, this is a change from version 1.08).
- I/O functions: fscan(), scan(), sscan(), fread(), fwrite(), fseek()
- Created tabular operators, also allowing matrix[1][1] dot-op matrix
and the reverse.
- Changed rann() to fill matrix by rows, old version is still available
as ranno(). Please note, this is a change from version 1.08:
since the matrix is filled differently, results will differ
from version 1.08. (The current version is faster.)
- Added reshape()
Fixed bugs in version 1.10
- There is a potential bug when using
member functions as argument to other procedures, such as e.g.
the maximization or numerical derivative functions.
- Range check for matrix indices did not check whether
the lower bound is above the matrix size
(e.g. m[][10:] in 8 x 8 matrix).
- Out of range error message has first and
second index of error reversed.
- GiveWin gets in an infinite loop when
the first area for graphics is not number 0.


Pick your favourites!
Pick Pass Undo Redo
Maximum batch size:
Include species: Old World New World Arboreal Terrestrial Fossorial Moisture-Dependant Arid
Reset


Web 2.0 Touch
Web 2.0 Touch is a concise mini JavaScript framework for touch devices (iPhone, iPad, Android). It is
an open source project and you can participate in its development and/or testing.
https://github.com/web20boom/Web-2.0-Touch .
This particular build was done with the help of PhoneGap that makes it possible to distribute applications written with Web 2.0 Touch in Apple Store.
For questions, direct your emails to<EMAIL_ADDRESS>https://github.com/web20boom/Web-2.0-Touch .
This particular build was done with the help of PhoneGap that makes it possible to distribute applications written with Web 2.0 Touch in Apple Store.
For questions, direct your emails to vitmalina@gmail.com.


Tags: music and stuff
Hermit and the Recluse - Orpheus vs. the Sirens
Every track on this album is a banger. Love this.
Release date: 2018-08-18
[8.7/10]
Whatever the Weather - Whatever the Weather
… I think this is probably my favorite LJ release? It’s got ambient, minial techno, drum & bass, and then it sounds like one coherent album instead of a mish mash of things. Really good stuff.
Release date: 2022-04-08
[8.7/10]
DJ Rozwell - None of This is Real
Instrumental cloud-rap. FFO cLOUDDEAD… really good stuff.
Release date: 2020-08-30
[8.5/10]
Sofie Birch - Holotropica
… I guess I am really late to the party. Intricate, therapeutic ambient.
Release date: 2022-05-27
[8.5/10]
Quells Chris - Deathfame
Took me several listens to fully appreciate it… this is a good one.
Release date: 2022-05-13
[8.4/10]
Luminous Vault - Animate the Emptiness
Black metal guitars meet industrial vibes. Like Godflesh playing black metal? Anyways this stuff is right up my alley.
Release date: 2022-05-20
[8.3/10]
Cities Aviv - GUM
Hypnagogic rap. Really like his production.
Release date: 2017-04-21
[8.3/10]
Best Available Technology - Fixing Until Broke
Ambient… or more precisely lo-do cloud rap tronica. Dope stuff.
Release date: 2022-04-01
[8.3/10]
Boldy James, The Alchemist - Bo Jackson
Griselda Records is on a strong streak these days… at first I didn’t really pay attention to Boldy’s lyrics, but damn these bars are really sick. The Alchemist on the other hand is doing his usual stuff: awesome beats that go flawlessly with the flow. Really good stuff.
Release date: 2021-08-13
[8.3/10]
Mach Hommy - HBO (Haitian Body Odor)
This probably should’ve been his first album I listen to… a concept album centered around Haiti, very nicely executed east coast hip-hop with splendid jazz hop beats.
Release date: 2016-08-17
[8.2/10]
Daniel Rossen - You Belong Here
Freak folk / chamber pop.
Release date: 2022-04-08
[8.2/10]
Ricardo Villalobos, Samuel Rohrer - Microgestures
Villalobos’ RE: ECM
felt way too abstract for me when I heard it a while back… this one in contrast is very enjoyable minial techno.
Release date: 2022-04-08
[8.1/10]
Pyramids - A Northern Meadow
I knew this was gonna be a banger but somehow I never really listened to this… until I found out one of them is actually a member of TheSounds of Animals Fighting. It’s kind of like maudlin of the well, but less experimental and more black metal. It is indeed very intense.
Release date: 2015-03-17
[7.8/10]
E L U C I D - I Told Bessie
2022 is indeed a strong year for alternative hip-hop… maybe there’ll be a new Armand Hammer release later this year? While his previous albums all felt like they were missing the target, this one is much more cohesive and really feels enjoyable.
Release date: 2022-06-10
[7.8/10]
Priori - Your Own Power
Cozy house / dub techno.
Release date: 2021-11-12
[7.8/10]
Luis - 057 (Schwyn)
Joyous IDM.
Release date: 2022-06-17
[7.7/10]
Rachika Nayar - Our Hands Against the Dusk
Compared to fragments
this is more ambient, more heavy on reverb. I like the arpeggios at the end of the first track The Trembling of Glass
.
Release date: 2021-03-05
[7.6/10]
S A D - Children of the Sun
FFO Meitei & new-age ambient.
Release date: 2021-03-20
[7.5/10]
Cremation Lily - Dreams Drenched in Static
Industrial noise-pop. Think less refined, less slithery Sega Bodega.
Release date: 2022-04-15
[7.4/10]
Maxo - LIL BIG MAN
Downbeat jazz-rap.
Release date: 2019-03-15
[7.2/10]
Mach Hommy - Dollar Menu
The first and the last songs are dope, the others only mid-tier.
Release date: 2022-01-20
[6.8/10]
Ghais Guevara - Black Bolshevik
Political hip-hop with JPEGMAFIA aspirations. The bars aren’t that crazy though.
Release date: 2021-04-17
[6.6/10]
Meshuggah - Immutable
Better than their last one (by a considerable margin), but I guess this kind of music just doesn’t get me anymore.
Release date: 2022-03-31
[6.3/10]
Comments


Research
Solar UAV-Large
The purpose of this project was to explore the development of a hand-launchable fixed-wing UAV capable of day-long and multi-day flight through the use of solar-power. My primary contributions were related to power electronics architecture and design, avionics.
Publications:
Transformer UAV
The Transformer UAV project demonstrates a first-of-a-kind shapeshifting based vertical-takeoff-and-landing (VTOL) UAV. The inspiration for this pursuit stems from designing a UAV that combines the efficiency of fixed-wing flight with the manuvarability of multi-rotor flight. Combined with the energy surplus associated with solar-powered flight yielded a unique and rich research pursuit. Protoypes are named MultI-Section-Transformable (MIST)-UAV.
Videos:
Publications:
- [2] SUAV:Q - A Hybrid Approach To Solar-Powered Flight
- [3] SUAV:Q - An Improved Design for a Transformable Solar-Powered UAV
- [4] Design and Experiments for a Transformable Solar-UAV
- [5] Energy Characterization of a Transformable Solar-Powered Unmanned Aerial Vehicle
- [6] Design and Experiments for MultI-Section-Transformable (MIST)-UAV
Sim-to-real Transformer UAV
While classical control techniques were used to successfully perform multiple transformations, many airframes were crashed in the process of testing controllers. A pursuit I am exploring is the use of reinforcement learning in controlling systems with challenging and unobservable dynamics. Currently exploring the use of AG-Tree from https://arxiv.org/pdf/1707.05110 with a larger action space for attitude and position control.
Source Code: https://github.com/rubendsa/MIST-Bullet


Quick Sort
- a “Greatest hit” algorithm
- Prevalent in practise
- Beautiful analysis
- $O(n log n)$ time “on average”
Key idea : partition array aroud a pivot element
Pick element of array Rearrange array so that left of pivot less than pivot right of pivot greater than pivot
QuickSort(array A, length n)
- if n =1 return
- p = ChoosePivot(A,n)
- Partition A around p
- Recursively sort 1st part
- Recursively sort 2nd part
The easy way out
Using O(n) extra memory, easy to partition around pivot in O(n) time
In-place Implementation
Assume: pivot = 1st element of array
[if not, swap pivot with 1st element]
Pseudocode for Partition
Partition(A,l,r):
p := A[l]
i := l+1
for j = l+1 to r:
if A[j] < p:
swap A[j] and A[i]
i := i+1
swap A[l] and A[i-1]
QuickSort Theorem : for every input array of length n, the average running time(with Random pivots) is O(nlog(n))


Event Location:
Saint Louis University's Center for Workforce Organizational Development (The Wool Center)
3545 Lindell Blvd
St. Louis, Missouri
Abstract:
This session covers the changes made to Cardinality Estimations and Calculations in SQL Server 2014. SQL Server 2014 introduces the first major redesign of the SQL Server Query Optimizer cardinality estimation process since version 7.0. The goal for the redesign was to improve accuracy, consistency and supportability of key areas within the cardinality estimation process, ultimately affecting average query execution plan quality and associated workload performance. Topics Covered in this session How to enable and disable the new cardinality estimator behavior? What changed in new cardinality estimations? How to troubleshoot plan-quality regressions if and when they occur? Note : Presentation based on recent white paper released from Microsoft.
Speaker(s): Sreeni Julakanti,
Abstract:
Most everyone knows how to build a table, an index, or a relationship, but the real challenge in database design is the process the data professional uses to interpret the business requirements into database designs which are both flexible and extensible. In this session, I will NOT tell you the syntax of any database object. In this session, we will review some of the common challenges we face and some philosophies which will help us to design and deliver better database designs.
Speaker(s): Rickey Nunn,
Abstract:
High level overview of Change Data Capture, including what it is, how to configure it and how I can benefit by using it to populate my data warehouse.
Speaker(s): Dave Bland,
Abstract:
SQL Server table partitioning can improve manageability of large tables, and in some cases performance too. This session will review table partitioning concepts, discuss common partitioning mistakes, and show how to automate partition management tasks using SQL Agent T-SQL jobs.
Speaker(s): Dan Guzman,
Abstract:
Data warehousing professionals often consider data profiling to be drudgery and/or an unnecessary part of the larger warehouse design process. However, information unearthed during this process can prove instrumental in avoiding pitfalls later on. This session will explore the reasons for profiling and scenarios in which it proves particularly useful. We will also discuss profiling methods, including the SSIS profiling task and supplemental profiling techniques that provide both developers and business users insight into the quality and consistency of source data.
Speaker(s): Britton Gray,
Abstract:
The term "Big Data" has risen to popularity in the last few years, and encompasses data platforms outside of the traditional RDBMS (like SQL Server). The purpose of this session is to introduce SQL Server DBA's to Hadoop, and to promote understanding of how schema-less data can be collected and accessed in coordination with the traditional SQL models. We'll cover the basic vocabulary of the Hadoop platform, Microsoft's integration efforts, and demonstrate how to get started with "big data".
Speaker(s): Stuart Ainsworth,
Abstract:
This session will give you an insider look into what is driving the Big Data market. I'll relay lessons learned from talking with C-level executives from some of the largest corporations in the midwest as well as talking with guys in the trenches from companies like LinkedIn, Facebook, and Twitter. Everything is changing and this session will help you ride the tide and understand where things are going.
Speaker(s): Scott Shaw,
Abstract:
In this talk Aaron will introduce users to some techniques and tools for developing and maintaining SQL code inside an Agile SDLC. Aaron will use test driven development techniques and commit his code changes to Team Foundation Services and schedule a build. He'll also demonstrate some custom solutions and go over all of the different databases that a DBA might support in an on-premise TFS install.
Speaker(s): Aaron King,
Abstract:
This session will be one big demo where we will build both a Tabular and Multidimensional model side by side to contrast and compare the uses of both methods. By the end of this session you should have a good understanding of both modeling methods and how to make use of them in the future.
Speaker(s): Lance Kolie,
Abstract:
In this session, you'll learn everything you need to know to successfully deliver a modern SSIS solution. We'll cover the mechanics of deployment; creation, configuration and migration of Environment variables; monitoring execution troubleshooting.
Speaker(s): Bill Fellows,
Abstract:
NULL - an unknown value. At least, that's what it's SUPPOSED to be. The problem is, NULL is often treated differently based on what you're doing - even equality is suspect. Join JK as he works on demystifying NULLs in the database, looking at how they interact with various queries and how to work around and with the idiosyncrasies of this sometimes misunderstood concept.
Speaker(s): JK Wood,
Abstract:
For many who come to T-SQL from other languages, dealing with result sets and thinking in set based solutions can be frustrating. Our minds are conditioned to think in processing rows of data, not entire sets. As a consequence many give up and misuse cursors or come up with other ways to create RBAR (Row By Agonizing Row) solutions. Some others try to deal with sets but get caught in the tangle of nested queries. In this session I will deal with Table Expressions with particular emphasis on CTEs or Common Table Expressions. Let me show you how using these simple tools can help simplify your code, bridging the gap between RBAR and set based solutions.
Speaker(s): Larry Toothman,
Abstract:
The definition of confidence is “belief in oneself and one’s powers or abilities” but the authors of the new book “The Confidence Code” define confidence as “the quality that turns thoughts into actions.” Traditionally men have been found to have much more confidence in themselves than do women. For example, in a study at Hewlett-Packard, men applied for a promotion when they thought they could meet 60% of the qualifications while women applied only when they thought they could meet 100%. Attend this WIT session to learn more about confidence and how it impacts your career and life. To prepare for the session, it is recommended that you complete The Confidence Quiz (http://theconfidencecode.com/confidence-quiz/)
Speaker(s): Kathi Kellenberger,
Abstract:
The XML Functionality embedded into SQL Server 2005 and 2008 is one of its most powerful yet least understood features. This seems to be primarily because DBA's shy away from it and developers prefer to work with XML in their code. In this session we will explore the XML features of SQL Server and how we can bridge these two worlds. Topics covered will include retrieving relational data as XML, storing XML in the database using the XML Datatype, XML indexes, and the XQuery functions included in SQL Server. We will also look at using XML as stored procedure parameters as a way to pass large amounts of complex data between client and server.
Speaker(s): Randy Knight,
Abstract:
Window functions were first introduced with SQL Server 2005 and enhanced with SQL Server 2012. They enable easy development and great performance…well, sometimes. Learn what you need to know to take full advantage of these features. What you don’t know can hurt you when you are using window functions.
Speaker(s): Kathi Kellenberger,
Abstract:
Many of us make our living writing reports for other people; it is time SQL server Professionals take advantage of reporting. You will walk away from this session with 40 or more reports designed to review an SQL Server system for its health and to predict potential problems.
Speaker(s): Dennis Graham,
Abstract:
Managing concurrency is one of the most challenging aspects of working with any enterprise DBMS. There is much confusion out there about locking, blocking, and deadlocks. In this demo heavy session we will clear up the confusion.
Speaker(s): Randy Knight,
Abstract:
Violin Memory - Presentation
Speaker(s): Dennis Graham,
Abstract:
What are FileTables? How do they work? What are their limitations? These questions and more will be answered in this demo filled presentation. We will walkthrough the configuration and implementation of this feature. We will show you some use cases on how this functionality can help you manage your data in whatever forms it exists.
Speaker(s): Warren Sifre,
Abstract:
This session will go into details around the Hive framework and how interactive SQL querying can be accomplished on a distributed file system. The session has a live demo showing the key features and will also discuss future enhancements. Is Hive a SQL Server killer? Let's find out.
Speaker(s): Scott Shaw,
Abstract:
Ever wish your horizontal data were vertical for easier data storage, or vice-versa for reporting purposes? Are you writing elaborate routines to transform between them for one-time usage? Are your queries repeating "OUTER JOIN" or "UNION” so often that you wind up back in Kansas when your read them aloud? Join Jeff Foushee as he explains SQL Server's lesser-known PIVOT and UNPIVOT operators using SQL 2014. After this session, you will no longer need to rotate your monitor!
Speaker(s): Jeff Foushee,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: http://www.linkedin.com/in/scottpshaw/
Contact: http://www.dbaexperience.com
Scott Shaw has over a decade of experience in data management. He is a frequent speaker at local and national community events and has co-authored two books on T-SQL. He teaches as well as implements Pig, Hive, Hadoop, as well as teaches courses on SQL Server, and Microsoft BI. He is currently working on a book titled quot;Practical Hive” to be published by Apress publishing. He lives in St. Louis and is a Sr. Solutions Engineer for Hortonworks.
LinkedIn: https://www.linkedin.com/in/dave-bland-sql-server
Contact: https://www.davebland.com
Over 20 years of SQL Server experience that includes being a DBA, BI development and Application development using VB.NET. Dave currently is the Manager of the DBA team at Stericycle. Dave is a Friend of Red-Gate for 2019. He is a frequent presenter at SQLSaturday events and user groups around the country. Has been teaching SQL Server since version 2000 and is the SQL Server instructor at Harper College in Palatine, IL. Current certifications include: • Microsoft Certified Trainer • MCTS: SQL Server 2008, Implementation and Maintenance • MCTS: SQL Server 2008, BI Development and Maintenance • MCSA: SQL Server 2008 • MCSA: SQL Server 2016 • MCSE: SQL Server 2016 - BI • MCDBA: SQL Server 2000 • MCSD • MCSE: Data Management and Analytics
Contact: http://www.sqlslacker.net
JK Wood is a Data Warehouse developer with three years of experience working with SQL Server and has worked and played with computers since the mid nineties. He is passionate about helping people to move beyond just writing code to writing beautiful, functional, and above all maintainable software. JK is an active member of the SQL community. He is involved with the Southwest Missouri SQL Server User Group and blogs at http://www.sqlslacker.net
LinkedIn: https://www.linkedin.com/in/trendoid
Contact: http://www.aaronstanleyking.com
Aaron King is a application architect specializing in enterprise web applications and very large databases.
LinkedIn: http://www.linkedin.com/in/wsifre
Contact: http://www.broadstrokeconsulting.com/blog/, http://www.allegient.com
Warren Sifre has been in the IT community since 1998 and has worked in a variety of industries deploying solutions utilizing MS SQL Server in one capacity or another. In 2003, he decided to make SQL Server his mastery and has since developed skills in most defined disciplines of MS SQL. Currently he is a Principal Consultant and Technology Leader with Moser Consulting. He is responsible for BI Solution Architecture and the mentorship of team members. He has been a SQLSaturday Speaker since 2012, Azure Global Bootcamp, and many user groups in 2015 alone. He has a passion for knowledge transfer and solutions architecture, with a keen interested in Info Security.
Dennis Graham has been working with SQL server since 1992 and working in SSRS since 2002. As an Oakwood consultant, he has built applications for investment firms, medical groups, insurance entities, and manufacturing, he is now in the Managed Services Group using SCOM to monitor SQL Server. He also has 16 years as a trainer.
I have worked in IT for twenty-five years. I have had job responsibilities over the years which have progressively increased my technical skills and involved me in all parts of the development life cycle. For the last five years, working for Scottrade, Inc. I have responsibly for database design and architecture. I have been involved in small and large projects on a half dozen platforms over my career and have experience with what works and what does not.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: https://www.linkedin.com/in/brittongray/
Britton Gray is a veteran of database development, data management, business intelligence, analytics, and data privacy in BI. He has successfully completed projects in a variety of technologies in different technology stacks. Coming from a family full of teachers, he thoroughly enjoys the opportunity to share knowledge and insights; it's an extension of "getting the right information to the right people at the right time" mantra of BI. He lives near Indianapolis, Indiana, and is the Director of BI for Project Lead The Way, a nonprofit organization providing transformative learning experiences in computer science, engineering, and biomedical sciences.
LinkedIn: http://www.linkedin.com/in/randyknight
Contact: http://www.sqlsolutionsgroup.com/blog
Randy Knight is a data professional who has worked with Microsoft technology for over 25 years, focusing on SQL Server since 1997. He has worked in a variety of settings, including 6 years as a database architect for match.com. In 2010, he founded SQL Server Solutions Group LLC, a boutique SQL Server consultancy. A Microsoft Certified Master (MCM) in SQL Server, he speaks often at events all over the country including the PASS Summit, SQLIntersections, and numerous SQLSaturday and User Groups.
Contact: http://IowaTechBear.com
Larry has been a Database Administrator for a non-profit health system in Cedar Rapids, IA since late 2007. With over 20 years of software and database development experience, he was drafted to be the DBA in 1999 for a dev company. Amazed by the wide variety of people in the SQL Server community as well as the support from the "SQL Family" Larry is always looking for opportunities to pay it forward, spread the word mentoring.
LinkedIn: http://www.linkedin.com/in/scottpshaw/
Contact: http://www.dbaexperience.com
Scott Shaw has over a decade of experience in data management. He is a frequent speaker at local and national community events and has co-authored two books on T-SQL. He teaches as well as implements Pig, Hive, Hadoop, as well as teaches courses on SQL Server, and Microsoft BI. He is currently working on a book titled quot;Practical Hive” to be published by Apress publishing. He lives in St. Louis and is a Sr. Solutions Engineer for Hortonworks.
Dennis Graham has been working with SQL server since 1992 and working in SSRS since 2002. As an Oakwood consultant, he has built applications for investment firms, medical groups, insurance entities, and manufacturing, he is now in the Managed Services Group using SCOM to monitor SQL Server. He also has 16 years as a trainer.
Contact: http://www.dbdelta.com
Dan Guzman has been using Microsoft SQL Server since version 4.21 was introduced on the Windows Server platform and has 30 years of experience in Database Administrator, Developer, and Architect roles.
Jeff Foushee has his MCITP certification in both SQL Server and Windows Server. He is also an Enterprise DBA at Louisville-based Humana, Inc., where he supports almost 20,000 databases on 1,800 SQL Servers. His latest endeavor has been around building a warehouse/website in C#/MVC to automate many database-related processes.
LinkedIn: http://www.linkedin.com/in/randyknight
Contact: http://www.sqlsolutionsgroup.com/blog
Randy Knight is a data professional who has worked with Microsoft technology for over 25 years, focusing on SQL Server since 1997. He has worked in a variety of settings, including 6 years as a database architect for match.com. In 2010, he founded SQL Server Solutions Group LLC, a boutique SQL Server consultancy. A Microsoft Certified Master (MCM) in SQL Server, he speaks often at events all over the country including the PASS Summit, SQLIntersections, and numerous SQLSaturday and User Groups.
Sreeni Julakanti is an Enterprise DBA at Humana, Inc., currently working in an Architect role while supporting over 16,000 databases on 1,500 different SQL Servers. He primarily works on troubleshooting performance Issues and fine tuning various database designs and processes. Sreeni holds an MCITP certification in SQL Server and is an active member of the Louisville SQL Users Group, participating in monthly meetings and also participates and presents topic in SQLSaturday.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: https://www.linkedin.com/in/stuartainsworth
Contact: http://codegumbo.com
Stuart Ainsworth (MA, MEd) manages a team of Service Reliability Engineers for the Gladiator Enterprise Information Security Services section of Profitstars, a division of Jack Henry and Associates. He's a former DBA, developer, consultant, and public speaking professor. He's one of the chapter leaders for AtlantaMDF, and a long-time organizer of SQLSaturday's. He tweets infrequently (@codegumbo) and blogs even less often at http://codegumbo.com.
LinkedIn: http://www.linkedin.com/in/billinkc
Contact: http://blog.billfellows.net
Bill Fellows is a SQL Server MVP and has been a database developer for most of his career, with the past 15 years focused on ETL. He is the organizer of Kansas City's eight SQLSaturdays and a speaker at many other SQLSaturdays, User Groups and the PASS Summit. Bill is the owner of Sterling Data Consulting where he gets to solve interesting data problems.
I'm an Independent Business Intelligence Architect / Senior SQL Server DBA at Opportune Tech with 15+ years of professional experience building solutions on the Microsoft platform. My professional experience covers a wide range of industries from marketing, transportation, non-profit, telecom and technology. I enjoy supporting local SQL user groups, sharing knowledge and mentoring.
The following is a list of sponsors that helped fund the event.


Final spacewalk preps during biology, physics studies on ISS
by Mark GarciaThe Expedition 61 crew is about to kick off a series of complex spacewalks on Friday to repair the International Space Station's cosmic particle detector. They had one more spacewalk review Thursday while continuing advanced biology research.
Spacewalkers Luca Parmitano and Andrew Morgan readied the Quest airlock, their U.S. spacesuits and tools for Friday's excursion set to begin at 7:05 a.m. EST. The duo then joined Flight Engineers Jessica Meir and Christina Koch for a final procedures review. All four astronauts called down to Mission Control to discuss their readiness with spacewalk experts on the ground. Live NASA TV coverage begins at 5:30 a.m.
Meir and Koch spent the rest of Thursday on space research and lab upkeep. Meir conducted a test run of a 3-D bioprinter before the device will manufacture complex human organ tissue shapes. Koch measured airflow in the station then serviced microbe samples to extract and sequence their DNA.
Cosmonauts Alexander Skvortsov and Oleg Skripochka focused on their complement of science and maintenance in the station's Russian segment. Skvortsov updated cargo inventory and explored plasma physics for insights into advanced spacecraft designs. Skripochka collected radiation readings and studied how a crew adapts to piloting in space.


{% extends "base.html" %} {% block title %} Latest Results {% endblock %} {% block content %}
DevMason is a new service that runs your tests when you commit your code.
{{ build.success|yesno:"PASSED,FAILED" }} {{ build.host }} - {{ build.user }}


Yesterday I watched The Great Escape (John Sturges, 1963) on television, and I was struck by a scene about an hour into the film which fatally undermines the plot. Up to that point, we are rooting for the Allied prisoners of war who, as is usual in such dramas, say things like “OK, chaps, let's form an Escape Committee and smoke our pipes”, and we accept their statements that it is their duty to try to escape and to otherwise make life as difficult as possible for their Boche captors.
But then comes the scene where Blythe, played by Donald Pleasence, gives an ornithology lecture to some of the men. He whistles the song of the warbler, and then shows them how to draw the masked shrike. We are asked to believe that sensible British chaps would rather risk gruesome death at the hands of the Gestapo when they could see out the war having bird-life explained to them by eerie-eyed Donald Pleasence. This seems to me utterly implausible, and for all the thrills and spills of the remaining two hours, I think the film would have been much better had it concentrated solely on Blythe's ornithology classes.


✅
Success! Contract deployed
You will see it in Delegations Pool List
0" class="d-inline-flex not-for-small">
Contract address:
{{this.contractAddress}}
{{this.copyMessage}}
0"
class="d-inline-flex not-for-big text-center align-self-center justify-content-center">
Copy address
{{this.copyMessage}}


It appears that you have JavaScript disabled. Enabling JavaScript will make this website even fancier! Directions can be found
here.
Currently a placeholder...
Twitter Feed
LinkedIn Profile
GitHub Profile


Codetta is an app making composing music easy for anyone! Developed through collaborations with teachers in training and practising educators, Codetta adopts established ideas from programming to support beginners with creating music. By simply snapping colourful puzzle-like blocks together, any novice can learn how to write expressive music.


{% extends 'base.html' %} {% block title %} Our Philosophy {% endblock %} {% block main %}
We want you to know what makes us, us!
A.D's Machinery formed in 1995 when a husband and wife saw a need in their local community for high quality power tools. Year by year, this small team has grown to serve not just their community but now the entirety of Australia! Embedded within every interaction A.D's team makes are a core set of philosophical beliefs, including:
We don't just operate according to the old ideals - we learn and adapt to the current circumstances. We know how important it is to encourage proper social and environmental awareness within our team and the surrounding community. Here's just a few of the things we're involved in:
We're constantly updating this space, so check in to see what we're up to!