Advanced Form Processing
In the last lesson, you learned how to decode form data, and mail it
to yourself. However, one problem with the previous script is, it doesn't
allow for any error-checking, or specialized processing. You might not
want to get blank forms, or you may want to require certain fields to
be filled out. You might also want to write a quiz or questionnaire,
and have your script take different actions depending on the answers. All
of these things require some more advanced processing of the form data.
All that's required here is to know how to test conditions in Perl. Probably the main one you'll use in a form-handling script is the if-elsif condition:
if ($varname eq "somestring") { ...do stuff here if the condition is true } elsif ($varname eq "someotherstring") { ...do other stuff } else { ...do this if none of the other conditions are met }
The elsif and else blocks are optional; if you are only testing whether a particular variable is true or not, you can just use a single if block.
In Perl there are different conditional test operators, depending on whether the variable you want to test is a string or a number. Here's the list of them:
| Numbers | Strings | |
|---|---|---|
| $x is equal to $y | $x == $y | $x eq $y |
| $x is not equal to $y | $x != $y | $x ne $y |
| $x is greater than $y | $x > $y | $x gt $y |
| $x is greater than or equal to $y | $x >= $y | $x ge $y |
| $x is less than $y | $x < $y | $x lt $y |
| $x is less than or equal to $y | $x <= $y | $x le $y |
Basically, if it's a string test, you use the letter operators (eq, ne, lt, etc.), and if its a numeric test, you use the symbols (==, !=, etc.). Most form data is going to be string values, so you'll probably use the letter operators most of the time.
Let's try it. Copy your form2.cgi to a new script called form3.cgi, and insert this conditional test before the open(MAIL) statement:
if ($FORM{'name'} eq "") { print "
Error!
\n"; print "Please fill out the field for your name.
"; die; }
Now try testing it. Just push "submit" below, without filling out any of the fields:
A blank form submission will give you an error, but if you fill out the field for your name, it will succeed.
You can extend this to test for multiple fields at the same time:
if ($FORM{'name'} eq "" || $FORM{'email'} eq "" || $FORM{'age'} eq "") { print "
Error!
\n"; print "Please fill out the field for your name.
"; die; }
The above code will return an error if any of the name, email, or age fields are left blank. The conditions are separated by the || operator, which is an OR statement - if any of (1 or 2 or 3) is true, then the condition is met.
Handling Checkboxes
You may want to include checkboxes in your form, to allow the viewer
to select one or more options. But how do you decode these inside
your CGI?
If you just want to display them in your email message, you can just print them like you would any text field; each checkbox has a different name. Here's an example of the HTML form code for checkboxes:
<input type="checkbox" name="red" value=1> Red
 <input type="checkbox" name="green" value=1> Green
 <input type="checkbox" name="blue" value=1> Blue
 <input type="checkbox" name="gold" value=1> Gold

This example lets the viewer pick as many options as they want - or none, if they prefer. While you can set the value="whatever" part of the checkbox field to any value you want, if you use integer 1's, it will mean less code is required inside the CGI. Here's an example of the Perl code that would deal with the above checkboxes:
@colors = ("red","green","blue","gold"); foreach $x (@colors) { if ($FORM{$x} == 1) { print "You picked $x.\n"; } }
NOTE: if you use value=1, then your Perl code can use $FORM{$x} == 1. If you mistakenly put quotes around the 1, such as value="1", then your Perl code will not work unless you change the == operator to an eq. 1 is an integer number, "1" is a string.
Here's the above code in action.
Handling Radio Buttons
Radio buttons differ from checkboxes in that you can have several buttons
that share the same field name in the form itself - thus allowing the
viewer to only select one of a series of options. To distinguish each
option, the buttons themselves must have different values. For example:
<input type="radio" name="color" value="red"> Red
 <input type="radio" name="color" value="green"> Green
 <input type="radio" name="color" value="blue"> Blue
 <input type="radio" name="color" value="gold"> Gold

This is similar to our checkboxes example, only in this case, each radio button has the same field name, but a different value. It's easiest to set the value to a relevant name of the thing being picked - in this case the values are set to the name of the color being picked. Radio buttons can be handled in Perl fairly simply:
print "Your favorite color is: $FORM{'color'}
\n";
You see here why it is best to set the value to something significant and meaningful - it lets you just print out the radio button and its value, without having to also store another list inside your cgi, to show what each button means.
Here's the above code in action.
You could even take the above one step further. Say you not only want to tell the viewer what color they picked, but you want to SHOW it to them also. In your perl script, you could do something like this:
%colors = ("red","ff0000", "green","00ff00", "blue","0000ff", "gold","ffcc00"); print "<title>form6.cgi</title>\n"; print "\n"; print "
Your favorite color is: $FORM{'color'}

\n"; print "";
The above actually sets the background color to whatever color you picked. It's using an associative list, %colors, whose key values are the same as the data value of the radio buttons in the form itself.
Here's the example:


Internationalizing and localizing a site are fantastic ways to expand your audience and ensure that all visitors can get to the information they need. However, it often comes with a performance penalty. Below are some strategies you can employ to reduce the overhead of i18n and l10n.
Not all translation adapters are made equal. Some have more features than others, and some perform better than others. Additionally, you may have business requirements that force you to use a particular adapter. However, if you have a choice, which adapters are fastest?
Zend Framework ships with a variety of translation adapters. Fully half of them utilize an XML format, incurring memory and performance overhead. Fortunately, there are several adapters that utilize other formats that can be parsed much more quickly. In order of speed, from fastest to slowest, they are:
If high performance is one of your concerns, we suggest utilizing one of the above adapters.
Maybe, for business reasons, you’re limited to an XML-based translation adapter. Or perhaps you’d like to speed things up even more. Or perhaps you want to make l10n operations faster. How can you do this?
Both Zend_Translator and Zend_Locale implement caching functionality that can greatly affect performance. In the case of each, the major bottleneck is typically reading the files, not the actual lookups; using a cache eliminates the need to read the translation and/or localization files.
You can read about caching of translation and localization strings in the following locations:
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Compiler Project Overview
You are going to be implementing the core of a simple programming language called "Wabbit." Wabbit supports the following features:
-
Evaluation of expressions (math)
-
Integers, floats, characters, and bools.
-
Assignment to variables
-
Printing
-
Basic control flow (if, while)
-
User-defined functions
Although the language is simple, you are going to have to write all of the core components of an actual compiler, including all of the parsing, type checking, control-flow analysis, intermediate code generation, and output code.
The implementation approach is going to be incremental, but strongly focused on understanding the problem, design, and testing. We’ll start by focused on the internal data models, semantics, and issues associated with type checking. From there, the compiler will expand to include other stages including code generation, lexing, and parsing.
Ultimately, the final output of your compiler will be Web Assembly, LLVM, or transpiled Python. These three targets will give you a rich flavor of what a compiler can do and how different things work.
A Taste of Wabbit
Here is a sample of a simple Wabbit program that computes the ever-so-useful Fibonacci numbers:
/* fib.wb - Compute fibonacci numbers */
const LAST = 30; // A constant declaration
// A function declaration
func fibonacci(n int) int {
if n > 1 { // Conditionals
return fibonacci(n-1) + fibonacci(n-2);
} else {
return 1;
}
}
func main() int {
var n int = 0; // Variable declaration
while n < LAST { // Looping (while)
print fibonacci(n); // Printing
n = n + 1; // Assignment
}
return 0;
}
The fib.wb
program above can be found in the directory
Programs/fib.wb
.
Running and Compiling Programs
Ultimately the wabbit
compiler will allow programs to be compiled
and executed in a variety of ways. First, you’ll be able to transpile
Wabbit source to a Python script.
bash % python3 -m wabbit.python Programs/fib.wb
bash % python3 out.py
1
1
2
3
5
8
13
21
34
55
...
bash %
You should see output similar to the above being generated, albeit very slowly. This is the most portable technique for running Wabbit code as it involves nothing but pure Python code.
The fib.wb
program can also be compiled to a stand-alone executable:
bash % python3 -m wabbit.compile Programs/fib.wb
bash % ./out.exe
1
1
2
3
5
...
bash %
This creates a program called out.exe
. If you run it, you should
see the same output as the Python code, but substantially faster. This
is executing native machine code on your system. Creating this
executable requires the clang
C/C++ compiler. If you don’t have
it installed correctly, compilation will probably fail.
If you don’t have clang
installed, you’ll also be able to run the program
as a just-in-time compiled binary inside Python like this:
bash % python3 -m wabbit.run Programs/fib.wb
1
1
2
3
5
...
bash %
Both the compile
and run
options use LLVM to generate native
machine code.
The final target for Wabbit is Web Assembly. You can create a .wasm
file as follows:
bash % python3 -m wabbit.wasm Programs/fib.wb
This creates a file out.wasm
. To run this program in the browser,
launch a web server:
bash % python3 -m http.server
Next, go to your browser and load http://localhost:8000/test.html.
You should see the output the program appearing on a web page.
Refer to the file test.html
to see how it’s done.
Wabbit Language Reference
The Wabbit.html
file contains an official specification for the language.
Playground
The SillyWabbit/
directory contains a full implementation of the language
interpreter in a form where you can experiment with Wabbit programs and see
what they do. See the README file in that directory for more information.


Get information on local doctors that can help!
Enter doctors's first name.
Enter doctor's last name
Enter your primary symptom
Get info on local doctors.


Week #5: Cultural
Peer Pairing & Feedback
For the most part I've really enjoyed the pairing experience. Initially I was surprised to hear that pairing was a common practice in coding. Now that I've had some experience with it I can see how its a more productive approach. There are times when I'm working along, hit something I don't understand, and I'll be stuck there for hours. When pairing, my partner will often save the day and we're able to blast through the obstacle and keep moving forward.
I've been somewhat surprised at how strong the communication has been in most pairing sessions. Programmers aren't known for their amazing interpersonal skills. We're breaking stereotypes here guys. I've found that most partners have been easy to get along with, patient, and knowledgeable. Most have been willing and able to help me better understand concepts that I'm not completely clear on. This has allowed me to get a lot more out of pairing sessions than when I work independently.
The most useful piece of feedback that I've received is that I withdrew when I didn't seem to understand the code. I would agree that this is true. In many of the pairing sessions I've been a little intimidated by my partner's coding knowledge. I often feel like others have a better understanding of the material. There have been times when I've felt so out of my league that my instinct was to just get out of the way. This is not the right approach. I should be better utilizing these opportunities to ask questions and see if my partner can breakdown the code for me. This is something I will be more aware of moving forward.


A set of constants for the Animation Styles used for transition on table view rows.
| Name | Type | Description |
|---|---|---|
| BOTTOM | int | The inserted row or rows slides in from the bottom; the deleted row or rows slides out toward the bottom. |
| FADE | int | The inserted or deleted row or rows fades into or out of the table view. |
| LEFT | int | The inserted row or rows slides in from the left; the deleted row or rows slides out to the left. |
| NONE | int | No animation is performed. The new cell value appears as if the cell had just been reloaded. |
| RIGHT | int | The inserted row or rows slides in from the right; the deleted row or rows slides out to the right. |
| TOP | int | The inserted row or rows slides in from the top; the deleted row or rows slides out toward the top. |


ledger
/
net.corda.v5.ledger.flowservices
Package net.corda.v5.ledger.flowservices
Types
FlowLedger
interface
FlowLedger
:
CordaFlowInjectable


Since the original class of astronauts, known as the Mercury Seven, was announced on April 9, 1959, nearly 400 men and women have been part of the NASA Astronaut Corps.
Let's explore their missions, backgrounds, and acheivements.
Created by Carlos Capellan, Douglas Fletcher & Laura Treider
Data Visualization Fall 2020


We are a team of five master students from Carnegie Mellon University partnered with Cross Domain to envision a product that supports programming learning in Chinese middle schools. We embarked on a strongly user-driven end-to-end research, design, and development process which has culminated in the creation of Cross Domain Collaborate.
With the promising development of K-12 programming education in China these days, Cross Domain decided to embrace this new opportunity and expand its market. As the first step, the company plans to design practical learning tools that support Python elective courses in middle schools. In particular, its targets include public and experimental schools in first-tier cities.
By researching K-12 programming standards and existing online Python courses, our team will apply learning science principles in the design of a supportive Python learning tool for Chinese middle school students at international and experimental schools. We aim to boost our learners’ motivation with better student-teacher interaction and emphasize their sense of achievement by incorporating more adaptive learning technologies.
Figma, HTML, CSS, Miro, Mural, Adobe Illustrator,
Phototshop
8 Months
Xinying Hou
Yue Jiang
Jialu Li
Xiaoyu Shi
Shijie Zhu
Project Manager
Product Manager
Research Lead
Design Lead
Developer
Teacher prepare pre-class materials before the class
Students learn pre-class materials before the class.
Teacher teaches concepts and demonstrates procedural knowledge.
Student ingage int the lecture and raise hand to ask questions
Teacher walk around the classroom to monitor and provide help.
Students practice what they’ve learned, either in a team or individually.
Teachers need to review students’ performance and gain feedback to make adjustments to the next class.
Students need to finish their incompleted in-class tasks and finish homework.


travel Planning the South African Wine Vacation of Your Dreams Got Easier Planning the South African Wine Vacation of Your Dreams Got Easier READ MORE


--- layout: none title: "Foresight 2021 | How to Design a Fast Nanocar" permalink: /presentations/foresight-2021/ date: 2021-12-06 categories: presentations ---


--- layout: default title: Moe Lwin Hein ---
I'm a Software Engineer from Singapore.
I've been developing Web UI using HTML, CSS and Javascript.
I've been implementing APIs using Java, Spring Framework, etc.


Buses may be given access through underpass
by Special CorrespondentBuses might be given conditional permission to operate through the Vyttila underpass during the off-peak hours, to save them from travelling 4 km extra per trip up to Chalikkavattom, and subsequently getting caught in traffic snarls on the Chalikkavattom-Vyttila stretch, losing 20 minutes per trip.
An in-principle nod has been given on this, following a meeting convened by the Additional District Magistrate. Thus, buses might be permitted through the underpass, except from 8.30 a.m. to 10 a.m. and 4 p.m. to 5.30 p.m. The police will have to enforce the time window. For this, personnel will be posted on either side of the underpass, mainly to ensure safe transit of pedestrians and ambulances, it is learnt.
P.S. Shine, councillor of Vyttila division, expressed the apprehension that permitting buses through the narrow underpass would further pose difficulties for pedestrians. He demanded that residents must be taken into confidence before taking a final decision.


TTViewControllerStack Class Reference
| Inherits from | UIViewController |
| Declared in | TTViewControllerStack.h |
Overview
TTViewControllerStack
is a container view controller that manages the presentation of a single view controller.
Tasks
TTViewControllerStack Properties
-
delegate
property -
viewControllers
property -
selectedViewController
property -
selectedIndex
property -
animationDuration
property -
viewControllerTransitioning
property
Debuging
ViewController Setup & Tear Down
-
– setViewControllers:
-
– addViewController:
-
– removeViewController:
-
– removeViewControllerAtIndex:
-
– removeAllViewControllers
ViewController Actions
ViewController Interaction
Properties
animationDuration
The duration for optional animation of the view controllers. Default is set to 0.0f
or no animation of the transition of view controllers.
@property (nonatomic, assign) CGFloat animationDuration
Discussion
The duration for optional animation of the view controllers. Default is set to 0.0f
or no animation of the transition of view controllers.
See Also
TTViewControllerStackDelegate ttViewControllerStack:willStartAnimationFrom:toViewController:
TTViewControllerStackDelegate ttViewControllerStack:isAnimatingFrom:toViewController:
Declared In
TTViewControllerStack.h
delegate
Delegate for TTViewControllerStack
@property (nonatomic, assign) id<TTViewControllerStackDelegate> delegate
Discussion
Delegate for TTViewControllerStack
See Also
Declared In
TTViewControllerStack.h
selectedIndex
The currently selected Index corresponding to the UIViewController
@property (nonatomic, readonly) NSUInteger selectedIndex
Discussion
The currently selected Index corresponding to the UIViewController
Declared In
TTViewControllerStack.h
selectedViewController
The currently selected UIViewController
@property (nonatomic, readonly) UIViewController *selectedViewController
Discussion
The currently selected UIViewController
Declared In
TTViewControllerStack.h
viewControllerTransitioning
This is set TRUE
during transition between UIViewControllers
. If you don’t want interaction while changes are being made you can observe this to set userInteraction on your view. You can also observe the TTViewControllerStackDelegate
to determine the transitions.
@property (nonatomic, readonly) BOOL viewControllerTransitioning
Discussion
This is set TRUE
during transition between UIViewControllers
. If you don’t want interaction while changes are being made you can observe this to set userInteraction on your view. You can also observe the TTViewControllerStackDelegate
to determine the transitions.
Declared In
TTViewControllerStack.h
Instance Methods
addViewController:
Adds a new UIViewController
to the TTViewControllerStack
- (void)addViewController:(UIViewController *)newController
Parameters
- newController
a
UIViewController
Discussion
Adds a new UIViewController
to the TTViewControllerStack
Declared In
TTViewControllerStack.h
count
Returns a count of items in the TTViewControllerStack
- (NSInteger)count
Return Value
NSInteger A count of items in the stack
Discussion
Returns a count of items in the TTViewControllerStack
Declared In
TTViewControllerStack.h
removeAllViewControllers
Removes all of the UIViewControllers
from the TTViewControllerStack
- (void)removeAllViewControllers
Discussion
Removes all of the UIViewControllers
from the TTViewControllerStack
Declared In
TTViewControllerStack.h
removeViewController:
Removes the UIViewController
from the TTViewControllerStack
- (void)removeViewController:(UIViewController *)oldController
Parameters
- oldController
The
UIViewController
to remove
Discussion
Removes the UIViewController
from the TTViewControllerStack
See Also
Declared In
TTViewControllerStack.h
removeViewControllerAtIndex:
Removes the UIViewController
from the TTViewControllerStack
at the specified index
- (void)removeViewControllerAtIndex:(NSUInteger)index
Parameters
- index
The index for the
UIViewController
to remove from theTTViewControllerStack
Discussion
Removes the UIViewController
from the TTViewControllerStack
at the specified index
You need to make sure your code can handle the changing of the `index`
See Also
Declared In
TTViewControllerStack.h
setDebug:
Sets Logging of the TTViewControllerStack
- (void)setDebug:(BOOL)debug
Parameters
- debug
Either TRUE or FALSE. Default is
FALSE
Discussion
Sets Logging of the TTViewControllerStack
Declared In
TTViewControllerStack.h
setSelectedIndex:
Selects the UIViewController
based on the index
passed into it, with an optional completion block
- (void)setSelectedIndex:(NSUInteger)index
Parameters
- index
The index of the
UIViewController
you are moving to
Discussion
Selects the UIViewController
based on the index
passed into it, with an optional completion block
Declared In
TTViewControllerStack.h
setSelectedIndex:completion:
Selects the UIViewController
based on the index
passed into it, with an optional completion block
- (void)setSelectedIndex:(NSUInteger)index completion:(void ( ^ ) ( void ))completion
Parameters
- index
The index of the
UIViewController
you are moving to
- completion
A block that is run when the method runs.
Discussion
Selects the UIViewController
based on the index
passed into it, with an optional completion block
Declared In
TTViewControllerStack.h
setViewControllers:
Sets the Array of viewControllers into the TTViewControllerStack
- (void)setViewControllers:(NSMutableArray *)viewControllers
Parameters
- viewControllers
A Array of
UIViewControllers
Discussion
Sets the Array of viewControllers into the TTViewControllerStack
See Also
Declared In
TTViewControllerStack.h
setViewUserInteractionEnabled:
Toggles the ability for the end user to interact with the selectedViewController
- (void)setViewUserInteractionEnabled:(BOOL)enabled
Parameters
- enabled
A BOOL that will set interaction TRUE or FALSE
Discussion
Toggles the ability for the end user to interact with the selectedViewController
See Also
Declared In
TTViewControllerStack.h


 Cardigan meggings plaid, yr listicle helvetica single-origin coffee bicycle rights raclette everyday carry lyft. You probably haven't heard of them distillery gluten-free, DIY tattooed live-edge locavore VHS plaid viral gastropub XOXO. Tacos listicle godard tote bag raclette celiac. Kombucha keytar vape wolf, echo park cardigan hexagon cred taiyaki williamsburg. Kinfolk polaroid microdosing palo santo keffiyeh ethical gastropub yr listicle franzen fanny pack taiyaki. Church-key cloud bread freegan meh, cliche pok pok hoodie copper mug cornhole actually dreamcatcher drinking vinegar chia. Cronut kale chips salvia everyday carry, blog bitters cardigan lomo glossier offal unicorn vape beard.
Pieter Levels, Founder of Levels.io, talks about how he’s building 12 startups in 12 months. Not only do we cover how he’s able to pull that off (and to with awesome quality), but he has really interesting reasons why he’s approaching startups this way. This chat was incredibly inspiring and motivating - a must-listen.
Pieter Levels, Founder of Levels.io, talks about how he’s building 12 startups in 12 months. Not only do we cover how he’s able to pull that off (and to with awesome quality), but he has really interesting reasons why he’s approaching startups this way. This chat was incredibly inspiring and motivating - a must-listen.


11.67. Release 0.153
General Changes
- Fix incorrect results for grouping sets when
task.concurrency
is greater than one. - Fix silent numeric overflow when casting
INTEGER
to largeDECIMAL
types. - Fix issue where
GROUP BY ()
would produce no results if the input had no rows. - Fix null handling in
array_distinct()
when applied to thearray(bigint)
type. - Fix handling of
-2^63
as the element index forjson_array_get()
. - Fix correctness issue when the input to
TRY_CAST
evaluates to null. For types such as booleans, numbers, dates, timestamps, etc., rather than returning null, a default value specific to the type such asfalse
,0
or1970-01-01
was returned. - Fix potential thread deadlock in coordinator.
- Fix rare correctness issue with an aggregation on a single threaded right join when
task.concurrency
is1
. - Fix query failure when casting a map with null values.
- Fix failure when view column names contain upper-case letters.
- Fix potential performance regression due to skew issue when
grouping or joining on columns of the following types:
TINYINT
,SMALLINT
,INTEGER
,BIGINT
,REAL
,DOUBLE
,COLOR
,DATE
,INTERVAL
,TIME
,TIMESTAMP
. - Fix potential memory leak for delete queries.
- Fix query stats to not include queued time in planning time.
- Fix query completion event to log final stats for the query.
- Fix spurious log messages when queries are torn down.
- Remove broken
%w
specifier fordate_format()
anddate_parse()
. - Improve performance of ARRAY when underlying data is dictionary encoded.
- Improve performance of outer joins with non-equality criteria.
- Require task concurrency and task writer count to be a power of two.
- Use nulls-last ordering for
array_sort()
. - Validate that
TRY
is used with exactly one argument. - Allow running Presto with early-access Java versions.
- Add Accumulo Connector.
Functions and Language Features
- Allow subqueries in non-equality outer join criteria.
- Add support for CREATE SCHEMA, DROP SCHEMA and ALTER SCHEMA.
- Add initial support for correlated subqueries.
- Add execution support for prepared statements.
- Add
DOUBLE PRECISION
as an alias for theDOUBLE
type. - Add
typeof()
for discovering expression types. - Add decimal support to
avg()
,ceil()
,floor()
,round()
,truncate()
,abs()
,mod()
andsign()
. - Add
shuffle()
function for arrays.
Pluggable Resource Groups
Resource group management is now pluggable. A Plugin
can
provide management factories via getResourceGroupConfigurationManagerFactories()
and the factory can be enabled via the etc/resource-groups.properties
configuration file by setting the resource-groups.configuration-manager
property. See the presto-resource-group-managers
plugin for an example
and Resource Groups for more details.
Web UI Changes
- Fix rendering failures due to null nested data structures.
- Do not include coordinator in active worker count on cluster overview page.
- Replace buffer skew indicators on query details page with scheduled time skew.
- Add stage total buffer, pending tasks and wall time to stage statistics on query details page.
- Add option to filter task lists by status on query details page.
- Add copy button for query text, query ID, and user to query details page.
JDBC Driver Changes
- Add support for
real
data type, which corresponds to the Javafloat
type.
CLI Changes
- Add support for configuring the HTTPS Truststore.
Hive Changes
- Fix permissions for new tables when using SQL-standard authorization.
- Improve performance of ORC reader when decoding dictionary encoded MAP.
- Allow certain combinations of queries to be executed in a transaction-ish manner, for example, when dropping a partition and then recreating it. Atomicity is not guaranteed due to fundamental limitations in the design of Hive.
- Support per-transaction cache for Hive metastore.
- Fail queries that attempt to rename partition columns.
- Add support for ORC bloom filters in predicate push down.
This is can be enabled using the
hive.orc.bloom-filters.enabled
configuration property or theorc_bloom_filters_enabled
session property. - Add new optimized RCFile reader.
This can be enabled using the
hive.rcfile-optimized-reader.enabled
configuration property or thercfile_optimized_reader_enabled
session property. - Add support for the Presto
real
type, which corresponds to the Hivefloat
type. - Add support for
char(x)
type. - Add support for creating, dropping and renaming schemas (databases). The filesystem location can be specified when creating a schema, which allows, for example, easily creating tables on S3.
- Record Presto query ID for tables or partitions written by Presto
using the
presto_query_id
table or partition property. - Include path name in error message when listing a directory fails.
- Rename
allow-all
authorization method tolegacy
. This method is deprecated and will be removed in a future release. - Do not retry S3 requests that are aborted intentionally.
- Set the user agent suffix for S3 requests to
presto
. - Allow configuring the user agent prefix for S3 requests
using the
hive.s3.user-agent-prefix
configuration property. - Add support for S3-compatible storage using the
hive.s3.endpoint
andhive.s3.signer-type
configuration properties. - Add support for using AWS KMS with S3 as an encryption materials provider
using the
hive.s3.kms-key-id
configuration property. - Allow configuring a custom S3 encryption materials provider using the
hive.s3.encryption-materials-provider
configuration property.
JMX Changes
- Make name configuration for history tables case-insensitive.
MySQL Changes
- Optimize fetching column names when describing a single table.
- Add support for
char(x)
andreal
data types.
PostgreSQL Changes
- Optimize fetching column names when describing a single table.
- Add support for
char(x)
andreal
data types. - Add support for querying materialized views.
Blackhole Changes
- Add
page_processing_delay
table property.
SPI Changes
- Add
schemaExists()
method toConnectorMetadata
. - Add transaction to grant/revoke in
ConnectorAccessControl
. - Add
isCoordinator()
andgetVersion()
methods toNode
. - Remove
setOptionalConfig()
method fromPlugin
. - Remove
ServerInfo
class. - Make
NodeManager
specific to a connector instance. - Replace
ConnectorFactoryContext
withConnectorContext
. - Use
@SqlNullable
for functions instead of@Nullable
. - Use a whitelist model for plugin class loading. This prevents connectors from seeing any classes that are not part of the JDK (bootstrap classes) or the SPI.
- Update
presto-maven-plugin
, which provides a Maven packaging and lifecycle for plugins, to validate that every SPI dependency is marked asprovided
scope and that only SPI dependencies useprovided
scope. This helps find potential dependency and class loader issues at build time rather than at runtime.
Note
These are backwards incompatible changes with the previous SPI. If you have written a plugin, you will need to update your code before deploying this release.


Add all the ingredients
into the
Morphy Richards Soup Maker Add all the ingredients into the Morphy Richards Soup
Maker Add all the ingredients into the Morphy Richards Soup Maker Add all the ingredients
into the Morphy Richards Soup Maker
Add all the ingredients
into the
Morphy
Richards Soup
Maker
Add all the ingredients
into the
Morphy
Richards Soup
Maker
Add all the ingredients
into the
Morphy
Richards Soup
Maker
Add all the ingredients
into the
Morphy
Richards Soup
Maker


WITNESS LIST
Appropriations - S/C on Article III Committee
February 23, 2017 - 7:30 AM
Midwestern State University
On:
Shipley, Suzanne (Midwestern State University)
Stephen F Austin State University
On:
Pattillo, Baker (Stephen F. Austin State University)
Texas A&M University System Agencies
On:
Akey, Bruce (Texas A&M Veterinary Medical Diagnostic Laboratory)
Alexander, Donna (Texas A&M AgriLife Extension Service)
Banks, Dr. Kathy (Texas A&M Engineering Experiment Station)
Boggus, Tom (Texas A&M Forest Service)
Goodin, Ginger (Texas A&M Transportation Institute)
Nessler, Craig (Texas a&m agrilife research)
Newton, John (Legislative Budget Board)
Reed, Cyrus (Lone star chapter sierra club)
Sera, Gary (Texas A&M Engineering Extension Service)
Shipp, Patrick (Texas Fire Chief Ass.)
Steele, Douglas (Texas A&M Agrilife Extension)
Winfree, Greg (Texas A&M Transportation Institute)
Registering, but not testifying:
On:
Crawford, John (Texas A&M Engineering Experiment Station)
Dunn, Joe (Texas A&M Transportation Institute)
Hernandez, Demetrio (Legislative Budget Board)
Todd, Charley (Texas A&M Engineering Extension Service)
University of Texas at Austin
On:
Fenves, Gregory (The University of Texas at Austn)
University of Texas MD Anderson Cancer Center
On:
DePinho, M.D., Ronald (UT MD Anderson Cancer Center)
1


Home
About us
Contact
Loading...
5
unread messages
Modal title
Comments
Edit Post
Title:
Body:
Sure you want to delete the post?
Comments


IANY(3) - [BIT:LOGICAL] Bitwise OR of array elements
result = iany(array [,mask]) | iany(array ,dim [,mask])
integer(kind=KIND) function iany(array,dim,mask)integer(kind=KIND),intent(in) :: array(..) integer(kind=**),intent(in),optional :: dim logical(kind=**),intent(in),optional :: mask(..)
note a kind designated as ** may be any supported kind for the type
o ARRAY is an integer array o DIM may be of any integer kind. o MASK is a logical array that conforms to ARRAY o The result will by of the same type and kind as ARRAY. It is scalar if DIM does not appear or is 1. Otherwise, it is the shape and rank of array reduced by the dimension DIM.
IANY(3) reduces with bitwise OR (inclusive OR) the elements of ARRAY along dimension DIM if the corresponding element in MASK is .true..
o ARRAY : an array of elements to selectively OR based on the mask. o DIM : a value in the range from 1 TO N, where N equals the rank of ARRAY. o MASK : a logical scalar; or an array of the same shape as ARRAY.
The result is of the same type as ARRAY.
If DIM is absent, a scalar with the bitwise or of all elements in ARRAY is returned. Otherwise, an array of rank N-1, where N equals the rank of ARRAY, and a shape similar to that of ARRAY with dimension DIM dropped is returned.
Sample program:
program demo_iany use, intrinsic :: iso_fortran_env, only : integer_kinds, & & int8, int16, int32, int64 implicit none logical,parameter :: T=.true., F=.false. integer(kind=int8) :: a(3) a(1) = int(b00100100,int8) a(2) = int(b01101010,int8) a(3) = int(b10101010,int8) write(*,*)A= print (1x,b8.8), a print * write(*,*)IANY(A)= print (1x,b8.8), iany(a) print * write(*,*)IANY(A) with a mask print (1x,b8.8), iany(a,mask=[T,F,T]) print * write(*,*)should match print (1x,b8.8), iany([a(1),a(3)]) print * write(*,*)does it? write(*,*)iany(a,[T,F,T]) == iany([a(1),a(3)]) end program demo_ianyResults:
A= 00100100 01101010 10101010IANY(A)= 11101110
IANY(A) with a mask 10101110
should match 10101110
does it?
Fortran 2008
IPARITY(3), IALL(3), IOR(3)
fortran-lang intrinsic descriptions (license: MIT) @urbanjost
| Nemo Release 3.1 | iany (3) | July 22, 2023 |


Coty to pay US$600m for majority stake in Kylie Jenner cosmetics brand
NEW YORK, Nov 18 — Beauty products giant Coty announced today a deal to take a majority stake in Kylie Jenner’s cosmetics and skincare company, marrying Jenner’s celebrity prominence with Coty’s distribution and commercial prowess.
Under the transaction, Coty, whose brands include Hugo Boss and Burberry fragrances, will pay US$500 million (RM2 billion) for a 51 per cent stake in Jenner’s company.
Jenner, the youngest daughter of Kris Jenner and Caitlyn Jenner, formerly known as Bruce Jenner, has more than 270 million social media followers and rates as “one of the most influential voices among beauty consumers globally,” said a statement from both companies.
She launched the brand in 2015 with “Kylie Lip Kit” and has since added eyeliners, eye shadows, blushes and other items.
“I’m excited to partner with Coty to continue to reach even more fans of Kylie Cosmetics and Kylie Skin around the world,” Jenner said.
“This partnership will allow me and my team to stay focused on the creation and development of each product while building the brand into an international beauty powerhouse.”
Coty described the deal as part of its effort to become a “more focused and agile company” adding that its global capacities in research and development, manufacturing and distribution, as well as expertise in cosmetics, would enable Jenner’s products to thrive as a “high growth, digitally native beauty brand.”
Coty Chief Executive Pierre Laubies said the deal “will leverage our core strengths around fragrances, cosmetics and skincare, allowing Kylie’s brands to reach their full potential.”
Shares of Coty rose 3.3 per cent to US$12.31 in early trading. — AFP


14-year-old boy confesses to slashing schoolgirl's throat in northeastern Japan
AOMORI – A 14-year-old boy who was arrested for allegedly slashing an elementary school girl in Aomori Prefecture has admitted to attacking her with murderous intent, police said Wednesday.
The suspect told the police that he “intended to kill” the sixth-grader in the city of Hachinohe. “It didn’t matter who it was,” the boy was quoted as saying by an investigative source.
The police said they had seized several knives, including one believed to have been used in the attack, from his home and other locations.
The girl, who was taken to a nearby hospital after the Tuesday incident, is conscious and able to speak, according to the police.
The police believe the incident was a random attack because the junior high school boy and the elementary school girl do not appear to know each other.
Police do not release the names of minors under arrest.
According to the police, the boy is suspected of attempting to kill the girl on a street by approaching her from behind and slashing her in the front of her neck with a knife when she was walking home alone from school at around 4:40 p.m. on Tuesday.
The assault left her with a gash about 10 centimeters long and 1 cm deep near her throat, which will require three weeks to heal, the police said.
The girl told her family of the incident after returning home by herself. Wearing a white jacket and black pants, the suspect walked close to the girl and fled on foot after attacking her, the police said. The police confiscated clothes that were consistent with the girl’s description from locations including the suspect’s home.
Several security cameras caught images of a male the girl said resembled the person who had assaulted her.
Police arrested the boy after questioning him. He was found in the city wearing different clothes than those worn by the attacker when the incident occurred.
An official at Hachinohe’s board of education said the suspect had caused no trouble at his school, and that he had shown no signs of intending to carry out an attack.
Hachinohe’s local government had warned residents about a suspicious man seen Thursday evening following children near the location of the attack, a residential area 2 kilometers from Konakano Station.
Authorities are investigating whether the boy may have been involved in that case as well.
GET THE BEST OF THE JAPAN TIMES
IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


--- layout: default ---
micro-ROS puts ROS2 onto microcontrollers.
The major changes compared to "regular" ROS2 is that micro-ROS uses a Real-Time Operating System (RTOS) instead of Linux, and DDS for eXtremely Resource Constrained Environments (DDS-XRCE) instead of classical DDS. Above that, we run the ROS2 stack! Well, with a few cool improvements for taking advantage of micro-controller specific things, but largely the same.
To get you started quickly, header over to the tutorial section. The basic ones can even be done without a micro-controller. For more background and details, see the documentation.
Source code can be found at https://github.com/micro-ROS/ and we answer both tickets and pull requests as usual. If you have questions on concepts and development, you're very welcome to post to the embedded catgory on ROS Discourse. For usage questions, head over to ROS Answers and please tag your question with embedded.


We chose to define this matrix over AA because we need to find roots of polynomials when looking for eigenvalues. AA is the set of algebraic numbers, which just means the collection of all roots of polynomials with integer coefficients.


To see which Geobacter genomes are in the Central Storage(CS) of KBase, you
might use
all_entities_Genome -f scientific_name | grep GeobacterYou might decide that Geobacter sulfurreducens KN400 is a good genome to start with. Its KBase id is kb|g.2860. Can you find it in the list of genomes you got back? Now, let's get a local copy of the contigs of that genome.


Platform Security
Farid Saad
Overview
Best practices in Kubernetes security are rapidly evolving. Many security problems in early versions of Kubernetes are resolved by default in recent versions. However, like any complex system, there are still risks you should understand before you trust it with your production data. We’ve tried to summarize the most important things you should have in mind when you host sensitive workloads on Kubernetes.
The topics discussed here help you understand potential risks in your cluster. The risk in your environment depends on your threat model and the types of applications you run in your cluster. You’ll have to consider how best to invest in security controls and hardening based on the sensitivity of your data, the amount of time and staff you’re able to dedicate to security, and your company’s particular compliance requirements.
Kubernetes provides several mechanisms to enforce security within the cluster. These range from API security controls, down to container isolation, resource limiting, and network policy control.
General points
Kubernetes core components cooperate to schedule and run your workloads in a cluster. Kubernetes provides a range of access control mechanisms, however their default values tend to be overly permissive. You should carefully determine what access your system components and users need, and configure the most restrictive controls possible.
Remember also to secure the infrastructure that your clusters run on - for example, SSH access, or cloud provider access such as AWS IAM.
TLS Certificates
Kubernetes clusters require PKI certificates for secure communication between cluster components. Default CAs and certificates are provided by kubeadm, but you should consider your requirements before accepting only the defaults.
Kubernetes requires TLS for the communication between the control plane components of your cluster. For details about the required PKI certificates, see the certificates documentation. You can reuse the control plane CA certificate bundle for TLS in your application/workloads. See the documentation about managing TLS certificates. kubeadm automatically generates the certificates required by the cluster; this topic explains when and why you might want to generate your own certificates. It also discusses options for managing certificates for your applications.
Certificate Authorities
The certificates generated with a kubeadm install rely on a single cluster CA for all certificates. You might want to manage your certificates differently in the following cases:
- For finer-grained control over authentication, you might set up different certificate authorities for server certificates and client certificates.
- Your company’s policies might require TLS certificates that are issued by your own PKI.
- If you integrate with an OpenID Connect (OIDC) provider, you can use the OIDC CA.
- Publicly facing workloads may require a Commercial or non-profit certificate bundle.
If you issue your own certificates
The certificate for the API server control plane component requires a
subjectAltName (SAN):
kubernetes.  Note that the --root-ca-file
flag
for the controller manager must also include a copy of the CA for the
API-server.
Certificate rotation
By default, kubeadm generates certificate authorities that expire after 10 years. The server and client certificates expire after one year. It is strongly recommended to not let certificates expire as your cluster will become inoperable.
To help make sure your certificates do not expire, you can use the Prometheus BlackBox exporter, which allows probing and alerting on certificate expiry dates.
You can also configure automatic certificate rotation. See the documentation for kubelet certificate rotation and node certificate rotation.
Authentication and Authorization
Authentication
Kubernetes uses client certificates, bearer tokens, an authenticating proxy, or HTTP basic auth to authenticate API requests through authentication plugins. As HTTP requests are made to the API server, plugins attempt to associate the following attributes with the request: Username, UID, Groups, and Extra fields.
A critical component of cluster security is making sure that human users, Kubernetes services accounts, cluster components, and application components have the right permissions to access only the resources they need to get their respective jobs done. Authentication and authorization are critical parts of access control.
Integrate an identity provider
Certificates take care of authentication for clients, servers, clusters and applications. To authenticate human users, we recommend integrating an existing corporate identity system. Kubernetes lets you provide authentication with any compliant OpenID Connect provider (for example, GitHub or Google). Kubernetes authentication and authorization can also be extended with webhook-based plugins to create a custom identity integration.
If your organization integrates multiple identity providers,
Dex can be integrated with Gangway to act as
the OIDC endpoint. Dex acts as a broker for identity, providing a standard OIDC
frontend for a variety of backends such as LDAP servers, SAML providers, or
established identity providers like GitHub, Google, and Active Directory.
Multi-factor authentication is not required, but provides additional protection
for end user flows.
Authorization
Human users and service accounts need to be carefully authorized to access only the resources they need to get their jobs done, and no more. The principle of least privilege is central to good authorization policies.
Kubernetes expects attributes that are common to REST API requests. This means that Kubernetes authorization works with existing organization-wide or cloud-provider-wide access control systems, which may handle other APIs besides the Kubernetes API. Every authenticated request to the Kubernetes API server made by a human user or a service account needs to be authorized.
RBAC Authorization
Role-Based Access Control (RBAC) allows the control of actions performed on resources in the cluster, and defines who is allowed to perform them. Every resource in Kubernetes is represented as an API object (Pods, Namespaces, Secrets, ConfigMaps, etc.) These resources can be created, read, updated, and deleted (verbs). A rule is composed of a verb and a resource, as an operation to be performed on an API group. These rules are bundled together in Roles. Roles are scoped to a namespace. Cluster-wide roles are defined in ClusterRole objects. Roles can then be bound to users, groups and service accounts by creating a role binding thereby granting them the ability to perform actions described in the roles.
At a minimum, we recommend that you enable RBAC. RBAC is enabled by default in most recent installers and provides a framework for implementing the principle of least privilege for humans and applications that access the Kubernetes API.
To get the most benefit from RBAC, an appropriate configuration is required:
- Run each component with the most restrictive permissions that still allow for expected functionality. Most applications in a cluster will need little or no access to the Kubernetes API. System components such as an ingress controller or monitoring system may need more access, but can often be limited to read-only access or access within a particular namespace.
- Make sure that trusted components don’t act as pivots that allow less privileged users to escalate privileges. The Kubernetes Dashboard and Helm tiller daemon are examples that deserve special attention. Isolate these components with application-level authentication/ authorization and network access controls to prevent unauthorized access.
When creating RBAC policies, prefer Roles and RoleBindings over ClusterRoles and ClusterRoleBindings whenever possible as they are scoped to namespaces by default. While Kubernetes comes with default RBAC policies in place, we recommend setting up your baseline policies with the least required privileges that you need.
The Kubernetes API audit logs are a useful tool for discovering which APIs a particular application is using, and for testing locked-down RBAC policies. The audit2rbac tool can act as a reference as it can generate RBAC roles and bindings to cover the API requests made by a user. See also Auditing in the Kubernetes documentation.
Admission Controllers
An admission controller is a piece of code that intercepts requests to the Kubernetes API. This happens before the persistence of the object, but after the request is authenticated and authorized. These are plugins that govern and enforce the acceptance of requests. There are two individual Admission Controllers: MutatingAdmissionWebhook and ValidatingAdmissionWebhook, which execute mutating and validating actions, respectively. Mutating controllers may modify the objects they admit; validating controllers do not. The admission control process has two phases: the mutating phase is executed first, followed by the validating phase. An excellent example of a mutating admission controller is Istio’s automatic sidecar injection mechanism. If any of the controllers in either phase reject the request, the entire request is rejected immediately and an error is returned to the end-user
Network and Application Access Control
Access to the cluster network should be carefully controlled and permissions granted only to the components or resources that need access. The Kubernetes NetworkPolicy API allows users to express ingress and egress policies (starting with Kubernetes 1.8.0) to Kubernetes pods based on labels and ports.
Many existing applications assume that network-level access implies a level of authorization. Even if applications include strong application-layer authentication and authorization, network-level access control provides an additional layer of defense. For example, it provides crucial protection against pre-auth vulnerabilities such as the Heartbleed (CVE-2014-0160) vulnerability in OpenSSL.
Network Policy
By default, Kubernetes clusters do not restrict traffic. Pods can communicate with any other pods. External clients can also communicate with pods, assuming they are routable from the client’s network.
The NetworkPolicy resource in Kubernetes allows you to control how pods are allowed to communicate with each other and other network endpoints. The NetworkPolicy resource is namespace scoped. Rules defined in the policy allow traffic and are combined additively.
Kubernetes provides core data types for specifying network access controls between pods. Network policy in Kubernetes can limit inbound traffic to a pod based on the source pod’s namespace and labels, plus the IP address for traffic that originates outside the cluster. Network policy can also limit outbound traffic using the same set of selectors. A good starting point is to restrict ingress to only the application namespace by default. For details, see the Kubernetes Network Policy documentation.
The enforcement of network policy relies on the cluster’s CNI provider. Without them, Kubernetes “fails open” — the API happily accepts any network policy, but the policies are not enforced. We recommend Calico as your CNI provider, because it enforces controls. Examples of Network policies can be found here.
Restricting access to control plane services
Network controls in the infrastructure underlying the cluster must also be considered. In a cloud provider environment, make sure that pods cannot communicate with the instance metadata service. We also recommend the use of the Node Authorizer to limit kubelet access to the API. When enabled, this special-purpose authorization module restricts kubelet access to resources that are referenced by Pods running on that specific node. The Node Authorizer is enabled by default in recent releases of kubeadm. For example, instead of being able to access all Secrets in the cluster, a kubelet can access only Secrets that are referenced by Pods scheduled to that kubelet.
Enforcing network controls in the infrastructure underlying your cluster is also
critical. In a cloud provider environment, make sure that your pods cannot talk
to the instance metadata service (for example,
http://<IP_ADDRESS>/latest/meta-data
on AWS EC2). Depending on your
requirements, you may also need to restrict access to the kubelet localhost
read-only port (10255 by default). This port exposes metadata about the pods
running on the node, which you may not want access to your applications.
Application-layer access control
One solution to the problem of network-level access controls is strong application-layer authentication such as mutual TLS. Cryptographic application identity is powerful because it allows identity to be efficiently expressed across network boundaries. Securely provisioning certificates for applications is still a hard problem in Kubernetes.
Limitations
Network access controls have some limitations in dynamic environments like Kubernetes, which results in the following difficulties:
- Federating Kubernetes network policy across multiple clusters.
- Integrating Kubernetes network-level controls and granular network-level controls expressed outside of the pod networking layer (for example, in AWS EC2 Security Groups).
- When services running in a Kubernetes cluster need to communicate with services outside the cluster, NetworkPolicy is often unable to filter traffic as expected due to source and destination IP address translation.
If you encounter any of these issues, we recommend that you define a more coarse-grained network policy and rely on the application layer for fine-grained access control.
Container Security
Security Contexts
Security contexts limit what a Pod or Container can do and what privileges the object has when running in the cluster. Example controls are the UID of the process running inside the container, the filesystem access group, the process capabilities, SELinux labels, etc.
These can be applied to individual Pods and containers, and they define a set of conditions that it must run with.
Pod Security Policies PSP
Pod security policies are cluster-wide resources that provide automation of the
above described security contexts. PSPs can be used to automatically set
security context parameters or to prevent out-of-policy pods from running in the
cluster. For example, if you don’t want any containers in your cluster to run as
root, you can enforce this using a PSP with a runAsUser
rule of
MustRunAsNonRoot
. They define a set of conditions that a pod must run with to
be accepted into the system. Pod Security Policies are comprised of settings and
strategies that control the security features a pod has access to, and hence
this must be used to control pod access permissions. Strong pod security
policies make sure that pod access is appropriately controlled.
Pod Security Policies provide a policy-driven mechanism for requiring applications in your cluster to use container sandboxing in an approved way. For example, you can require that all pods in a particular namespace run as non-root, that they don’t mount host file systems and do not use host networking.
To use pod security policies, the PodSecurityPolicy admission controller must be enabled in the API server configuration. Policies must be present before enabling the controller, or no pods would be allowed to run. For more information, see to the Kubernetes documentation.
Credentials security (Secrets)
Secrets are sensitive pieces of data such as passwords, tokens or keys. Applications use secrets to access internal resources like the Kubernetes API or external resources such as git repositories, databases, etc. The following section details concerns related to secrets in the context of Kubernetes.
Secrets Management
Kubernetes has a core primitive for managing application secrets, appropriately called a Secret. Applications typically need secrets for two reasons:
- They need access to a credential that proves their identity to another system (for example, a database password or third-party API token).
- They need a cryptographic secret for some essential operation (for example, an HMAC signing key for issuing signed HTTP cookies).
Identity Secrets
For the first use case of application identity, follow the efforts of SPIFFE and the Container Identity working group for a long term solution to dynamically provisioning unique application identities. In the near term, there is no well-established best practice in this area. Still, some users have success integrating with existing certificate provisioning workflows as part of a CI/CD pipeline. Simple Kubernetes-native solutions like cert-manager may also work for your use case.
Non-identity Secrets
For the other use case, systems such as Vault perform cryptographic operations in a centralized service. If you choose this option, make sure you understand the entire chain of attestations involved in authenticating to the system. Often these systems depend on Kubernetes secret resources as one step in the chain. In Vault, the Vault Kubernetes auth backend authenticates pods by consuming a Kubernetes Service Account token. Still, the token is stored as a secret object before it’s injected into the pod. This pattern requires that you trust Vault not to replay your token and impersonate the pod to the Kubernetes API.
Caveats for Kubernetes Secrets
You should be aware of the following limitations:
- Many standard components – for example, ingress controllers – require permission to read all secrets in your cluster.
- Secrets are not encrypted at rest by default. You can, however, configure, etcd, to encrypt secret data at rest. For details, see Encrypting Secret Data at Rest.
Auditing to support security
Audit logging must be explicitly enabled. It provides valuable insight into access rules, compliance, and potential access issues. Kubernetes auditing provides a security-relevant chronological set of records documenting the sequence of activities that have affected the system by individual users, administrators, or other components of the system.
The Kubernetes API server audit log documents the sequence of cluster activities performed by users, administrators, and system services. Each API request has multiple stages that can be tracked and logged using an Audit Policy.
Enabling Audit Logging
The Kubernetes API server does not perform audit logging by default. We recommend that you enable audit logging to a file by setting the following flags in the API server configuration:
--audit-log-path
specifies the log file path that log backend uses to write audit events.--audit-log-maxage
defines the maximum number of days to retain old audit log files--audit-log-maxbackup
defines the maximum number of audit log files to retain--audit-log-maxsize
defines the maximum size in megabytes of the audit log file before it gets rotated--audit-policy-file
specifies the Audit policy file to be used
Audit events can also be sent to a webhook backend, but we recommend logging to a file that can be aggregated. Audit data should be treated as a high priority, and care should be taken that the file specified for –audit-log-path is aggregated for multiple control plane nodes and handled by systems with high reliability. In the case of an outage or other issue, administrators need to be able to rely on the data produced by audit systems.
When logging to files on the control plane hosts, you should set
--audit-log-maxage
, --audit-log-maxbackup
, and --audit-log-maxsize
appropriately based on the available disk space before aggregation.
Node and container runtime hardening
It is of critical importance to consider the security of the container-host boundary. This is important even in single-tenant environments since a remote code execution vulnerability like Shellshock (CVE-2014-6271) or the Ruby YAML parsing vulnerability (CVE-2013-0156) can turn your otherwise trusted workload into a malicious agent. Without proper hardening, that single remote code execution vulnerability can escalate into a whole-node or whole-cluster takeover.
Current container runtimes don’t provide the most reliable possible sandboxing, but there are some steps you can take to help mitigate the risk of container escape vulnerabilities:
- Segment your Kubernetes clusters by integrity level — a simple but very effective way to limit your exposure to container escape vulnerabilities. For example, your dev/test environments might be hosted in a different cluster than your production environment.
- Invest in streamlined host/kernel patching. Make sure that you have a way to test new system updates (for example, a staging environment) and that your applications can tolerate a rolling upgrade of the cluster without affecting application availability.
- Kubernetes shines at orchestrating these upgrades. Once you build confidence in letting Kubernetes dynamically rebalance application pods, patch management at the node level becomes relatively easy. You can automate a rolling upgrade that gracefully drains each node and either upgrade it in place or (in an IaaS environment) replaces it with a new node. Investments in this area also improve your overall resiliency to node-level outages.
- Run your applications as a non-root user. Root (UID 0) in a Linux container is still the same user as root on the node. A combination of sandboxing mechanisms restrict what code running in the container can do. Still, future Linux kernel vulnerabilities are more likely to be exploitable by a root user than by a non-privileged user.
- Enable and configure extra Linux security modules like SELinux and AppArmor. These tools let you enforce more restrictive sandboxing on particular containers. They are valuable in many situations, but building and maintaining appropriate configurations requires a time investment. They may not be appropriate for every application or environment.
Image Security
Runtime Security
Runtime security is concerned with potential changes to a running container through its lifetime, invalidating an initial security scan. A container image could have been scanned and approved but become a liability as new vulnerabilities, bugs, and threats are found. Runtime security tools help to mitigate this problem by looking at what’s happening inside containers: filesystem, process activity, networking behavior, etc. Examples of runtime security tools: Falco, Aquasec, Twistlock, Sysdig.
Attack Surface Minimization
Minimize container footprint and attack surface by excluding extraneous libraries and utilities that are not needed and could be leveraged during an attack. Consider building images from scratch and include only what is necessary at runtime. Also leverage multi-stage builds where applicable so that build tools are not included in the final image used in production.
Container Image Scanning
Container image scanning is an integral part of building container images, whether from source or third party base images, to discover any known vulnerabilities and mitigate them before cluster deployment. One of the last steps of your CI (Continuous Integration) pipeline involves building the container images that would be pulled and executed in your environment. Therefore, whether you are building Docker images from your code or using unmodified third party images, it’s crucial to identify and find any known vulnerabilities that may be present in those images. This process is known as container image scanning. Container image scanning helps make sure that your images are free from known vulnerabilities before they are deployed. Appropriately managed scanning keeps your clusters safe by not introducing malicious or malformed artifacts.
Services and open source tools that provide image scanning include the following:
We recommend integrating a container scan as part of a continuous delivery pipeline. In addition, we recommend running periodic scans against stored images so you can identify and mitigate new vulnerabilities.
We also recommend deploying an ImagePolicyWebhook admission controller with the Kubernetes API server that only allows images that have passed security scans to run in a cluster.
Deploying the ImagePolicyWebhook in Kubernetes
The ImagePolicyWebhook admission controller plugin queries a backend service to determine whether a workload can be run on a cluster. It does not make any changes to the submitted workload, but instead accepts or rejects it as-is based on whether the images associated with the workload comply with the policy set for the cluster. The webhook service queries the scanner tool to scan an image and either accept the workload or reject it based on the scan results.
The webhook service must use TLS.
See the documentation on ImagePolicyWebhook for a detailed explanation.
Image signing
Image signing helps make sure that your container images have not been tampered with. In other words, image signing is used to prove the provenance of your images. Signed images do not guarantee compliance, however.
Image signing establishes image trust, ensuring that the image you run in your cluster is the image you intended to run.
Private image registries or private accounts on public registries let you establish some degree of trust. Still, if your registry is compromised, bad actors could replace your images with malicious versions.
Image signing adds a layer of protection by cryptographically signing an image. As long as your private keys are not compromised, you can be guaranteed that the image you run is trusted.
Note that you must also deploy a mechanism to verify image trust. An example is portieris, which allows you to configure image security policies and stop the workload from being deployed if it is not signed.
Patch management and CI/CD
Deployment pipelines
A successful cluster access pattern is to have most users interact with the production cluster only through a deployment pipeline. This pipeline consists of one or more automated systems that handle building code into a container image, running unit and integration tests and other validation steps such as pausing for any manual approval. Depending on your needs, developers could still have direct read-only access to the Kubernetes API or have a way to “break the glass” and exec into pods during an incident.
A robust application deployment pipeline is also the key to remediating vulnerabilities in container images. You can use tools like Clair to identify known vulnerabilities in the libraries and packages you use. Still, to release patches on time, you need a trusted, automated way of rebuilding and testing patched versions of the container.
Limiting churn
Healthy Kubernetes clusters are dynamic environments. New versions of applications are deployed, nodes disappear for kernel upgrades, deployments scale up and down, and (hopefully) the users of your application never notice. Making all this work in practice requires some diligence, but it’s critical to reaping all the benefits of Kubernetes.
One tool that can help put bounds on the amount of chaos introduced into your cluster is the Pod Disruption Budget. It’s useful when you have multiple automated systems, and you want to make sure they don’t interact in unwanted ways. For example, an application-level bug might leave some pods of your application temporarily unavailable. A pod disruption budget could make sure that an automated rolling node upgrade doesn’t terminate the remaining healthy copies of your application.
Overly privileged container builds
One Docker-specific anti-pattern to avoid in your build pipeline is mounting the host-level Docker control socket “/var/run/docker.sock” into a container during a build. Access to this socket is equivalent to root on the host, which means any running build could compromise the node. This is doubly true if your build system runs build before a manual code review (a typical pattern).
Conclusions
What to do now
We keep saying it: how you secure your Kubernetes cluster depends in part on your available resources and your application requirements. Consider each element in the broader security picture and spend some time upfront assessing how important it is to your needs overall. At a very high level, some of our recommendations fit nicely into larger best practices in deployment:
- Automated deployment pipeline and scheduler. Lets you simplify host and application patch management with rolling upgrades that are integrated into the rest of your overall development cycle.
- Integrated access controls at appropriate levels. (authz/authn with API integration)
- Integrated logging and monitoring. You log and monitor for performance and reliability – adding support for security-specific events and pod metadata is non-trivial but vital. Precisely what to monitor depends as always on your specific needs.
Planning for the future
Security is an increasing concern for everyone, and initiatives are well underway to improve the security landscape. Keep an eye out for developments on these fronts:
- More strongly encrypted identity specific to your hardware or cloud provider
- Stronger provenance for cryptographically signed binaries/images
- Automatically updated inventories
- More sophisticated alerts and monitoring
Other Resources
- Securing a Cluster (Kubernetes documentation)
- Hacking and Hardening Kubernetes By Example (slides from Brad Geesaman)
Popular Tooling and Approaches
Encryption Configuration
The Kubernetes docs provide instructions to enable encryption at rest for specified resources. Most importantly, this allows cluster operators to ensure the data contained in Secrets has a layer of protection against a malicious actor gaining access to the storage disk for etcd.
Pros:
- Adds a layer of protection for data contained in Secrets
Cons:
- Is compromised if attacker gains access to the encryption keys used by the API Server
Validating Admission Webhook Controllers
Kubernetes RBAC provides a useful way to manage access to resources. However, it
does not provide ways to restrict access based on external systems or the
attributes of the resource being created. Proper authorization may require a
deeper understanding of the requester, evaluation of business logic, or
understanding of the cluster’s current state to determine whether a request
should be authorized. Kubernetes offers preset admission controllers built into
the kube-apiserver
, such as PodSecurityPolicy
. These can be enabled by
altering flags on the kube-apiserver
. To provide custom admission control
without modifying the API server, Kubernetes offers an Admission webhook
functionality. In this model, Kubernetes offers selected inbound request to an
external service that can approve or deny the request.
Writing an admission webhook controller in code enables you to do complex logic and access Kubernetes objects structurally, through a language’s type system. For example, see https://github.com/kubernetes/apimachinery. A downside to this approach is maintaining the controller code base over time, which can involve keeping logic up to date against changing Kubernetes API versions.
Pros:
- Flexible option for resource validation
Cons:
- Webhook is on the critical path for resource management in the cluster
- Development & maintenance overhead for the webhook
Open Policy Agent (OPA)
Similar to Validating Admission Webhook Controllers, OPA performs validation on requests sent to it. OPA is a general purpose policy agent. It’s primary goal is to unify policies around a centralized model and language. It uses a DSL called Rego that analyzes input, usually JSON, and provides an output. For Kubernetes admission control, the request is typically the JSON from an AdmissionReview object and the response is the same object with the AdmissionResponse filled in.
While this unified model is great, it can be harder to do complex logic in rego over a general purpose language.
Pros:
- Powerful validation framework
Cons:
- Requires learning a new policy definition language: Rego
Network Policy
Kubernetes provides a NetworkPolicy API. Verify that your CNI-Plugin enforces policies. By default, Kubernetes allows traffic to and from any pod or external source that can reach it. With this in mind, enforcing Network Policy is critical to protect applications from unwanted access. How policy is enforced depends on the CNI-plugin. For example, in Calico it’s enforced via IPtables and in Cilium it’s BPF. If network policy if a large part of your Kubernetes design, ensure the solution you’re using offers a scalable approach to enforcement.
Along with the Kubernetes network policy API, some CNI-Plugins offer their own CRDs that extend the base functionality. Calico offers a GlobalNetworkPolicy and NetworkPolicy CRD. The primary trade-off to using a CNI-specific CRD is portability. Should you choose to change plugins in the future, you may need to convert policies between types. However, some of the plugin-specific policy features are very compelling for various cluster architectures.
Historically, organizations have attempted to keep their existing network models outside of Kubernetes and make Kubernetes fit within it. For example, this can include making layers of Kubernetes nodes such as running nodes in Kubernetes dedicated to certain layers such as Web, App, and Data. This moves away from Kubernetes declarative approach and add a lot of complexity to the system. We highly recommend considering intra-cluster and workload traffic policies into the Kubernetes API.
Pros:
- Essential network controls can be enforced
Cons:
- Differences in implementation between CNI plugins can be a challenge


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
James Martin makes his succulent steaks even more spectacular with homemade onion butter and giant onion rings.
First, make a red wine reduction by bringing the red wine and beef stock to the boil, then reducing the heat to low and simmering until the volume of liquid has reduced to 50ml/2floz.
Heat a knob of the butter in a frying pan over a medium heat. Add the diced onion and fry for 1-2 minutes, or until just softened. Transfer to a bowl.
Add the remaining butter, balsamic vinegar, red wine reduction and parsley to the bowl containing the diced onion and mix well. Season, to taste, with salt and freshly ground black pepper. Set aside.
Season the steaks with salt and freshly ground black pepper, then rub with a little of the olive oil.
Heat a griddle pan over a medium to high heat. When hot, add the steaks and cook for 2-3 minutes on each side (for medium), or until cooked to your liking. Remove from the pan and set aside on a plate to rest for 3-4 minutes. Place a spoonful of the onion butter on top of each steak while it rests.
Meanwhile, heat the oil in a deep-fat fryer to 190C/375F. Alternatively, half-fill a heavy-based saucepan with oil and heat until a breadcrumb sizzles and turns golden-brown in it. (Caution: hot oil can be dangerous. Do not leave unattended.)
Sprinkle the flour onto a plate and season with salt and freshly ground black pepper. Beat the eggs in a bowl.
Dredge the onion rings in the seasoned flour then dip in the beaten egg. Lower them carefully into the hot oil and fry for 1-2 minutes, or until golden-brown and crisp. Remove from the pan using a slotted spoon and set aside to drain on kitchen paper. Sprinkle over a little salt.
To serve, carve each steak into slices and place onto serving plates. Pile the onion rings alongside. Spoon another dollop of the onion butter on top of each steak.


Sorrento F11L - Change the phone ringtone and notification sound
Document Id: KBDOC-00259
Created: 2010-04-10
Updated: 2010-04-14
Steps to change the phone ringtone for calls on your Sorrento F11L
- From the Settings screen, tap Settings.
- Tap Sounds.
- Tap Ringtone.
- Tap your preferred ringtone.
- You've now changed the ringtone.
Steps to change the notification ringtone for texts on Sorrento F11L
- From the Settings screen, tap Settings.
- Tap Sounds.
- Tap Text Tone.
- Tap your preferred ringtone.
- You've now changed the ringtone.
Steps to change the notification ringtone for emails on Sorrento F11L
- From the Settings screen, tap Settings.
- Tap Sounds.
- Scroll to and tap New Mail.
- Tap your preferred ringtone.
- You've now changed the ringtone.
Tags: smartphone, change, contacts, off, their


|
CCL
|
#include "ccl_core.h"
#include "ccl_utils.h"
#include "ccl_placeholder.h"
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "gsl/gsl_integration.h"
#include "gsl/gsl_spline.h"
#include "ccl_background.h"
#include "ccl_constants.h"
#include "ccl_error.h"
#include "ccl_lsst_specs.h"
#include "ccl_params.h"
Data Structures | |
| struct | dNdz_sources_params |
| struct | pz_params |
| struct | norm_params |
Functions | |
| double | ccl_specs_sigmaz_clustering (double z) |
| double | ccl_specs_sigmaz_sources (double z) |
| double | ccl_specs_bias_clustering (ccl_cosmology *cosmo, double a, int *status) |
| user_pz_info * | ccl_specs_create_photoz_info (void *user_params, double(*user_pz_func)(double, double, void *, int *)) |
| double | gaussian_pz (double z_ph, double z_s, void *params, int *status) |
| user_pz_info * | ccl_specs_create_gaussian_photoz_info (double sigma_z0) |
| void | ccl_specs_free_photoz_info_gaussian (user_pz_info *my_photoz_info) |
| void | ccl_specs_free_photoz_info (user_pz_info *my_photoz_info) |
| void | ccl_specs_dNdz_tomog (double z, int dNdz_type, double bin_zmin, double bin_zmax, user_pz_info *user_info, double *tomoout, int *status) |
| double ccl_specs_bias_clustering | ( | ccl_cosmology * | cosmo, |
| double | a, | ||
| int * | status | ||
| ) |
Compute b(a), the bias of the clustering sample of a cosmology at a given scale factor This is input from LSS group.
| cosmo | Cosmological parameters |
| a | scale factor, normalized to a=1 today. |
| status | Status flag. 0 if there are no errors, nonzero otherwise. For specific cases see documentation for ccl_error. |
| user_pz_info* ccl_specs_create_gaussian_photoz_info | ( | double | sigma_z0 | ) |
This function creates a structure containing the photo-z model for the built-in Gaussian photo-z pdf.
| sigma_z0 | The photo-z uncertainty at z=0. The photo-z uncertainty is assumed to scale like (1 + z). |
| user_pz_info* ccl_specs_create_photoz_info | ( | void * | user_params, |
| double(*)(double, double, void *, int *) | user_pz_func | ||
| ) |
This function creates a structure amalgamating the user-input information on the photo-z model, P(z) plus some parameters.
| user_params | User-defined parameters for the P(z) function |
| user_pz_func | P(z) function |
| void ccl_specs_dNdz_tomog | ( | double | z, |
| int | dNdz_type, | ||
| double | bin_zmin, | ||
| double | bin_zmax, | ||
| user_pz_info * | user_info, | ||
| double * | tomoout, | ||
| int * | status | ||
| ) |
Return dNdz in a particular tomographic bin, convolved with a photo-z model (defined by the user), and normalized.
| z | redshift |
| dNdz_type | the choice of dN/dz from Chang+ |
| bin_zmin | the minimum redshift of the tomorgraphic bin |
| bin_zmax | the maximum redshift of the tomographic bin |
| user_info | the user P(z) info struct |
| tomoout | the output dN/dz |
| status | Status flag. 0 if there are no errors, nonzero otherwise. |
| void ccl_specs_free_photoz_info | ( | user_pz_info * | my_photoz_info | ) |
Free memory holding the structure containing user-input photoz information.
| my_photoz_info | that holds user-defined P(z) and parameters |
| void ccl_specs_free_photoz_info_gaussian | ( | user_pz_info * | my_photoz_info | ) |
Free memory holding the structure containing user-input photoz information for the built-in Gaussian photo-z pdf.
| my_photoz_info | that holds user-defined P(z) and parameters |
| double ccl_specs_sigmaz_clustering | ( | double | z | ) |
Return sigma(z), the photo-z dispersion, for the clustering sample This is if you want to assume Gaussian uncertainties.
| z | redshift |
| double ccl_specs_sigmaz_sources | ( | double | z | ) |
Return sigma(z), the photo-z dispersion, for the lensing sample This is if you want to assume Gaussian uncertainties.
| z | redshift |
| double gaussian_pz | ( | double | z_ph, |
| double | z_s, | ||
| void * | params, | ||
| int * | status | ||
| ) |


Blog Examples
Tailwind Purge
This example will show you how to reduce your Tailwind stylesheet filesize
Directory: tailwind-purge


Thomas Jefferson Model UN & OAS
"Building Bridges"
A Letter From Our President
For over 20 years, Instituto Thomas Jefferson has hosted several UN Models in Mexico City and is about to go for its eighth edition on its Queretaro campus. It has been a very ambitious journey from the first year until today, and it grows larger every year. Last year, we had the honor of hosting a pioneer model that included both simulations of the United Nations and the Organization of the American States. It was an aspiring step and a successful achievement; however, this year we are aiming even higher. With competitive and quality committees, as well as social spaces to meet new people from all over Mexico and other countries, this year’s secretariat promises to do its best to make TJMUN & OAS 2016 the most enriching experience for delegates.
High school students get engaged in issues currently debated by world leaders, while developing leadership skills such as diplomacy, cooperation, debate, critical thinking, empathy and innovation. This increases the delegate's knowledge and broadens his/her point of view, not only during the debate but in the whole experience of the model on very important issues such as climate change, the fight against poverty, war and the urge of having sustainable economies around the world.
On behalf of the Secretariat of TJMUN & OAS 2016 and our entire staff, I hope you can join us in December. Should you have any inquiries, don’t hesitate to contact us through<EMAIL_ADDRESS>On our website, you will find all the information you need about committees or any other specific information about the school and Queretaro.
I’m looking forward to meeting you this December at TJMUN & OAS 2016.
Sincerely, Humberto G. Salinas President TJMUN & OAS 2016


| up: IO | index | Zimbu documentation |
|
Used for the return value of IO.fileInfo().
|
|
| Copyright 2009 Bram Moolenaar All Rights Reserved. |
| Licensed under the Apache License, Version 2.0. See the LICENSE file or obtain a copy at: http://www.apache.org/licenses/LICENSE-2.0 |


ABOUT ME
My name Malak Al-Khasawneh, Im frome Jordan.
I born in irbed in 1996 so I have 25 years old . I studed pharmacy in yarmouk un and graduatide in 2019.
My Education
- Bachelor's degree in pharmacy
- Course in eye medication
- Course in how to inject
- Course in web development
My Experience
Since my graduation, I have worked to develop my skills in the pharmacy sector, so I trained in many community pharmacies. and I took some courses to learn more and more .
- six months experience in one of the community pharmacies
- Trained in many community pharmacies
My Hobbies
My hobbies are reading scientific articles and novels, playing sports and making sweets.
My new activities
Learn more about programming languages and web development, so I applied for a grant to help me learn about this topic
My Top Ten Foods
- Grilled chicken
- Shawarma
- Mandi rice
- Pizza
- Almkmoura
- pastries
- Pasta
- Mulukhiyah
- kofta
- Roast beef


SmartCard Performance
fromdate:
todate:
submit
Total:{{length}}
ConvertCSV
Sl.no
DATE
Docking Station
within 1sec
Total
Smart Card Performance
{{$index+1}}
{{x.date|date:'dd MMM yy'}}
{{x.Name}}
{{x.duration1sec}}
{{x.total}}
{{(x.cal).toFixed(2)}}


Rockband (no-fail mode) with the three year-old on drums may not be a high scoring way to play, but it makes for an awesome evening.
11/18/2011, 7:24:55 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Rockband (no-fail mode) with the three year-old on drums may not be a high scoring way to play, but it makes for an awesome evening.
11/18/2011, 7:24:55 PM
Favs: 0
Retweets: 0
link


demo index
»
scheduled sequencing
Play a few notes, which were pre-scheduled and not triggered via setTimeout
play audio demo
render and download audio demo


We monetize bitcoin!
- maximize world-class functionalities
- deploy front-end functionalities
- deliver bricks-and-clicks bandwidth
- maximize integrated partnerships
- target rich content
- enhance killer portals
- embrace efficient initiatives
- mesh bleeding-edge experiences
- enable magnetic markets
- syndicate cutting-edge experiences
- utilize rich communities
- deliver out-of-the-box ROI
- reinvent cross-media infrastructures
- embrace rich initiatives


Timming API
One thread "...to rule them all."
Really ?
Timing Model
Timing API
SetTimeout
setInterval
clearTimeout
clearInterval
This is a prototype base programming
Testing async
Qunit API
Let's do some codingc
Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.


Bits And Bytes
Welcome to Bits And Bytes! A whole new series about some common technologies. I will be experimenting with atleast 1 new tech every week and writing about my experience in this series.
In these posts, I will try to explain the basics about the tech/possible use cases with some examples. I’m inspired by Richard Feynmann’s technique of explaining things in layman terms. Giving it a try and hope everything works out well! CHeers


If you have been involved in Bitcoin for any significant length of time, you have probably at least heard of the idea of "proof of work." The basic concept behind proof of work is simple: one party (usually called the prover) presents the result of a computation which is known to be hard to compute, but easy to verify, and by verifying the solution anyone else can be sure that the prover performed a certain amount of computational work to generate the result. The first modern application, presented as "Hashcash" by Adam Back in 1996, uses a SHA256-based proof of work as an anti-spam measure by requiring all emails to come with a strong proof-of-work attached, the system makes â€¦


Helper class for reporthelp_week_selection and reporthelp_month_selection. Initialize by passing a year for a full set of months, or by passing a year and a range of accurate dates. If the year matches the first or last date in that range, then the months associated with the year will be restricted according to the matching start and/or end date. The range, if given, MUST have a “first” date which is earlier in the year, or at worst the same date as the “last” date (i.e. don't pass in “backwards” ranges).
Commercial numbered weeks within which a given date falls may start or end on the previous or next year. If the caller provides a limiting date range that exhibits this (e.g. passes in 31st December 2008, which actually lies in week 1, 2009) then the ReportYear object can do nothing other than represent a full set of its own numbered weeks. If you want to create an object for the extra year, where applicable, you must do so manually.
# File app/helpers/reports_helper.rb, line 57 def initialize( year, date_range = nil ) @title = year.to_s @weeks = [] @months = [] # "limit" is set if the object is being built for the current year. # Weeks and months are checked and any that lie in the future are # not included. today = Date.current limit = ( year == today.year ) range = ( 1..( Timesheet.get_last_week_number( year ) ) ) # Work out the weeks, limited as above, or perhaps by an optional date # range passed in by the caller. range.each do | week | first_day_of_week = Timesheet.date_for( year, week, TimesheetRow::FIRST_DAY, true ) last_day_of_week = first_day_of_week + 6 break if ( ( limit and first_day_of_week > today ) or ( date_range and first_day_of_week > date_range.last ) ) next if ( ( date_range and last_day_of_week < date_range.first ) ) @weeks.unshift( ReportWeek.new( year, week ) ) end # Work out the months, again limited as above. ( 1..12 ).each do | month | break if ( ( limit and month > today.month ) or ( date_range and month > date_range.last.month and date_range.last.year == year ) ) next if ( ( date_range and month < date_range.first.month and date_range.first.year == year ) ) @months.unshift( ReportMonth.new( year, month ) ) end end


Errors: {error_count}
{ message.count } X { message.text } !! { message.text }
MTGATracker couldn't find any decks. If this is the first time launching MTGATracker, please edit, then save any deck in MTGA now!


| 047:031 Khan | : |
And surely, We shall try you till We test those who strive hard (for the Cause of Allah) and the patient ones, and We shall test your facts (i.e. the one who is a liar, and the one who is truthful). |
| 047:031 Maulana | : |
And certainly We shall try you, till We know those among you who strive hard, and the steadfast, and manifest your news. |
| 047:031 Pickthal | : |
And verily We shall try you till We know those of you who strive hard (for the cause of Allah) and the steadfast, and till We test your record. |
| 047:031 Rashad | : |
We will certainly put you to the test, in order to distinguish those among you who strive, and steadfastly persevere. We must expose your true qualities. |
| 047:031 Sarwar | : |
We shall certainly test you until We know those who strive hard for the cause of God and those who exercise patience. We will also examine your deeds. |
| 047:031 Shakir | : |
And most certainly We will try you until We have known those among you who exert themselves hard, and the patient, and made your case manifest. |
| 047:031 Sherali | : |
And WE will, surely, try you, until WE make manifest those among you who strive for the cause of ALLAH and those who are steadfast. And WE will make known the true facts about you. |
| 047:031 Yusufali | : |
And We shall try you until We test those among you who strive their utmost and persevere in patience; and We shall try your reported (mettle). |
Concepts/Themes Covered: أركان الإسلام > التوحيد > عقوبة المرتدين Pillars of Islam> Islamic> The Apostates' Punishment الإيمان > الإيمان بالله > الابتلاء والفتن اختبار لإيمان المؤمن Faith> Belief In Allah> The Affliction and the Ordeals are test for the Believer's Faith الإيمان > المؤمنون > ابتلاؤهم Faith> The Believers> Their Affliction الجهاد > الجهاد في سبيل الإسلام > الدعوة إلى الجهاد Jihad> The Call to Jihad>The Call for the Holy War الجهاد > الجهاد في سبيل الإسلام > مدح الجهاد Jihad> The Call to Jihad>Praising the Holy War الإنسان والعلاقات الأخلاقية > الأخلاق الحميدة > الصبر Man and The Moral Relations> Good Morals>Patience
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


It would be great to bring the natural language thats in the quick add on iOS to all platforms.
Every client has demoed proof of concepts for this feature over the years. We should just build it.
2 days ago
Has about 3k votes on uservoice and we get a handful of incoming request each week, putting it in the lower top 10 of feature requests. But I think we all know just how sticky it can be (using loc. reminders on Google Now a lot at the moment), especially with Quick Add rolling out!
2 days ago
Jon Arnold
We will probably be doing some work with geofences for an integration very soon, it would make sense to include geo reminders at the same time
2 days ago


A common approach to content delivery in P2P networks is to form an overlay. Most of the existing solution s adopted some variants of application-level multicast, where peers form a single (or multiple), topologically-aware (or delay-aware) tree structure(s) to cooperatively distribute a content. These solutions accommodate scalability by minimizing network load across the tree. However, they are unable to maximize delivered quality to individual peers because of the inherent limitation of delivered bandwidth through a tree-structure overlay of peers with heterogeneous and asymmetric bandwidth. Extending these solutions to multiple tree does not address this fundamental limitation either.
PALS abandons this approach and tackles this problem from a new angle. In PALS each peer is allowed to connect to the overlay at multiple points (or receive content from multiple other peers). More importantly, each peer independently learns about other peers in the overlay, selfishly determines the best way to connect to the overlay in order to maximize its own quality, and dynamically adjusts its connections to the overlay as network or overlay condition change. Therefore, competing peers form an unstructured, bandwidth-aware overlay that maximize delivered quality to each peer. Furthermore, such an overlay can gracefully accommodate dynamics of peer participation. We are currently developing this overlay construction strategy, and will post further details in a near future.
Existing solutions for multi-sender delivery are unable to accommodate streaming from multiple congestion control senders. These solutions either ignore the need for congestion control, or assume that available bandwidth is sufficient to deliver maximum quality stream. Note that the commonly suggested, static approach of delivering a single layer from each sender is not able to cope with bandwidth variation, nor able to use the available bandwidth from heterogeneous sender peers, efficiently. For example, if a sender peer can provide half a layer, or two layers, this approach can not use the available bandwidth properly.
We develop a novel
receiver-driven coordination
mechanism for multi-sender streaming
where a receiver directly orchestrates what segments of the stream
should be delivered
by each sender. This approach can not only utilize available bandwidth
from each sender,
but also dynamically adapt delivered quality based on aggregate
bandwidth from all senders.
We are currently developing and testing this coordination mechanism and
will post our scheme in a near future.
To seamlessly support asynchronous peers who join a session with different delays, PALS incorporates a distributed caching mechanism. Each peer contributes an arbitrary amount of cache space, and the collection of all participating peers form a distributed and heterogeneous cache space. Each stream should be partially cached at different peers in order to enable multi-sender delivery while achieving high caching efficiency for the distributed cache space. The key challenge is how to manage this distributed cache space efficiently in order to maximize both delivered quality to asynchronous clients and efficiency of distributed cache space.
Existing caching mechanisms
for multimedia streams are
unable to accommodate this
distributed environment. These solution try to maximize performance of
a single
(proxy) cache, rather than a distributed cache space.
We are developing a scalable, distributed caching mechanism that
dynamically adjusts partially cached content at each peer based on its
locally observed popularity.
Acknowledgment and Disclaimer


---
layout: default
title: Release v1.1.0
---
Release v1.1.0, 29th Mar 2014
Major changes
- History includes changes to area.
- Better history - shows you what fields have changed. (Note there is a new Cron job associated with this.)
- On create event, check for duplicates and prompt user.
- Meaningful slugs, eg "1-edinburgh".
- Venues have address and postcode fields.
- If supply GB postcode and no lat/lng, lat/lng is set automatically. (Note this is a new extension that must be set up.)
- Calendar admins can delete and undelete areas.
- Recur option if event is not in group, that prompts user to add or create group first.
Note the folder structure has changed. Theme assets (CSS, templates, images, javascript) and Extensions are now saved in a different place.
Minor changes
- Export boxes have more options and better labels.
- Unsubscribe email headers set.
- Sysadmin has display config screen that checks for common mistakes.
- If on Single Site mode, hide visibility from Calendar Admin as that is useless.
- Login screen should have separate username or email fields.
- Calendar improved with fuller title and more information in event popup boxes.
- When recur event in multiple groups new events are now added to all groups.
- Have physical events feature able to be set by calendar admin.
- If site only has one country that country is shown in places menu.


Winter!! Brrrr. That is the first thing I think of when someone mentions the word winter. When people think of winter, they think of cold, Chistmas, New Years, and Santa. When I think of winter, I think of candy canes, snow, hot chocolate, and Christmas break in California. My favorite part of winter is getting the chance to go home to the warm and sunny California climate for a month with no school to worry about. Once winter starts, I am that much closer to being on break and going home to my family and friends.


Press the "ready" button to clean up running containers. Press the "set" button to create containers. The press "go" to start them