What happens when we open source everything?
OS//OS 2015 will bring software developers, open government champions, changemakers and innovators together from across sectors.
We will celebrate and share global best practices, openly discuss the big challenges head on and build a community of people leading the way in the open source ethos.
Expect inspiring keynote speakers, interactive workshops and plenty of opportunity for connection, participation & open knowledge-sharing with world-leading practitioners and the brightest local minds.
---------------------
Join the conversation
Join the action
---------------------
At OS//OS 2015 we will be shining a spotlight on BEST PRACTICES around the globe, facing some of the BIG CHALLENGES head on and creating a COMMUNITY of people with a shared passion for LEADING THE WAY in the open source ethos.
*Programme best viewed in landscape orientation
| Time | Thursday | Friday |
|---|---|---|
| 9:00 | Keynotes:
|
Keynotes:
|
| 10:30 | Morning Tea | Morning Tea |
| 11:00 | Keynotes:
|
Skills & tools
|
| 12:30 | Lunch | Lunch |
| 13:30 | Keynote:
|
Keynotes:
|
| 15:00 | Afternoon Tea | Afternon Tea |
| 15:30 | World Cafe - What is your greatest OPEN challenge? | Workshops:
|
| 17:00 | Closing | Closing & a surprise... |
*All sessions are subject to change. We're working with you not for you, so you know, we'll remain fluid and awesome just like you.


hello! I'm Antonio, a creative coder.
My love for grids
what can i do with the simplest of shapes
ffff


private links
CV Nederlands
Resume English
github matthieu1345.github.io
The repo with all code for my portfolio
Dice Incremental
a small dice incremental game i'm currently making


Get the code for this article here
With the introduction of the Flask command line interface, one of the more annoying things you have to do during development is set the environment variables each time you work on your app, namely FLASK_ENV and FLASK_APP. Well, Flask has a way for you to handle those things in a way to where you only have to do it once. And through the same functionality, you can also add other environment variables for your project. In this article, I'll show you how to use python-dotenv to have your environment variables loaded and ready to go every time you run your app.
The one package that makes this all work is python-dotenv
What We'll Build
I'm going to demo how this works through a very simple Flask app.
Let's start by creating the directories and empty files we'll need. This is what our project directory will look like:
demo/__init__.py
demo/settings.py
.env
.flaskenv
run.py
This app won't do anything special. It'll just show us what configuration values we have.
Set Up The Project
To start, on the command line create a new virtual environment and install flask and python-dotenv. I use pipenv, so I can do this all in one step:
pipenv install flask python-dotenv
pipenv shell
Next, in your demo/__init__.py, we'll need to create the basics of a Flask app, which means importing Flask, creating a application factory function (create_app), and instantiating Flask. Here's the code to do this.
# demo/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
return app
If you've worked with Flask at all, then you know exactly how this works.
Next, let's add in a simple route so we know our app actually works.
# demo/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route('/')
def index():
return '
Hey There!
'
return app
Add FLASK_APP Environment Variable
Once we've done that, we can use the Flask CLI to run the app. To run the app, use the following command while in the top level directory of your project.
flask run
But when we do that, we already get an error!
Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.
This is a common error though. Normally, to fix this, we would export the environment variable FLASK_APP to be equal to the name of our app directory like this:
export FLASK_APP=demo
But since we're using python-dotenv and we want to avoid the inconvenience of using the command line, we'll have this load automatically by putting it in one of our dot files.
We have two dot files: .env and .flaskenv. We want to use .flaskenv for any Flask CLI configuration commands and use .env for our app configuration.
We'll put our FLASK_APP enviornment variable inside of the .flaskenv file.
#.flaskenv
FLASK_APP=demo
Now that we've added that one line, let's try running the app again.
flask run
We should be able to navigate to localhost:5000 or <IP_ADDRESS>:5000 to see the result.
Note the message that appears on the command line that says we aren't in debug mode.
Now if we were to stop working on this project and come back later, all we would need to do is use flask run and the app will start up without having to specify its location again.
Flask CLI Options
Let's say we want to modify some other Flask CLI options, we can put those in our .flaskenv file.
Here are some options:
- FLASK_ENV - Controls the environment.
- FLASK_DEBUG - Enables debug mode.
- FLASK_RUN_EXTRA_FILES - A list of files that will be watched by the reloader in addition to the Python modules.
- FLASK_RUN_HOST - The host you want to bind your app to.
- FLASK_RUN_PORT - The port you want to use.
- FLASK_RUN_CERT - A certificate file for so your app can be run with HTTPS.
- FLASK_RUN_KEY - The key file for your cert.
I think the most common ones you'll use are FLASK_ENV, FLASK_RUN_PORT, and FLASK_RUN_EXTRA_FILES, so I'll create examples with them here.
Let's start with FLASK_ENV. By default, it's 'production', which doesn't do anything noticeable. The point of the environment though is so you can decide on what actions to take in your app depending on the environment. For example, you could do something like instantiate the Sentry library for error logging when in production but not development.
If you change your FLASK_ENV to development, the biggest change you'll see is the reloader starts working and your app gets put into debug mode. So let's set that value in our .flaskenv file.
#.flaskenv
FLASK_APP=demo
FLASK_ENV=development
Let's stop the server and run our app again.
flask run
Notice how the message changes now.
Let's add another one for the port.
#.flaskenv
FLASK_APP=demo
FLASK_ENV=development
FLASK_RUN_PORT=8080
After restarting, we'll have to access our on through port 8080:
What if we don't want to have to stop and restart our app when we change non-py files in our project? We can use FLASK_RUN_EXTRA_FILES for that. For example, to watch a files called config.yml and README.md
FLASK_RUN_EXTRA_FILES=config.yml:README.md
(If you are on windows, you'll need to use a semicolon (;) instead of a colon (:) to separate multiple files)
Adding in .env
Now that we've worked with .flaskenv, let's move on to adding variables to the .env file. We'll use these in our app.
One advantage of having .env hold our app environment variables is that we can easily have multiple versions of the file for each place we run our app. For example, we can have one for our local machine, one for a staging environment, and one for production, etc.
Let's add two:
#.env
SECRET_KEY=topsecretkey
API_KEY=donotsharethisapikeywithanyone
Unlike the values prepended with FLASK_ in our .flaskenv file, the variables in .env aren't meant to work for us automatically. Instead, we need to load them into our app. For that, we'll use the settings.py file.
Inside of settings.py, let's import environ from os so we have access to our environment variables.
#demo/settings.py
from os import environ
Next, we need to assign those variables to Python variables, and then later we'll load them into our app.
#demo/settings.py
from os import environ
SECRET_KEY = environ.get('SECRET_KEY')
API_KEY = environ.get('API_KEY')
We don't need to use the same name for the variable in Python as we do for Python, but I like to do it for consistency purposes.
Next, let's add the configuration from this file in our __init__.py.
# demo/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_pyfile('settings.py')
@app.route('/')
def index():
return '
Hey There!
'
return app
Now our environment variables are ready to use. In the case of SECRET_KEY, normally some Flask extensions we use would pick this up and use it automatically. For the API_KEY, we would need to use this directly in our code.
In our code, we'll simply display the API_KEY in our route.
# demo/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_pyfile('settings.py')
@app.route('/')
def index():
return f'API_KEY = { app.config.get("API_KEY") }'
return app
Running in Production
If you want to use your .dotenv files in production, you have to make a small change because you won't be using the Flask CLI on a production server.
If you want to see this work, you can install gunicorn so you don't have to use the development server for Flask.
pipenv install gunicorn
We need to create a file that gunicorn can find the app object in. For this, we'll create run.py. Let's start with the standard code that doesn't load the environment variables, which is only two lines.
#run.py
from demo import create_app
app = create_app()
gunicorn run:app
This should run on port 8000 by default. If you navigate to the index, you'll see the value of API_KEY is None.
This is because the environment variables are no longer being loaded for us. To load them, we'll have to use the load_dotenv function from python-dotenv. We only need two add two more lines of code:
#run.py
from demo import create_app
from dotenv import load_dotenv
load_dotenv('.env') #the path to your .env file (or any other file of environment variables you want to load)
app = create_app()
Now if we start the server with gunicorn again we'll see our API_KEY value.
Conclusion
Now you should understand how python-dotenv can be used in your Flask project to make handling Flask CLI configuration and general app configuration more convenient.
What we covered:
- How to use Python-dotenv for Flask development server options.
- How to use Python-dotenv for application specific configuration.
- How to use it in production.
You'll be able to leave and come back to your project without having to re-set your environment variables, and you'll have a flexible way of having multiple configurations depending on where your app is running.


Ryan Day Has Thank You Message For Ohio State Fans
by Alek ArendOhio State conquered one of its biggest obstacles on Saturday with a win over Penn State. The Buckeyes responded to any and all adversity throughout the game and walked away with a 28-17 win.
One of the most impressive aspects of the game was the Ohio State crowd. Buckeyes fans have always been some of the loudest and most passionate in college football. But on Saturday, they took it to a whole new level with a top 10 team in town.
As a result, Ohio State head coach Ryan Day tweeted out a message thanking his team’s fans for their superb showing on Saturday.
“Thank you Buckeye Nation for bringing it today,” Day said on Twitter. “You made a huge impact on the game and we love you! Let’s keep fighting!!!”
Certainly a high honor for the Ohio State fans. They clearly made an impact during Saturday’s contest.
The Buckeyes will now shift their focus to the Michigan Wolverines. The classic rivalry will take place next Saturday at noon E.T. on FOX.
Jim Harbaugh’s squad has plenty of momentum heading into the match-up having won four straight and eight of their last nine games. With the game being played in Ann Arbor, the Wolverines will have a major home-field advantage next Saturday.
Day will have his team ready for the major challenge next week.


--- layout: page title: Jesscom tags: [] status: publish type: page published: true meta: _edit_last: "1" _wp_page_template: default ---
As the lead web developer at Jesscom.net I was involved with the development of dozens of sites. The projects ranged from simple static brochure type designs to full portals with complex backend systems and multiple integrative components. Most of the backend development was done with ColdFusion and MS SQL.
These were portal websites for several local/regional radio stations owned by the parent company. While layout and design were handled by our in-house web design staff, I provided all of the backend code for dynamic content generation as well as front-end AJAX-style JavaScript programming. These sites also incorporated real-time information about songs currently being played on-air. This required additional network (Windows/Service/C++) application programming in order to extract the data from the studio tracking software and import it into the website backend.
The Dare2Care sites were local charity / volunteer sites supported by our parent company. I implemented the features allowing organizations to post about volunteering opportunities and for volunteers to search that information.
These were local job posting boards for which I implemented all of the basic features you would typically find on most employment targetted websites.
There are a number of other sites that I also facilitated the development of in some minor capacity. This is a collection of screenshots from a few of those sites.
http://www.radio2000.fm/


v1.2 - Added emojis so you can easily see if you got yes, no, or maybe, added the update log, added a grey background for where you ask your question, and added the text that says "Type your question and press ask!"
v1.1 - Made the JavaScript code much shorter and easier to customize (131 lines -> 26 lines)


Reduction of global plant production due to droughts from 2001 to 2010: An analysis with a process-based global terrestrial ecosystem model
Liao, C., and Q. Zhuang, 2015: Reduction of Global Plant Production due to Droughts from 2001 to 2010: An Analysis with a Process-Based Global Terrestrial Ecosystem Model. Earth Interact., 19, 1–21, https://doi.org/10.1175/EI-D-14-0030.1.


The Towers is a simple mathematical puzzle, which consists of three rods and a number of disks
of different sizes which can slide on any rod, thus forming a conical shape.
The rules are simple:
- Only one disk can be moved at a time.
- Each move consists of taking the upper disk from one of the rods and putting it on
another one
- No larger disks may be placed on smaller disks.
Use 1, 2, 3 to move the disks. Alternatively, you can click the rod you want to select. Use the ESC key
to abort your current turn.


The uiSrefStatus event is emitted whenever an enclosed uiSref's status changes.
The event emitted is of type SrefStatus, and has boolean values for active, exact, entering, and exiting; also has a StateOrNameidentifiervalue.
The values from this event can be captured and stored on a component (then applied, e.g., using ngClass).
A single uiSrefStatus can enclose multiple uiSref.
Each status boolean (active, exact, entering, exiting) will be true if any of the enclosed uiSref status is true.
In other words, all enclosed uiSref statuses are merged to a single status using || (logical or).
A directive which emits events when a paired UISref status changes.
This directive is primarily used by the UISrefActive directives to monitor
UISref
(s).This directive shares two attribute selectors with
UISrefActive
:[uiSrefActive]
[uiSrefActiveEq]
.Thus, whenever a
UISrefActive
directive is created, aUISrefStatus
directive is also created.Most apps should simply use
UISrefActive
, but some advanced components may want to process the SrefStatus events directly.
 Book {{ book.name }}

The
uiSrefStatus
event is emitted whenever an encloseduiSref
's status changes. The event emitted is of type SrefStatus, and has boolean values foractive
,exact
,entering
, andexiting
; also has a StateOrNameidentifier
value.The values from this event can be captured and stored on a component (then applied, e.g., using ngClass).
A single
uiSrefStatus
can enclose multipleuiSref
. Each status boolean (active
,exact
,entering
,exiting
) will be true if any of the encloseduiSref
status is true. In other words, all encloseduiSref
statuses are merged to a single status using||
(logical or).In the above example,
$event.active === true
when eitheradmin.users
oradmin.groups
is active.This API is subject to change.


{% extends "base.html" %} {% block title %}{{ team.name }} - Just 2 Guys{% endblock %} {% block content %} {% set root_team_id = team.id %} {% include "includes/teamlockup.html" %}


The most important factors for a long life, I think, are partly in the genes;
number two is lifestyle, which includes healthy diet and regular exercise.
I walk, run and swim every day. However, I think too much exercise is also
unhealthy because of over-stress; sometimes people who exercise too many hours
per day die early.
Quote 2
Of course, the most important factor of all for long life is a good family.
When a person goes home with the wife or the kids giving him endless headaches,
then it's hard for that person to enjoy a long life. I am very fortunate,
because my wife Elizabeth and my obedient children are very good; they have
given me happiness.
Quote 3
You really can't say enough about 'Blade Runner.' For that movie to have such a
long life - you can't describe what a beautiful feeling that is.
Initially, the movie was out of theaters in something like two weeks.
But the people that wanted it back - the fans - they really saved it.


Uniform 0D complex The grid0 second-order function generates a 0-dimensional uniform complex embedding n + 1 equally-spaced (at unit intervals) 0-cells within the 1D interval. It returns the cells of this 0-complex.
def grid0(n):
cells = AA(LIST)(range(n+1))
return cells
◇
Macro referenced in 14b.
Uniform 1D complex A similar grid1 function returns a uniform 1D cellular complex with n 1D cells.
def grid1(n):
ints = range(n+1)
cells = TRANS([ints[:-1],ints[1:]])
return cells
◇
Macro referenced in 14b.
Uniform 0D or 1D complex A larGrid function is finally given to generate the LAR representation of the cells of either a 0- or a 1-dimensional complex, depending on the value of the order parameter, to take values in the set {0,1}.
def larGrid(n):
def larGrid1(d):
if d==0: return grid0(n)
elif d==1: return grid1(n)
return larGrid1
◇
Macro referenced in 14b.


Polished & Industry-Ready Software Engineering Track
The application process consists of a few steps.
You submit an application. Within 24 hours, we may email you a coding challenge.
You complete a technical or non-technical interview.
We make a decision and let you know within 2 weeks.
Basic Info
Any programming experience?
Yes
No
Are you a U.S. Citizen or permanent resident?
Yes
No
What would you like to do after FFP Academy?
Work As Dev
Work with an established tech company
Work with startups
Found a Startup
How did you hear about FFP Academy?
Course Information
Available Sessions
Select Option
Summer 2018 Session
Fall 2018 Session
Winter 2018/19 Session
Spring 2019 Session
Location
Select Option
NYC
LA
Preferred Method of Entry
Select Option
$2500 full tuition fee
18% of first year's salary
Please attach your resume with the application
Choose file
Upload
Please attach your cover letter with the application
Choose file
Upload
SUBMIT APPLICATION


Kamilah's Favorite Music
BTS
Kamilah's Favorite Dog
Golden Retriever
Kamilah's Favorite Dessert
Chocolate Chip Cookies


Freelancer is a free bootstrap theme created by Start Bootstrap. The download includes the complete source files including HTML, CSS, and JavaScript as well as optional LESS stylesheets for easy customization.
Whether you're a student looking to showcase your work, a professional looking to attract clients, or a graphic artist looking to share your projects, this template is the perfect starting point!


{% extends 'base.html' %}
{% load humanize %}
{% block title %}
Manage Portfolio
{% endblock %}
{% block content %}
| Symbol | Company | Price | Previous Close | Market Cap | Return YTD | PE Ratio | 52Wk High | 52Wk Low | Delete Stock |
|---|---|---|---|---|---|---|---|---|---|
| {{stock.symbol}} | {{stock.companyName}} | ${{stock.latestPrice |floatformat:-2 }} | ${{stock.previousClose |floatformat:-2 }} | ${{stock.marketCap |intcomma }} | {{stock.ytdChange | floatformat:-2 }} | {{stock.peRatio}} | ${{stock.week52High}} | ${{stock.week52Low}} | X |


eQTLs
As with any quantitative trait, genetic variants can be associated with expression of nearby genes.
These variants are known as expression Quantitative Trait Loci (eQTLs):
the presence of one allele may suggest higher expression of an associated gene than the other allele.
In this exercise, you can explore the eQTLs in your personal genotype.


Managing user accounts includes two major activities:
- Create distributed accounts:
While it is straightforward to create an account with useradd command, optimizing accounts is a little bit more work if we want to distribute the disk I/O to 3 disks. Here is an example of placing account "jmao" onto disk3:
useradd jmao
passwd jmao
mv /home/jmao /disk3/jmao
ln -s /disk3/jmao /home/jmao
chown jmao:jmao /home/jmao
It is important to distribute active users to /home, /disk2, and /disk3 so that the disk can share the load.
- Synchronize accounts to slave nodes:
For a user to freely use slave nodes and for job scheduler to migrate jobs to the slave nodes, all nodes should maintain exactly the same user accounts. Unfortunely, Oscar doesn't always sync user accounts. The system administartor has to do it manually everytime the user accounts are added, deleted and modified. The following four files need to be copied to slave nodes:
/etc/passwd
/etc/group
/etc/gshadow
/etc/shadow


Epic Pizza
Add a Pizza to Order
Select Pizza Size
Small (10")
Medium (12")
Large (14")
Select Pizza Toppings
Your Pizza
Cost:
$10.00
Size:
Medium
Toppings:
Add to Order
Your Order
Total Cost:
Delivery
Carryout
Delivery Address
Address
City
State
Zip
Submit Order
x


List of modules
- gamejs.display.FULLSCREEN
- gamejs.display.DISABLE_SMOOTHING
- gamejs.display.POINTERLOCK (implies FULLSCREEN)
- left arrow, right arrow, up arrow, down arrow
- space
- shift, control, alt
- page up, page down
- home, end, tab, meta
- gjs-canvas - the display surface
- gjs-loader - loading bar
- gjs-fullscreen-toggle a clickable element to enable fullscreen
- gjs-canvas-wrapper this wrapper is added when in fullscreen mode
- gamejs.event.MOUSE_UP
- gamejs.event.MOUSE_MOTION
- gamejs.event.MOUSE_DOWN
- gamejs.event.KEY_UP
- gamejs.event.KEY_DOWN
- gamejs.event.DISPLAY_FULLSCREEN_ENABLED
- gamejs.event.DISPLAY_FULLSCREEN_DISABLED
- gamejs.event.QUIT
- gamejs.event.MOUSE_WHEEL
- gamejs.event.TOUCH_DOWN
- gamejs.event.TOUCH_UP
- gamejs.event.TOUCH_MOTION
gamejs
gamejs.ready()
is maybe the most important function as it kickstarts your app:
var gamejs = require('gamejs');
ready(function() {
gamejs.logging.info('I am ready!')
});
If you use images or sounds preload all assets with gamejs.preload(['./files/foo.png'])
before calling ready()
.
Also in this module is the Rect
class which is generally useful when dealing with Surfaces and simple rectangles (e.g. for collisions).
gamejs/animate
Animations
on top of SpriteSheets
.
gamejs/audio
Playing sounds with the html5 audio tag. Audio files must be preloaded
with the usual gamejs.preload()
function. Ogg, wav and webm supported.
gamejs/display
Methods to create, access and manipulate the display Surface.
You can just grab the canvas element whether it exists in the DOM or not (GameJs will create it if necessary):
var display = gamejs.display.getSurface();
If you need to resize the canvas - although it is recommended to style it with CSS - you can
call the setMode()
function, which conviniently returns the new display surface:
newDisplay = gamejs.display.setMode([800, 600]);
Browser window gets resized
When the canvas size is configured with CSS, the display surface might change when the browser window is resized. GameJs will internally deal with this and recreate the the display surface with the new size.
You will typically not have to worry about this but if you want to get informed
about a display resize, you can register a callback with gamejs.event.onDisplayResize
.
Flags
For advanced uses you can set a few modes which additionally change how the display behaves with regards to pixel smoothing and whether you want a fullscreen canvas with or withouth the mouse pointer locked inside the window (for endless mouse movement in all directions).
gamejs.display.setMode()
understands three flags:
// disable smoothing
gamejs.display.setMode([800, 600], gamejs.display.DISABLE_SMOOTHING);
// disable smoothing and fullscreen
gamejs.display.setMode(
[800, 600],
gamejs.display.DISABLE_SMOOTHING | gamejs.display.FULLSCREEN
);
Fullscreen mode
When setMode()
is called with the fullscreen flag then the fullscreen mode can be enabled by the
player by clicking on the DOM element with id "gjs-fullscreen-toggle". Browser security requires
that a user enables fullscreen with a "gesture" (e.g., clicking a button) and we can not enable fullscreen
in code.
Fullscreen mode can be exited by many keys, e.g., anything window manager related (ALT-TAB) or ESC. A lot of keys will trigger a browser information popup explaining how fullscreen mode can be exited.
The following keys are "whitelisted" in fullscreen mode and will not trigger such a browser popup:
Relevant DOM node ids accessed by this module
You can provide your own tags with those ids
gamejs/event
Deal with mouse and keyboard events.
You can either handle all events in one callback with gamejs.event.onEvent()
:
gamejs.onEvent(function(event) {
if (event.type === gamejs.event.MOUSE_UP) {
gamejs.logging.info(event.pos, event.button);
} else if (event.type === gamejs.event.KEY_UP) {
gamejs.logging.info(event.key);
}
});
Or recieve more specific callbacks, e.g. only for KEY\_UP
with gamejs.event.onKeyUp()
:
gamejs.onKeyUp(function(event) {
gamejs.logging.info(event.key);
});
All events passed to your callback are instances of gamejs.event.Event
and have a type
property to help
you distinguish between the different events. This type
property is set to one of those constants:
Keyboard constants
There are also a lot of keyboard constants for ASCII. Those are all prefixed with K\_
, e.g. gamejs.event.K\_a
would be the "a"
key and gamejs.event.K_SPACE
is the spacebar.
Touch events
Touch events do not have a single position but for all TOUCH\_*
events you get an array of
touches
, which each have their own pos
attribute and a unique identifier
for tracking
this touch across multiple TOUCH\_MOTION
events.
User defined events
All user defined events can have the value of gamejs.event.USEREVENT
or higher.
Make sure your custom event ids follow this system.
gamejs/font
Methods for creating Font objects which can render text to a Surface.
gamejs/graphics
This module holds the important Surface
class which is the general container for image data.
var surface = new gamejs.graphics.Surface([width, height]);
The functions to draw geometric lines like circles, lines, rectangles, etc. are also all in this module:
gamejs.graphics.line(surface, '#ff0000', centerPoint, radius);
Each Surface instance has methods to create a new rotated, flipped, scaled, etc. instance of itself:
// the original `surface` remains untouched by the
// filp operation. A new Surface instance
// is returned by `flip()`.
var horizontalFlippedSurface = surface.flip(true);
If you want to put images (png, jpg) on the screen, also see the gamejs.image
module and gamejs.preload()
.
There are several ways to specify colors. Whenever the docs says "valid #RGB string"
you can pass in any of the following formats: "#ff00ff"
, "rgb(255, 0, 255)"
or "rgba(255, 0, 255, 1)"
.
gamejs/http
Make synchronous http requests to your game's serverside component.
If you configure a ajax base URL you can make http requests to your
server using those functions.
The most high-level functions are load()
and save()
which take
and return a JavaScript object, which they will send to / recieve from
the server-side in JSON format.
gamejs/image
Load images as Surfaces.
Sounds & Images are loaded relative to your game's html page
(the html which includes the GameJs code) or relative to the
property window.$g.resourceBaseHref
if it is set.
gamejs/logging
Static methods for logging and setting the log level. All logging functions (info()
, debug()
, etc.) take
any number of arguments and will print them in one line.
gamejs/pathfinding
A* path finding algorithm
Use the findRoute(map, from, to, [timeout])
function to get the linked list
leading from
a point to
another on the given map
.
The map must implement the interface gamejs.pathfinding.Map
. This
class already holds an example implementation for debugging use.
Optionally, the search is cancelled after timeout
in millseconds.
If there is no route null
is returned.
gamejs/pixelcollision
Image mask. Usefull for pixel perfect collision detection:
gamejs/thread
gamejs.worker makes it more convinient to work with W3C WebWorkers by providing a way to run
CommonJs modules inside of them. GameJs also provides the typically gamejs.ready()
and
event loop to facilitate communication between workers and the main application.
See the examples/workers
directory for a running example.
Create a worker with the main module "foo-worker" (see below for how the worker's module looks like):
var fooWorker = new Worker('./foo-worker');
// Send a message to your worker.
// The Message doesn't have to be a string but it
// must be `JSON.stringify()`-able
fooWorker.post("foobar");
You can also recieve messages from the worker:
// recieve events from the worker
fooWorker.onEvent(function(event) {
if(event.timestamp > ...)
});
And this is how the above referenced "foo-worker" module would looke like. As usual, we need a
gamejs.ready()
to get started and within that we bind an event handler:
var gamejs = require('gamejs');
gamejs.ready(function() {
gamejs.event.onEvent(function(event) {
var plaintext = fastCrack(event.password)
....
});
});
Our event worker could do expensive calculations (seperate and not blocking the main game) when
recieving an event. Once the result is caculated, it can be sent back to the main application
with gamejs.thread.post()
:
gamejs.thread.post({
info: "important message from worker",
timestamp:<PHONE_NUMBER>4
});
The main application would in turn recieve an event posted like this from fooWorker.onEvent
, as seen above.
This module is useful for expensive algorithms where the result does not have to available instantiously
(e.g., path-finding) or for continous logic which can be
calculated seperately from the rendering loop, and which only needs to feed back into the model of the rendering every
now and then (e.g. physics) The main draw back of the Worker
model is that
you can only communicate with them via text messages (typically JSON.stringify()ed messages).
gamejs/tiledmap
This is a loader for the general purpose tile map editor "Tiled".
This module can load all ".tmx" files even if additionally base64 encoded (can be configured in Tiled).
This module loads the whole map definition, including the TileSets with
all necessary images. For an example on how to render a map loaded with
this module, see examples/tiledmap
.
You will typically create a Map instance with Map(url)
and deal
with the layers, tilesets, etc. through the Map instance
instead of loading & creating them yourself.
Only orthogonol maps are supported (no isometric maps).
gamejs/time
Only used by GameJs internally to provide a game loop.
gamejs/math/angles
Degrees and radians.
gamejs/math/binaryheap
Binary Heap implementation from Eloquent JavaScript
gamejs/math/matrix
Matrix manipulation, used by GameJs itself. You probably do not need this unless you manipulate a Context's transformation matrix yourself.
gamejs/math/noise
A noise generator comparable to Perlin noise, which is useful for generating procedural content.
This implementation provides 2D and 3D noise:
var simplex = new Simplex(); simplex.get(2, 4); simple.get3d(1, 2, 4);
You can optionally
pass a seedable pseudo-random number generator to its constructor. This
generator object is assumed to have a random()
method; Math
is used
per default:
var Alea = require('gamejs/math/random').Alea;
var simplex = new Simplex(new Alea());
Also see gamejs/math/random
for a seedable pseudo random number generator
gamejs/math/random
A seedable random-number generator.
A generator is initialized by GameJs and can be used with the static functions of this module:
gamejs.random.choose([1,2,4]); // integet between and including 2 and 5 gamejs.random.integer(2, 5);
You can re-initialize this generator with a different seed by
calling gamejs.utils.prng.init(seed)
after which the static
functions in this module will use the new seed.
gamejs/math/vectors
gamejs/utils/arrays
Utility functions for working with Obiects
gamejs/utils/base64
Base64 encode / decode
gamejs/utils/callback
Manage a callback with invocation scope. This is used internally by GameJs but might be useful for others.
gamejs/utils/objects
Utility functions for working with Objects
gamejs/utils/strings
Working with strings
gamejs/utils/uri
Utilies for URI handling.
gamejs/utils/xml
Provides facilities for parsing a xml String.
You will typically get a gamejs.xml.Document
instance
by loading the data with one of the two static
Document.fromString(string)
or Document.fromUrl(url)
.
Querying for elements(name)
or children()
will return a
new gamejs.xml.Document
matching your result (or null).
Use attributes(name)
and value()
to get the data stored
in the XML Document.


|
gtsam
4.0.0
gtsam
|
Files | |
| file | BetweenFactorEM.h [code] |
| file | BiasedGPSFactor.h [code] |
| file | DummyFactor.cpp |
| file | DummyFactor.h [code] |
| A simple factor that can be used to trick gtsam solvers into believing a graph is connected. | |
| file | EquivInertialNavFactor_GlobalVel.h [code] |
| Equivalent inertial navigation factor (velocity in the global frame). | |
| file | EquivInertialNavFactor_GlobalVel_NoBias.h [code] |
| Equivalent inertial navigation factor (velocity in the global frame), without bias state. | |
| file | GaussMarkov1stOrderFactor.h [code] |
| file | InertialNavFactor_GlobalVelocity.h [code] |
| Inertial navigation factor (velocity in the global frame) | |
| file | InvDepthFactor3.h [code] |
| Inverse Depth Factor based on Civera09tro, Montiel06rss. | |
| file | InvDepthFactorVariant1.h [code] |
| Inverse Depth Factor based on Civera09tro, Montiel06rss. | |
| file | InvDepthFactorVariant2.h [code] |
| Inverse Depth Factor based on Civera09tro, Montiel06rss. | |
| file | InvDepthFactorVariant3.h [code] |
| Inverse Depth Factor based on Civera09tro, Montiel06rss. | |
| file | PartialPriorFactor.h [code] |
| A simple prior factor that allows for setting a prior only on a part of linear parameters. | |
| file | PosePriorFactor.h [code] |
| file | ProjectionFactorPPP.h [code] |
| Derived from ProjectionFactor, but estimates body-camera transform in addition to body pose and 3D landmark. | |
| file | ProjectionFactorPPPC.h [code] |
| Derived from ProjectionFactor, but estimates body-camera transform and calibration in addition to body pose and 3D landmark. | |
| file | RelativeElevationFactor.cpp |
| file | RelativeElevationFactor.h [code] |
| Factor representing a known relative altitude in global frame. | |
| file | serialization.cpp |
| file | SmartRangeFactor.h [code] |
| A smart factor for range-only SLAM that does initialization and marginalization. | |
| file | SmartStereoProjectionFactor.h [code] |
| Smart stereo factor on StereoCameras (pose + calibration) | |
| file | SmartStereoProjectionPoseFactor.h [code] |
| Smart stereo factor on poses, assuming camera calibration is fixed. | |
| file | TOAFactor.h [code] |
| "Time of Arrival" factor | |
| file | TransformBtwRobotsUnaryFactor.h [code] |
| Unary factor for determining transformation between given trajectories of two robots. | |
| file | TransformBtwRobotsUnaryFactorEM.h [code] |
| Unary factor for determining transformation between given trajectories of two robots. | |
| file | TSAMFactors.h [code] |
| TSAM 1 Factors, simpler than the hierarchical TSAM 2. | |


{% extends "base.html" %} {% block title %}{{ group.name }}{% endblock %} {% block content %} « Back To Groups Page
| Member Name | Actions |
|---|---|
| {{ member.display_name }} | View |
| No members found. |
| Image | Game | Description | Group | Link |
|---|---|---|---|---|
| {% if game.image %} {% else %} {% endif %} | {{ game.name }} | {{ game.small_description }} | {{ game.group }} | View Game |
| No Games Found. |
Join request is pending...
{% elif not request_sent %} Request to Join Group {% endif %} {% endblock %}


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/hiding.20when.20import.3F.html ---
Hi, is there some way to hiding a name when importing a module?
You can do that on a namespace scale: open my_namespace hiding (clashing_def)
You can also do selective opening of namespaces
thank you, I'm still new to the name space space. But what if a name is at the top level of a module?
or module itself is a namespace?
The top most namespace is called _root_
. Anything in that namespace can be hard to deal with. I'm not sure what the best approach is for dealing with name clashes in the root namespace. The best advice I have is: avoid
A module itself is not a namespace. It would be interesting if it was though. Maybe we can request that feature
OK, maybe I'm wrong, but it seems that parser in data.buffer.parser is at top level.
I guess that means this name will be there for all modules recursively importing it,
and there is no way to hide it?
hide in what sense?
do you want to name something else parser
at the top level?
A import B, B has a top level name which clashes with a name A wants to use.
@Mario Carneiro exactly.
that's bad, avoid it
hide
does not change actual names, this will cause a name conflict
maybe we should ask the author of standard library to avoid it first.
then we can ask the users to avoid it too.
sadly the core lib is frozen
so you will have to work around it
but it's a global coordination problem, it's not a problem until someone else wants the name
If you define your own parser
in your local namespace, doesn't that make it the default definition that will be used as parser
?
yes, that will work fine
but it means you can never define _root_.parser
since it's been defined already
Right
to solve it once and for all, we need qualified import, like in haskell.
The moral of the story is that you should define most of your stuff in your own namespace
so you can rename a namespace/module
that way core or mathlib can't get in your way
well again, I don't see the std lib doing it, so I don't feel obligated to do it either.
you aren't stdlib
why his parser is more fundenmental than mine?
I think if we could have a qualification to a module like import data.buffer.parser within buffer
as a way of putting all the definitions directly in the parser
module in a new buffer
namespace, that might help manage this situation
To be fair, I agree that that parser definition should be in the buffer
namespace, but in general corelib will take lots of top level names
Unlike in Haskell, though, modules and namespaces are orthogonal in Lean. A module might define names in many namespaces and many modules might define names in the same namespace. So renaming a module doesn't make a lot of sense, in general.
@Simon Hudon that's the "qualified import" I was talking about.
That would be a bit different from Haskell though. In Haskell, qualified
is a form of renaming
@Reid Barton how about this: import A as B. then the top-level def. foo in A becomes B.foo, ns.foo becomes B.ns.foo.
and then you define a top level def?
because then what happens to files C importing A?
yes, I'm the king.
Or worse, a file C that imports A and B?
it might conflict with the current semantics of import in lean.
it sure does
but since lean always break old stuffs, I see that as a good thing.
I mean, what's your solution?
if A has foo, B imports A as A and also defines foo, and C imports A and B, what happens?
there's also the type-directed .
notation to worry about
I think like in Haskell, the qualification must only be local
a practical solution would need thorough consideration of all factors, esp. the ability of .olean format.
but I would naively believe there must be a better way.
A bigger annoyance IMO is that after you have given up and put your own parser
name inside your own namespace, Lean will still consider _root_.parser
to be a possible overload for parser
(as far as I know?)
Not inside your namespace
and if it gives you trouble you can always make parser
a local notation
that will clobber any overloads
hmm I feel like I've had trouble with this before... but can't recall the details. Maybe inside tactic mode?
And yeah, I used local notation to work around it
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


We are a top business services company located in Orange County California that specializes in apartment cleaning, janitorial services, and groundskeeping personnel for small and large educational, business, and healthcare facilities.
Our clients range from small office spaces to large realestate management firms. Whatever the size of the facility or the job required, Spotless Management, Inc. will customize a plan to satisfy your needs.


Chuck D Suggests Feds Are Paying Maury Povich and Jerry Springer to Exploit Young Black People
by Tony M. CentenoChuck D is convinced that the Feds are making famed talk show hosts exploit young Black people.
On Tuesday morning (Nov. 19), the Public Enemy rapper vented his frustrations about the content he sees on daytime talk shows like Maury and The Jerry Springer Show. In a tweet posted to his Twitter timeline, Chuck suggests that the Feds are paying hosts like Maury Povich and Jerry Springer to purposely exploit the lives of young Black people everywhere.
"Just how much the fed$ pay these old white dudes like Maury & Jerry showtiming young folks dysfunctional sht on Air ...especially young blacks," Chuck D tweeted. "Beware of elder media Nucointelpro buzzards hovering. Everything ain’t entertainment in fact it’s exploitation."
The frontman for Public Enemy, who dropped their last album Nothing Is Quick In The Desert in 2017, is known to speak out whenever he feels he's seen an injustice. Earlier this year, Chuck was one of several veteran MC's who defended De La Soul after they claimed that Tommy Boy Records tried to take 90% of the revenue that would be generated by releasing the iconic rap group's discography on digital streaming platforms.
"@tommyboyrecords take care of De La Soul, Do he right thing! ✊🏾✊🏾✊🏾," Chuck wrote in his caption on Instagram.
Chuck also joined the assortment of artists who spoke out after mass shootings occurred in both Texas and Ohio back in August.
"The United States Of America has a severe issue with calling its Caucasian males ‘terrorists’ but quick triggered on calling all other ethnicities it," Chuck said about the shootings. "Explain people because the media STILL has a issue calling Timothy McVeigh one as they vanished him from current history talks."
As of this report, neither Maury nor Jerry Springer have responded to Chuck D's accusations.
See 65 Hip-Hop Albums Turning 20 in 2019
Silkk the Shocker, Made Man
Released: Jan. 19, 1999
Foxy Brown, Chyna Doll
Released,: Jan. 26, 1999
Tear Da Club Up Thugs, CrazyNDaLazDayz
Released: Feb. 2, 1999
The Roots, Things Fall Apart
Released: Feb. 23, 1999
Prince Paul, Prince Among Thieves
Released: Feb. 23, 1999
Eminem, The Slim Shady LP
Released: Feb. 23, 1999
Black Moon, War Zone
Released: Feb. 23, 1999
C-Murder, Bossalinie
Released: March 9, 1999
Wu-Tang Clan, Wu-Chronicles
Released: March 23, 1999
Krayzie Bone, Thug Mentality 1999
Released: April 6, 1999
Nas, I Am...
Released: April 6, 1999
MF Doom, Operation Doomsday
Released: April 20, 1999
BG, Chopper City in the Ghetto
Released: April 20, 1999
Naughty By Nature, Nineteen Naughty Nine Nature's Fury
Released: April 22, 1999
Ruff Ryders, Ryde Or Die, Vol. 1
Released: April 27, 1999
Snoop Dogg, No Limit Top Dogg
Released: May 11, 1999
8Ball & MJG, In Our Lifetime
Released: May 18, 1999
Various Artists, Rawkus Presents Soundbombing II
Released: May 18, 1999
Slick Rick, The Art of Storytelling
Released: May 25, 1999
Ja Rule, Venni Vetti Vecci
Released: June 1, 1999
MC Eiht, Section 8
Released: June 8, 1999
Missy Elliott, Da Real World
Released: June 22, 1999
GZA, Beneath the Surface
Released: June 29, 1999
Lil Cease, The Wonderful World of Cease a Leo
Released: July 13, 1999
Public Enemy, There's A Poison Goin' On
Released: July 20, 1999
EPMD, Out of Business
Released: July 20, 1999
Tech N9ne, The Calm Before the Storm Part 1
Release: July 27, 1999
Hot Boys, Guerrilla Warfare
Released: July 27, 1999
Memphis Bleek, Coming of Age
Released: Aug. 3, 1999
Various Artists, Violator - The Album
Released: Aug. 10, 1999
The Beatnuts, A Musical Massacre
Released: Aug. 10, 1999
Mobb Deep, Murda Muzik
Released: Aug. 17, 1999
Ludacris, Incognegro
Released: Aug. 17, 1999
Noreaga, Melvyn Flynt Da Hustler
Released: Aug. 24, 1999
Puff Daddy, Forever
Released: Aug. 24, 1999
Mac Dre, Rapper Gone Bad
Released: Aug. 26, 1999
Inspectah Deck, Uncontrolled Substance
Released: Sept. 7, 1999
Terror Squad, Terror Squad
Released: Sept. 10, 1999
Project Pat, Ghetty Green>
Released: Sept. 14, 1999
Eve, Let There Be Eve...Ruff Ryders' First Lady
Released: Sept. 14, 1999
Ol' Dirty Bastard, Nigga Please
Released: Sept. 14, 1999
Method Man & Redman, Blackout!
Released: Sept. 28, 1999
Mos Def, Black on Both Sides
Released: Oct. 12, 1999
Warren G, I Want It All
Released: Oct. 12, 1999
Cypress Hill, Los Grandes Éxitos en Español
Released: Oct. 15, 1999
Handsome Boy Modeling School, So...How's Your Girl?
Released: Oct. 19, 1999
Pharoahe Monch, Internal Affairs
Released: Oct. 19, 1999
Master P, Only God Can Judge Me
Released: Oct. 26, 1999
Lil Wayne, Tha Block Is Hot
Released: Nov. 2, 1999
E-40, Charlie Hustle: The Blueprint of a Self-Made Millionaire
Released: Nov. 9, 1999
Dr. Dre, 2001
Released: Nov. 16, 1999
Kurupt, Tha Streetz Iz a Mutha
Released: Nov. 16, 1999
Raekwon, Immobilarity
Released: Nov. 16, 1999
Will Smith, Willennium
Released: Nov. 16, 1999
Nas, Nastradamus
Released: Nov. 23, 1999
Q-Tip, Amplified
Released: Nov. 30, 1999
Rakim, The Master
Released: Nov. 30, 1999
The Notorious B.I.G., Born Again
Released: Dec. 7, 1999
Juvenile, Tha G-Code/
Released: Dec. 7, 1999
Funkmaster Flex & Big Kap, The Tunnel
Released: Dec. 7, 1999
Jay-Z, Vol. 3: The Life and Times of S. Carter
Released: Dec. 13, 1999
Various Artists, Next Friday (Original Motion Picture Soundtrack)
Released: Dec. 14, 1999
DMX, ...And Then There Was X
Released: Dec. 21, 1999
2Pac + Outlawz, Still I Rise
Released: Dec. 21, 1999
Goodie Mob, World Party
Released: Dec. 21, 1999


The MimicEntity is used to copy the display of another entity, usually as part of a control panel for a model. The entity whose display is to be copied is specified by the input to the SourceEntity keyword. This input can be the name of a specific entity or an expression that returns an entity.


Grandpa always smiles and always makes me laugh, but I only see him in his happiest when he sings. So one day I asked him why didn't he become a singer since it makes him happy and he is a really good singer. Grandpa said that he used to sing for a living and he was starting to become famous, but the pay wasn't enough to support his family. Eventhough it was really hard for him, he gave up his greatest dream for the people he loved most so he started working all day and all night to provide the needs of his family. I never knew grandpa did something like that for grandma and dad. I just wanna leave my grandpa's story here for anyone to read.
A hero isn't always an epic war general or a soldier who died fighting for his country. He could just be someone right beside you, always smiling, always loving, and always giving his best for the people he loves.


You Can Buy A 70-inch Samsung 4K TV Today For $549
The latest Best Buy doorbuster has a 70-inch Samsung 4K TV on sale for just $549. That is good for $350 off of its regular price. That's also the lowest we've seen a 70-inch TV go for, so definitely a really good deal.
For those of you interested, this is the NU6070 series TV. So it's a couple of years old actually, but TVs don't see massive improvements year-over-year, so it's still a really good buy.
This TV from Samsung is a smart TV and it runs on its own Tizen OS. This is going to give you access to a ton of great apps that you'd expect from a smart TV in 2019. This includes Hulu, Netflix, Google Play Movies & TV, YouTube and even Disney+ that launched earlier this week. So you'll be able to watch a ton of great content on this TV.
Advertisement
With this one being a 4K TV, you're going to get a pretty incredible picture. This is an LED TV and not a QLED TV, so it's not going to be the best picture that money can buy. But most people will be happy with this one. It does also support HDR10 and HLG standards for HDR. Giving you a really great picture in a lot of different movies and TV shows.
The only unfortunate thing here is that this TV does not support Dolby Atmos or Dolby Vision. But for most people, this is going to be plenty of TV to keep them happy, especially at just $549.
You can pick up the Samsung 70-inch 4K TV in this Best Buy sale by clicking here. Best Buy does offer free next-day delivery on almost everything that it sells on its website. So it will be there as soon as Monday, which is pretty awesome, considering it is free.
Advertisement


We are researchers at the University of Texas at Austin studying content moderation with the goal of making the Internet a better place. To test an unblurring feature, click one of the buttons below. The current active demo is highlighted in gold.
click: Click regions of the image to unblur it.
mouse over: Mouse over (use the cursor) to temporarily unblur regions.
slider: Use the slider below the image to gradually increase/decrease the blur.


Position: Engineering Education Undergraduate Research Assistant
Location: Knoxville, Tennessee
Position: Steel Business System Co-Op
Location: Kenosha, Wisconsin / Anderson, South Carolina
Position: Manager
Location: Powell, Tennessee
Major: Industrial and Systems Engineering
Minor: Reliability and Maintainability
GPA: 3.83 (4.00 Scale)
Status: Dual Enrollment
Status: High School Diploma
Operations Research II: Probabilistic Models
Introduction to Industrial and Systems Engineering
Leadership in Industrial Engineering I: Professional Writing
Work Measurement and Introduction to Manufacturing Processes
Engineering Statistics
Engineering Economic Analysis
Information Systems Analysis and Design
Statistical Quality Control and Management
Microsoft Suite
Event Planning
MySQL Database System
Static Website Development
Communication
Teamwork
Leadership
Adaptability


The Onslow Times is an online News Source created for the British Secondary School, Onslow St Audreys.
This website was built by the support of Mark Ndoja, the Editor and founder of The Onslow Times.
The Onslow Times are currently hiring 2 writers for all news report on the website, The Onslow Times try the best to be unbiased in our reporting, any mistakes or complaints can be reported by email to,
theonslowtimes@outlook.com


A B C D E F G I M O P R S T V W
All Classes All Packages
All Classes All Packages
All Classes All Packages
W
- when(Steps) - Static method in class com.xceptance.testbddy.api.BddSuite
- when(Steps) - Method in class com.xceptance.testbddy.core.bdd.scenario.OutlineDescriptor
- when(Steps) - Method in class com.xceptance.testbddy.core.bdd.steps.AbstractSteps
- when(Steps) - Method in class com.xceptance.testbddy.core.bdd.steps.Steps
- when(Steps) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
- when(TypeSteps<T>) - Method in class com.xceptance.testbddy.core.bdd.scenario.OutlineDescriptor
-
Adds all steps of the specified
TypeSteps
to theOutlineDescriptor.steps
.
Note, that the generic type of the parameter has to fit the generic type of this class. - when(TypeSteps<T>) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
-
Adds all steps of the specified
TypeSteps
to the steps.
Note, that the generic type of the parameter has to fit the generic type of this class. - when(String, Runnable) - Static method in class com.xceptance.testbddy.api.BddSuite
- when(String, Runnable) - Method in class com.xceptance.testbddy.core.bdd.scenario.OutlineDescriptor
-
Adds the step specified by the description and runner to the
OutlineDescriptor.steps
.
The keyword of the TypeStep isWhen
. - when(String, Runnable) - Method in class com.xceptance.testbddy.core.bdd.steps.AbstractSteps
-
Adds the step with the supplied description and runner to the
AbstractSteps.steps
.
The keyword of the Step isWhen
. - when(String, Runnable) - Method in class com.xceptance.testbddy.core.bdd.steps.Steps
- when(String, Runnable) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
- when(String, Consumer<T>) - Method in class com.xceptance.testbddy.core.bdd.scenario.OutlineDescriptor
-
Adds the step specified by the description and consumer to the
OutlineDescriptor.steps
.
The keyword of the TypeStep isWhen
. - when(String, Consumer<T>) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
-
Adds the step specified by the description and consumer to the
AbstractSteps.steps
.
The keyword of the TypeStep isWhen
. - wip() - Method in class com.xceptance.testbddy.core.bdd.Feature
- wip() - Method in class com.xceptance.testbddy.core.bdd.scenario.AbstractScenario
- wip() - Method in class com.xceptance.testbddy.core.bdd.scenario.OutlineDescriptor
- wip() - Method in class com.xceptance.testbddy.core.bdd.scenario.Scenario
- wip() - Method in class com.xceptance.testbddy.core.bdd.scenario.ScenarioOutline
- wip() - Method in interface com.xceptance.testbddy.core.bdd.status.Statusable
-
This component is a work in progess.
- wip() - Method in class com.xceptance.testbddy.core.bdd.steps.AbstractStep
- wip() - Method in class com.xceptance.testbddy.core.bdd.steps.AbstractSteps
-
The last added step is marked as a work in progress.
- wip() - Method in class com.xceptance.testbddy.core.bdd.steps.Steps
- wip() - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
- WIP - com.xceptance.testbddy.core.bdd.status.Status
-
Shows that it is a work in progress
- with(T...) - Static method in class com.xceptance.testbddy.api.BddSuite
-
Creates an
OutlineDescriptor
with the specified test data. - withData(T) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeStep
-
Specifies the data used during the execution.
- withData(T) - Method in class com.xceptance.testbddy.core.bdd.steps.TypeSteps
-
Specifies the data used during the execution.
- withReporter(ReportInterface) - Method in class com.xceptance.testbddy.core.bdd.Feature
- withTypeOf(Class<T>) - Static method in class com.xceptance.testbddy.api.BddSuite
-
Creates an
OutlineDescriptor
without any test data.
All Classes All Packages


Stranger Things: David Harbour Was Certain the Show Would Be a Massive Bomb
by Sundi RoseFans of Netflix's Stranger Things might be surprised to learn that some people didn't think it would be a huge hit, including star David Harbour.
Appearing on The Late Show with Stephen Colbert, Harbor confessed to Colbert that he was sure the show would fail, and that the people at Netflix were of the same mind. Harbor remembers Netflix executives telling him they were going to "bury" the show, thinking audiences wouldn't respond and that nobody would watch it. As we now know, it became one of the most popular shows of the year.
Click the button below to start this article in quick view.
After Harbour revealed his feelings about the show, he went on to relay an anecdote about a recent trip to Antarctica in which he battled an intense bout of seasickness and spent time with penguins. He also discussed a new book he is writing, which will chronicle his experience with mental illness.
Created by the Duffer Brothers, Stranger Things stars Winona Ryder, Millie Bobbie Brown, David Harbour, Finn Wolfhard, Gaten Matarazzo, Caleb McLaughlin, Noah Schnapp, Natalia Dyer, Charlie Heaton, Joe Keery, Priah Ferguson, Cary Elwes, Jake Busey and Maya Thurman-Hawke. The first three seasons are available on Netflix, with a fourth currently in development.
https://schema.orgBreadcrumbListListItem1Homehttps://www.cbr.com/ListItem2Movieshttps://www.cbr.com/category/movies/ListItem3Movie Newshttps://www.cbr.com/category/movies/news-movies/ListItem4Stranger Things: David Harbour Was Certain the Show Would Be a Massive Bombhttps://www.cbr.com/stranger-things-david-harbour-show-bomb/


The Best New Deals + Exclusive Offers from RetailMeNot!
Get 20% Off Sitewide at Kohl’s + Save Big with the Lowest Prices of the Season! Hurry, Offer Ends 4/17!
More top offers include:
Best Buy: Deals of the Week Up to 60% Off + Free Shipping
Overstock: 15% Off Furniture + Free Shipping on $50
Victoria’s Secret: Up to $75 Off
Macy’s: 20% Off Sitewide + Free Shipping on $75
& many more at www.retailmenot.com
Copyright 2013 WhaleShark Media. 301 Congress Avenue, Suite 700, Austin, Texas 78701
To opt-out please reply to this email with UNSUBSCRIBE in the subject line.


--- layout: post title: OpenStack Foundation Gets Funded With Help From AT&T, HP, IBM and More date: '2012-04-12T14:27:28-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/20983040094/openstack-foundation-gets-funded-with-help-from-at-t ---


--- title: "XKCD-Gutenberg Passwords" slug: "xkcd-passwords" author: "Jameson Marriott" date: "2020-12-20T20:38:00-06:00" output: blogdown::html_page: toc: true fig_width: 6 dev: "svg" draft: FALSE tags: - R ---
2021-05-08 update: I fixed a couple of problems with the Shiny app, including some works not loading properly and the list of works taking a very long time to load.
I have been inspired by this informative XKCD comic on password security, and I often follow its advice by using random-word-generating websites. But I have to wonder what dictionaries these sites use and how random the words are that they spit out. So I thought that it would be fun to make my own generator using works from https://www.gutenberg.org/ as my dictionaries, that way I would at least know where they are coming from. As long as I chose works somewhat randomly, I think that should be pretty secure.
If you want to skip the boring stuff and go directly to the app, you can find it here: https://jameson-marriott.shinyapps.io/Password_App.
First I will load the required packages.
library(tidyverse)
library(gutenbergr)
library(tidytext)
Since Pride and Prejudice is currently the most downloaded book on gutenberg over the past 30 days and I happen to like it myself, I’ll use that as my example book. It is easy to download the full text with the gutenbergr
package.
book_text <- gutenberg_download(1342, mirror = "http://mirrors.xmission.com/gutenberg/")
data("stop_words") # load stop words
book_text %>%
unnest_tokens(word, text) %>% # turn the text into a single column of words
mutate(word = str_extract(string = word, pattern = "[[:alpha:]]+")) %>% # remove any non-alphanumeric characters
select(word) %>% # get rid of the extra columns
unique() %>% # get rid of duplicate words
anti_join(stop_words, by = "word") %>% # get rid of boring "stop" words
drop_na() %>% # drop anything that didn't make it through cleanly
unlist() %>% # turn the column into a vector that sample() knows what to do with
sample(4) # chose four words at random
## word5695 word315 word3568 word1129
## "quarrelling" "neighbour" "custody" "coincided"
Well that was super easy, wasn’t it? The only thing that isn’t easy with this setup is looking up a book to use. But that can readily be solved with a shiny app. You can see the code below (at the time this post was knit—the current code will always be on github here), and the live app is at https://jameson-marriott.shinyapps.io/Password_App/.
library(shiny)
library(shinythemes)
library(gutenbergr)
library(dplyr)
library(tidyr)
library(tidytext)
library(stringr)
library(rclipboard)
# get all the titles for the drop-down menu
# use the next commented lines to download the titles one time and save them,
# but then use the last un-commented line to load them faster.
# titles <- gutenberg_works(only_text = TRUE, distinct = TRUE) %>%
# select(label = title, value = gutenberg_id) %>%
# drop_na()
# readr::write_csv(titles, "shiny/titles.csv")
titles <- read.csv("titles.csv") # improvement: add authors to title
# load the stop words so that we don't have to reload it later
data("stop_words")
ui <- fluidPage(theme = shinytheme("cerulean"),
rclipboardSetup(), # what it sounds like
verticalLayout(
fluidRow(
column(width = 8, offset = 1,
titlePanel(title = "XKCD-Inspired, Gutenberg-Sourced Passwords"),
p("This web-app lets you generate passwords inspired by ",
a(href = "https://xkcd.com/936/", "this xkcd comic."),
br(),
"First select a book from ",
a(href = "https://www.gutenberg.org/", "Project Gutenberg"),
" and then chose the number of words you want to use from that book for your password.")
),
),
fluidRow(
column(width = 6, offset = 1,
selectizeInput(inputId = "book_title",
label = "Book Title",
choices = NULL), # uses server-side selectize
p(textOutput("book_length")),
sliderInput("number_of_words",
"Number of words to chose",
min = 1,
max = 10,
value = 4))
),
# show the password
fluidRow(
column(width = 6, offset = 1,
tags$hr(),
textOutput("password", container = tags$strong)
),
),
# show the password without spaces
fluidRow(
column(width = 6, offset = 1,
uiOutput("password_no_spaces"))
)
)
)
server <- function(input, output, session) {
# server-side selectize
updateSelectizeInput(session,
inputId = "book_title",
choices = titles,
selected = sample(titles$value, 1),
server = TRUE)
# get the book
gutenberg_book <- reactive({
validate(
need(input$book_title != "", "Please chose a book.")
)
#gutenberg_works(title == input$book_title) %>% # get the gutenberg id
input$book_title %>%
gutenberg_download(mirror = "http://mirrors.xmission.com/gutenberg/") %>%
unnest_tokens(word, text) %>% # turn the text into a single column of words
mutate(word = str_extract(string = word, pattern = "[[:alpha:]]+")) %>% # remove any non-alphanumeric characters.
select(word) %>% # get rid of the extra columns
unique() %>% # get rid of duplicate words
anti_join(stop_words, by = "word") %>% # get rid of boring, "stop" words
drop_na() %>% # drop anything that didn't make it through cleanly
unlist()
})
# report the number of unique words in the book
output$book_length <- renderText({
length <- gutenberg_book() %>%
length() %>%
format(big.mark = ",") # add some nice formatting
paste0("There are ", length, " unique words in this book (including diffent forms of the same word).")
})
# generate the actual password from the book
password <- reactive({
validate(
need(length(gutenberg_book()) > 0, message = "This book didn't load properly. Please try another one.")
)
gutenberg_book() %>%
sample(input$number_of_words) %>% # chose words at random
paste0() # drop the names
})
# output the password for the UI
output$password <- renderText({
password()
})
# make the button to copy the password to the clipboard
output$password_no_spaces <- renderUI({
rclipButton("clip_button", paste0("Copy \"", str_flatten(password()), "\""), str_flatten(password()))
})
}
# run the application
shinyApp(ui = ui, server = server)


PradoBase class.
PradoBase implements a few fundamental static methods.
To use the static methods, Use Prado as the class name rather than PradoBase. PradoBase is meant to serve as the base class of Prado. The latter might be rewritten for customization.
Located in /PradoBase.php (line 41)
| Class | Description |
|---|---|
| Prado | Defines Prado class if not defined. |
Class autoload loader.
This method is provided to be invoked within an __autoload() magic method.
Creates a component with the specified type.
A component type can be either the component class name or a namespace referring to the path of the component class file. For example, 'TButton', 'System.Web.UI.WebControls.TButton' are both valid component type. This method can also pass parameters to component constructors. All parameters passed to this method except the first one (the component type) will be supplied as component constructor parameters.
Default exception handler.
This method should be registered as default exception handler using http://www.php.net/set_exception_handler. The method tries to use the errorhandler module of the Prado application to handle the exception. If the application or the module does not exist, it simply echoes the exception.
Fatal error handler.
This method displays an error message together with the current call stack. The application will exit after calling this method.
Translates a namespace into a file path.
The first segment of the namespace is considered as a path alias which is replaced with the actual path. The rest segments are subdirectory names appended to the aliased path. If the namespace ends with an asterisk '*', it represents a directory; Otherwise it represents a file whose extension name is specified by the second parameter (defaults to empty). Note, this method does not ensure the existence of the resulting file path.
Returns the most preferred language by the client user.
Returns a list of user preferred languages.
The languages are returned as an array. Each array element represents a single language preference. The languages are ordered according to user preferences. The first language is the most preferred.
Initializes error handlers.
This method set error and exception handlers to be functions defined in this class.
Localize a text to the locale/culture specified in the globalization handler.
Logs a message.
Messages logged by this method may be retrieved via TLogger::getLogs and may be recorded in different media, such as file, email, database, using TLogRouter.
PHP error handler.
This method should be registered as PHP error handler using http://www.php.net/set_error_handler. The method throws an exception that contains the error information.
Serializes a data.
The original PHP serialize function has a bug that may not serialize properly an object.
Stores the application instance in the class static member.
This method helps implement a singleton pattern for TApplication. Repeated invocation of this method or the application constructor will cause the throw of an exception. This method should only be used by framework developers.
Writes a log message.
This method wraps log() by checking the application mode. When the application is in Debug mode, debug backtrace information is appended to the message and the message is logged at DEBUG level. When the application is in Performance mode, this method does nothing. Otherwise, the message is logged at INFO level.
Unserializes a data.
The original PHP unserialize function has a bug that may not unserialize properly an object.
Uses a namespace.
A namespace ending with an asterisk '*' refers to a directory, otherwise it represents a PHP file. If the namespace corresponds to a directory, the directory will be appended to the include path. If the namespace corresponds to a file, it will be included (include_once).
Converts a variable into a string representation.
This method achieves the similar functionality as var_dump and print_r but is more robust when handling complex objects such as PRADO controls.
Documentation generated on Sun, 11 Jan 2009 20:15:27 -0500 by phpDocumentor 1.3.0RC4


Thor, American comic strip superhero created for Marvel Comics by writer Stan Lee and artist Jack Kirby. The character, derived from the Germanic god of the same name, first appeared in Journey into Mystery no. 83 (August 1962).
Thor possesses superhuman strength, speed, agility, durability and immunity to most diseases. Thor's greatest weapon, and closest ally, is Mjolnir, an enchanted hammer forged from Uru metal, which has power over storms and can generate energy blasts known as anti-force.


ledctl.conf
Section: Inter(R) Enclosure LED Utilities Config (5)Updated: February 2012
Index Return to Main Contents
NAME
ledctl.conf - Configuration file for Intel(R) Enclosure LED Utilities.DESCRIPTION
This feature is not yet implemented. The Intel(R) Enclosure LED Utilities does not use a configuration file at the moment. The name and location of file has been reserved for feature improvements.LICENSE
Copyright (c) 2009 Intel Corporation.This program is distributed under the terms of the GNU General Public License as published by the Free Software Foundation. See the built-in help for details on the License and the lack of warranty.
SEE ALSO
ledmon(8), ledctl(8)AUTHOR
This manual page was written by Artur Wojcik<EMAIL_ADDRESS>It may be used by others.
Index
This document was created by man2html, using the manual pages.
Time: 05:34:00 GMT, December 24, 2015


The Fetchmail package contains a mail retrieval program. It retrieves mail from remote mail servers and forwards it to the local (client) machine's delivery system, so it can then be read by normal mail user agents.
This package is known to build and work properly using an LFS-9.1 platform.
Download (HTTP): https://downloads.sourceforge.net/fetchmail/fetchmail-6.4.2.tar.xz
Download MD5 sum: 039b49a4f41f8544a51d82d2f4599dfc
Download size: 1.3 MB
Estimated disk space required: 16 MB
Estimated build time: 0.1 SBU
a local MDA (Procmail-3.22)
MIT Kerberos V5-1.18, libgssapi
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/fetchmail
Create a dedicated user for the fetchmail program. Issue the
following commands as the root
user:
useradd -c "Fetchmail User" -d /dev/null -g nogroup \ -s /bin/false -u 38 fetchmail
Install Fetchmail by running the following commands:
PYTHON=python3 \ ./configure --prefix=/usr \ --enable-fallback=procmail && make
To test the results, issue: make check.
Now, as the root
user:
make install && chown -v fetchmail:nogroup /usr/bin/fetchmail
PYTHON=python3
: a version
of Python is required, but
only used to install a module to allow fetchmailconf to be run.
That module is unmaintained and should not be used.
--enable-fallback=procmail
:
This tells Fetchmail to hand
incoming mail to Procmail for
delivery, if the port 25 mail server is not present or not
responding.
cat > ~/.fetchmailrc << "EOF"
# The logfile needs to exist when fetchmail is invoked, otherwise it will
# dump the details to the screen. As with all logs, you will need to rotate
# or clear it from time to time.
set logfile fetchmail.log
set no bouncemail
# You probably want to set your local username as the postmaster
set postmaster <username>
poll SERVERNAME :
user <isp_username>
pass <password>
;
mda "/usr/bin/procmail -f %F -d %T";
EOF
touch ~/fetchmail.log &&
chmod -v 0600 ~/.fetchmailrc
This is an example configuration that should suffice for most people. You can add as many users and servers as you need using the same syntax.
man fetchmail: Look for the section near the bottom named CONFIGURATION EXAMPLES. It gives some quick examples. There are countless other configuration options once you get used to it.
If you expect to receive very little mail you can invoke
fetchmail when you wish to receive any incoming mail. More
commonly, it is either invoked in daemon mode with the
-d
option either on the command
line, or in .fetchmailrc
(see
'DAEMON MODE' in man fetchmailconf), or alternatively it is
invoked from a cron job.
Last updated on 2020-02-17 15:32:53 -0800


public class LinearAlgebra
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static boolean |
isEigenvalueDecompositionViaSVD |
private static boolean |
isJBlasAvailable |
private static boolean |
isSolverUseApacheCommonsMath |
| Constructor and Description |
|---|
LinearAlgebra() |
| Modifier and Type | Method and Description |
|---|---|
static double[][] |
diag(double[] vector)
Generates a diagonal matrix with the input vector on its diagonal
|
double[][] |
exp(double[][] matrix)
Calculate the "matrix exponential" (expm).
|
org.apache.commons.math3.linear.RealMatrix |
exp(org.apache.commons.math3.linear.RealMatrix matrix)
Calculate the "matrix exponential" (expm).
|
static double[][] |
factorReduction(double[][] correlationMatrix,
int numberOfFactors)
Returns a correlation matrix which has rank < n and for which the first n
factors agree with the factors of correlationMatrix.
|
static double[][] |
factorReductionUsingCommonsMath(double[][] correlationMatrix,
int numberOfFactors)
Returns a correlation matrix which has rank < n and for which the first n
factors agree with the factors of correlationMatrix.
|
static double[][] |
getFactorMatrix(double[][] correlationMatrix,
int numberOfFactors)
Returns the matrix of the n Eigenvectors corresponding to the first n largest
Eigenvalues of a correlation matrix.
|
private static double[][] |
getFactorMatrixUsingCommonsMath(double[][] correlationMatrix,
int numberOfFactors)
Returns the matrix of the n Eigenvectors corresponding to the first n largest
Eigenvalues of a correlation matrix.
|
static double[][] |
invert(double[][] matrix)
Returns the inverse of a given matrix.
|
static double[][] |
multMatrices(double[][] left,
double[][] right)
Multiplication of two matrices.
|
static double[][] |
pseudoInverse(double[][] matrix)
Pseudo-Inverse of a matrix calculated in the least square sense.
|
static double[] |
solveLinearEquation(double[][] matrixA,
double[] b)
Find a solution of the linear equation A x = b where
A is an n x m - matrix given as double[n][m]
b is an m - vector given as double[m],
x is an n - vector given as double[n],
|
static double[] |
solveLinearEquationLeastSquare(double[][] matrix,
double[] vector)
Find a solution of the linear equation A x = b in the least square sense
where
A is an n x m - matrix given as double[n][m]
b is an m - vector given as double[m],
x is an n - vector given as double[n],
|
static double[][] |
solveLinearEquationLeastSquare(double[][] matrix,
double[][] rhs)
Find a solution of the linear equation A X = B in the least square sense
where
A is an n x m - matrix given as double[n][m]
B is an m x k - matrix given as double[m][k],
X is an n x k - matrix given as double[n][k],
|
static double[] |
solveLinearEquationSVD(double[][] matrixA,
double[] b)
Find a solution of the linear equation A x = b where
A is an n x m - matrix given as double[n][m]
b is an m - vector given as double[m],
x is an n - vector given as double[n],
|
static double[] |
solveLinearEquationSymmetric(double[][] matrix,
double[] vector)
Find a solution of the linear equation A x = b where
A is an symmetric n x n - matrix given as double[n][n]
b is an n - vector given as double[n],
x is an n - vector given as double[n],
|
static double[] |
solveLinearEquationTikonov(double[][] matrixA,
double[] b,
double lambda)
Find a solution of the linear equation A x = b where
A is an n x m - matrix given as double[n][m]
b is an m - vector given as double[m],
x is an n - vector given as double[n],
using a standard Tikhonov regularization, i.e., we solve in the least square
sense A* x = b* where A* = (A^T, lambda I)^T and b* = (b^T , 0)^T.
|
static double[] |
solveLinearEquationTikonov(double[][] matrixA,
double[] b,
double lambda0,
double lambda1,
double lambda2)
Find a solution of the linear equation A x = b where
A is an n x m - matrix given as double[n][m]
b is an m - vector given as double[m],
x is an n - vector given as double[n],
using a Tikhonov regularization, i.e., we solve in the least square sense A*
x = b* where A* = (A^T, lambda0 I, lambda1 S, lambda2 C)^T and b* = (b^T , 0
, 0 , 0)^T.
|
static double[][] |
transpose(double[][] matrix)
Transpose a matrix
|
private static boolean isEigenvalueDecompositionViaSVD
private static boolean isSolverUseApacheCommonsMath
private static boolean isJBlasAvailable
public static double[] solveLinearEquationTikonov(double[][] matrixA, double[] b, double lambda)
matrixA
- The matrix A (left hand side of the linear equation).b
- The vector (right hand of the linear equation).lambda
- The parameter lambda of the Tikhonov regularization. Lambda
effectively measures which small numbers are considered zero.public static double[] solveLinearEquationTikonov(double[][] matrixA, double[] b, double lambda0, double lambda1, double lambda2)
matrixA
- The matrix A (left hand side of the linear equation).b
- The vector (right hand of the linear equation).lambda0
- The parameter lambda0 of the Tikhonov regularization. Reduces
the norm of the solution vector.lambda1
- The parameter lambda1 of the Tikhonov regularization. Reduces
the slope of the solution vector.lambda2
- The parameter lambda1 of the Tikhonov regularization. Reduces
the curvature of the solution vector.public static double[] solveLinearEquation(double[][] matrixA, double[] b)
matrixA
- The matrix A (left hand side of the linear equation).b
- The vector (right hand of the linear equation).public static double[] solveLinearEquationSVD(double[][] matrixA, double[] b)
matrixA
- The matrix A (left hand side of the linear equation).b
- The vector (right hand of the linear equation).public static double[][] invert(double[][] matrix)
matrix
- A matrix given as double[n][n].public static double[] solveLinearEquationSymmetric(double[][] matrix, double[] vector)
matrix
- The matrix A (left hand side of the linear equation).vector
- The vector b (right hand of the linear equation).public static double[] solveLinearEquationLeastSquare(double[][] matrix, double[] vector)
matrix
- The matrix A (left hand side of the linear equation).vector
- The vector b (right hand of the linear equation).public static double[][] solveLinearEquationLeastSquare(double[][] matrix, double[][] rhs)
matrix
- The matrix A (left hand side of the linear equation).rhs
- The matrix B (right hand of the linear equation).public static double[][] getFactorMatrix(double[][] correlationMatrix, int numberOfFactors)
correlationMatrix
- The given correlation matrix.numberOfFactors
- The requested number of factors (eigenvectors).public static double[][] factorReduction(double[][] correlationMatrix, int numberOfFactors)
correlationMatrix
- The given correlation matrix.numberOfFactors
- The requested number of factors (Eigenvectors).private static double[][] getFactorMatrixUsingCommonsMath(double[][] correlationMatrix, int numberOfFactors)
correlationMatrix
- The given correlation matrix.numberOfFactors
- The requested number of factors (Eigenvectors).public static double[][] factorReductionUsingCommonsMath(double[][] correlationMatrix, int numberOfFactors)
correlationMatrix
- The given correlation matrix.numberOfFactors
- The requested number of factors (Eigenvectors).public double[][] exp(double[][] matrix)
matrix
- The given matrix.public org.apache.commons.math3.linear.RealMatrix exp(org.apache.commons.math3.linear.RealMatrix matrix)
matrix
- The given matrix.public static double[][] transpose(double[][] matrix)
matrix
- The given matrix.public static double[][] pseudoInverse(double[][] matrix)
matrix
- The given matrix A.public static double[][] diag(double[] vector)
vector
- The given matrix A.public static double[][] multMatrices(double[][] left, double[][] right)
left
- The matrix A.right
- The matrix B


This section is Before you start
What you'll need
We'll ask you for information about [you and your partner's]:
- income - how much you get from any pensions you have
- housing costs - what you pay for things like council tax and rent
Documents that could help
You may need your:
- rent or mortgage statements
- latest council tax bill or council tax benefit letter
- pension details
- savings, investments and property details
You can't save your application and come back to it later.


This second part of the user guide on saffron explains how to simulate a variety of (advanced) pulse EPR experiments with the general thyme method.
If you have not read the first part of the guide yet, it can be found here.
saffron includes a very fast algorithm, that allows to simulate a variety of pre- and user-defined pulse EPR experiments. But it does not support if in your simulation you want to do one of the following:
Setting up the experiment is pretty much the same as in part I of the user guide. The biggest difference now is, that real pulses are required, which adds more fields to the pulse definition.
In this guide, we are going to cover the following topics:
% Spin system Sys.S = 1/2; Sys.Nucs = '1H'; Sys.A_ = [5 2]; % Experiment p90.Flip = pi/2; p90.tp = 0.020; % pulse length of 20 ns tau = 0.2; Exp.Field = 350; Exp.Sequence = {p90 tau p90 0 p90 tau}; Exp.mwFreq = 9.8; % pulse frequency Exp.DetWindow = [-0.1 0.1]; % add a detection window for recording transients Exp.nPoints = 5; % only 5 data points Exp.Dim1 = {'d2', 0.1}; % increment 2nd delay by 8 ns
We added a total of three lines: p90.tp
, Exp.mwFreq
and Exp.DetWindow
p90.tp
was necessary as all pulses must no be real pulses.
With Exp.mwFreq
we tell saffron the frequency of those pulses (frequency modulated pulses will be discussed later) and with Exp.DetWindow
we requested a detection window with a width of 200 ns, centered around the end of the second τ period.
We also set Exp.nPoints
to 5 to make the output more comprehendable and to save time.
If the above is run with saffron without any output arguments
saffron(Exp,Sys)
a figure is going to be created. The
Detection is controlled with the field
Take the above sequence for example:
From spin dynamics we know that the echo that we want to detect is going to appear more or less centered around the end of the second τ-period.
Hence we can set the detection window such that it is centered around that time.
The detection window gives you a lot freedom with where you want to detect, and to detect an FID of a length τ after the last pulse, we could for example write:
Both will give the same result. In the second one, the last event is the pulse, which means the zero time of the detection window is the end of the pulse.
Another field that can be specified is the down conversion frequency
The last field related to detection is
Something to keep in mind: The entire detection window is used. This means, that if there is other echos within the detection window, those will get integrated as well and might interfere with your data.
saffron not only supports monochromatic rectangular pulses, but works with all pulse shapes that are described in the documentation and the userguide of pulse.
Note, that if you work with frequency swept pulses, refocusing conditions might be slightly different to what you are used from working with rectangular pulses, e. g. the echo position might shift slightly, or the last pulse has to have half the length of the previous pulses to ensure proper refocusing.
Let us create a two-pulse echo sequence with linearly-swept chirp pulses with smoothed edges.
First, we start with the spin system:
Next, we set up the pulses. As we are now using frequency-swept pulses, a lot more fields need to be provided:
With
Now the last thing to do is to set up the
If you run this, you will soon notice, that the echo has a negative amplitude.
By changing the phase of the pulses, we can make it positive:
x
-axis of this figure is the time of the transient in microseconds.
The y
-axis corresponds to the data points in the indirect dimension and the z
-axis is the signal.
Exp.DetWindow
. It allows to use single-point detection as well as transient detection.
The position of the detection is set in relation to the end of the last event in the pulse sequence, which is the zero time of the detection.
This last event can be a pulse or a free evolution event. You are also free to position your detection anyway you want, with the only requirement, that it must not overlap with the last pulse.
Exp.Sequence = {p90 tau p90 0 p90 tau};
Exp.DetWindow = [-0.1 0.1];
% Keeping the same sequence definition as above
Exp.Sequence = {p90 tau p90 0 p90 tau};
Exp.DetWindow = [-tau 0];
% Omitting the last free evolution period
Exp.Sequence = {p90 tau p90 0 p90};
Exp.DetWindow = [0 tau];
Exp.DetWindow
also allows single point detection:
Exp.Sequence = {p90 tau p90 0 p90 tau};
Exp.DetWindow = 0;
Exp.DetFreq
.
By default saffron uses Exp.mwFreq
for down conversion.
For down conversion with a different the frequency has to be specified in GHz:
Exp.DetWindow
also allows single point detection:
Exp.DetFreq = 9.7; % Down conversion with 9.7 GHz
Exp.DetFreq = 0; % No down conversion
If down-conversion is switched off, the signal is returned in the simulation frame.
Exp.DetIntegrate
, which, if switched on, tell saffron to integrate the signal.
Sys.S = 1/2;
Sys.g = [2.00906 2.0062 2.0023];
Sys.A = [11.5 11.5 95];
Sys.Nucs = '14N';
% 90°-pulse
Chirp90.Type = 'quartersin/linear';
Chirp90.tp = 0.200;
Chirp90.Flip = pi/2;
Chirp90.Frequency = [-120 120]; % excitation band, MHz
Chirp90.trise = 0.030;
% 180°-pulse
Chirp180.Type = 'quartersin/linear';
Chirp180.tp = 0.100;
Chirp180.Flip = pi;
Chirp180.Frequency = [-120 120]; % excitation band, MHz
Chirp180.trise = 0.030;
Par.Frequency
we define the frequency sweep, in MHz. This is defined in relation to Exp.mwFreq
which we will add later.
Par.tp
is the rise time and specific to the amplitode modulation function that we chose with Par.Type = 'quartersin/linear';
.
Exp
structure.
Since we know, that the echo position depends on the interpulse delay and the length of the refocusing pulse, we slightly adapt the sequence to keep the echo centered in our detection window.
tau = 0.5;
Exp.Sequence = {Chirp90 tau Chirp180 tau+Chirp180.tp};
Exp.mwFreq = 9.1;
Exp.Field = 324.9;
Exp.DetWindow = [-0.02 0.02];
% Change phase of both pulses by 180°
Chirp90.Phase = pi;
Chirp180.Phase = pi;
In part I of the guide we discussed how to change delays in any dimension, so we are not going to cover it here again.
Instead we are going to have a look at how to sweep pulse parameters. Every pulse parameter can be changed during the course of the experiment. For more details, see here.
Now, let us gradually decrease the flip angle of the second pulse in the above example. All we have to do is add the following lines:
Exp.nPoints = 20; Exp.Dim1 = {'p1.Flip' -pi/30};
Now, let us change the frequency band of both pulses. With
Exp.nPoints = 20; Exp.Dim1 = {'p1.Frequency,p2.Frequency' [+5 -5]};we reduce the bandwidth of both pulses by 10 MHz each step.
It is also possible to combine different pulse parameters:
Exp.nPoints = 20; Exp.Dim1 = {'p1.Frequency,p2.Frequency' [+5 -5]; 'p1.Flip' -pi/30};combines the two above examples.
You can also change different parameters of the same pulse along different dimensions:
Exp.nPoints = [10 10]; Exp.Dim1 = {'p2.Frequency' [+5 -5]}; Exp.Dim2 = {'p2.Flip' -pi/30};
This gives you complete freedom with designing your experiment or running pulse optimization routines.
saffron gives you a simple way to phase-cycle pulses with Exp.PhaseCycle
.
Let us have a look at the three-pulse ESEEM sequence:
p90.tp = 0.020; p90.Flip = pi/2; p90.Phase = pi; tau = 0.5; T = 1; Exp.Sequence = {p90 tau p90 T p90 tau}; Exp.mwFreq = 9.1; Exp.Field = 324.9; Exp.DetWindow = [-0.1 0.1];
To get a clean echo, three-pulse ESEEM uses a [+(+x
)-(-x
)] phase-cycle on the first π/2 pulse and [+(+x
)-(-x
)] on the third π/2 pulse.
In saffron this is achieved by
Exp.PhaseCycle{1} = [0, 1; pi, -1]; Exp.PhaseCycle{3} = [0, 1; pi, -1];
where the indexing corresponds to the pulse index, e.g. Exp.PhaseCycle{3}
corresponds to the third pulse.
An alternative way to write this exact phase cycle would be:
PC = [0, 1; pi, -1]; Exp.PhaseCycle = {PC [] PC};
Here, the explicit declaration of the empty brackets []
means no phase cycle for the second pulse.
It is not possible to phase cycle pulses simultaneously with Exp.PhaseCycle
.
However, you simultaneous phase cycling can be done through an additional indirect dimension.
If, for example, you want to phase cycle the second and third pulse together you could write:
Exp.nPoints = 4; Exp.Dim1 = {'p2.Phase,p3.Phase' pi/4}After the simulation finished, you need to sum up the signals with the correct detection phase manually.
Although Exp.DimX
can be used for phase-cycling of single pulses as well, this is not recommended as using Exp.PhaseCycle
, significantly improves performance.
Phase cycling in this form is not available for the fast method, but something similar to it can be achieved with filters.
The simplest way to use relaxation is to apply the same longitudinal and transverse relaxation times (in microseconds) to all transitions of the spin system. A 1.5 microseconds longitudinal relaxation time and a 0.5 microseconds transverse relaxation time can be assigned to all transitions in the system with
Sys.T1 = 1.5; % longitudinal relaxation time in microseconds Sys.T2 = 0.5; % transverse relaxation time in microseconds
In some cases, it might be of interest to investigate the effect of only one type of relaxation: If only T1
or T2
are defined, the missing relaxation time is by default set to 1010 microseconds.
In systems with larger spin quantum numbers or several spins, relaxation times can differ for different types of transitions. If you do not want to use the same relaxation time for each transition, relaxation times can also be provided in matrices. To set up the input correctly, some knowledge of the spin system and the resulting density matrices is required: For a single-spin system the basis functions of the operators in the Zeeman basis state are in descending order, left to right (more at sop). E.g., an S = 1 system has three states and the three pathways connecting them can be described by a 3 × 3 (density like) matrix:
With this we can now design matrix input for T1
and T2
, that can be translated into a relaxation superoperator:
Sys.T1(1,2) = 1.5; % transition 1 (blue) Sys.T1(1,3) = 0.5; % transition 2 (green) Sys.T1(2,3) = 1.4; % transition 3 (red) Sys.T2(1,2) = 0.3; % transition 1 (blue) Sys.T2(1,3) = 0.1; % transition 2 (green) Sys.T2(2,3) = 0.3; % transition 3 (red)
Sys.T1 = 0 1.5 0.5 0 0 1.4 0 0 0 Sys.T2 = 0 0.3 0.1 0 0 0.3 0 0 0
It suffices to define the upper triangle only (as done above). But for longitudinal (not so for transverse) relaxation there can be a difference between "up" (|+1>→|0>) and "down" (|0>→|+1>) pathways. If you are interested in assigning different relaxation times for opposing directions, you can do this by using the lower triangle:
Sys.T1(2,1) = 1.3; % transition 1 (grey) Sys.T1(3,1) = 0.7; % transition 2 (grey) Sys.T1(3,2) = 1.1; % transition 3 (grey)
Sys.T1 = 0 1.5 0.5 1.3 0 1.4 0.7 1.1 0
In case the lower triangle is not defined for T1
, the upper triangle is used for up and down directions.
Any transitions that are not assigned a relaxation time (matrix element 0 in the upper triangle), are automatically set to 1010 microseconds, which effectively switches relaxation off on that pathway.
Relaxation times in the lower triangle of T2
are ignored.
Spin systems that contain several spins are assigned relaxation times analogously, but require a slightly deeper insight into ordering of the states: The representation of the operators is in terms of product Zeeman basis states |m1,m2,m3,..>, where m1 is for the first spin, m2 is for the second spin, etc. The basis functions are again in descending order mi, left to the right. E.g. for two coupled (electron) spins with S, = 1/2, you get the following energy level scheme:
The detected signal corresponds to the expectation value of Ŝ-⟩. This means that the signals real part contains ⟨Ŝx⟩ and the imaginary part ⟨-Ŝy⟩. Keep this in mind, if you need Ŝy.
In some simulations you may observe echoes in your timetrace that should not be there.
Besides physical reasons (incomplete phase cycling, different refocusing conditions,...), such artifact echoes can arise from an aliasing effect if the spectrum is insufficiently sampled (not enough orientations are used).
This can easily be checked: By increasing the number of samples from your distribution the artifact echoes should move, spread further apart or vanish, while physical echos stay in place.
The number of orientations that are being used for the simulation can be controlled with Opt.nKnots
.
By default saffron assumes Opt.nKnots = 31
.
For simulations using the thyme method, saffron usually changes into a simulation frame that rotates slower than the labframe.
By default, the simulation frame changes all electron Zeeman interaction to about 3
GHz - the exact value depends on your experiment definition.
This has the advantage that a much larger time step can be used (which speeds up the simulation).
In most cases this will not have an effect of the outcome of the simulation.
However, if the off-diagonal elements in your Hamiltonian are large, this could lead to problems.
If you suspect this is the case, you can switch the frame shift off by setting Opt.SimFreq = 0
, or set Opt.SimFreq
to a value you would find appropriate.
For example: For a Q-band simulation where all pulses have frequencies between 33 and 34 GHz, saffron will select 31 GHz as simulation frequency.
If you are worried that this might interfere with your Hamiltonian, you could consider setting Opt.SimFreq
to 15 GHz, which would still be significantly faster than Opt.SimFreq = 0
.


Sophie Chitty
JavaScript developer
<EMAIL_ADDRESS>Playing with layouts, transitions and CSS3.
Trying out Backbone.js for the first time. Three examples.
Corporate client wanted redesign of website.
Rails application.


--- layout: layouts/default ---
Discovered an issue with a website, app or anything else? Want to report it to the creators but don't know where? Search here.
Example searches: Chrome, react, amazon, gmail.com etc


--- layout: post title: Jaggregate with BGGA closures published: 1 category: - Programming ---
The latest snapshots of Jaggregate seem to work well with BGGA closures converted to functors and predicates. I had to extract one-method interfaces from the abstract *Function and *Predicate classes (the interfaces are "*Functor" and "*Condition") -- they basically correspond to the single abstract evaluate() and matches() methods -- and to change method signatures to accept the interface types rather than the abstract class types. This was to allow closure conversion to occur -- if the parameters remained of types corresponding to abstract classes, the conversions would be rejected.
The one tweak needed was that initially, the BGGA prototype (dated Apr 27 2008) was rejecting calls such as:
Interval.fromTo(1, 4).forEachDo(System.out#println(int));
where the closure (here, a method reference) passed as a UnaryFunctor had return type void
, and the signature of forEachDo()
was:
void forEachDo(UnaryFunctor<? super Integer, ?>);
If I changed the signature to:
<R> void forEachDo(UnaryFunctor<? super Integer, ? extends R>);
things were fine, but I wasn't sure why the change would be necessary.
I mailed Neal Gafter about this, and seemingly within hours he'd fixed the issue and released a new cut of the prototype (dated May 11 2008). Many thanks to Neal for the quick turnaround and for fighting through my silly questions. :)


View the source differences on GitHub
ImageMagick
GraphicsMagick
Jimp
to-ico
package.json
nwayo update
If the changes were not already made follow the instructions in the 3.5.x → 3.6.x migration guide


SELECT
access to the relevant tables/views. You can read more about cloudsql security in the
MySql documentation,
or use the example scripts below.
CREATE USER '{{ ngModel.username || 'username' }}'@'localhost' IDENTIFIED BY '{{ ngModel.password || 'password' }}';
GRANT SELECT ON db1.* TO '{{ ngModel.username }}'@'localhost';
GRANT SELECT ON db2.table1 TO '{{ ngModel.username }}'@'localhost';


Selecting multiple elements of poker_vector
with c(2, 3, 4)
is not very convenient. Many statisticians are lazy people by nature, so they created an easier way to do this: c(2, 3, 4)
can be abbreviated to2:4
, which generates a vector with all natural numbers from 2 up to 4.
So, another way to find the mid-week results is poker_vector[2:4]
. Notice how the vector 2:4
is placed between the square brackets to select element 2 up to 4.
Assign to roulette_selection_vector
the roulette results from Tuesday up to Friday; make use of :
if it makes things easier for you.
# Poker and roulette winnings from Monday to Friday:
poker_vector <- c(140, -50, 20, -120, 240)
roulette_vector <- c(-24, -50, 100, -350, 10)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(poker_vector) <- days_vector
names(roulette_vector) <- days_vector
# Define a new variable based on a selection
roulette_selection_vector <-
# Poker and roulette winnings from Monday to Friday:
poker_vector <- c(140, -50, 20, -120, 240)
roulette_vector <- c(-24, -50, 100, -350, 10)
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(poker_vector) <- days_vector
names(roulette_vector) <- days_vector
# Define a new variable based on a selection
roulette_selection_vector <- roulette_vector[2:5]
msg = "Do not change anything about the definition and naming of `poker_vector` and `roulette_vector`."
test_object("days_vector", undefined_msg = msg, incorrect_msg = msg)
test_object("poker_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg)
test_object("roulette_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg)
test_object("roulette_selection_vector",
undefined_msg = "Please make sure to define a variable `roulette_selection_vector`.",
incorrect_msg = "It looks like `roulette_selection_vector` does not contain the correct selection from `roulette_vector`. Make sure to to use the right indexes.")
success_msg("Awesome! The colon operator is extremely useful and very often used in R programming, so remember it well. Proceed to the next exercise.")
Assign a selection of roulette_vector
to roulette_selection_vector
by placing 2:5
between square brackets.