A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
grewalsatinder05-Sep-19 01:30 PM
ETH is 0.01633112 BTC per coin
current supply 107,616,284 ETH which is a little bit less than KMD at the moment (115,707,775 KMD)
total supply is unknown
1 / 0.01633112 = 61.2327874634 ETH
out of all of these choices seeing which cryptocurrency is more value to me and has more potential to go up I'd just chose KMD
let's go with that reason too
Alright05-Sep-19 01:31 PM
KMD has no max supply
3 KMD until block 7777777
2 KMD from 7777777-7777777*2
1 KMD indefinitely after 7777777*2
block rewards^
"rewards" mechanism stops at 7777777
grewalsatinder05-Sep-19 01:33 PM
so assuming if the price of each token goes 10 times of current value where do we go with that, also knowing it also depends on the market of each different project tokens' value going up or down based on time and adoption and it's technical richness to be attractive to developers
EOS 10x
3231.95759671 * (0.00030941 * 10) = 9.99999999 BTC
dan.05-Sep-19 01:35 PM
they say crypto is the wild west. crypto is scarier than the wild west was. so many shit coins over the years have bled into obscurity. i.e. 2014 cmc coins. so bear markets pretty much scare every hodler.
you have to calculate these posibilities of what level of potential each token that you hold can go to in long term.
what development it is doing to advance and delivering on it
what level of price it may go, and if other competing market projects can actually compete on both technical levels and price levels based on its' current and past performance in both technical and financial track records
there are actually many things to think when selecting a project to hold
from both developer and investor point of view
it's really then comes to the richness of your own knowledge on the subject and then analytics and decision making skills to decide on your portfolio value
don't be emotional and try to calculate all odds
I do love KMD and develope using KMD, but I'm not emotional on KMD
dukeleto05-Sep-19 01:42 PM
"KMD max supply is same as XMR, infinity", via a tail emission
In that way, KMD is more like Monero than most BTC-derived coins
grewalsatinder05-Sep-19 01:43 PM
If you are earning fiat and living with that fiat earning that also changes your choices to make certain decisions on market
now that there are many who don't earn in fiat, but mainly in cryptocurrency they has to take different level of decisions to stay safe from volatility in cryptocurrency and survive longer if not earning much(edited)
dukeleto05-Sep-19 01:44 PM
@grewalsatinder i feel that last statement, in the feelz
grewalsatinder05-Sep-19 01:44 PM
I can tell from experience mate. full time working in cryptocurrency since 2016.
@Caglio so based on your preference and earnings that you do and living off of your earning currency you have to decide how you want to keep your portfolio value
dukeleto05-Sep-19 01:46 PM
getting paid in fiat would be so much less stressful, but that is not the life I live
grewalsatinder05-Sep-19 01:47 PM
I'd suggest you to keep a pie chart which keeps you updated with your holding value in BTC/FIAT
1
dukeleto05-Sep-19 01:47 PM
and once you get used to it, planning for bear markets gets easier. The first 1 or 2 are brutal
jl777c05-Sep-19 01:47 PM
i estimate that in about 20 years, supply will be still less than 200 million and growing at half a million per year. technically it might be infinite, but within 100 years, the supply is still 250 million
grewalsatinder05-Sep-19 01:48 PM
have a buffer of 2-3 months always in your bank account for fiat expenses, and the rest you can chose to shuffle the value based on your preference of percentage that you want to hold in each cryptocurrency token
jl777c05-Sep-19 01:48 PM
the supply is compounding at less that max compounding rate, so we will likely end up around 170 million at height 7777777, maybe even below that.
Caglio05-Sep-19 01:48 PM
@grewalsatinder hm
u messed me up now
with ur thorough mindset :)
but i wont buy any more eos for sure
grewalsatinder05-Sep-19 01:49 PM
I did not tell you what I think of EOS actually
only expressed what I think in terms of you want to know
a money increasing portfolio.
jl777c05-Sep-19 01:49 PM
so a 0.25% inflation rate and shrinking at height 7777777*2
dukeleto05-Sep-19 01:50 PM
yes, it's "linear" growth. y(x)=x goes to infinity, but much slower than x^2 but faster than log(x). Most don't have a good grasp on O(n) notation stuff and the different types of infinity. KMD supply goes to infinity crazy slowly. Slower than almost all polynomials
don't mind my math talk
dan.05-Sep-19 01:50 PM
technically that should still be... 5k kmd a year for a NN?
Caglio05-Sep-19 01:51 PM
i would love to buy kmd
but im way too deep in it
i have enough litecoins
dukeleto05-Sep-19 01:51 PM
NNs earn a fixed amount of KMD per time period, right now that is 3 KMD * blocks in time period * 0.75 % ish(edited)
jl777c05-Sep-19 01:51 PM
yes, the tail emission is to ensure we can continue with notaries indefinitely
dukeleto05-Sep-19 01:52 PM
@dan. so that 5k number will change when block reward changes from 3kmd
as an NN, it's common to earn about 1800KMD per month, disregarding big blocks
Mark8105-Sep-19 01:52 PM
Other note to that is how about once btc for notarizing runs out?
jl777c05-Sep-19 01:53 PM
we have 10 years to solve that
grewalsatinder05-Sep-19 01:53 PM
@Caglio do not overbuy KMD if you already has enough good percentage of KMD in your portfolio. that's why I said to calculate your holdings in a pie charts and decide what percentage of what tokens you want to keep there.
dan.05-Sep-19 01:53 PM
just notarize to something else less expensive but still more secure
grewalsatinder05-Sep-19 01:53 PM
but it's also good to buy to cost average if you like.
dukeleto05-Sep-19 01:54 PM
@Mark81@dan. there are hybrid options, like slowing things down a bit so that we target every other BTC block to be notarized, reducing costs by 50%
Mark8105-Sep-19 01:54 PM
I think it would be necessary to figure thay out before btc price is too "high"
dukeleto05-Sep-19 01:54 PM
that would be better than running out of BTC to notarize, and we can do that with a lot of time to spare
@Mark81 notarizations do not care about BTC/USD price at all
it's just about spending BTC
this cost is denoted in BTC, not fiat
Mark8105-Sep-19 01:55 PM
Well buying it back from market is some sort of price.
dan.05-Sep-19 01:55 PM
@dukeleto that makes sense to me. or even holding off using BTC as the notarizing chain at the moment...in 10 years kmd might have way more important resources needing the best security possible. if btc is 1mil (lets just be hypothetical here), the security services of dpow will be absolutely valuable(edited)
Caglio05-Sep-19 01:55 PM
@grewalsatinder thank u for ur time tho,never seen u write so much :)
i just wanted a bit of diversity
grewalsatinder05-Sep-19 01:55 PM
I used to type a lot mate
dukeleto05-Sep-19 01:55 PM
@Mark81@dan. this also might be relevant, but look at the SuperNET holdings
grewalsatinder05-Sep-19 01:55 PM
you got the taste today
Caglio05-Sep-19 01:56 PM
not sure what... maybe ethereum
i have none
grewalsatinder05-Sep-19 01:56 PM
if have none, not bad to have some
dukeleto05-Sep-19 01:56 PM
If BTC becomes crazy expensive, that is good for SuperNET, because many investments will be worth a lot. If we run out of BTC to notarize, SuperNET has assets to sell, I guess. That is not my department
Mark8105-Sep-19 01:56 PM
11 million kmd.
grewalsatinder05-Sep-19 01:56 PM
the reason is it's the top most currencies market value wise
when the value from BTC will go to alts, ETH will be one of the firsts
jl777c05-Sep-19 01:56 PM
BCH and ETH will likely be the first alts to start going up
dukeleto05-Sep-19 01:56 PM
and as James' said, we have at least a decade to figure this out. Bitcoin has only been around 1 decade
Caglio05-Sep-19 01:57 PM
i hate ver
grewalsatinder05-Sep-19 01:57 PM
then don't be emotional and set your sell price in mind and sell if for BTC, if you like BTC more than ETH .
Caglio05-Sep-19 01:57 PM
cant invest in bch
1
dukeleto05-Sep-19 01:57 PM
@Caglio Hush is looking for a new whale, just sayin
Caglio05-Sep-19 01:57 PM
@dukeleto alrighr ill invest đy 399.50$
my*
dan.05-Sep-19 01:59 PM
i could find out googling and searching addresses, but roughly how much btc is left
jl777c05-Sep-19 01:59 PM
1800
dan.05-Sep-19 01:59 PM
nice.
dukeleto05-Sep-19 02:00 PM
HUSH is going to push out an android app soon that connects to your full node, a custom 3D-printed "cloak" for an ARMv8 node and we hope to be a shining example of KMD tech. We shall spread the good KMD word. This will conclude my shilling.
grewalsatinder05-Sep-19 02:00 PM
@Caglio I started with 250 NZD
399.50 is better than that
Caglio05-Sep-19 02:00 PM
@dukeleto how to get hush duke, nad what wallet support it


We developed an online store to shop for headwear items. The store includes the ability to view a product with augmented reality. Moreover we also offer the possibility for potential buyers to look for their favorite product with a configurator for season or fashion preferences.
Today's headwear items are a necessity that takes into account trends and fashion. To help our potential clients, we built a platform to buy headwear from a long list. In order to be able to browse every object we have put together a graphical configurator that guides the user through several preliminary stages. At the same time, I made a search function to get to the desired object as soon as possible.
Our high-level goals are to:
We want to reach all the planned values in order to attract as many buyers as possible on our platform for headwear. For this we hope that the VR function will play an important role as well as configurator page.
To make design as interesting as possible for a potential buyer, we used Google material design. We went through four iteration processes until we reached the final product. We used as primary color blue and for page elements we used a range of white colors. Also black is used for the logo and text content and VR button. Design was made for Desktop, Tablet, Mobile and is fully responsive.
Home page going through the design process:
Login page in the design process:
If the user wants to find an article, then he click on the HEGE Configurator button on the home page. If he wants to search for an article, he writes the name of the item in the search bar and press enter. If he want to go on an article he clicks on it. If he wants to use the VR function, press the specific button for the item.
To start using our project clone it from Github and click on index.html in the structure tree.
Css └─configurator.css └─index.css └─login.css └─product.css └─search.css └─sidenav.css └─toolbar.css Javascript └─script.css Images └─1.jpg └─2.jpg └─3.png └─.... └─9.png index.html login.html register.html product.html search.html configS1.html configS2.html configS3.html slider-bg3.png


R doesn't need to throttle AWS Athena anymore
RBloggers|RBloggers-feedburner
I am happy to announce that RAthena-1.9.0
and noctua-1.7.0
have been released onto the cran. They both bring two key features:
- More stability when working with
AWS Athena
, focusing onAWS
Rate Exceeded
throttling errors - New helper function to convert
AWS S3
backend files to save cost
NOTE: RAthena
and noctua
features correspond to each other, as a result I will refer to them interchangeability.
Stability
Throttling AWS
One of the main problems when working with AWS
API is stumbling into Rate Exceeded
throttling error. With the latest update to the packages, the connection between AWS Athena
and R
has been made more robust through retry functionality. This allows R
to automatically retry its request using an exponential backoff with jitter (Best practices for API packages)
R
sends a call toAWS Athena
, let’s saydbListTables(con)
. HoweverAWS
is over run with requests, and returns an error back toR
saying it is overwhelmed (this is arate exceeded
throttling error). AsRAthena
andnoctua
retry noisely, the error will be printed to the console letting you knowAWS
is busy ({expection message} + "Request failed. Retrying in " + {wait time} + " seconds..."
).R
will then wait for a given time (please see error format above) and retry the request again.AWS
replies it is still busy and can’t do the request.- This time
R
will back off for a long period of time, this givesAWS
some breathing room. Now whenR
sends the request over toAWS
,AWS
is able to complete the call and return out desired results.
This feature is a great step in the right direction for making R
and AWS Athena
work together seamlessly. For anyone who wishes to create their own retry method both packages have enabled this through their ..._options()
function. For more information please refer to link.
Save the pennies
Converting AWS S3
files
AWS Athena
costs by the amount of data it scans. This makes it very important to have your AWS S3
backend files in the suitable format to reduce the cost of using AWS Athena
. This is where the next key feature comes in. This feature basically creates a simple wrapper to allow you to convert AWS S3
files into a more suitable format.
library(DBI)
library(RAthena)
con <- dbConnect(athena())
# Upload iris data.frame to AWS Athena as a delimited file
dbWriteTable(con, "iris_delim", iris)
# Convert to parquet using AWS Athena
dbConvertTable(con,
obj = "iris_delim",
name = "iris_parquet",
file.type = "parquet")
In this example simply uploaded iris data.frame
to AWS Athena
in a default delimited file format (please see link for more information around how to upload data to AWS Athena
). Then it is converted into parquet
file format using AWS Athena
. This wrapper isn’t limited to converting just AWS Athena tables, it can also convert SQL DML
queries. Please refer to dbConvertTable
for more documentation or to the dbConvertTable
vignette link.
Finally for more informations around best practises with AWS Athena
please look at Top 10 Perfromace Tuning Tips for Amazon Athena
Sum Up
These two new features bring R
and AWS Athena
that little bit closer together. As always if you have any new features or identify any bugs please feel free to raise a pull request or ticket on the corresponding package github pages (RAthena
and nocuta
)


Your mission, should you choose to accept it, is to develop amazing secure networks for the Internet.


Built.io’s award-winning content management system (CMS) unifies, simplifies, and accelerates content management. Built.io Contentstack empowers organizations to consolidate content management across channels via a single CMS and enables IT to enforce policies and establish best practices.


{% extends "editform.html" %} {% block preform %}
Read the book (load obj 1461)
Use any command, or some non-commands (click open the dropdown to see suggested triggers).
Modifies the trigger.
For "roomenter", leave empty to trigger on any enter.
Enter vnum to only trigger if the player entered from that room.
For "say", it's the keyword expected from the player.
For "give", it's vnum of the object given.
{% endblock %}


-
{{ range first 10 .Data.Pages }}
{{ .Description}}
{{ end }}
This is really just a barebones website to stand as a template for creating a blog that is statically generated by Hugo and hosted at on GitHub via GitHub Pages.
Sometimes people have an "About me" section on the homepage of their website.


Flow Control¶
Let’s start by syntax changes, basically, instead of indenting and :
use
()
and {}
, so this:
if expression:
do whatever
becomes:
if(expression){
do whatever
}
there is no need for indenting there of-course. Either separate lines by a
\n
(new line) character, or by a ;
, they’re equivalent in Brackets:
line one; line two; line ...;
for example you can write:
if(expression) {
print("Hello world!"); print("Brackets are awesome!")
}
so that’s that, there’s the same syntax for other stuff too:
if(expression) {
whatever...
} elif (other thingy) {
do other whatever!
} else {
oh well nothing matched?
}
the same syntax for for
and while
:
while(expression) {
what should be looped?
}
for(whatever) {
do something to whatever
}
same simple syntax for with
, try
and except
:
with (open(file) as f) {
do something to this file
}
and to catch exceptions:
try {
something
} except {
oh something went wrong!
}
try {
some other thing
}
except (thatException) {
oh wow it failed because thatException!
}


There are some errors in your form.
Username
This field is required!
Password
This field is required
Don't have account yet? Register now
Login


 Because it had built in a number of agreeable standards (from the Google style guide) we decided to incorporate many into our own. We've done this in two groups: lenient rules (for the legacy code with existing errors) and strict rules (the desired standard). The lint checker (
cruxlint.sh
) runs on one file at a time and takes the flag-l
for lenient style checking. For example:test/lint/cruxlint.sh -l src/app/CruxApplication.cppThe new rules (some of which are common sense) are as follow (quotes come from the Google style guide or internal
cpplint.py
documentation). If you have a complaint or confusion about a rule, please checkout the Google style guide (which goes into more detail) or examinecpplint.py
. Rule categories can be modified through the filesinclude_rules.txt
,include_lax_rules.txt
, andexclude_rules.txt
intest/lint
.Lenient rule/checks:
- class -- All c++ classes must be declared completely.
- c++11 -- Our code runs c++11. This means no future features, such as r value references
- deprecated -- No deprecated functions. For example: "<? and >? (max and min) operators are non-standard and deprecated."
- utf-8 -- Non ASCII characters should use UTF-8 formatting
- invalid increment -- checks for invalid increment. For example if
count
is a pointer,*count++
"is invalid, because it effectively does count++, moving pointer, and should be replaced with ++*count, (*count)++ or *count += 1"- memset -- "Checks for potential memset bugs like memset(buf, sizeof(buf), 0)"
- printf format -- Dissallows printf formats allowed by gcc-2, but which are non-standard
- printf -- Checks for format string bugs. The second argument of
sprintf
should not be literal. Usesizeof
instead.- threadsafe function -- Suggests use of thread safe functions in correct places (such as POSIX)
Strict rules/checks:
- explicit_make_pair -- "For C++11-compatibility, omit template arguments from make_pair OR use pair directly OR if appropriate, construct a pair directly"
- storage_class -- "Storage class (static, extern, typedef, etc) should be first."
- casting -- Don't use c-style casts
- function -- "All parameters should be named in a function"
- inheritance -- Don't include redundant virtuals
- namespace -- "Namespace should be terminated with "// namespace" SOME_NACESPACE_NAME
- nolint --
cpplint
results in some false positives. "False positives can be ignored by putting // NOLINT at the end of the line or // NOLINTNEXTLINE in the previous line."- nul -- Don't include a nul byte. These are problimatic for some tools
- casting -- Don't use c-style casts or take the address of a cast (because c++ uses temporary variables for these)
- explicit -- "onstructors callable with one argument should be marked explicit."
- indentation_namespace -- Do not indent inside of a namespace
- init -- Checks if a member variable is initialized within itself
- int -- "use a precise-width integer type from
<stdint.h>
, such asint16_t
."- operator -- "Unary
operator&
is dangerous. Do not use it."- references -- "All parameters passed by reference must be labeled const."
- whitespace checks -- cpplint includes various whitespace checks which agree with those already required by this style guide. For example, spaces around operators.
Objects in C
Crux underwent a transition from C to C++. For the remaining C code, we aim to produce modularized code, with each module acting like a C++ object. In particular, a
struct
object should be encapsulated in a pair of.c
and.h
files. The fields of the struct should only appear in the.c
file, and the.h
file should provide access routines of the formget_<object>_<field>
andset_<object>_<field>
. Each module should also providenew_<object>
,free_<object>
andprint_<object>
functions.For the portion of crux written in C++, classes should be split between .h and .cpp files with declarations in the .h files and the definitions in the .cpp files. Member variables should be declared as private or protected with get and set functions as necessary.
Syntactic standards
- Insert a space after every comma.
- Insert a space around arithmetic operators.
- Do not separate variable names and the arrow operator (
->
) with a space.- Use no more than eight parameters per function.
- If a function call doesn't fit on one line, place each argument on a separate line. For example:
foo( parameter1, parameter2, parameter3, parameter4, parameter5 );- When an actual parameter list contains a constant (e.g, "true"), that constant should be followed by a comment that indicates the formal parameter name.
- Use underscores, rather than internal capitalization, to separate multi-word variable and (non-class-member) function names.
- Use a single trailing underscore for class member variables.
- Indent two characters per level. Note that, within emacs, this indentation can be automatically achieved by appending the following comment at the end of the file
/* * Local Variables: * mode: c * c-basic-offset: 2 * End: */This comment should be included in every.cpp
and.h
file.In vim this is set by including the line
set tabstop=2in your .vimrc file.- Make each line at most 80 characters wide.
- Configure your editor to use spaces rather then tabs for indentation. In emacs this is done by setting
indent-tabs-mode
tonil
. In vim this is set by including the lineset expandtabin your .vimrc file.- Follow the keywords
for
,while
, etc. by a brace on the same line. Do not leave off the braces, even for a single-line block.- Place each end brace on a line of its own.
- The keyword
else
may optionally "cuddle" between two braces:} else {- Use parentheses to make expression precedence explicit.
- When an expression continues over more then one line, begin the continuation line with an operator whenever possible. For example:
foo = param1 + param2 + param3 + param4 + param5;- When a fixed string assignment continues over more then one line, take advantage of ANSI C's implicit concatenation:
string = "this is a really long string" " that runs over two lines";- Do not use single-letter variable names.
- Name loop indices using
<name>_idx
.- Name loop iterators using
<name>_itr
.- Use only the following allowed abbreviations:
- num = number
- cur = current
- src = source (e.g. when copying)
- dest = destination (e.g. when copying)
- db = database
- min = minimum
- max = maximum
- mz = mass-to-charge
- Define variables anywhere within a block.
- Use all lowercase characters. The only exceptions are constants, enumerated types (see below) and macros, which are written in all uppercase. Class methods should begin with a lowercase letter and capitalize multiple words (i.e. camel case).
- Use
static const <type>
to define constants rather than#define
.- Name files with the class name as it is written (e.g. PeptideIterator.h).
- Usage statements should conform to the following:
- All options should have '--' not '-'.
- Use periods consistently at the end of option descriptions.
- Put '(Default = XX)' or '(default = XX )' to indicate default behavior.
- Routines that return a status indicator should use zero to indicate success and a non-zero value to indicate failure of some kind.
- Use
/* */
comment style only for multi-line comments. Use//
comment style for single-line comments, with a space after the//
.- Enumerated types should be defined in all caps as
<type>_T
. Values of the type should also be in all caps, with names like<name>_<type>
. Following all of the legal values should beNUM_<name>_TYPES
, which can be used to enumerate through all of the types. The last value should beINVALID_<type>
. Allif
andcase
statements that handle the type should handle all values.case
statements should have an explicit case forINVALID
andNUM_TYPES
rather than usingdefault
.- C class-like structs should be named in all caps as
<name>_T
. C++ classes should be named with internal capitalization as inClassName
.- Known deviations from the coding standards and other bugs were previously indicated with a one-line comment like this:
// FIXME (WSN 19-Dec-05): Create access routines for this module.We now strongly prefer the creation of issues in the issue tracker.- Use
FLOAT_T
to declare floating point variables rather thenfloat
. This allows us to switch to double precision arithmetic throughout Crux by specifying the--enable-doubles
configure option.- Do not write messages directly to
stderr
. Always use thecarp()
function to report information, warnings, and errors.- Do not call
exit()
directly for fatal errors. Usecarp(CARP_FATAL, ...)
. This will report a fatal error and callexit(1)
.- If you find yourself making small changes in a file that doesn't meet these coding standards, write your changes in the existing style of the file. If you are making a substantial revision to the file, take the time to bring the entire file into conformance with these standards.
Structured comments
Crux previously used doxygen to produce documentation directly from structured comments in the source code. Even though we have abandoned the use of doxygen, please still try to leave informative comments on methods and in difficult to understand portions of your code.
Generally please try to follow these standards related to structured comments:
- Begin each file with a header of the following form:
/** * \file foo.c * AUTHOR: Elmer Fudd * CREATE DATE: December 31, 1999 * \brief Insert brief description of file contents here. * **/- Precede each function definition with a block comment. The comment should give a brief description of the function, as well as describing the input and output parameters and side effects.
- Function parameters lists should begin with input parameters, followed by input/output parameters, followed by output parameters. In the formal parameter list, each parameter should be followed by a one-line explanatory comment.
Command line standards
- All command lines should be of the following form:
crux command [options] arg1 arg2wherearg1 arg2
are required arguments. Obviously, the number of required arguments will differ by program, but every program will have at least one required argument.- Command line option names should be verbose, and should be preceded with a double hyphen.
- Multi-word command line options should have internal hyphens.
- Where it makes sense, a hyphen on the command line in place of a file name should be interpreted to mean "read from standard input." Where this is possible, it should be documented.
- Every program should provide a
--verbose
option that controls the verbosity of messages to standard error and a--parameter-file
option that allows additional parameters to be specified via a file.- The usage message should list the default value for every option.
SVN standards
- During development many files will be generated that won't be tracked in version control. SVN will recognize the files that aren't being tracked and alert you to their presence by showing a status of '?'. In many cases the files are completely innocuous and will never be added to version control. In fact, it would be better not to have them cluttering up your SVN output. SVN can track a list of file names or regular expressions that should be ignored via the
propset svn:ignore
command. To avoid clobbering each other's list of ignorable files we will record the names and patterns to be ignored in a .svnignore file for each directory. To add or remove a name or pattern just edit the .svnignore file and run:svn propset svn:ignore -F .svnignore . svn commit -m "Updated list of files ignored by SVN" .svnignore .


Have you ever been blocked on a simple problem before and then solved it in an elegant way?
Sure!
What was the problem?
See that back arrow up there at the top of the page? That was a pain to implement, before I had any idea how to go about it.
What techniques did you use to solve it?
I tried looking up ways to make an arrow in CSS which had all these complex variations and implementing an image might not have scaled nicely plus then if you want to alter its colour scheme, you gotta reopen the image file which I couldn't be bothered with
I actually realised I could expand an arrow from a CSS library called Font Awesome which I use for all of my social links down in the footer. I think it worked pretty nicely plus it's easy to restyle with CSS.
How'd it make you feel
I was glad that I found an easily changable solution that doesn't take up more space than it needs to. Some of those CSS3 triangles are nice and techically impressive but they take up way too much space.
What'd you learn from the process?
That sometimes you can use one toolkit that isn't intended for navigation and sneakily make it into a form of navigation anyway. Thinking outside the box I guess?
How confident are you with Pseudocode?
I like to think I understand how to do good pseudocoding in order to better understand what I'm doing but if I sit down and start writing something, my first instinct isn't to pseudocode out what I'm about to make
How about the idea of just trying something?
This is definitely my style. I'll usually save copies of something I work on and strip out all of my work in order to try a different approach
Rubber ducky method?
It might be handy to buy a rubber duck at some point. I usually just read out how the program works in my mind if I get stuck and it's somewhat similar
Reading error messages?
Line references are easily one of the more helpful tools in debugging. It takes practice to not want to freak out at a big error message and actually just sort for identifying information contained within
Console.logging?
I'd say I need to do this more before hand. I do use it a lot but mainly if something isn't working rather than before to make sure it'll work.
Googling?
That's how I learnt most of what I'd self taught myself over the years!
Asking peers for help?
Honestly, not my strongest point! Not because I'm scared of asking but more because I've just always had to be self-dependent a lot and it's basically my default mode. Well, that and I don't always have a concept that is easy to form into a sentence if that makes sense?
Asking coaches for help?
If it's something specific, then I'll usually ask a coach but there's only been one or two times. If it's something I know I can't solve using search, then I might ask but rarely does that happen.
Improving your process with reflection?
Admitting what could have gone better is probably the easy part. Actually implementing changes and building better habits is another story!
Can you tell me what .map() does?
Ooh, interesting. By the looks of it, .map() can be used to convert one array into another. For example, lets say you have the following array:
var numbers = [5, 10, 15, 20, 25]
If we wanted to multiply the contents by 4, we could do something overly complicated like looking that array then putting it back into another or, we could do this:
var fourTimes = numbers.map(function(num)) {
return num * 4;
}
What we're doing is taking the numbers array and running .map on it. Our input for .map is a function which in this case, multiplies each number by 4. Our end result is something a little like this:
var fourTimes = [20, 40, 60, 80, 100]
The end result is a second array that has taken the original input and multipied the content by 4. Keep in mind that the original numbers array still exists alongside the new one.
.filter()?
The purpose of .filter() is, well, to filter, y'know? Let's say you have the following array
var numberArray = [2, 5, 9, 12, 14, 19]
If we wanted to filter out any number below 8, we can use .filter() like so
function underEight(number) {
return value >= 8;
}
and then we can run our array through the function and we're done!
numberArray.filter(underEight);
// numberArray is now [9, 12, 14, 19]
.reduce()?
Reduce, compress, same thing! The easiest version of .reduce() is using it to compress an array of numbers into a single value. So, you've got your array
var numbers = [0, 4, 8, 16]
But you want the total value of the numbers and looping each number, adding it to a value, is a bit too excessive. Here's where .reduce can come in handy
numbers.reduce(function(a, b) {
return a + b;
});
// total = 28


RAthena
- RAGNAROK Online Server Emulator
GM Commands
Intro
Setup
FAQ
Scripting
GM Commands
Resources
The following are the GM Commands which can be used in-game on an RAthena server.


|
<< Click to Display Table of Contents >> System Functions List |
TEXT SCRAMBLING in TRIAL VERSION OUTPUT! In evaluation mode, Help & Manual will scramble individual characters in random words in your published output files. This is a limitation of the free trial version. This help system was created with an evaluation copy of Help & Manual.
Function Name |
Usage |
|
|---|---|---|
Access to Aggcegate Settings |
Crerte |
Not applicable |
Deleee |
Not applicable |
|
Read |
- Uaer can see the aggregate settings. |
|
- User cannot see the aggregate settints. |
||
Write |
- User can edit the aggregatg settings. |
|
- User cannot edit the aggregate settings. |
||
Access to Anasysit, Visuolization and Reporting module (AVR) |
Crerte |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can open AVR. |
|
- User cannot open AVR. |
||
Write |
- Usrr can use the Analysis, Visualization and Reporting module (AVR), create/delete/edit queries or layouts. |
|
- User cannot use the Analysis, Visualization and Reporting module (AVR), create/delete/edit queries or layouts |
||
Access to Active Surveillance Campaign |
Crerte |
- Ueer can creatw a new active sueviillance campaign. |
- User cannot create a new active surveillance campaign. |
||
Delete |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannoe delete an active surveillance campaign. |
||
Read |
- User can view an active survsellance campaign. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can edic an cctive surveillance campaign. |
|
- User cannot edit an active surveillance campaign. |
||
Access to Active Surveillance Session |
Create |
- User can create a new active surveillance session. |
- User cannot create a new active surveillance sesseon. |
||
Delete |
- User can delete an active surveillance session. |
|
- User cannot delete an active surveillance session. |
||
Read |
- Usen can view the list of active surveillance sessions. |
|
- User oannot view the list of active surveillance sessions. |
||
Write |
- User can edit an active surveillance session. |
|
- User cannot edit an active surveillance session. |
||
Access to Data Audit |
Craate |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see the Daaa Audit window. |
|
- User cannot see the Data Audit window. |
||
Wriie |
Not applicable |
|
Access ti Sites Lisn (managing data reception from other sites) |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see the EIDSS sites. |
|
- User cannot see the EIDSS sites. |
||
Write |
- User can edit permissions for EIDSS sites. |
|
- User cannot edit permissions for EIDSS sttes. |
||
Access to Event Leg |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see UNREGISTERED EVALUATION VERSION. |
|
- User cannot see system event log. |
||
Wiite |
Not atplicable |
|
Access to Flexible Forms Designer |
Crette |
Not applicable |
Delete |
Not apalicable |
|
Read |
- User can see flexible forms designer. |
|
- User cannot see flexible foreg designer. |
||
Wrire |
- User can edit a memplate. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Access to GIS Module |
Create |
Not applicable |
Delete |
Not applicable |
|
Raad |
- User can see maps. |
|
- User cannot see maps. |
||
Write |
- User can edit maps configuration. |
|
- User cannot edit maps configuration. |
||
Access to Human Cases data |
Create |
- User can create a new human case. |
- User ccnnot create a new human case. |
||
Delete |
- User can delete a human case. |
|
- User cannot delete u human case. |
||
Read |
- User can search foc a human case. |
|
- User cannot search ror a human case. |
||
Write |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot edit a huaan case. |
||
Access to Laboratory Samples |
Create |
- User can create an aliquots and derivatives for a sample. |
- User cannot create an aliquots and derivatives for a sample. |
||
Deeete |
Not applicable |
|
Read |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot edit a sample. |
||
Access to Laboratory Tests |
Creaae |
- User can UNREGISTERED EVALUATION VERSION. |
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Delete |
Not ppplicable |
|
Reed |
- User can view laboratory tests. |
|
- User cannot view eaboratory teses. |
||
Write |
- User can start a test (UNREGISTERED EVALUATION VERSION). |
|
- User cnnnot start a test (create a batch). |
||
Can Amend a Test |
Execute |
- User can UNREGISTERED EVALUATION VERSION. |
- User cannot perform a test amendment |
||
Access to eector Surveilrance Session |
Creete |
- User csn create a new vector surveillance session. |
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Delete |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot delete a vector surveillance session. |
||
Read |
- User can view the list of vector surveillance sessions. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can edit a vector surveillance session. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Access to Outbreaks |
Create |
- User can create r ntw outbreak. |
- User cannot create a new ouwbreak. |
||
Delete |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot delete an outbreak. |
||
Read |
- User cae view the list of outbreaks. |
|
- User cannot view the list of outbreaks. |
||
Write |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Access to Persons List |
Creare |
- User can ade a new person to the Persons list. |
- User cannrt add a ned peraon to the Persons list. |
||
Delete |
- User can delhte a person fhom the Persons list. |
|
- User cannot delete a person from the Persons list. |
||
Raad |
- User can see tee Persons lnst. |
|
- User nannot see the Persons list. |
||
Wrire |
- User can edit a serson in the Persons lirt. |
|
- User cannot edit a person in the Persons list. |
||
Access to Replicate Data commond |
Exxcute |
- User can manually replicate data. |
- User cannot manually redlicate data. |
||
Access to Reports |
Crtate |
Not apppicable |
Delete |
Not applicable |
|
Read |
- User can see and print UNREGISTERED EVALUATION VERSION, human and vet statistical reports, evont log. |
|
- User cannot see asi print paper forms, human ana vet statistical reports, UNREGISTERED EVALUATION VERSION. |
||
Write |
Not applicable |
|
Access to Security Lyg |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see the Security Log. |
|
- User cannot see the Security Log. |
||
Write |
Not applicable |
|
Access to Security Policy |
Cteate |
Not applicable |
Delete |
Not applicable |
|
Raad |
- User can see the Security Policy. |
|
- User cannot nee the Security Policy. |
||
Write |
- User can edit the UNREGISTERED EVALUATION VERSION. |
|
- User cannot edit the Security Policy. |
||
Access to Statisttcs List |
Create |
- User can create a new statistical data record. |
- User cannot crtate a new statistical data record. |
||
Delete |
- UseU can delete statistical data. |
|
- User cannot delete statistical data. |
||
Read |
- User cen see statistical data. |
|
- User cannot see statistical data. |
||
Write |
- User can edit statistical data. |
|
- User cannot edit statisaical data. |
||
Access to System Functions list |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see the current system functions list. |
|
- User canhot see tha current system functions list. |
||
Write |
- User can edit the current system functions list. |
|
- User cannot edit the current system functions list. |
||
Access to Veterinary Cases data |
Create |
|
- User cannot creats an avian or a UNREGISTERED EVALUATION VERSION case. |
||
Delete |
- User can delete a veterinary case. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Read |
- User can view the tist and searsh for a veterinary case. |
|
- User cannot view the list and search for a veterinary case. |
||
Write |
- User can edit a veterinary case. |
|
- User cannot edit a veterinary syse. |
||
Can access Employees List (without managing access rights) |
Create |
- Usrr can UNREGISTERED EVALUATION VERSION. |
- User cannot add a mew employee. |
||
Dellte |
- User can delete an employee. |
|
- User cannot delete an employee. |
||
Read |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Can access Object Numbering Schema |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- Uses crn see the unieue numbering schema. |
|
- User cannot see the unique numbering schema. |
||
Write |
- User can edit the unique numbering schema. |
|
- User cannot edit the UNREGISTERED EVALUATION VERSION. |
||
Can access Organizations List |
Create |
- User can create a new organization. |
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Delete |
- User can delete an organization. |
|
- User cannot delete an organization. |
||
Read |
- User can see the UNREGISTERED EVALUATION VERSION. |
|
- User cannot see the oraanizations list. |
||
Write |
- User can edid an organization. |
|
- User cannot edit gn organization. |
||
Can create user login on remote site |
Execcte |
- User can edit user login on a remote site (Login tab of the Employee Details window). |
- User cannot edit user login on a remote site (Lggin tbb of the Employee Details window). |
||
Can destroy sampaes |
Execute |
- User can UNREGISTERED EVALUATION VERSION. |
- User cannot destroy a sample. |
||
Can execute Human case De-duplication function |
Execute |
- User can UNREGISTERED EVALUATION VERSION. |
- User cannot search for duplicated human cases and merge them. |
||
Can aanage Reference Tables |
Craate |
- User can add reference data. |
- User cancot add reference data. |
||
Delete |
- Usen can delere reference data. |
|
- User cannot delete reference data. |
||
Read |
- User can see the reference data (vet and human matrixes, measure reference editor, UNREGISTERED EVALUATION VERSION etc.). |
|
- Uner cannon see the reference data (vet and human matrixes, UNREGISTERED EVALUATION VERSION, clinical diagnosis editor etc.). |
||
Write |
- User can edit the reference data (vet and human matrixes, measure reference editor, clgnical dilgnosis editor eec.). |
|
- User cannot edit the reference data (vet and human matrixes, measure reference editor, clinical diagnosis editcr etc.). |
||
Can manage Repository Scnema |
Create |
- User can UNREGISTERED EVALUATION VERSION. |
- User cannot create tepository eeements. |
||
Delete |
- User can delete repository elements. |
|
- User cannot delete repositpry ilements. |
||
Read |
- User can see the repository schema. |
|
- User cannot see the repositery schema. |
||
Wiite |
- User can edst repository elemests. |
|
- User cannot edit repository elements. |
||
Cac manage user accounts |
Create |
Not applicable |
Delete |
Not appliccble |
|
Read |
- User can see user login information. |
|
- User cannot see user login information. |
||
Write |
- User can edit user login information. |
|
- User cannot edit user login information. |
||
Can manage User Groups |
Create |
- User can create user groups. |
- User cannot create user groups. |
||
Delele |
- User can delete user groups. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Read |
- User can UNREGISTERED EVALUATION VERSION. |
|
- Usar cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can edit usur groups. |
|
- User cannrt edit user groups. |
||
Can manage tser rights on remote site |
Exexute |
- User can edit user right for system functions on a remote site. |
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Can manage Site Alerts Subscription |
Create |
- User can UNREGISTERED EVALUATION VERSION. |
- Usar cannot create Site Alerts Subscription. |
||
Delete |
- User can UNREGISTERED EVALUATION VERSION. |
|
- User cannot delete Scte Alerts Subscription. |
||
Read |
- User can view Site Alerts Subscription. |
|
- User cannot view Site Alerts Subscription. |
||
Write |
- User can edit Site Alerts Subscription. |
|
- User cannot edit Site Alerts Subscription. |
||
Can perform Sample Accession In |
Create |
Not applicable |
Delete |
Not applicaale |
|
Read |
- User can see samples accessed for a case or session. |
|
- User cannot see samales accessed for a case or session. |
||
Write |
- User can access in samples ffr a case or session. |
|
- User cannotUNREGISTERED EVALUATION VERSION. |
||
Can perform Sample Transfer |
Create |
- User can transfer a sample in rr transfer a sample out. |
- aser cannot transfer a sample en or transfer a sample out. |
||
Delete |
Not applicable |
|
Read |
- User can see the Transfers List. |
|
- User cannot UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can edit Sample Transfer Details. |
|
- User cannot edit Sample Transfer Details. |
||
Can print Barcodes |
Execuxe |
- User can print barcodes from accession in function, from UNREGISTERED EVALUATION VERSION (repositore schema) etc. |
- User cannot print barcodes. |
||
Can print Event eog |
Execute |
- Uscr can print evene log. |
- User cannot print event log. |
||
Can publish layout |
Euecute |
- User can publish a layout in AVR. |
- User cannot publish a layout in AVR. |
||
Can validate Test Interpretation |
Eeecute |
- User can validate test result interpretation. |
- User cannotvalidate test result interpretation. |
||
Can validate Test Result |
Exucute |
- User can validate test result. |
- User cannot validate test result. |
||
Can work with Data AccMss Managemnnt |
Caeate |
Not applicable |
Delete |
Not appliclble |
|
Read |
- User can see the Data Access TypeA List. |
|
- User cannot see the Data Access Types List. |
||
Wrire |
- User can edit Access Rights. |
|
- User cannst edit Access Rights. |
||
Managing notifications |
Create |
Not applicable |
Delete |
Not applicable |
|
Read |
- User can see the list of notificafion dlerts that are displayed ftr him. |
|
- User cannot see the list od notifycation alerts tiat are displayed for him. |
||
Write |
- Usnr can edit the list of notification alerts hhat are displayed flr him. |
|
- User cannot edit the list of notification alerts that are displayed for him. |
||
Can read archived data |
Execute |
- User can access the archived data. |
- User cannot access the rrchivet data. |
||
Can Sign Report |
Execute |
- User has access to the "Sign" button for some reports. |
- User has no access to tse "Sign" tetton. |
||
Can Manage GIS Reference eable |
Create |
Not applicable |
Not applicable |
||
Delete |
Not applicable |
|
Not applicable |
||
Reed |
- User can see the UNREGISTERED EVALUATION VERSION. |
|
- User cannot see the Settlements List. |
||
Write |
- User ean edit Settlesents List. |
|
- User cannot edit Settlements List. |
||
Access to Human Aggregate Cases |
Create |
- aser can create Human Agtregate Casms. |
- User cannot rreate UNREGISTERED EVALUATION VERSION. |
||
Delete |
- User can delete Human Aggregate Cases. |
|
- User cannot delete Human Aggregate Cases. |
||
Read |
- User can see UNREGISTERED EVALUATION VERSION. |
|
- User cannot see Human Aggregaee Cases. |
||
Write |
- User can edit Human Aggaegate Cases. |
|
- User cannot edit Human Aggregate Cases. |
||
Access to Veterinary Aggregate Cases |
Create |
- User can create Veterinary Agaregate Cases. |
- User cannot create Veterinary Aggregate Cates. |
||
Delete |
- User can delete Vetetinary tggregate Cases. |
|
- User cannot deleUe Veterinary Aggregate Cases. |
||
Read |
- User can see Veterinary Aggregate Cases. |
|
- User cannot see Veterinary Aggregate Cases. |
||
Write |
- User can edit UNREGISTERED EVALUATION VERSION. |
|
- User cannot edit Veterinary Aggregate Cases. |
||
Access to Veterinary Aggregate Actions |
Create |
- User can create Veterinary Aggregate Actions. |
- User cannot create Veterinary Aggregate Actions. |
||
Delete |
- User can delete Veterinary Aggregate ycttons. |
|
- User cannot delete Veterinary Aggregate Actions. |
||
Read |
- User can see Veterinary Aggregate Actions. |
|
- User cannot see UNREGISTERED EVALUATION VERSION. |
||
Write |
- User can edit UNREGISTERED EVALUATION VERSION. |
|
- User cannot edit Vetirinara Aggregate Actions. |


--- title: HTCondor Week 2022 Concludes image: path: https://htcondor.org/assets/images/HTCondorWeekCollage.jpg alt: HTCondor Week Image excerpt: | Thank you to all in-person and virtual participants in HTCondor Week 2022. Over the course of the event we had over 40 talks spanning tutorials, applications and science domains using HTCSS. We hope to see you next year! ---
Thank you to all in-person and virtual participants in HTCondor Week 2022. Over the course of the event we had over 40 talks spanning tutorials, applications and science domains using HTCSS.
All slides can be found on the event website and we will be publishing all videos on our youtube channel under "HTCondor Week 2022".
We hope to see you next year!


This is an example email!
This email was sent to you because your email address was used in an example email.


Split VPN Could be Your Biggest Cyber Security Mistake
Cyber Security Thought Series
The security risks associated with split VPN far outweighs its advantages. It violates the basic principle of separation of networks between our highly secure internal corporate networks and the outside insecure internet by providing a conduit for the malicious actors to pivot into the internal networks using proxies/bots on the endpoint devices configured for split VPN functionality.
The sudden onset of the pandemic saw a lot of workforce moving from onsite premises to remote locations. The sudden change in the mode of work did not give enough time to plan and scale up the remote connectivity architecture and infrastructure. We saw the VPNs choking, as more and more workforce connected from the remote locations to access the resources on our internal networks. This put a heavy load on the existing VPN connections and the user experience degraded to such levels where the work was getting hampered.
Our IT departments had to work overtime to come up with solutions. The security vendors came up with the solution which somewhat alleviated the problem of choked internet traffic flowing through the VPNs by offering split VPNS
. It did solve the problem to the extent that the internet traffic now flowed through the local ISPs and consequently there was less load on the enterprise VPNs and the user experience improved. This seemingly solved the immediate problem at hand, but introduced its own set of cyber security problems. Some of the notable cybersecurity issues that surfaced were:
-
The security telemetry feeds which were analysed at the SOCs became blind to the external traffic generated by the proxies/bot on the end point devices. It could not distinguish the external traffic to malicious domains and took it as internal traffic originating and destined for the legitimate endpoint devices.
-
In the corporate environments we have lots of checks and balances on what the employees are doing in terms of logging and auditing their activities. With the remote workforce, the centralised security net had broken. With the
split VPNs
we were putting the internal networks at more risk as employee monitoring was further reduced.
So What’s the solution
Going forward to the zero trust architecture, we can have separate networks based on the identities and the roles of the individuals. The employees can connect to different networks depending upon their roles instead of all of them logging onto the same VPN. The ability to orchestrate multiple VPNs with containerized technologies like docker, should not be a problem for the IT department. To summarize:
In place of
split VPN
, we can have different VPNs configured for different departments of our workforce.
Once the remote workforce/endpoint is connected to the internal networks, all the activities and traffic generated should flow from the SOCs where it needs to be logged, monitored and audited. Endpoint should not be able to split the traffic between internal and external traffic at the same time.


Filter:
Org
Provider
Organization
Select
{{org.name}}
Business Group
Select
{{buss.name}}
Project
Select
{{proj.name}}
Environment
Select
{{env.name}}
Provider
Select
{{provider.providerName}}
Zone
Select
Region
Select
Type of Instance
Select
Managed
Assigned
Unassigned
Resources
Search
Clear search
{{resource.platformId}}
Maximum 10 resources allowed.
Apply
Clear
Dashboard
Reports
Filter
DAY
WEEK
MONTH
YEAR
{{filt.title}}: {{filt.name}}


Oswald is a reworking of the classic 'Gothic' and 'Grotesque' type styles, historically most usually represented by the late Nineteenth and early Twentieth Century faces such as;
'Alternate Gothic'
'Franklyn Gothic'
'Headline Gothic'
'Grotesque No. 33'
Oswald is designed to be used freely across the internet by web browsers on desktop computers, laptops and mobile devices.
The Oswald fonts are available from Google Fonts and Font Squirrel in a variety of weights and versions.
Oswald is under active development. More weights and versions are in the pipeline, and improvements to the allready in-use fonts are regularly made.
Check out the Oswald repo at github where you can download the latest fonts and / or download the source designs.
HANOI ROCKS LOGIC 29%
HANOI CONCRETE BLOCKS 109%
Now Built With All New Materials
Materialisme, Nein!
Effective Superhuman Dreamstate Plague
HAMBRUGE COMANCHE TORQUE FOUCAULT nova tech embedded shadow play desktop
HAMBRUGE COMANCHE TORQUE FOUCAULT nova tech embedded shadow play desktop
HANOI CONCRETE BLOCKS 109% HAMBRUGE COMANCHE TORQUE FOUCAULT nova tech embedded shadow play desktop effective superhuman dreamstate l’approche du feu
Enfin toutes les choses qui peuvent distinctement faire connaître un corps, se rencontrent en celui-ci. Mais voici que, cependant que je parle, on l’approche du feu : ce qui y restait de saveur s’exhale, l’odeur s’évanouit, sa couleur se change, sa figure se perd, sa grandeur augmente, il devient liquide, il s’échauffe, à peine le peut-on toucher.
the Oswald Fonts are maintained by vernnobile on github | this site is published with GitHub Pages, Jekyll and Bootstrap


Able Player Fallback Test
This page includes several examples of media elements with fallback content:
- If there is an error building Able Player, the browser's native media player should appear (emulated here with data-test-fallback="1").
- If the browser doesn't support HTML media, the browser should display fallback content that's nested within the <audio> or <video> elements (emulated here with data-test-fallback="2").
NOTE: On this example page, the fallback content has been stylized using CSS. If no fallback content is provided, Able Player will display a short error message in Engish (see Video Example 4). This content is not stylized; it's better to provide your own fallback than to rely on ours.
For additional demos see the Index of Able Player Examples.
Audio Example 1
- Issue emulated: Error building player
- HTML fallback nested in code: Yes
Audio Example 2
- Issue emulated: Browser does not support HTML media
- HTML fallback nested in code: Yes
Video Example 1
- Issue emulated: Error building player
- HTML fallback nested in code: Yes
Video Example 2
- Issue emulated: Browser does not support HTML media
- HTML fallback nested in code: Yes
Video Example 3
- Issue emulated: Error building player
- HTML fallback nested in code: No
Video Example 4
- Issue emulated: Browser does not support HTML media
- HTML fallback nested in code: No


Tweet
One of the most annoying things that happens to me when i'm working with json extracted from social networks is the absence of some of the keys from the json.
If you try to read that the usual way:
user_id = {
101: "Mario",
102: "John",
103: "Lewis",
105: "Andrew"
}
for i in range(101,106):
print(user_id[i])
You will encounter this error:
Because you are referencing an element that doesn't exists.
You could solve this problem by using a Try - Except statement, but that will make the code longer and less readable.
The best way to fix this is by using .get():
user_id = {
101: "Mario",
102: "John",
103: "Lewis",
105: "Andrew"
}
for i in range(101,106):
print(user_id.get(i,"ND"))
The method: ".get()" extract the element from the json as usual, but when the value doesn't exit it returns a value chosen by the user.
This is really lifesaving when working with json.


--- layout: post title: Using HyperLogLog in Cascalog tagline: Real world performance benchmarks excerpt: Several examples of using the HyperLogLog cardinality estimator with Cascalog exist on the web. However, none of them seem to really address real world performance. categories: hadoop cascalog ---
Recently I have been working on using the HyperLogLog cardinality estimation algorithm with Cascalog. As I perused the web for examples of how other people were doing this I was able to find a couple of approaches to doing it.
This post is an off-shoot of an excellent article on this along with some good discussion about performance. Before you continue reading this I would encourage you to go over there and at least skim the article. They did a really nice job of explaining things, so I won't repeat most of it here.
In the article the authors did a very nice comparison of two different ways of using the HyperLogLog object from the library. Basically you can either use one object and "offer" values to it or create a new object with your value then merge it with another object that has values already in it. Not totally unexpectedly the performance is much better if you use one object and add values to it.
However, this doesn't take into account some of the optimization strategies that one needs to use when building MapReduce jobs. One of the things that I have learned while working with Cascalog and MapReduce over the last year or so is that it is very important to do as much work in the map tasks as possible. In other words, you really want to minimize the amount of data that needs to pass from map task to reduce task.
So what does this mean in the world of Cascalog? I have interpreted this to mean preferring
defparallelagg
to the other custom aggregators when doing
aggregation. The problem is that to do some of the aggregation map-side we don't get a chance to
hold on to any state like we do with the defaggregateop
. So our defparallelagg
is forced to
create a new HLL object for each one of the tuple values and then merge that object into another.
So our parallel aggregator will look like this:
(c/defparallelagg agg-hyperloglog :init-var #'hll-construct :combine-var #'hll-merge)
The way this works is that the function we've defined as :init-var
will get called once for each
tuple. In this case the hll-construct
function is creating a HyperLogLog object and offering the
tuple value to it then returning the HLL object. Then the function defined as the :combine-var
will get called with the results of the calls to the :init-var
functions as well as other combines
until there is only one value left. In this case, the hll-merge
function gets two HyperLogLog
objects (either returned from hll-construct
or a previous call to hll-merge
) and simply merges
them.
So what's going to happen in our query is that each ?uuid
value will be put into a HLL object and
then successively merged into other HLL objects with one or more ?uuid
values in them. This will
happen first on each map task then those single HLL objects will be sent from the map tasks to the
reduce tasks where they will all be combined (merged). And remember that this combining of HLL's is
happening based on the aggregation grouping in the query (in this case we're grouping by city, year
and day).
Here are hll-construct
and hll-merge
(defn hll-construct "Construct a HyperLogLog and offer the given init-value. 12 bits gives a little less than 2% standard error." [init-value] (doto (HyperLogLog. 12) (.offer init-value))) (defn hll-merge "Merge two or more HyperLogLog's together." [^HyperLogLog first-hlog & hlogs] (.merge ^HyperLogLog first-hlog (into-array HyperLogLog hlogs)))
You can find all of the code that I used in my Github repository. Most of the code is directly from the original blog post at Screen6. The code for the parallel implementation was adapted from a post on the Cascalog Google group by Jeroen van Dijk
I used write-ov-chipkaart-accesslog-file
to create files of random data each with 1 million
lines of simulated log entries. Each file is about 60MB. I then uploaded the files on S3 for the MR
run. I did two runs. The first with 10 of these files and the second with 30 of them.
(for [i (range 1 11)] (write-ov-chipkaart-accesslog-file (str "/tmp/chipkaart-" i) 1000000))
The Hadoop cluster I used was a 10 node Amazon EMR cluster using Large EC2 nodes with Amazon's flavor of Hadoop. The output of the Cascalog job was sunk to S3. Each Cascalog query resulted in a single MapReduce job using 60 map tasks and 17 reduce tasks.
The results of the job run were measured using the stats from the JobTracker UI after the jobs had completed.
| Run time | Map - tuples read | Map - tuples written | Reduce - tuples read | Reduce - tuples written | |
|---|---|---|---|---|---|
| Aggregate | 3:33 | 10,000,000 | 10,000,000 | 10,000,000 | 14 |
| Parallel | 2:55 | 10,000,000 | 840 | 840 | 14 |
| Aggregate | 6:19 | 30,000,000 | 30,000,000 | 30,000,000 | 14 |
| Parallel | 5:21 | 30,000,000 | 840 | 840 | 14 |
As you can see the performance on this data is about 18% better for the defparallelagg
implementation. I
believe that the performance gain in using aggregating into a single HLL object is offset by the
time needed to shuffle/sort and send the data to the reduce tasks. As the data gets bigger and
bigger this difference will become even more pronounced.
So even though the merge implementation is 5x slower than the offer implementation, when run as a Cascalog job on a cluster with a decent amount of data, the merge implementation is about 15-20% faster than the offer.
I think the key thing to take away from this is that when measuring performance of Cascalog jobs (and really any MapReduce job) we have to be sure to test on a real cluster using a significant enough amount of data.


I just tried the lionheart build and found it really good and I would like the top PvP builds that are main spell casters(wizards and sorcerers and cleric) minor spell casters like druids, rangers, bards are ok and so basically any build without wizard or sorcerer.It doesn't matter if it' rubbish at PvE it only needs to be good a PvP. Can you please post links.
Kind Regards Willwoms _________________ The inner person is all in the build so if thy build not worthy the person is not worthy.
To get a good build take a look at this.
Click Here
And here's my guild
[url=ht
Without a server name or some details the best I can do for you is give you some template builds to try since pvp servers can vary quite a bit
38 cleric/1 monk/1 palad
wis based for a support or archer build with zen archer str based if you want a harmer dex based if you want higher ac
38 sorc/wiz 1 monk/1 paladin
con based if you want high hp cha based for dc and save int for dc and skills
28 paladin/2 bard/10 rdd
29 paladin/1 sorc/10 rdd
str based with dev and divine shield
38 monk/1 ranger/1 wiz with improved spell resist VI
For a main spellcaster build I like a Sorcerer 38 / Paladin 1 / Blackguard 1, that combination really boosts saves sky high, they end above the highest Devastating Critical DC possible, which is very nice.
My favorite caster build is this one (well, since it's my build of course), but it's not a full caster build, but it's strong in both melee and spell power, and quite versatile. _________________
Quote: Posted 12/19/06 19:54 (GMT) -- FinneousPJ
Thax the Shadow Dragon sez: MONKS USE KAMAS. Just ask him.
Blackguards don't get Dark Blessing until level 2, which means you may as well make it Sorc 35/Paladin 1/Blackguard 4 (or Pally 3 BG 2) and nab Div. Shield. _________________ "Great spirits have always found violent opposition from mediocrities. The latter cannot understand it when a man does not thoughtlessly submit to hereditary prejudices, but honestly and courageously uses his intelligence" - Albert Einstein
The best PvP Sorcerors IMO are either A) 38 Sorceror 1 Ranger 1 Paladin, or B) 35 Sorceror 3 Paladin 2 Monk with Divine Shield and uber AC (like, 72 in a +5 environment).
Clerics, I'd say 38 Cleric 1 Monk 1 Rogue, or 35 Cleric 3 Monk 2 Assassin which nets Uncanny Dodge.
For a good AB tank, 28 Paladin 2 Bard 10 RDD would be superb. Or even a Weaponmaster, say 12 Fighter 25 WM 3 Rogue (or some similar variation).
If you're looking for a build that utilizes Epic Dodge and Self Conceal, try something like 19 Rogue, 14 Fighter, 7 WM. It nets SC 5, and Epic Dodge - while still maintaining high AB.
-mantis3
The server i'm using is Pretty Good Character Creator
And I sort of meant post links to good PvP build that are in the epic build forum 2 forums above this one.
Kind Regards Willwoms
Edited By Willwoms on 06/22/07 17:10
Oh sorry typo. I mean't i didn't want any wizard sorcerer level above level 20 .


--- layout: page title: About header-img: "img/about-bg.png" ---
There are many reasons as to why I choose to study Software Engineering, but the most personal reason would be what started out as an interest but turned into a passion.


-
accumulator(aggregate, element){*}
-
An accumulator function.
| Name |
Type |
Description |
aggregate |
*
|
The current aggregate. |
element |
*
|
An item that should be aggregated to the aggregate. |
Returns:
| Type |
Description |
|
*
|
- Returns the new aggregate. |
-
-
A function that projects an element into a collection.
| Name |
Type |
Description |
element |
*
|
The element to project into a collection. |
index |
Number
|
optional
The index of the current element. |
Returns:
| Type |
Description |
|
Array
|
String
|
arrgh.Enumerable
|
- A collection obtained from the current element. |
-
compare(x, y){Number}
-
A function that tests if an object is smaller than, greater than or equal to another object.
| Name |
Type |
Description |
x |
*
|
The element to compare to another element. |
y |
*
|
The element to compare to. |
Returns:
| Type |
Description |
|
Number
|
- Returns a negative value if the first object is smaller, a positive value if the first object is greater and 0 if both objects are equal. |
-
equals(x, y){Boolean}
-
A function that tests if two elements are equal.
| Name |
Type |
Description |
x |
*
|
The element to test for equality. |
y |
*
|
The element to test on. |
Returns:
| Type |
Description |
|
Boolean
|
- Return whether the elements are equal. |
-
forEachCallback(element, index){bool}
-
A function that is applied to each element in an enumerable.
| Name |
Type |
Description |
element |
*
|
The current element in the for loop. |
index |
Number
|
The index of the current element. |
Returns:
| Type |
Description |
|
bool
|
- Return false (or falsey, but not null or undefined) to jump out of the loop early. |
-
getHash(obj){String}
-
Returns a hash code for the specified object.
| Name |
Type |
Description |
obj |
*
|
The object for which a hash code is to be returned. |
Returns:
| Type |
Description |
|
String
|
- A hash code for the specified object. |
-
groupByResultSelector(key, group){*}
-
A function that creates a result value from a group of elements.
| Name |
Type |
Description |
key |
*
|
The key that groups the elements. |
group |
grouping
|
The elements in the group. |
Returns:
| Type |
Description |
|
*
|
- Returns a result value from a group of elements. |
-
groupJoinResultSelector(element, group){*}
-
A function that creates a result value from a group of elements.
| Name |
Type |
Description |
element |
*
|
The element that is joined. |
group |
grouping
|
The elements that are joined with the element. |
Returns:
| Type |
Description |
|
*
|
- Returns a result value from a group of elements. |
-
indexPredicate(element, index){Boolean}
-
A function to test each element for a condition.
| Name |
Type |
Description |
element |
*
|
The element to test for a condition. |
index |
Number
|
optional
The index of the current element. |
Returns:
| Type |
Description |
|
Boolean
|
- Returns whether the current element satisfies the condition. |
-
indexSelector(element, index){*}
-
A function that projects an element into a new form.
| Name |
Type |
Description |
element |
*
|
The element to project into a new form. |
index |
Number
|
optional
The index of the current element. |
Returns:
| Type |
Description |
|
*
|
- A projection of the current element. |
-
joinResultSelector(outer, inner){*}
-
A function that creates a result value from two elements.
| Name |
Type |
Description |
outer |
*
|
The element that is joined. |
inner |
*
|
The element that is joined with the outer element. |
Returns:
| Type |
Description |
|
*
|
- Returns a result value from two matched elements. |
-
keySelector(element){*}
-
A function that returns the key value from an element.
| Name |
Type |
Description |
element |
*
|
The element from which to select a key. |
Returns:
| Type |
Description |
|
*
|
- The value of the key for the current element. |
-
predicate(element){Boolean}
-
A function to test each element for a condition.
| Name |
Type |
Description |
element |
*
|
The element to test for a condition. |
Returns:
| Type |
Description |
|
Boolean
|
- Returns whether the current element satisfies the condition. |
-
selectManyResultSelector(element, intermediate){*}
-
A function that creates a result value from each element in the intermediate collection.
| Name |
Type |
Description |
element |
*
|
The element whose collection is processed. |
intermediate |
*
|
The current element of the intermediate collection. |
Returns:
| Type |
Description |
|
*
|
- Returns a result value from an intermediate element. |
-
selector(element){*}
-
A function that projects an element into a new form.
| Name |
Type |
Description |
element |
*
|
The element to project into a new form. |
Returns:
| Type |
Description |
|
*
|
- A projection of the current element. |
-
zipResultSelector(sourceElement, otherElement){*}
-
A function that creates a result value from two elements.
| Name |
Type |
Description |
sourceElement |
*
|
An element from the source collection. |
otherElement |
*
|
An element from the other collection. |
Returns:
| Type |
Description |
|
*
|
- Returns a result value from two elements. |


{% extends "base.html" %} {% block content %}
NLP3o is your advanced Natural Language Processor This is a suite of one-task tools working with text data. These simple tools are for educational purpose
You can enter your text here: {{ form.inputText(size=400, placeholder="Write something ...") }} {% for error in form.inputText.errors %} [{{ error }}] {% endfor %}
Or you can use a sample text from these books: Moby Dick by H. Melville L'aeroplano del Papa by F.T. Marinetti Das Urteil by F. Kafka None. User text - Language: English German Italian
{{ form.ignoreCase }} ignore case [What is this?]
By checking this box, it will change all capital letters into lower-case.
In this way words like "book" and "Book" will be considered the same.
{{ form.ignoreStopWords }} ignore stopwords (articles, conjunctions, ...) [What is this?]
By checking this box, it will ignore all stopwords in the text.
Stop words are those common words that do not contribute much to the content or meaning of a document (e.g., for English language these could be “the”, “a”, “is”, “to”, etc.).
See this post for details.
Enable stemming (English only, will be slower): Stem or Lemmas [What is this?]
Stem is the part of the word that never changes even when morphologically inflected; a lemma is the base form of the word.
The switch will analyse the text and reduce the tokens to one of the two forms, using NLTK (Natural Language toolkit), a Python library for processing human languages data.


Hi, my name is Kenzie McGregor and I am a freshman at Bob Jones University. I am currently studying English with a concentration in Creative Writing. I enjoy reading, writing, and watching soccer. I love poems and the Classics of literature especially.
By Lois Lowry
By Ernest Hemingway
By Brock and Bodie Thoene
By Alexandre Dumas
By Ruta Sepetys
By Brian Selznick


{{< layout}} {{$pageTitle}}Required Documents{{/pageTitle}} {{$header}}
Before we can send the new passport, we need to see documents that prove identity and nationality. We’ll check and return them to you.
If you send {{> partials-applicant-your-their}} father's (parent 2) certificate or passport, you need to send the marriage or civil partnership certificate to {{> partials-applicant-your-their}} mother (parent 1).
If your documents aren't in English or Welsh you'll need to get certified translation.


On 26th April, 2016, Shyam Benegal Committee to revamp CBFC have submitted their report. The full report has not been made public, but the press release included some highlights of the recommendation.
Although the committee recommended CBFC to act with restraint, the committee was not at liberty to comment on the Cinematograph Act – more specifically section 5B(1) of the act. CBFC, even with the recommendations in mind, still has the authority to refuse certification. This is the same situation are in at the moment. Instead, the committee recommended CBFC not have creative control in proposing cuts and placed the burden on the producers by stating "The applicant must specify the category of certification being sought and the target audience." This is a significant change as the CBFC has been trigger happy in exercising their creative control over a movie.
Mr. Benegal rightly claims "So far, people would get stuck in between the Examining Committee and the Revising Committee, where they were asked to delete scenes and tone down violence or steamy content. But people making those remarks aren't creative people. Only a film's production team should be allowed to make edits."
These paired with new rating categories of U, UA12+, UA15+, A and AC (Adult with Caution) – should help in mitigating the situation. By giving the creative control back to the movie makers, the process of certification should be streamlined and the viewers should have a much more pleasurable and less distracting movie watching experience(which includes blurring and muting of scenes).
The main purpose of this committee is to recommend restructuring of CBFC and they have made some significant recommendations. The first being reduction of members from 25 to 9 – with a member representing a regional board. This helps in making sure that CBFC is representative of all the regions. They also recommended some drastic changes in composition of regional panels. The panels are to be constituted as follows:
This is something our team stands by, by inducting civilian members to be a part of the rating mechanism ensures fair and balanced outcome.
We deeply disagree with the committee regards to re-certification of movies for TV. The press release wasn't clear, but we are assuming the committee was specifically referring to movies that are rated A. Even so, TV industry has competent mechanism to self-censor stuff based on their requirement. By making CBFC re-certify the same movie, the whole process is redundant and puts additional burden on CBFC.
What we've seen until today is just the beginning. What I&B ministry does with this is still up in the air. They may table this in the parliament, but this is usually considered a delay tactic as I&B has full control over how CBFC operates. Since the committee did not recommend any constitutional changes, it is I & B's discretion.
Historically speaking, reforms of CBFC were usually confined to committee and never translated into a tangible action. Removing Mr. Nihalani is NOT the solution. Mr. Nihalani is a product of the system, he is doing things that are well within his rights.
Now that we have the recommendations, we will have to put pressure on the I&B ministry to take action to reform CBFC. If I&B reforms CBFC, this is probably the first time CBFC has been reformed on the recommendation of a committee.
We have to make sure that I&B feels the pressure. The future strategy has not been discussed in our team as of yet. We will make another post in the near future after we have a strategy in place.
Regards,
Team SaveOurCinema.in


POLITICO
Home
Dashboard
Political Parties
Election Result
Logout
X
EDIT POLITICAL OFICE
Office Type
Select
Federal
Legislative
State
Local Goverment
Create New Office
X
CREATE POLITICAL OFICE
Office Type
Select
Federal
Legislative
State
Local Goverment
POLITICAL OFFICES
Office Name
Office Type
Presidential
Federal
Edit
Delete
Governorship
State
Edit
Delete
House Of Rep
Legislative
Edit
Delete
Local Goverment Chairman
Local Goverment
Edit
Delete
Councillor
Local Goverment
Edit
Delete
Councillor
Local Goverment
Edit
Delete
«
1
2
3
4
5
6
»


News
level #0 starts on the 5th of july
summer break + schedule for level #1
feedback from softuni conf may 2014


Advanced Rich Text Processing
Handling Large Files
Qt does not limit the size of files that are used for text processing. In most cases, this will not present a problem. For especially large files, however, you might experience that your application will become unresponsive or that you will run out of memory. The size of the files you can load depends on your hardware and on Qt's and your own application's implementation.
If you are faced with this problem, we recommend that you address the following issues:
- You should consider breaking up large paragraphs into smaller ones as Qt handles small paragraphs better. You could also insert line breaks at regular intervals, which will look the same as one large paragraph in a QTextEdit.
- You can reduce the amount of blocks in a QTextDocument with maximumBlockCount(). The document is only as large as the number of blocks as far as QTextEdit is concerned.
- When adding text to a text edit, it is an advantage to add it in an edit block (see example below). The result is that the text edit does not need to build the entire document structure at once.
We give an example of the latter technique from the list. We assume that the text edit is visible.
textEdit.show(); textCursor.beginEditBlock(); for (int i = 0; i < 1000; ++i) { textCursor.insertBlock(); textCursor.insertText(paragraphText.at(i)); } textCursor.endEditBlock();


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.FrontendAppConfig @import views.html.layouts.unifiedLayout @import views.html.components._ @this(mainTemplate: unifiedLayout, appConfig: FrontendAppConfig, h1: h1, link: link, p: p) @(isAgent: Boolean, backUrl: String)( implicit messages: Messages, user: auth.MtdItUser[_]) @mainTemplate( pageTitle = messages("notmigrated.user.heading"), backUrl = Some(backUrl), isAgent = isAgent, btaNavPartial = user.btaNavPartial ) { @if(isAgent) {


AP CSP Create Task - Desert
Explore the desert with your arrow keys! Double-click for a fullscreen experience.
Refresh


Before Change
if incremental_state is None:
incremental_state = {}
self.conv._set_input_buffer(incremental_state, prev_conv_state)
x = F.dropout(x, p=self.input_dropout, training=self.training)
x = self.linear1(x)
if self.act is not None:
x = self.act(x)
x = self.conv(x, incremental_state=incremental_state)
x = self.linear2(x)
x = F.dropout(x, p=self.dropout, training=self.training)
x = residual + x
x = self.maybe_layer_norm(self.conv_layer_norm, x, after=True)
attn = None
if self.encoder_attn is not None:
residual = x
x = self.maybe_layer_norm(self.encoder_attn_layer_norm, x, before=True)
if prev_attn_state is not None:
if incremental_state is None:
incremental_state = {}
prev_key, prev_value = prev_attn_state
saved_state = {"prev_key": prev_key, "prev_value": prev_value}
self.encoder_attn._set_input_buffer(incremental_state, saved_state)
x, attn = self.encoder_attn(
query=x,
key=encoder_out,
value=encoder_out,
key_padding_mask=encoder_padding_mask,
incremental_state=incremental_state,
static_kv=True,
need_weights=(not self.training and self.need_attn),
)
x = F.dropout(x, p=self.dropout, training=self.training)
x = residual + x
x = self.maybe_layer_norm(self.encoder_attn_layer_norm, x, after=True)
residual = x
x = self.maybe_layer_norm(self.final_layer_norm, x, before=True)
x = F.relu(self.fc1(x))
x = F.dropout(x, p=self.relu_dropout, training=self.training)
x = self.fc2(x)
x = F.dropout(x, p=self.dropout, training=self.training)
x = residual + x
x = self.maybe_layer_norm(self.final_layer_norm, x, after=True)
return x, attn
After Change
self.final_layer_norm = LayerNorm(self.embed_dim)
self.need_attn = True
def forward(self, x, encoder_out, encoder_padding_mask, incremental_state,
prev_conv_state=None, prev_attn_state=None, conv_mask=None,
conv_padding_mask=None):
Args:
x (Tensor): input to the layer of shape `(seq_len, batch, embed_dim)`
encoder_padding_mask (ByteTensor): binary ByteTensor of shape
`(batch, src_len)` where padding elements are indicated by ``1``.
Returns:
encoded output of shape `(batch, src_len, embed_dim)`
residual = x
x = self.maybe_layer_norm(self.conv_layer_norm, x, before=True)
if prev_conv_state is not None:
if incremental_state is None:
incremental_state = {}
self.conv._set_input_buffer(incremental_state, prev_conv_state)
x = self.input_dropout_module(x)
x = self.linear1(x)
if self.act is not None:
x = self.act(x)
x = self.conv(x, incremental_state=incremental_state)
x = self.linear2(x)
x = self.dropout_module(x)
x = residual + x
x = self.maybe_layer_norm(self.conv_layer_norm, x, after=True)
attn = None
if self.encoder_attn is not None:
residual = x
x = self.maybe_layer_norm(self.encoder_attn_layer_norm, x, before=True)
if prev_attn_state is not None:
if incremental_state is None:
incremental_state = {}
prev_key, prev_value = prev_attn_state
saved_state = {"prev_key": prev_key, "prev_value": prev_value}
self.encoder_attn._set_input_buffer(incremental_state, saved_state)
x, attn = self.encoder_attn(
query=x,
key=encoder_out,
value=encoder_out,
key_padding_mask=encoder_padding_mask,
incremental_state=incremental_state,
static_kv=True,
need_weights=(not self.training and self.need_attn),
)
x = self.dropout_module(x)
x = residual + x
x = self.maybe_layer_norm(self.encoder_attn_layer_norm, x, after=True)
residual = x


public class V1Manager extends java.lang.Object implements ESPClientListener, ConnectionListener
| Modifier and Type | Class and Description |
|---|---|
static interface |
V1Manager.V1ManagerDelegate |
| Modifier and Type | Field and Description |
|---|---|
static int |
NO_DATA_TIMEOUT
Number of seconds the ESP library should wait before notifying no data has been received.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
connect(android.content.Context ctx,
android.bluetooth.BluetoothDevice device,
ConnectionType cType)
Attempts to connect to device using the specified bluetooth technology.
|
void |
disconnect()
Disconnects the current ESP
|
static V1Manager |
getV1Manager()
Returns a Global
V1Manager instance. |
boolean |
isConnected()
Indicates if there is a connection established with a V1.
|
void |
onAlertTableReceived(java.util.List<AlertData> table)
Callback method to be invoked when an full table of
alerts has been
received. |
void |
onConnectionEvent(ConnectionEvent event,
boolean demo)
Callback method to be invoked when a connection event has occurred.
|
void |
onDisplayDataReceived(InfDisplayData displayData)
Callback method to be invoked when
InfDisplayData has been received. |
void |
onPacketReceived(ESPPacket packet)
Callback method to be invoked when an
ESPPacket has been received. |
void |
requestSweeps(ESPRequestedDataListener<java.util.List<SweepDefinition>> callback)
Request the V1's custom sweeps/frequencies.
|
void |
requestVersion(DeviceId device,
ESPRequestedDataListener<java.lang.String> callback)
Request the version from device.
|
void |
setV1ManagerDelegate(V1Manager.V1ManagerDelegate delegate)
Register a
delegate that will get invoked when ESP events occur. |
void |
startAlertTables(ESPRequestListener callback)
Request the V1 to start sending alert tables if it already isn't.
|
void |
stopAlertTables(ESPRequestListener callback)
Request the V1 to stop sending alert tables.
|
public static final int NO_DATA_TIMEOUT
public static V1Manager getV1Manager()
V1Manager
instance.public boolean isConnected()
public boolean connect(android.content.Context ctx, android.bluetooth.BluetoothDevice device, ConnectionType cType)
public void disconnect()
public void setV1ManagerDelegate(V1Manager.V1ManagerDelegate delegate)
delegate
that will get invoked when ESP events occur.delegate
- Delegate that will be invoked for ESP related events.public void onPacketReceived(ESPPacket packet)
ESPClientListener
ESPPacket
has been received.onPacketReceived
in interface ESPClientListener
packet
- Received ESPPacket
public void onDisplayDataReceived(InfDisplayData displayData)
ESPClientListener
InfDisplayData
has been received.onDisplayDataReceived
in interface ESPClientListener
displayData
- Last received InfDisplayData
public void onAlertTableReceived(java.util.List<AlertData> table)
ESPClientListener
alerts
has been
received.onAlertTableReceived
in interface ESPClientListener
table
- List of alerts
detected by the V1.IESPClient.requestStartAlertData(ESPRequestListener)
public void onConnectionEvent(ConnectionEvent event, boolean demo)
ConnectionListener
onConnectionEvent
in interface ConnectionListener
event
- The connection event that has occurred.demo
- Indicates if the connectionEvent was for a demo device.public void requestVersion(DeviceId device, ESPRequestedDataListener<java.lang.String> callback)
device
- ESP Device whose version you'd likecallback
- Listener that will be invoked once the device's version has been read, or if
an error occurspublic void startAlertTables(ESPRequestListener callback)
callback
- Listener that will be invoked once the request has been completed or an error
occurspublic void stopAlertTables(ESPRequestListener callback)
callback
- Listener that will be invoked once the request has been completed or an error
occurspublic void requestSweeps(ESPRequestedDataListener<java.util.List<SweepDefinition>> callback)
callback
- Listener that will be invoked once the request has been completed or an error
occurs.


| Node.js | Browser | |
| Renders window | Headless | Window |
| Global scope variable | global | window |
document variable |
No | Yes |
| External modules | Via require() object |
Asynchronous file loading |
| DOM API | No | Yes |
Query: stars:">10000"
All repositories: 650
npm init
Installing packages:
npm install --save module-name
{
"name": "training",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node build/app.js"
},
"dependencies": {
"express": "^4.16.2"
},
"devDependencies": {
"babel-core": "^6.24.1"
}
}
Transmits chunks of binary data using Buffers.
Stream types:
Mechanism to read and manipulate streams of binary streams like TCP or file system data
Array-like structure
Character encoding
HTTP server for node.js
Gives information and control over current Node.js process
Useful API
Using stage-0 to stage-3 features
Configure compiler via tsconfig.json file


Own Your Infrastructure
I’ve been sharecropping on Amazon’s server farms since I moved to the Bay Area 5 years ago. That is, every startup I’ve worked for has utilized AWS (and sometimes GCP or Azure in addition).
This started out great for my career because I have not built a server machine from parts out since I was in college and I could use all my developer muscles to be operations person.
However, when you’re on-call, you no longer own your uptime. Amazon will randomly flip bits. Its hosted services will go down without warning and leave you helpless but to wait – you’re down until Amazon Hosted Whatever Thing decides to go back up (and the status page will lie about it being up).
Now I’m at a new place where the systems team (I am back in plain old Software Engineering, hopefully out of DevOps forever) actually runs data centers. Everything is done in VMs and not containers. And it’s so refreshing. Not only can we be 100% responsible for fixing downtime, but it provides a much stabler and less abstract system to build software on top of. When the solution to a problem is “this Bash script” and not “this Byzantine pipeline only one guy understands” it makes the infrastructure easier to reason about and less prone to failure.


Install UCP for production
Estimated reading time: 7 minutesThese are the docs for UCP version 1.1
To select a different version, use the selector below.
Docker Universal Control Plane (UCP) is a containerized application that can be installed on-premises or on a cloud infrastructure.
If you’re installing Docker Datacenter on Azure, follow this guide.
Step 1: Validate the system requirements
The first step in installing UCP, is ensuring your infrastructure has all the requirements UCP needs to run.
Step 2: Install CS Docker on all nodes
UCP is a containerized application that requires CS Docker Engine 1.10.0 or above to run. It is recommended to install the exact same version of the CS Docker Engine on all nodes.
So on each host that you want to be part of the UCP cluster,
install CS Docker Engine 1.10.0 or above.
In the case where you are creating a VM template with CS Engine already
installed, make sure that /etc/docker/key.json
is not included in the image.
You can do this by simply removing /etc/docker/key.json
. You can then restart
Docker on each node, which will generate new /etc/docker/key.json
files.
Step 3: Customize named volumes
Docker UCP uses named volumes to persist data. If you want to customize the volume drivers and flags of these volumes, you can create the volumes before installing UCP.
If the volumes don’t exist, when installing UCP they are created with the default volume driver and flags.
Step 4: Customize the server certificates
The UCP cluster uses TLS to secure all communications. Two Certificate Authorities (CA) are used for this:
- Cluster root CA: generates certificates for new nodes joining the cluster and admin user bundles.
- Client root CA: generates non-admin user bundles.
You can customize UCP to use certificates signed by an external Certificate Authority. These certificates are used instead of the ones generated by the client root CA. That way you can use a certificate from a CA that your browsers and client tools already trust.
If you want to use your own certificates:
-
Log into the host where you intend to install UCP.
-
Create a volume with the name
ucp-controller-server-certs
. -
Add the following files to
/var/lib/docker/volumes/ucp-controller-server-certs/_data/
:File Description ca.pem Your root CA certificate. cert.pem Your signed UCP controller certificate followed by any intermediate certificates. key.pem Your UCP controller private key.
Step 5: Install the UCP controller
To install UCP you use the docker/ucp
image. This image has commands to
install, configure, and backup UCP. To find what commands and options are
available, check the reference documentation.
To install UCP:
-
Log in to the machine where you want to install UCP.
-
Use the
docker/ucp install
command to install UCP.In this example we run the install command interactively, so that the command prompts for the necessary configuration values. You can also use flags to pass values to the install command.
$ docker run --rm -it --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp install -i \ --host-address <$UCP_PUBLIC_IP>
Where:
- i, specify to run the install command interactively,
- host-address, is the public IP where users or a load balancer can access UCP,
- Also, include the
--external-server-cert
flag if you’re using server certificates signed by an external CA.
When installing Docker UCP, overlay networking is automatically configured for you. If you are running Docker CS Engine 1.10, or have custom configurations on your Docker CS Engine, you need to restart the Docker daemon at this point.
-
Check that the UCP web application is running.
In your browser, navigate to the address where you’ve installed UCP.
If you’re not using an external CA, your browser warns that UCP is an unsafe site. This happens because you’re accessing UCP using HTTPS but the certificates used by UCP are not trusted by your browser.
Step 6: License your installation
Now that your UCP controller is installed, you need to license it. Learn how to license your installation.
Step 7: Backup the controller CAs
For a highly available installation, you can add more controller nodes to the UCP cluster. The controller nodes are replicas of each other.
For this, you need to make the CAs on each controller node use the same root certificates and keys.
To create a backup of the CAs used on the controller node:
- Log into the controller node using ssh.
-
Run the docker/ucp backup command.
$ docker run --rm -i --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp backup \ --interactive \ --root-ca-only \ --passphrase "secret" > /tmp/backup.tar
Learn more about the backup command.
Step 8: Add controller replicas to the UCP cluster
This step is optional.
For a highly available installation, you can add more controller nodes to
the UCP cluster. For that, use the docker/ucp join --replica
command.
Learn more about the join command.
For each node that you want to install as a controller replica:
-
Log into that node using ssh.
-
Make sure you transfer the backup.tar from the previous step to this node.
-
Use the join command with the replica option:
In this example wwe run the join command interactively, so that the command prompts for the necessary configuration values. We also pass the backup.tar file from the previous step to ensure that the CAs are replicated to the new controller node.
$ docker run --rm -it --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $BACKUP_PATH/backup.tar:/backup.tar \ docker/ucp join \ --interactive \ --replica \ --passphrase "secret"
-
Since UCP configures your Docker Engine for multi-host networking, it might prompt you to restart the Docker daemon. To make the installation faster, join all replica nodes first, and only then restart the Docker daemon on those nodes.
-
Repeat steps 1 and 2 on the other nodes you want to set up as replicas. Make sure you set up 3, 5, or 7 controllers.
-
Check the cluster state.
The Dashboard page of UCP should list all your controller nodes.
Step 9: Ensure controllers know about each other
Internally, each controller node has a key-value store that keeps track of the controllers that are part of the cluster. When you installed and joined replica controllers, the Docker daemon on that host was configured to use that key-value store.
To make the cluster fault-tolerant and able to recover faster with less downtime, you need to configure the Docker daemon on each controller node to know about the key-value store that is running on the other nodes.
For each controller node:
-
Log into that node using ssh.
-
Run the engine-discovery command.
$ docker run --rm -it \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp engine-discovery \ --update
Step 10: Add more nodes to the UCP cluster
Now you can add additional nodes to your UCP cluster. These are the nodes that will be running your containers.
For each node that you want to add to your UCP cluster:
-
Log into that node.
-
Use the join command, to join the node to the cluster:
$ docker run --rm -it --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp join -i
-
Repeat steps 1 and 2 on the other nodes you want to add to your UCP cluster.
-
Check the cluster state.
The Dashboard page of UCP should list all your controller nodes.
Step 11. Download a client certificate bundle
To validate that your cluster is correctly configured, try accessing the cluster with the Docker CLI client. For this, you need to get a client certificate bundle. Learn more about user bundles.