From 6:00 PM CST Friday, Feb 15th - 2:00 AM CST Sunday, Feb 17th, ni.com will be undergoing system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
Table Of Contents
Noise Generator (Periodic Random) (G Dataflow)
Last Modified: January 12, 2018
Generates a waveform containing periodic random noise (PRN).
You can use periodic random noise to compute the frequency response of a linear system in one time record instead of averaging the frequency response over several time records, as you must for nonperiodic random noise sources.
connector_pane_image
datatype_icon
reset
A Boolean that controls the reseeding of the noise sample generator after the first call of the node.
True Accepts a new seed and begins producing noise samples based on seed.
False Maintains the initial internal seed state and resumes producing noise samples as a continuation of the previous noise sequence.
Default: False
datatype_icon
spectral amplitude
Magnitude of the frequency domain components of the output signal.
Default: 1
datatype_icon
seed
Number that this node uses to initialize the noise generator.
This node initializes the noise generator using seed if reset is True or if this is the first call of the node.
seed is greater than 0 Generates noise samples based on the seed value.
seed is less than or equal to 0 For the first call, this node generates a random seed value and produces noise samples based on that seed value. For subsequent calls to the node, if seed remains less than or equal to 0, the node maintains the initial internal seed state and produces noise samples as a continuation of the initial noise sequence.
Default: -1
datatype_icon
error in
Error conditions that occur before this node runs.
The node responds to this input according to standard error behavior.
Standard Error Behavior
Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.
error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.
If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.
If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.
Default: No error
datatype_icon
sample rate
Sample rate in samples per second.
This input is available only if you configure this node to return a waveform.
Default: 1000
datatype_icon
samples
Number of samples in the signal.
samples must be greater than 0. Otherwise, this node returns an error.
This input is available when you configure this node to return a waveform or an array of double-precision, floating-point numbers.
Default: 1000
datatype_icon
t0
Timestamp of the output signal. If this input is unwired, this node uses the current time as the timestamp of the output signal.
This input is available only if you configure this node to return a waveform.
datatype_icon
periodic random noise
The periodic random noise pattern.
This output can return the following data types:
 - Waveform
 - Double-precision, floating-point number
 - 1D array of double-precision, floating-point numbers
Understanding the Output Array
The output periodic random noise contains all frequencies that can be represented with an integral number of cycles in the requested number of samples. Each frequency-domain component has a magnitude of spectral amplitude and random phase.
Another way of thinking of periodic random noise is that it is a summation of sinusoidal signals with the same amplitudes but with random phases. The unit of spectral amplitude is the same as periodic random noise and is a linear measure of amplitude.
The following values bound the periodic random noise:
spectralamplitude * ( samples 2 1 )
if samples is even
spectralamplitude * samples 1 2
if samples is odd
datatype_icon
error out
Error information.
The node produces this output according to standard error behavior.
Standard Error Behavior
Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.
error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.
If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.
If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.
Windowing the Periodic Random Noise
Periodic random noise contains only integral-cycle sinusoids, which means the noise is self-windowing and does not contains spectral leakage. As a result, you do not need to window periodic random noise before performing spectral analysis.
Where This Node Can Run:
Desktop OS: Windows
FPGA: Not supported
Web Server: Not supported in VIs that run in a web application
Recently Viewed Topics


How to Share PDF Files
PDF Reader Pro makes file sharing easy:
1. Go to PDF Documents and choose Local, click ;
2. Tick the file or files you want to share and choose ;
3. Or you can share a specific file by clicking and select Share;
4. Or enter reading page and click and select ;
5. Or go to PDF Tools and tap Share, then select a file;
6. You can share the file via Email, Bluetooth, Skype and other social media.
Get Started with PDF Reader Pro Today!


plugin.xml file, and a descriptor file is created to describe new projects.
Step 2: Creating a new CProject
The CDT provides a full extensible wizard structure for creating CDT resources. The New Project Wizard is particularly powerful, allowing you to configure every aspect of the project's build process, from the environmental variables to source indexing. When you complete the wizard, it and the Core plug-in perform four main tasks:
 1. Create and open an IProject at the given path
 2. Build an IProjectDescription to hold the IProject's general information
 3. Construct a CDescriptor to hold the CDT-specific information
 4. Give the IProject a CNature or CCNature, depending on the content type
The first and second steps are common for the creation of any IProject. In the second task, the IProjectDescription stores information that the workbench uses to define the project. This data is persisted in XML format within the.project file in the project's top-level directory. Two important elements are , which lists the build commands for the project, and , which marks the project as having characteristics beyond those of a regular IProject.
The CDescriptor in the third step is similar to the IProjectDescription. The main difference is that it contains data specific to the CDT and inserts this information within a separate.cdtproject file, which contains profiles for different tools used in the build process and specifies configuration parameters for each. This file uses an XML format similar to the IProjectDescription. Listing 1 shows an example of a.cdtproject profile declaration.
Listing 1. Profile information in the.cdtproject file

The last step involves tagging the project as a C or C++ project. The Core plug-in does this by adding either the CNature or CCNature to the IProjectDescription. These classes do nothing interesting by themselves, but when the DeltaProcessor recognizes the nature of a new project, it tells the CModelManager to create a CProject corresponding to the project resource and adds it to the CDT model hierarchy.
Step 3: Creating a new TranslationUnit and WorkingCopy
Unlike the CProject, the TranslationUnit isn't immediately constructed when its underlying IFile appears. Instead, it's created after the file is activated and the editor opens. To explain how this works, I'll start with the central class of the CDT editing process: the CEditor.
Essentially, the CEditor is a StyledText widget that fits into the workbench and gets content from an IEditorInput instance. In keeping with the Model-View-Controller (MVC) architecture, the Eclipse Text Editor API only uses this widget to provide the View aspect. The editor's information is encapsulated within an instance of IDocument. A SourceViewer acts as the controller, and the CSourceViewer manages access to the CDT document.
In the Core plug-in, plugin.xml holds contentType extensions for the different types of C/C++ files and associates each contentType with a file suffix. In the UI plug-in, plugin.xml associates the CEditor with these contentTypes. The BBCDT recognizes files with.bbc,.bbcpp,.bbh, and.bbhpp suffixes. When you create or double-click one of these files, the workbench converts the IFile to IEditorInput and uses it to initialize the CEditor.
As the editor is initialized, the CDocumentProvider performs three important tasks:
 1. It uses the input's IFile to create TranslationUnit and TranslationUnitInfo objects.
 2. It creates an IDocument for the editor with the information in the IEditorInput.
 3. It constructs the WorkingCopy for the TranslationUnit and its buffer.
To create the new CDT elements, the provider calls the CoreModel, which calls the CModelManager. These workspace operations, such as the CreateWorkingCopyOperation and DestroyWorkingCopyOperation, all implement the IWorkspaceRunnable interface. They run asynchronously and tell the workspace to prevent other operations from interfering with the resource modification.
Like a CProject, each TranslationUnit has its own configuration information, such as its annotations. However, the provider doesn't create a separate CDescriptor. Instead, it persists the data inside the IEditorInput's FileInfo object. This way, the next time the input is activated, the provider can access the unit's information without starting from scratch.
Running the BBCDT
I've provided the BBCDT as a plug-in and a plug-in project. Because the tool's main purpose is to provide a basis for further work, I recommend importing the project, instead of adding its capability to your Eclipse installation.
To keep the BBCDT as simple as possible, I left out the PathEntryManager, which means that the tool doesn't use SourceEntry objects or even SourceRoots. Therefore, you must add source files (.bbc,.bbh,.bbcc, and.bbhh files) directly to the project. To create BBCDT resources, I've created a new set of wizard/page classes in the org.dworks.bbcdt.ui.wizards package. To create a project, click File > New > Project and choose either the C or C++ option. To create a file, click New > Other and choose either the C or C++ option. Figure 3 shows what the BBCDT project and editor look like.
Figure 3. The BBCDT
If you've accessed IFiles and IProjects in your Java code, the elements of the CDT model shouldn't present a problem. The CModel contains CProjects, which contain CSourceRoots. Each TranslationUnit corresponds to a single C/C++ source file, so the editor interacts with the CDT model by accessing and altering these elements.
With great power comes great complexity. This treatment may seem overly detailed, but you'll find it helpful if you start building your own C/C++ editor. You can get a much better idea of the CDT's mechanics by looking through the BBCDT source code. I recommend that you add, remove, and modify code to experiment with its operation.
The CDT model should also become clearer in subsequent articles, as I discuss the many ways the TranslationUnit and WorkingCopy interact with the CEditor and its UI classes. Part 2 goes further into how Documents manage events, how partitioning takes place, and how this partitioning provides for syntax coloring.
Part 1 source codeos-ecl-cdt1.zip574KB
Get products and technologies
developerWorks: Sign in
Required fields are indicated with an asterisk (*).
Need an IBM ID?
Forgot your IBM ID?
Forgot your password?
Change your password
All information submitted is secure.
Choose your display name
Required fields are indicated with an asterisk (*).
(Must be between 3 – 31 characters.)
All information submitted is secure.
Dig deeper into Open source on developerWorks
 - BlueMix Developers Community
 - developerWorks Labs
 Experiment with new directions in software development.
 - JazzHub
 - IBM evaluation software
 Evaluate IBM software and solutions, and transform challenges into opportunities.
Zone=Open source
ArticleTitle=Building a CDT-based editor, Part 1: The C/C++ Development Tooling model


text:
The extraction of relevant traffic information is one of the main research areas of the project VABENE ++. For this purpose, methods have already been developed to derive information on traffic flow from aerial photographs. The images are acquired by the 3K camera system on the Cessna 208B Grand Caravan or Dornier Do 228 and 4k camera system on the helicopter BO 105. In order to be able to react flexibly to situations in which a rapid evaluation of the traffic situation is necessary DLR scientists are currently testing the use of a MAV (Micro Aerial Vehicles) for traffic detection.
Here, the AscTec Falcon 8 flight system is used, which is equipped with a GoPro Hero3+ camera, a GPS receiver, and a unit for data transfer. The photographs and video clips will be used for the acquisition of the current traffic situation. In addition, these images will serve as input data to generate digital surface models.

source: m-a-p/FineFineWeb


the manager should trial different management actions, and use the results of that trial to decide on the best course of action. Such trials can certainly improve subsequent management.
But research costs money – money that might have been better put toward management. Further, even trialling two options means that, almost inevitably, one of the trialled actions will be inferior to the other. So opportunity costs are likely to exist in almost any trial, even if the research itself were cheap.
The trade-off between learning and doing lies at the heart of adaptive management. My recent paper led by Alana Moore addresses this trade-off, using the simplest formulation of the problem that we could muster. In that case we only considered resolving a choice between two management options. Our hope was to gain greater insight into the question of the circumstances in which research assists environmental management.
The answers surprised us in several instances. One surprise was the threshold behaviour that existed in many parameters. For example, as the expected difference in performance of the two management options increases, the optimal effort to spend on experimentation increases, but only up to a point. Once the threshold difference in performance is sufficiently large, the optimal level of experimentation declines to zero.
This threshold makes some intuitive sense; once we are relatively sure of the difference in performance, then we shouldn't bother with an experiment to evaluate that. However, prior to reaching that threshold, the optimal effort to spend on the experiment increases with the expected difference in performance; that is somewhat counter intuitive. Other thresholds also exist.
Another surprise is that circumstances in which the investment in management trials is greatest do not necessarily correspond to the circumstances in which the benefit of trials is the greatest. Cases exist when relatively modest investment in trials can lead to large expected management gains. And counter-cases exist in which large investments in trialling options is the best thing to do, but the benefits of those trials are quite small.
I love this sort of modelling – simple models leading to somewhat counter-intuitive insights. You can read about them more in the paper, or in a previous blog post I wrote regarding a talk I did on this topic.
The paper is:
Moore, A. L., Walker, L., Runge, M. C., McDonald-Madden, E. and McCarthy, M. A. (2017). Two-step Adaptive Management for choosing between two management actions. Ecological Applications. doi:10.1002/eap.1515
Posted in Ecological models, Uncategorized | Tagged,,,,,,,,,,, | 1 Comment


text:
In this study, a method to evaluate the environmental effects of household refrigerators is newly developed in terms of life cycle climate performance (LCCP). The energy consumption model of the refrigerator is developed with three types of typical single evaporator refrigerators. The operation ratio of the evaporators, which is critical for calculating the energy consumption of dual evaporator refrigerators, is determined using experimental results of serial, bypass, and parallel-circuit cycle refrigerators. The LCCP results show that the system performance and equipment manufacturing emissions are dominant factors in lifetime CO2 emissions. Therefore, energy- and material-related factors, such as refrigerator cycle options, refrigerator material, insulation, and power sources, are primarily investigated. For cycle options, CO2 emissions can be reduced by 14.7% using a two-stage cycle. For condenser materials, CO2 emissions can be reduced by 2% to 2.5% using aluminum instead of steel. For insulation, the total emissions can be reduced by up to 7.7% by applying vacuum insulation panels on each side of the refrigerator. When 20% renewable energy is supplied, the total emissions are expected to be reduced by 13% in the baseline, 19.9% in the parallel-circuit cycle, and 26% in the two-stage cycle.
|Translated title of the contribution||Environmental effect evaluation of refrigerator cycle with life cycle climate performance|
|Number of pages||13|
|Journal||International Journal of Refrigeration|
|Publication status||Published - 2021 Feb|
Bibliographical noteFunding Information:
This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT). (No. NRF-2020R1A5A1018153 ).
© 2020 Elsevier Ltd and IIR
- CO emissions
- Environmental effect
- Household refrigerator
- Vapor compression cycle
ASJC Scopus subject areas
- Building and Construction
- Mechanical Engineering


text:
Despite what you may think, New York City's rats do not subsist entirely on pizza crusts and abandoned street meat, so when snow blankets the ground and regular food sources like seeds and grass are covered up it can get harder for a rat to find something to eat.
In New York, says Stephen Nessen for WNYC, this past winter's freezing temperatures and frequent storms hit rats hard. Looking for something to eat, says Nessen, the rats turned to an unusual food source: chewing the bark off trees.
Rats eating trees is a novel behavior, and though it helped the rats get through the winter, it was pretty hard on the trees:
"Animals are drawn to the bark of trees because they're loaded with carbohydrates. But when rats eat a ring around a tree, as they've done in Kissena Corridor Park in Flushing, Queens, it can be devastating. Once a tree is girded like that, it typically dies."
As we've written before, the long, cold winter the Northeast and Midwest just waded through was as hard (if not harder) on the region's animals than it was on its people.

source: openbmb/Ultra-FineWeb


text:
The Bee Miraculous is a magical jewel wielded by the superhero Queen Bee and an item featured in the animated series Miraculous: Tales of Ladybug & Cat Noir.
The Bee Miraculous is connected to the kwami Pollen and has been worn by many for years. Whenever Pollen goes inside, it transforms the holder into a bee-themed superhero. Its special weapon is a spinning top, which can be utilized a weapon. Its special superpower is called Venom, giving the user the ability to immobilize any target.
The jewel was temporarily used by Chloé Bourgeois, a student in Miss Bustier's class at Collège Françoise Dupont in Paris, France.
Powers and Abilities
- Transformation: It can transform the holder into a bee-themed superhero.
- Speed: The holder runs and moves at a superhuman speed.
- Endurance: The holder can endure any attacks.
- Strength: The holder gets a superhuman strength.
- Venom: A superpower used to immobilizes the target.
- It is the first and only Miraculous to be destroyed (but recreated shortly after) shown thus far. Also it's the only Miraculous to be akumatized.


Wednesday, February 18, 2009
Voice Mail Standards
What is the number one item we need to leave on a voice mail if we want to make sure we get a call back? I would say a phone number.
So why do so many people wait till the end to leave their callback number? Sometimes it gets cut off. Sometimes it is said so fast that we need to listen to the entire message again just to get to the phone number.
So this is my attempt to try and set a standard for leaving a voice mail message.
We should always start with the big three:
1. Our name.
2. Our company.
3. Our phone number.
After those are covered we can then leave our brief message and politely ask how we would like the person to respond to us or if we will try back again another time. At that point we should repeat the "big three", pausing after saying "…and my number is…" thus giving the recipient a moment to begin to write our phone number.
If we need to listen to the message again to capture the phone number, we do not need to listen to the entire message just for that one little piece of information.
I hope someone can utilize this suggestion to improve their communications, either leaving or receiving messages.
Saturday, February 14, 2009
I came across this today and thought it was very appropriate based on the current financial situation occurring around the globe.
- William Pollard
Sunday, February 8, 2009
Common Keyboard Shortcuts for Word
These are some standard shortcuts that can be used from the key board to perform simple tasks. I found this list at the Microsoft Office Online Training site. There is an incredible amount of information there. I am re-posting the list here for my own convenience.
SHIFT + LEFT ARROW = Left one character at a time
SHIFT + RIGHT ARROW = Right one character at a time
SHIFT + DOWN ARROW = Down one line at a time
SHIFT + UP ARROW = Up one line at a time
CTRL+ LEFT ARROW = Left one word at a time
CTRL+ RIGHT ARROW = Right one word at a time
HOME = To the beginning of the current line of text
END = To the end of the current line of text
CTRL+HOME = To the beginning of the document
CTRL+END = To the end of the document
PAGE UP = Up one full screen
PAGE DOWN = Down one full screen
CTRL+PAGE U = P To the beginning of the previous page
CTRL+PAGE DOWN = To the beginning of the next page
CTRL+O = Open
CTRL+Z = Undo
CTRL+Y = Redo
CTRL+S = Save
CTRL+P = Print
ALT+F4 = Close the active window
CTRL+B = Bold
CTRL+I = Italic
CTRL+U = Underline
CTRL+R = Align right
CTRL+E = Align center
CTRL+L = Align left
CTRL+C = Copy
CTRL+X = Cut
CTRL+V = Paste
CTRL+C+CTRL+C = Open the clipboard
CTRL+F = Find
CTRL+H = Replace
CTRL+A = Select whole document
F7 = Spell checker
SHIFT+F7 = Thesaurus
CTRL+SHIFT+S = Style box
CTRL+SHIFT+N = Change font to Normal style
Wednesday, February 4, 2009
Technorati Linking
I have registered my blog with Technorati. Here is a link to my profile:
Technorati Profile
Monday, February 2, 2009
The First Post
Another blog....
This is not intended to become a regular item on my list of things to do, however following the theme of the rest of the site it is just a sample of who I am and the abilities I have.
I do appreciate you taking the time to read a little though.


Why does unemployment differ for immigrants?
Unemployment risk varies greatly across immigrant groups depending on language skills, culture, and religion
University of Roehampton, UK, and IZA, Germany
one-pager full article
Elevator pitch
The adverse effects of unemployment are a cause for concern for all demographic groups but they will be most acute for those experiencing the highest unemployment rates. In particular, high levels of unemployment are observed for a range of immigrant groups across many countries. However, there is considerable variation both across and within countries. It is therefore important to determine the factors that are most likely to cause high rates of unemployment, especially from a migration perspective, and to identify appropriate policy responses (e.g. enhancing human capital and improving job search effectiveness).
Unemployment rates for native and foreign
 born residents in selected countries, 2015
Key findings
Unemployment rates are lower for some immigrant groups than for the native born population.
The impact of economic downturns is lessened for more highly educated immigrants.
Policies that enhance human capital levels can be effective in reducing the high rates of unemployment experienced by immigrant groups.
Improving language skills is crucial for increasing the employment prospects of immigrants.
Certain immigrant groups, such as those with low levels of education, experience extremely high rates of unemployment, especially during recessions.
The unemployment rates of immigrants can be higher in countries that have more rigid labor market regulations and institutions.
Comparing countries can be difficult due to differences in their migration histories.
Newly arrived immigrants are often disadvantaged in terms of their country-specific skills and their knowledge of the labor market.
Author's main message
Unemployment often produces a range of adverse consequences for the individuals experiencing it and for the communities in which it is concentrated. A variety of factors can contribute to the high rates of unemployment experienced by some immigrant groups; these include human capital, cultural and religious differences, and discrimination. Appropriate government policies should recognize such inter-group differentials and group-specific determining factors. Such policies include the scheduling of courses to enhance human capital levels, such as skills in the host country's main language.
Full citation
Full citation
Data source(s)
Data type(s)


text:
In this section you will find the fundamentals on how to create and use Soul Pictures.
Perhaps most important is the page describing the Four Pillars of Soul Pictures. These four simple principles act as a guide in how to create a Soul Picture to make it as supportive and effective as possible. However, know that whatever you draw, paint or otherwise create is absolutely fine. These are guidelines and helpful suggestions, with good reasons behind them. Yet, it is your Soul Picture, and there can also be good reasons to choose something different. Let your intuition guide you!
Next up are the Three Kinds of Soul Picture: foci, maps, and anchors. This describes both what these three kinds of image are used for, as well as the differences in how to create them. See which one feels most appropriate to what you want to represent for a given situation.
The third page is about how to use tapping (EFT) with your Soul Picture. This technique helps in three different ways. It is great at releasing emotions and blocks around a subject. Tapping can help you to achieve a more creative, intuitive frame of mind. And it can also be used to cement new understandings and resources.
Finally, there is a page and video on breathing. Heart Math breathing, sometimes called Balancing Breath, is a highly effective way to get yourself into a state of calm, focus and creativity. It is also easy to do, and to maintain while you are creating your Soul Picture. It helps you to get into flow: that state where you are engaged in what you are doing so you lose track of time, feeling focused and stimulated. If you ever worry about artist's block, give this a try!


SparkFun WiFi IR Blaster Hookup Guide
Pages
Contributors: jimblom, Englandsaurus
Favorited Favorite 3
Introduction
Note: Please note that this tutorial is for WRL-15031. If you are using SPX-15000, please refer to this tutorial.
With the advent of WiFi-connected "smart" devices, IR remotes are quickly becoming a thing of the past. Why sort through a coffee table-full of remotes when you probably have a much smarter, WiFi-connected device device sitting conveniently in your hand?
The WiFi IR Blaster is designed to connect all of those old, legacy IR-controlled devices to a WiFi network -- exposing them to a new method of control. Want to control your TV via a web-browser? Want to ask Alexa to mute your stereo? Want to schedule triggers to your IR-controlled LED strip? These are all applications that the WiFi IR Blaster is perfect for.
SparkFun WiFi IR Blaster (ESP8266)
SparkFun WiFi IR Blaster (ESP8266)
WRL-15031
$19.95
The WiFi IR Blaster combines an ESP8266 -- a powerful WiFi/microcontroller SoC -- with IR emitters and receivers. With built-in WiFi support, the ESP8266 can be programmed to provide an interface between HTTP, MQTT, TCP, etc. and infrared-controlled devices.
This tutorial will explain how to assemble the WiFi IR Blaster and it will detail how to program the ESP8266 using the Arduino IDE. Once complete, you'll have a simple web server than can emit infrared signals at the click of a browser-page.
Required Materials
The WiFi IR Blaster includes the board, an infrared emitter and an infrared receiver. You'll need a handful of other tools and components to get it powered and programmed:
Break Away Headers - Straight
Break Away Headers - Straight
PRT-00116
$1.50
20
SparkFun Beefy 3 - FTDI Basic Breakout
SparkFun Beefy 3 - FTDI Basic Breakout
DEV-13746
$15.95
8
Infrared Remote Control
Infrared Remote Control
COM-14865
$3.95
Break Away Male Headers - Right Angle
Break Away Male Headers - Right Angle
PRT-00553
$1.95
4
The SparkFun Beefy 3 - FTDI Basic Breakout is primarily used to program the ESP8266, but it's also able to supply the 3.3V/300mA power required by the Blaster. Although you can use any 3.3V USB-to-serial converter, this is the one we recommend.
Headers -- either right-angle or straight are the recommended interface between your board, the programmer, a breadboard, perfboard, etc.
If you don't have an IR remote handy, the SparkFun IR RemoteControl is a useful tool for testing. It may even accidentally work with your TV!
In addition to those components, you'll need a soldering iron, solder, and general soldering accessories.
To add, you'll also need a local WiFi network that you can connect your ESP8266 up to. It also helps to have a second device -- smartphone or computer -- that's also connected to that network.
Suggested Reading
If you aren't familiar with the following concepts, we recommend checking out these tutorials before continuing.
How to Solder: Through-Hole Soldering
This tutorial covers everything you need to know about through-hole soldering.
IR Communication
This tutorial explains how common infrared (IR) communication works, as well as shows you how to set up a simple IR transmitter and receiver with an Arduino.
IR Control Kit Hookup Guide
How to get the most out of the infrared receivers and transmitters included in the IR Control Kit.
Hardware Overview
The WiFi IR Blaster is based around the ESP-12S ESP8266 module. This module equips the ESP8266 with a crystal, 4Mb flash, and PCB antenna -- just about everything it needs to get going. The antenna sits under the SparkFun logo, so try not to place anything that may interfere with WiFi signals near that area.
Top of IR Blaster board
Supporting the ESP8266 are a reset and general purpose button, a user LED, and an array of pin breakouts.
General and reset buttons, LED pin, and array of use case pins
Of course, there's also the IR emitter and detector. These components are packaged with the board, but not soldered in place. This allows you to solder both components at any angle your project requires. It also leaves the option to customize the board and spec out your own emitter and/or receiver.
IR emitter and receiver
The IR emitter is a Lite-ON LTE-302. It's driven by an NPN transistor, which helps amplify the current through the LED.
The IR receiver is a TSOP38238. This is a simple IR receiver hard-coded to receive IR signals modulated at 38kHz.
Assembly Tips
Time to whip out a soldering iron! The IR emitter and receiver do not come soldered onto the WiFi IR Blaster. You'll also need to solder headers for programming and power supply pins.
IR Components and headers assembled
While you have your iron out, you may also want to solder headers into the 6-pin serial header and the 8-pin power/GPIO header. Which headers you solder into the board ultimately depends on your application. I like soldering in a male right-angle header to the 6-pin header, which makes attaching the USB-to-serial board easier. Straight male headers work well for plugging the board into a bread- or perf-board.
Powering the WiFI IR Blaster
The WiFi IR Blaster includes a 3.3V low dropout regulator which can supply up to 600mA and handle voltage inputs up to 6V. To use this regulator, connect your power source to the VIN pin.
Alternatively, a pair of 3.3V pins are broken out on both headers. This pin directly supplies the ESP8266, so it should remain regulated to the range of ESP8266: 3.0V-3.6V.
⚡Powering via FTDI Header
The WiFi IR Blaster can be powered via the 3.3V pin on the 6-pin serial header. Voltage supplied to this pin should be regulated to 3.3V. Your power source will need to be able to supply at least 300mA, which most FTDI boards cannot do. We recommend the Beefy 3 FTDI Basic Breakout which can supply up to 600mA.
Removing the Standoff Edge
A pair of standoffs are provided towards the bottom of the WiFi IR Blaster. If you don't need these standoffs, and want to save some space, the standoff board can be removed by breaking it along the v-score line.
Standoff Board Snap Area
Standoff Board Snappable Area
Programming the ESP8266
The WiFi IR Blaster's ESP8266 is designed to be programmed with a 3.3V FTDI Basic or a similar 6-pin USB-to-Serial converter. We recommend a Beefy 3 FTDI Basic Breakout if you're powering the Blaster with the FTDI (see the note in the previous section for more information).
Plug your USB-to-serial converter in making sure you match the "GND" and "DTR" signals on the edge.
USB-to-serial converter connected to IR blaster board
Click the image for a closer look.
Arduino Board Support
Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE. If you have not previously installed an Arduino library, please check out our installation guide.
Before programming the WiFi IR Blaster's ESP8266, you'll need to install the ESP8266 Arduino board definitions. The board definitions can be found in the ESP8266 Arduino GitHub repository. For installation instructions, check out this section of the README.
The WiFi Blaster board definition is not included with the Arduino ESP8266 board files, but it can be uploaded to as a Generic ESP8266 Module. Verify your settings look like below:
Board: Generic ESP8266 Module
BoardGeneric ESP8266 Module
Flash ModeQIO
Debug LevelNone
Reset Methodck
CPU Frequency80 MHz
Flash Size4M (1M SPIFFS)
Debug PortDisabled
lwIP Variantv2 Prebuilt (MSS=536)
Crystal Frequency26 MHz
Flash Frequency40MHz
Upload Speed115200
Arduino board selection
Auto vs. Manual Reset Into Bootloader
In addition to the RX and TX pins, the FTDI's DTR pin is used to reset the ESP8266 and get it into bootloader mode. The board includes circuitry to automatically reset and bootload the board; in most cases, you shouldn't have to do anything special to program it


The Academic Villages
The Academic Villages are both a residence hall and an academic community.The Academic Villages offer privacy with the comforts of home in a full-size, apartment-style accommodation. Village Hall, located in the center of the Academic Villages, is home to the Coffeehouse where students commonly gather to grab coffee, a sandwich, or dessert. The Villages is often a meeting space for students and is host to many student activities. The Villages help students build a sense of belonging and forge new friendships as they participate in Village programs. Student can enjoy lectures, field trips, and performances. The Village welcomes commuters and residents alike to participate in this unique community of scholars.
There are six individual buildings and each building houses eight apartments.
Apollo House
Athena House
Franklin House
Marshal House
Mead House
Selene House


text:
LBTI User Policy
The LBTI is a strategic instrument on the LBT. While some components such as the LMIRCam detector and the AO system may be considered to have a facility-like status, the instrument as a whole is developed, maintained, and operated by an independent team as a scientific project. It is our policy to make the instrument as widely accessible as possible. In return, our PIs accept the following policy when submitting a proposal to use the LBTI, starting with the 2020A observing semester:
- The LBTI team shall be consulted prior to proposal submission through an email to _EMAIL_.
- Team members involved in enabling or supporting a specific observation shall be given the opportunity to be involved in the project, with the possibility of becoming a co-author on resulting publications.
- The use of the LBTI shall be acknowledged prominently (see below).
- In addition to the policies of the individual projects, the LBTI policy shall also apply to the use of NALES and to some extent to be determined at an appropriate time to future instrumentation making use of the LBTI architecture or procedures.
- This policy also applies to data obtained with other LBT instruments in parallel with LBTI observations during scheduled LBTI telescope time, in which case the PI of the executed LBTI project is also to be included as if they were LBTI team members.
Acknowledging the use of the LBTI:
- 'LBTI' shall be mentioned in title or abstract of the paper.
- The following phrase shall be included in the acknowledgements:
'We acknowledge the use of the Large Binocular Telescope Interferometer (LBTI) and the support from the LBTI team, specifically from XX.'
(replace 'XX' with a list of team members involved in enabling or supporting the observations but not included as co-authors)


text:
In order to land a job as train engineer, one must comply with the necessary requirements to be able to practice the profession. Most industries that are in need of train engineers require an educational background and to be licensed.
- Generally, for you to start your career as a train engineer, you must have completed a high school diploma or its equivalent.
- You must be at least 21 years of age in order to qualify for the training program.
- According to federal law, aspiring train engineers must complete a conductor training course as a prerequisite for an engineer's training program. It is best to choose programs that are accredited by the Federal Railroad Administration (FRA).
- After completion of a conductor training course, you will then be granted with the Conductor certificate and must complete the locomotive engineer training program. This includes classroom lessons, practical experience and simulations that will provide you knowledge on how to operate trains may it be a freight or passenger train.
- After successfully completing the locomotive engineer training program, you will then have to pass the locomotive engineer licensure exam. This exam will include a train operation test, performance skills testing, safety conduct background check, visual and hearing acuity test and drug or alcohol test.
- Your certificate and license will last for two years; there would be re-certification or examinations that will be conducted in order to maintain your license to practice.
- Most employers will hire locomotive engineers that have practical railway experience on top of training program completion. Gain as much experience as you can.
- It is difficult to land as a train engineer at first, you will be offered entry-level positions like brakeman, conductor, even yard laborer or crane operator. This is your stepping stone to becoming a train engineer.
- After gaining several years of expertise as a conductor and alike, you may then be eligible to begin training intended for train engineer positions.
- Pass the necessary examinations and practical tests in order to get a position as a train engineer.
- How Long Does It Take To Become A Train Engineer?
- How To Become A Train Engineer
- What Does A Train Engineer Do?
- How Much Does A Train Engineer Make?
Leave a Reply
Your email address will not be published. Required fields are markedAdd Comment

source: HuggingFaceFW/fineweb-edu


You are on page 1of 48
Image Motion
The Information from Image
Motion
3D motion between observer and scene + structure of the
scene
Wallach OConnell (1953): Kinetic depth effect
_URL_
HTML
Motion parallax: two static points close by in the image with
different image motion; the larger translational motion
corresponds to the point closer by (smaller depth)
Recognition
Johansson (1975): Light bulbs on joints
_URL_
.html
Examples of Motion Fields I
(a) Motion field of a pilot looking straight ahead while approaching a fixed
point on a landing strip. (b) Pilot is looking to the right in level flight.
(a) (b)
Examples of Motion Fields II
(a) (b)
(c) (d)
(a) Translation perpendicular to a surface. (b) Rotation about axis
perpendicular to image plane. (c) Translation parallel to a surface at a
constant distance. (d) Translation parallel to an obstacle in front of a more
distant background.
Optical flow
Assuming that illumination does not change:
Image changes are due to the RELATIVE
MOTION between the scene and the camera.
There are 3 possibilities:
Camera still, moving scene
Moving camera, still scene
Moving camera, moving scene
Motion Analysis Problems
Correspondence Problem
Track corresponding elements across frames
Reconstruction Problem
Given a number of corresponding elements, and camera
parameters, what can we say about the 3D motion and
structure of the observed scene?
Segmentation Problem
What are the regions of the image plane which
correspond to different moving objects?
Motion Field (MF)
The MF assigns a velocity vector to each
pixel in the image.
These velocities are INDUCED by the
RELATIVE MOTION btw the camera and the
3D scene
The MF can be thought as the projection of
the 3D velocities on the image plane.
Motion Field and Optical Flow Field
Motion field: projection of 3D motion vectors on image plane
Optical flow field: apparent motion of brightness patterns
We equate motion field with optical flow field
0 0
0
0
1
0
0
0 0
by to related
image in induces , velocity has point Object
z r
r r
r r
r
v
r
v
v v
=
= =
f
dt
d
dt
d
P
i
i
i
i
2 Cases Where this Assumption
Clearly is not Valid
(a) (b)
(a) A smooth sphere is rotating
under constant illumination.
Thus the optical flow field
is zero, but the motion field
is not.
(b) A fixed sphere is
illuminated by a moving
sourcethe shading of the
image changes. Thus the
motion field is zero, but the
optical flow field is not.
What is Meant by Apparent
Motion of Brightness Pattern?
The apparent motion of brightness patterns is an awkward concept. It is not
easy to decide which point P' on a contour C' of constant brightness in the
second image corresponds to a particular point P on the corresponding
contour C in the first image.
The aperture problem
Aperture Problem
(a) Line feature observed through a small aperture at time t.
(b) At time t+ot the feature has moved to a new position. It is not possible
to determine exactly where each point has moved. From local image
measurements only the flow component perpendicular to the line
feature can be computed.
Normal flow: Component of flow perpendicular to line feature.
(a) (b)
Brightness Constancy Equation
Let P be a moving point in 3D:
At time t, P has coords (X(t),Y(t),Z(t))
Let p=(x(t),y(t)) be the coords. of its image at
time t.
Let E(x(t),y(t),t) be the brightness at p at time t.
Brightness Constancy Assumption:
As P moves over time, E(x(t),y(t),t) remains
constant.
Brightness Constraint Equation
( ) ( ) ( ) flow. optical of components the , , , and irradiance the be , , Let y x v y x u t y x E
( ) ( )
expansion Taylor
, , , , t y x E t t t v y t u x E = + + + o o o
( ) ( )
0 limit taking and by dividing
, , , ,
= +
c
c
+
c
c
+
c
c
+
t t
t y x E e
t
E
t
y
E
y
x
E
x t y x E
o o
o o o
0
derivative total the of expansion the is which
0
=
=
c
c
+
c
c
+
c
c
dt
dE
t
E
dt
dy
y
E
dt
dx
x
E
short: 0 = + +
t y x
E v E u E
Brightness Constancy Equation
Taking derivative wrt time:
Brightness Constancy Equation
Let
(Frame spatial gradient)
(optical flow)
and
(derivative across frames)
Brightness Constancy Equation
Becomes:
v
x
v
y
r E
The OF is CONSTRAINED to be on a line !
-E
t
/|r E|
Interpretation
Values of (u, v) satisfying
the constraint equation lie
on a straight line in velocity
space. A local measurement
only provides this constraint
line (aperture problem).
( ) ( )
( )
( )
T
y x
T
y x
t y x
n
E E
E E
E v u E E
,
Let
, ,
flow Normal
=
=
n
u
( )
T
y x
t y
y x
t x
n
E E
E E
E E
E E
|
|
.
|
\
|
+
= =
2 2 2
, n n u u
Optical flow equation
Barber Pole illusion
_URL_
Solving the aperture problem
How to get more equations for a pixel?
Basic idea: impose additional constraints
most common is to assume that the flow field is smooth locally
one method: pretend the pixels neighbors have the same (u,v)
If we use a 5x5 window, that gives us 25 equations per pixel!
Constant flow
Prob: we have more equations than unknowns
The summations are over all pixels in the K x K
window
Solution: solve least squares problem
minimum least squares solution given by solution (in
d) of:
Taking a closer look at (A
T
A)
This is the same matrix we used for corner detection!
Taking a closer look at (A
T
A)
The matrix for corner detection:
is singular (not invertible) when det(A
T
A) = 0
One e.v. = 0 -> no corner, just an edge
Two e.v. = 0 -> no corner, homogeneous region
Aperture
Problem !
But det(A
T
A) = [
i
= 0 -> one or both e.v. are 0
Edge
large gradients, all the same
large
1
, small
2
Low texture region
gradients have small magnitude
small
1
, small
2
High textured region
gradients are different, large magnitudes
large
1
, large
2
An improvement
NOTE:
The assumption of constant OF is more likely
to be wrong as we move away from the point of
interest (the center point of Q)
Use weights to control
the influence of the
points: the farther
from p, the less weight
Solving for v with weights:
Let W be a diagonal matrix with weights
Multiply both sides of Av = b by W:
W A v = W b
Multiply both sides of WAv = Wb by (WA)
T
:
A
T
WWA v = A
T
WWb
A
T
W
2
A is square (2x2):
(A
T
W
2
A)
-1
exists if det(A
T
W
2
A) = 0
Assuming that (A
T
W
2
A)
-1
does exists:
(A
T
W
2
A)
-1
(A
T
W
2
A) v = (A
T
W
2
A)
-1
A
T
W
2
b
v = (A
T
W
2
A)
-1
A
T
W
2
b
Observation
This is a two image problem BUT
Can measure sensitivity by just looking at one of the
images!
This tells us which pixels are easy to track, which are
hard
very useful later on when we do feature tracking...
Revisiting the small motion assumption
Is this motion small enough?
Probably notits much larger than one pixel (2
nd
order
terms dominate)
How might we solve this problem?
Iterative Refinement
Iterative Lukas-Kanade Algorithm
1. Estimate velocity at each pixel by solving Lucas-Kanade
equations
2. Warp H towards I using the estimated flow field
- use image warping techniques
3. Repeat until convergence
Reduce the resolution!
image I image H
Gaussian pyramid of image H Gaussian pyramid of image I
image I image H
u=10 pixels
u=5 pixels
u=2.5 pixels
u=1.25 pixels
Coarse-to-fine optical flow
estimation
image I image J
Gaussian pyramid of image H Gaussian pyramid of image I
image I image H
Coarse-to-fine optical flow
estimation
run iterative L-K
run iterative L-K
warp & upsample
.
.
.
Optical flow result
Additional Constraints
Additional constraints are necessary to estimate optical flow, for
example, constraints on size of derivatives, or parametric models of the
velocity field.
Horn and Schunck (1981): global smoothness term
This approach is called regularization.
Solve by means of calculus of variation.
( ) ( ) smoothness from departure :
2 2 2 2
dy dx v v u u e
y x
D
y x s
+ + + =
}}
( ) equation constraint flow optical in error :
2
}}
+ + =
D
t y x c
dy dx E v E u E e
( )
( ) ( ) min
of gradient the denote , Let
2
2
2
2
2
V + V + + V
= V
}}
dy dx v u E E
A A A A
t
T
y x
u
Discrete implementation leads to
iterative


text:
Dazdee | Article about dazdee by The Free Dictionary
DASD (redirected from dazdee)
Also found in: Wikipedia
DASD(Direct Access Storage Device) Pronounced "daz-dee." A peripheral storage device that is directly addressable. Although DASDs used to refer to magnetic disks and drums, today, DASD means magnetic disk. The term is used mostly in the mainframe world. See magnetic disk and disk drive.


text:
- How to Carve a Shell
Learn how to lay out and carve an 18th-century-style fan
- Applied carving
A traditional and useful technique, applied carving makes it easier to get a smooth background than carving done "in the solid," where you have to lower the background...
- Dress Up your Furniture with Surface Carving
Walk past a piece of furniture with surface carving, and the light dances on and off the carved surface, creating highlights and shadows that are in motion from...
- Carve a Shell on a Cabriole Leg
Though it seems intimidating, carving is easier than you might think—this shell carving on a cabriole knee is a good example. Based on the ones found in Pennsylvania,...
- Carvings Cap an Impressive Chest
- Tale of a Tea Table Top
The top of this tea table appears to have a mitered, scalloped frame but is actually a solid piece of carved mahogany. How does period furniture maker Allan Breed...
- Carve a Decorative Fan
The visual centerpiece of Phil Lowe's Queen Anne lowboy is this carved fan, which decorates the bottom center drawer. This motif was a popular element for this...
- Man or Machine?
The unique work of Duncan Gowdy shows landscapes in wood that are so complex and consistent that it would be easy to assume they were carved with a CNC router or...
- Pro Portfolio: Carving toward Home
Duncan Gowdy carves a powerful sense of place into his furniture
- Woodworking Specialties
Online resources for boatbuilding, carving, turning, and crafting instruments
- Video: How to Sharpen Woodcarving Tools
This excerpt from the new Taunton DVD, Woodcarving Basics, shows how to make gouges and V-tools razor sharp.
- How They Did It: Shaped to Perfection
See how he creates undulating forms without touching a lathe
- Video: Learn to Turn Barley-Twist Candlesticks
Find out how to lay out, carve, and smooth this distinctive open-twist shape
- Carve a Rosette
Period furniture maker Tony Kubalak takes the intimidation out of carving in this Master Class article on crafting a rosette. Carving is as much a science as an...
- The Totem Pole Art of Tommy Josephs
Modern themes and traditional carving methods keep cultural identity alive in Alaska


text:
POSTCARD OF THE MONTH – SEPTEMBER 2019
Janice Kidwell, BCGS member #5033
A Harvest Festival is an annual celebration that occurs around the time of the main harvest of a given region. In India, given the differences in climate and crops, dates for Harvest Festivals
In Southern India, Pongal is a four-day harvest festival during which a different deity is worshipped each day. In Tamil Nadu, which is where this postcard was printed and perhaps taken, harvested rice is ceremonially cooked. In Karnataka, the festival is called 'Sankranti', and, like on this postcard, the cattle are decorated and fed on Pongal, which is a sweet preparation of rice. Later in the day, the cattle are led out in procession to the beat of drums and music.


text:
How to backup your Minecraft World Folder
A step by step guide to create a backup file in Multicraft and download it to your computer.
Requires Admin level access to Multicraft.
Why would I want to know this?
- An extra copy to act as a rollback point
- If you migrate to another server
- You want to share your world data with others
- You want to work on the world using tools not available on the server
- You want to test plugins that alter your world dramatically on a test server first
What am I about to do?
In ensure that you don't create a backup with corruption, the server will need to be stopped. Then the backup function in Multicraft can be used.
A world backup created in Multicraft is a .zip file containing all the data files in the /world folder. This is primarily the data for the main overworld and includes:
- Player data: Player location, XP level, Inventory
It however does not include data for the Nether or The End. It also does not contain the following:
- Plugin files
- Plugin Configuration files (unless saved to /world or one of its subfolders)
- Server configuration files: e.g. ops.txt, server.properties, bukkit.yml
Steps to Take
Stopping the Minecraft Server
- Log into Multicraft: Click 'Minecraft Login' and enter your Multicraft username and password
- Go to your server: Click on your server in the list
- Stop the server: Click on the 'Stop' button at the top, wait until the icon to the left of the button changes to a white cross on a grey circle
Making a Backup
While still logged in to Multicraft, in the server view:
- Go to the backup section: Click on 'Backup' in the navigation bar down the left
- Make the backup: Click on the 'Start' button
Restarting the Minecraft Server
- Return to the main server view: Either click 'Back' in the navigation bar down the left or click on your server name at the top
- Start the server: Click on 'Start' at the top, the icon to the left of the button will turn to a green circle when the server has started
How the Download your world
- To download your server you will want to use FTP, using the Filezilla FTP App, due the the size of the backup files the webbased FTP will not download the files.
- Read the FTP article on using FileZilla
Further Reading/External Links
Bu cavab sizə kömək etdi?
The whitelist is a list of Players who are allowed to join your server, to change this you do the...
If your world ever badly gets griefed or gets corrupted we keep 3 backups of your world which are...
You can give your friends access to your multicraft control panel if they are the co-owner or...


text:
Why should students with disabilities consider studying design fields?
According to Building a World Fit for People: Designers with Disabilities at Work, design itself is improved when individuals with disabilities participate as designers. Designers with disabilities found that "living with a disability while thinking about improving designed spaces had heightened their thoughtfulness, determination, maturity, problem-solving skills, empathy, aesthetic consciousness, kinesthetic awareness and social justice in design." The creativity they had developed to live well as an individual with a disability aided them in being successful in careers in design fields.
For students with disabilities interested in a creative career path, design fields like architecture, interior design, apparel design, landscape architecture, and graphic design can be great career choices. Design careers are creative fields that allow an individual to create work that fulfills others' needs, according to an article titled "What is Design?" by the Institute for Human Centered Design.
Inaccessible studio spaces and activities are often listed as reasons why some students with disabilities are not fully included or encouraged to pursue design. The incorporation of technology and universal design strategies can eliminate or minimize potential barriers so that students with all types of disabilities can participate and succeed in design classes.
For more information on careers in design fields and people with disabilities consult Why Design is a Good Fit for People with Disabilities.
AccessDesign has been developed in partnership with Access to Design Professions, Institute for Human Centered Design, (IHCD) Boston, MA and funded in part by a grant from the National Endowment for the Arts (NEA).


An analysis of the characteristics of a straightedge
Nauer–emmett–teller (bet) analysis is reviewed as the basis for evaluating specific surface area removing the excess with a straightedge, and determining. In this paper, a micro straight edge endmill (see) is designed design and dynamics analysis of machine tool spindles, optimal design of ultrasonic vibration . A straightedge or straight edge is a tool with a straight edge, used for drawing straight lines, or checking their straightness if it has equally spaced markings. Basic "straightedge" analysis can easily identify single event bumps depending upon airplane characteristics and operating speed, an airplane may be. Tape-helix analysis for determining the dispersion characteristics as well planar helix slow wave structure with straight-edge connections.
Analysis of coupled planar helices with straight-edge connections for application in thermal characteristics of a ka-band planar helix slow-wave structure. The highest specificity (940%) and sensitivity (254%) were seen for the straight- edge sign no ct sign was associated with survival in multivariable analysis. Constructions using compass and straightedge have a long history in it is important that one be able to analyze a an algebraic analysis of the fields of constructible there are several characteristics of angle trisectors (shared by others. Detection and analysis of the physical effects of human activities (though archaeology a pebble or nodule of suitable size and fracturing characteristics ordinarily, hold a straight edge to the surface and observe its contours most.
Despite its seeming anti-rebellious rebellion, straight edge punk persists as a which features crossed hands each marked with a large x, and it reappears on. Also be used to assess the qualities of natural turf fields 1741 thermogravimetric analysis (tga) of sbr infill (from recycled tyres coated or add enough weight for the straight edge to be sitting on the top of the infill. C 136 test method for sieve analysis of fine and coarse aggregates of the straightedge shall be machined straight to a tolerance of 6 0005 in (6 01 mm. Rut depth is a 1d rutting characteristic commonly used to indicate the severity level of rutting in summary, the manual straightedge method is labor-intensive ,.
Of squaring the circle with straightedge and compass, and more generally this interpretation may also explain the peculiar characteristic of. Just as your grandparents did (actually, a little different since you'll still be using a computer to draw circles and lines with a virtual compass and straightedge. A planar helix slow-wave structure with straight edge con- nections (ph-sec) is presented the analysis is simplified by using the characteristic equation for an. A method based on characteristics was developed recently for the analysis assume the computational boundary r to be a straight edge transverse to the layer. He who shouts loudest | straightedge is a web design, branding, advertising in a certain region will target people of specific ethnic backgrounds or demographic characteristics analysis: how do i measure results analytics.
An analysis of the characteristics of a straightedge
an analysis of the characteristics of a straightedge This study is concerned with the analysis of indentation type cutting with in order to examine the characteristics of the cutting process, the.
Proval can analyze pavement profiles using several methods, including international ride number, profile index, california profilograph, and rolling straightedge, and software program, showing a chart of pavement profile characteristics. Characteristics of off-the-shelf profiler types and manufacturers offer a straightedge analysis capability, but the primary focus is on the. Thus, based upon the characteristics of detection, multiple photons, section 5 provides a similar analysis of straight-edge diffraction.
This dissertation is a case study analysis of the straightedge youth subculture on an chapter 4: representing the characteristics of straightedge online. It is for this reason that cfd analysis is necessary for new blade designs it was this method that was used to construct a straight edge blade prototype whose edge blade will have the same characteristics as the straight edge except for the. Euclid arbitrarily restricted the tools of construction to a straightedge (an unmarked one of the desirable mathematical features of this method (the stereographic (1796–1863), vehemently urged the claims of geometry over analysis. Built for professional use, this mid-length hedge trimmer is lightweight and features a fixed-angle, 24 cutting blade easy to operate, the hl 91 k (0°) features a.
This lesson will cover the straight edge subculture, defining what it means to be straight edge by including the values (like abstinence), motives, and actions of. Items needed: measuring tape pencil straight-edge (or ruler) scale with body access to body fat analysis measuring device skinfold calipers (see syllabus for and fat) and such characteristics as a person's height, age, and activity level,. The purpose of this task is for students to analyze the geometry of letters with these characteristics is that students have already accepted them as objects, with different sized circles, a straight edge, and some colored pencils or markers.
an analysis of the characteristics of a straightedge This study is concerned with the analysis of indentation type cutting with in order to examine the characteristics of the cutting process, the.
An analysis of the characteristics of a straightedge
Rated 4/5 based on 40 review
2018.


6 Ways Seniors Benefit from Following Daily Routines
By 9 am on
Tips Seniors Benefit from Following Daily Routines in Tucson, AZ
Many people envision their retirement years as a time of rest and relaxation. However, when seniors don't follow regular routines, it can take a toll on their health. Here are six benefits of maintaining a daily routine in the senior years.
1. Lowers Stress
Aging can be stressful, and many seniors are worried about everything from their weekly budgets to their nutrition intake. Stress is compounded when a senior has a health condition, whether it's a cognitive disorder such as dementia or a mobility-restricting issue such as arthritis. When seniors follow consistent daily routines, they no longer have to worry about when they're going to eat lunch or what time they should go to bed. With time, the structure of each day will become embedded in muscle memory, keeping them going even when they feel anxious.
2. Provides Greater Feelings of Security
For anxiety-prone seniors, feelings of safety and security may seem out of reach. When they follow regular schedules, their days are more predictable. Predictability can be a great source of comfort for seniors, especially those facing disorienting transitions, such as moving out of their homes or being diagnosed with Alzheimer's.
3. Makes It Easier to Maintain Personal Hygiene
Mobility limitations such as diminished motor coordination can make it difficult to brush teeth or hair. Cognitive, emotional, and mental conditions such as dementia and depression can deplete the energy needed to perform basic hygiene tasks. When seniors have structure in their lives, they're more likely to practice good hygiene. Being able to follow personal care schedules may boost their self-esteem and brighten their outlook.
4. Boosts Cognitive Health
For seniors with dementia, schedules are especially crucial. Dementia doesn't have a significant impact on the part of the brain that stores repetitive actions, which means seniors with dementia may have an easier time remembering a daily schedule than the name of a new acquaintance or the time of their next doctor's appointment. The familiarity of these repetitive actions can provide relief from dementia-related disorientation. Structured schedules can also help seniors manage important daily tasks such as taking medication.
5. Makes Changes Easier to Notice
When seniors follow schedules, it's easier to identify when elements of their daily lives go awry. An aging adult who does laundry every Monday will probably notice when the weekly load of laundry becomes too heavy to carry. Not all seniors are willing to ask for help when they need it, but they're more likely to ask if they spot problems on their own.
6. Promotes Better Sleep
Getting eight hours of sleep every night is important at any age, but the restorative powers of slumber are particularly essential for senior health. When seniors follow schedules, they're more likely to go to bed at the same time every night, which makes it easier to fall asleep and enhances overall sleep quality.
 Request Free Information or
 Schedule a Free in-Home Consultation


Boost logo
Boost :
Subject: Re: [boost] [serialization] How are floating point values handled?
From: John Maddock (john_at_[hidden])
Date: 2013-08-07 13:38:13
> This actually raises a problem when using text archives with floating
> point data - if you want to be able to round trip the values, then how
> many digits precision should you set the stream to? Particularly if
> you're saving a complex structure containing different floating point
> types of differing precisions?
Let me rephrase this somewhat: if I'm the author of a complex data structure
that contains floating point data and I make it serializable, I have no way
to ensure serialization proceeds correctly: instead that burden falls on the
person creating the archive. For sure in small projects these will be the
same person, but clearly not when "library writing". And yes, I realize
that many compilers don't round trip floating point values even when you
print "enough" digits, but at least they get close. The current default
situation is to print just 5 digits, and that certainly doesn't get close!
But, rant over for now ;-)
Cheers, John.


. The Activity starts a NetworkFragment and passes in a specified URL.
 2. When a user action triggers the Activity's downloadData() method, the NetworkFragment executes the DownloadTask.
 3. The AsyncTask method onPreExecute() runs first (on the UI thread) and cancels the task if the device is not connected to the Internet.
 4. The AsyncTask method doInBackground() then runs on the background thread and calls the downloadUrl() method.
 5. The downloadUrl() method takes a URL string as a parameter and uses an HttpsURLConnection object to fetch the web content as an InputStream.
 6. The InputStream is passed to the readStream() method, which converts the stream to a string.
 7. Finally, once the background work is complete, the AsyncTask's onPostExecute() method runs on the UI thread and uses the DownloadCallback to send the result back to the UI as a String.
Survive configuration changes
So far, you have successfully implemented an Activity that performs a network operation. But, if the user decides to change the device configuration (i.e. rotate the screen 90 degrees) while doInBackground() is running on the background thread, the Activity destroys and recreates itself, causing it to re-run onCreate() and reference a new NetworkFragment (see Runtime Changes guide). Therefore, the AsyncTask living in the original NetworkFragment will have a DownloadCallback that references the original Activity that can no longer update the UI. Thus, the network work done on the background thread will have been wasted.
To persist through these configuration changes, you need to retain your original Fragment and ensure that the reconstructed Activity references it. To accomplish this, you should make the following modifications to your code:
First, your NetworkFragment should call setRetainInstance(true) in its onCreate() method:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) {
 ...
 // Retain this Fragment across configuration changes in the host Activity.
 retainInstance = true
}
Java
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
 ...
 // Retain this Fragment across configuration changes in the host Activity.
 setRetainInstance(true);
}
Then, modify how you initialize the NetworkFragment in your static getInstance() method:
Kotlin
companion object {
 fun getInstance(fragmentManager: FragmentManager, url: String): NetworkFragment {
 // Recover NetworkFragment in case we are re-creating the Activity due to a config change.
 // This is necessary because NetworkFragment might have a task that began running before
 // the config change occurred and has not finished yet.
 // The NetworkFragment is recoverable because it calls setRetainInstance(true).
 var networkFragment = fragmentManager.findFragmentByTag(TAG) as? NetworkFragment
 if (networkFragment == null) {
 networkFragment = NetworkFragment()
 networkFragment.arguments = Bundle().apply {
 putString(URL_KEY, url)
 }
 fragmentManager.beginTransaction()
 .add(networkFragment, TAG)
 .commit()
 }
 return networkFragment
 }
}
Java
public static NetworkFragment getInstance(FragmentManager fragmentManager, String url) {
 // Recover NetworkFragment in case we are re-creating the Activity due to a config change.
 // This is necessary because NetworkFragment might have a task that began running before
 // the config change occurred and has not finished yet.
 // The NetworkFragment is recoverable because it calls setRetainInstance(true).
 NetworkFragment networkFragment = (NetworkFragment) fragmentManager
 .findFragmentByTag(NetworkFragment.TAG);
 if (networkFragment == null) {
 networkFragment = new NetworkFragment();
 Bundle args = new Bundle();
 args.putString(URL_KEY, url);
 networkFragment.setArguments(args);
 fragmentManager.beginTransaction().add(networkFragment, TAG).commit();
 }
 return networkFragment;
}
Your app can now successfully pull data from the Internet!
Note that there are several other background thread management tools that can help you achieve this same goal. As your app grows in complexity, you might find that these other tools are better suited for your app. Instead of AsyncTask, options worth investigating are IntentService and AsyncTaskLoader.
To learn more about this topic, see the following related guides:


text:
Solar survey of the library site
Thorsten Chlupp of Reina Alaska has conducted a survey of the solar gain to be had at the librarybuilding site. The survey was submitted to the JTEL Board of Directors September 1, 2011. For the complete report, download the PDF below.
Summary and notes from the report:
This solar study was conducted with a Solmetric SunEye 210 at three independent site visits during different times in the afternoon and at different location on the lot to determine the annual solar gain. This is essential information we need for the passive and active design of the building and the solar system. The SunEye 210 is an integrated Shade Analysis Tool for solar site assessment. It includes a fisheye camera and a dedicated on-board processor and GPS system to perform digital image processing and analysis to compute shading and solar access percentages. It includes an electronic compass and inclinometer enabled to measure roof pitch and azimuth.
A proper site survey reveals the actual path of the sun across the sky during the entire year. Especially in our far north latitude and the resulting drastic change throughout the year of the suns angle on the horizon makes it important to take the various angles into close consideration in the design and placement of windows and solar panels.
The results on the actual building should be better due to the fact that the collectors will be mounted several feet higher than where the current measurements were taken. This will help to clear shading from the lower tiered trees which will shade the building some. However the window gains from the south will be lower and provide less solar input into the building in the darkest months – December and January are simply grim in Fairbanks.
My overall conclusion is that the site is definitely feasible for the proposed building and its renewable energy systems. It is not ideal, but has no major obstacles in the sun path.
Key to terms and abbreviations used in the study:
- Solar Access: The annual and seasonal solar access is shown in the Results panel. The seasonal month ranges, May-Oct and Nov-Apr, represent the common peak and off-peak rate seasons. Your local utility may use a different set of months.
- Solar Resource: Tilt Orientation Factor (TOF) and Total Solar Resource Fraction (TSRF) are used to compare the actual site characteristics to the optimal characteristics at that site. TOF and TSRF can only be displayed when the NREL – TMY3 weather model is selected (US only).
- Windowed Access: Calculates solar access only within a window of time in months and time of day. The user specifies the months and time window and solar access is calculated only for that window. Note that the insolation both with and without shading is windowed, so if there is no shading within the defined window, then the Windowed Access would be 100%, even if there is shading outside the window.


text:
MIRI: The state Fire and Rescue Department is roping in amateur radio operators in an effort to enhance communication linkages using radio systems to deal with fire outbreaks and search and rescue operations in remote jungles and mountainous terrains.
The department has started a pioneer project towards that collaboration in northern Sarawak and if proven successful, it will be extended to other parts of this vast state.
Yesterday, Miri fire chief Supt Law Poh Kiong held a closed-door meeting with several members of the Miri Amateur Radio Club to discuss about the mechanics of implementing the project.
"The Miri Fire and Rescue Department has formed a partnership with amateur radio operators in the city in what is a first step towards securing faster communication linkages to coordinate fire fighting and search and rescue efforts in the deep interior.
"This plan to use amateur radio as a form of communication was discussed before at the state level in view of the fact that radio sets are still effective for voice communication in those places where there is no telephone coverage.
"Radio is thus very useful in dense jungles and highland regions such as in interior northern Sarawak, where we have been facing difficulties coordinating swift response to fire outbreaks in rural settlements due to telecommunication woes," he said.
Supt Law said there are many amateur radio operators from Miri who have networked with radio operators in rural settlements in the remote districts.
If such radio linkages can be connected to the communication lines of the Fire and Rescue Department stations in Miri city and other fire stations in other districts and sub-districts, they can be used to raise the alarm in the event of an emergency such as fire outbreaks, floods and other disasters or accidents, he stressed.
Supt Law said there have been too many fire outbreaks in remote longhouses and because of the lack of telecommunication links, it is hard to deploy swift response.
He hopes that with the cooperation of amateur radio operators, the Fire and Rescue Department will be able to tackle such fires better and reduce the damage to properties and save lives.
Another major fire occurred yesterday at a remote longhouse in the Sri Aman Division where Rumah Siliver Garik was razed to the ground.
The 3am fire saw 19 units of longhouse quarters burned. More than 150 people were left homeless when the fire swept through their settlement.
Luckily, all the residents managed to escape the flames. They were now being housed at the community hall pending assistance from the welfare department.


text:
Client: City of Omaha
Location: Omaha, NE, United States
Completion date: 2003
Artwork budget: $1,200,000
Leo A Daly
Standing over 3-stories tall at 30 feet tall, "Labor" is currently the second largest labor monument in the country. The 271-ton design features the original ladles that were used in the Smelting Plant located at the same site as the monument. The massive design includes five larger-than-life 8-foot figures depicting hard work and dedication to this craft. This sculpture is showcased prominently as part of the newly developed riverfront in Omaha, Nebraska.
Chosen for his unique creative style and realism, Matthew combined realism and abstract concepts to create a spectacular work of art that is inspiring and motivational. Each of the figures, four men and one woman, have weathered expressions and hardened bodies from their daily arduous contributions to their family, community, and country. Incorporating the actual ladles from the original Smelting Plant was a challenge, as they were turned into a functional water feature to mimic their original use. In the colder seasons "Labor" still works as a stand-alone sculpture without running water.
Created from more than 39,000 pounds of steel and over 500,000 pounds of cement, this monument was built with the help of local cement masons, electricians, plumbers, steamfitters, laborers, carpenters, ironworkers, and operating engineers.


RubyGems.org
intermine
1.04.00
Webservice Client Library for InterMine Data-Warehouses
This library provides an interface to the InterMine webservices API. It makes construction and execution of queries more straightforward, safe and convenient, and allows for results to be used directly in Ruby code. As well as traditional row based access, the library provides an object-orientated record result format (similar to ActiveRecords), and allows for fast, memory efficient iteration of result sets.
Example
Get all protein domains associated with a set of genes and print their names:
require "intermine/service"
Service.new("_URL_
 new_query("Pathway")
 select(:name).
 where("genes.symbol" => ["zen", "hox", "h", "bib"]).
 each_row { |row| puts row[:name]}
Who is this for?
InterMine data warehouses are typically constructed to hold Biological data, and as this library facilitates programmatic access to these data, this install is primarily aimed at bioinformaticians. In particular, users of the following services may find it especially useful:
* FlyMine (_URL_
* YeastMine (_URL_
* RatMine (_URL_
* modMine (_URL_
* metabolicMine (_URL_
How to use this library:
We have tried to construct an interface to this library that does not require you to learn an entirely new set of concepts. As such, as well as the underlying methods that are common to all libraries, there is an additional set of aliases and sugar methods that emulate the DSL style of SQL:
SQL style
service = Service.new("_URL_
service.model.
 table("Gene").
 select("*", "pathways.*").
 where(:symbol => "zen").
 order_by(:symbol).
 outerjoin(:pathways).
 each_row do |r|
 puts r
 end
Common InterMine interface
service = Service.new("_URL_
query = service.new_query("Gene")
query.add_views("*", "pathways.*")
query.add_constraint("symbol", "=", "zen")
query.add_sort_order(:symbol)
query.add_join(:pathways)
query.each_row do |r|
 puts r
end
For more details, see the accompanying documentation and the unit tests for interface examples. Further documentation is available at _URL_.
Support
Support is available on our development mailing list: _EMAIL_
License
This code is Open Source under the LGPL. Source code for all InterMine code can be checked out from svn://subversion.flymine.org/flymine
installgem install intermine
Authors
Alex Kalderimis
18,591 total downloads 751 for this version
Owners
B939a41c70402cb3e5551fc3d4d2556e
Licenses
LGPL
Gemfile
gem 'intermine', '~> 1.04.00'
Versions
 1. 1.04.00 July 8, 2013 (59 KB)
 2. 1.03.00 July 4, 2013 (58.5 KB)
 3. 1.02.00 June 27, 2013 (58.5 KB)
 4. 1.01.01 June 27, 2013 (58 KB)
 5. 1.01.00 March 1, 2013 (58 KB)
Show all versions (20 total)
Runtime Dependencies
 1. json >= 0


3Other Analytics and Reports Tasks
This chapter contains the following:
Briefing Books
Use briefing books to hold a collection of analytic snapshots. These snapshots give you a picture of what's going on at the time the analytic is added, or downloaded or reran. You can download briefing books as PDFs or MHTML to view, print, or share. The PDF file includes a table of contents. Briefing books are stored in the business intelligence (BI) catalog.
Add Content to New Briefing Books
 1. Open the Reports and Analytics work area.
 2. Click Browse Catalog.
 3. Select your analytic, then click More and select Add to Briefing Book.
 Or, find your dashboard and click Open.
 1. Go to the dashboard page you want to add.
 2. Click the Page Options button and select Add to Briefing Book.
 4. Indicate if you want the analytic results refreshed whenever the briefing book is downloaded or rerun.
 5. Click Browse.
 6. Name your briefing book and save it in My Folders.
Add Content to Existing Briefing Books
 1. Open the Reports and Analytics work area.
 2. Click Browse Catalog.
 3. Select your analysis, then click More and select Add to Briefing Book.
 Or, find your dashboard and click Open.
 1. Go to the dashboard page you want to add.
 2. Click the Page Options button and select Add to Briefing Book.
 4. Indicate if you want the analytic refreshed whenever the briefing book is downloaded or rerun.
Download and Edit Briefing Books
 1. Open the Reports and Analytics work area.
 2. Click Browse Catalog to locate your briefing book.
Schedule Analytics and Reports
Analytics, dashboard pages, and briefing books can be scheduled to run when you need them. You can also schedule other automated tasks, for example to deliver results to specific recipients, send notifications, or to generate a list of changes implemented today using the CURRENT_DATE repository variable. You create what's called an agent to set this all up for an analysis, dashboard, or briefing book. The agent itself is saved as an object in the business intelligence (BI) catalog.
Create an Agent
 1. Open the Reports and Analytics work area, or the Reports and Analytics panel tab if available in other work areas.
 2. Click the Browse Catalog button.
 3. Click New and select Agent in the Actionable Intelligence section.
 4. Ensure that you enter information on the Delivery Content tab to specify the analysis, dashboard page, or briefing book to run. Browse for the analysis, dashboard page, or briefing book, which must be specified to generate an attachment.
 5. Save the agent in My Folders.
Note: To edit an agent, browse the BI catalog to find the agent.
Reports can run based on a schedule that you define. You can set up other automated tasks, for example to deliver results to specific recipients or send notifications. You submit a report with the schedule and criteria for other automated tasks defined.
If a report is set up as a scheduled process, you submit the process as you would any scheduled process. You can schedule them from:
 - Any work area where there is a link to the report.
 - The Scheduled Processes work area, where you can submit all processes that you have access to.
 - The Reports and Analytics work area or panel tab, if the report is set up for submission from there.
Submitting a Report or Scheduled Process
Follow these steps:
 1. Open the Reports and Analytics work area, or the Reports and Analytics panel tab if available in other work areas where you can find the report.
 2. Click the name of your report.
 3. Click Schedule if the option is there. The report is set up as a scheduled process.
 1. Enter any parameters to avoid unnecessarily large results.
 2. Click Advanced to enter a schedule, deliver results to a specific destination (including e-mail or printer), or define criteria for sending notifications.
 4. If you don't see Schedule, then click View.
 1. Click the Actions button for the report and select Schedule.
 2. Enter information similar to step 3.
Some tasks are too complicated or would take way too long if you had to do them manually, especially one record at a time. So, you can run scheduled processes that do the task for you, for example to import data or update the status for a bunch of records. Some processes give you printable output. Those processes might have Report in their name.
Jobs and Job Sets
Each scheduled process that you run is based on a job. The job is the executable that controls what the process can do and what parameters and other options you have for the process. A job set contains multiple jobs.
Process Sets
A process set is a scheduled process that's based on a job set. So, when you submit a process set, you're running more than one job.
Note: When you submit certain scheduled processes, the job logic causes other processes to automatically run. But in this case, you're not submitting a process set that includes those other processes.
Submission
When you submit a scheduled process, you can use its parameters to control which records are processed and how. For example, a process includes only the transactions that were edited by the person you select for a Last Updated By parameter. Some processes don't have parameters.
As part of the submission, you can also set up a schedule for the process, for example to run once a week for two months. Every time a process runs, there's a unique process ID.
Output
Some scheduled processes provide output in PDF, HTML, and other formats. For example, a process can import records and also produce output with details about those records. There are many types of output, for example a tax document or a list of transactions.
Use the Scheduled Processes work area to run all the scheduled processes that you have access to, including process sets. You can also submit many processes from other work areas. Some of the processes that give you output are also reports that you can view from the Reports and Analytics work area or panel tab. You can find that panel tab in some work areas
It's quick to submit a scheduled process with the bare minimum steps. But there are many additional options you can set, for example, if you want to run the process on a schedule.
Select the Scheduled Process and Define Parameters
Here's what you do:
 1. Click Navigator > Tools > Scheduled Processes.
 2. On the Scheduled Processes Overview page, click Schedule New Process.
 3. Leave the type as Job, select the process that you want to submit, and click OK.
 4. In the Process Details dialog box, enter at least the required parameters, if any.
 - Some processes have no parameters at all.
 - Some parameters depend on other parameters. For example, date range parameters might appear only after you select By Date for another parameter.
 5. Click the Advanced button if you want to define the schedule, notifications, or output. Continue to the next steps. Or, just skip to the steps for finishing the submission, to run the process once as soon as possible with the default output.
Define the Schedule
Set up a schedule to run the process on a recurring basis or at a specific time. Use the Process Details dialog box in Advanced mode.
 1. Open the Schedule tab and select Using a schedule for the Run option.
 2. Select a frequency.
 - Select User-Defined if you want to enter the exact dates and times to run the process.
 - You can select Use a Saved Schedule to use an existing schedule, if there are any.
 3. Depending on the frequency, define when the process should run.
Define the Output
You can choose the layout, format, and destination for your output. Use the Process Details dialog box in Advanced mode.
 1. Open the Output tab, if available.
 2. Click Add Output Document.
 3. Change the name if you want. The name identifies this output document when you go to view output later.
 4. Select a layout if you have more than one to choose from.
 5. Select a format, for example one of these:
 - PDF: Is the best option if you want to print the output.
 - Excel: Supports embedded images, such as charts and logos, but can be opened only in Excel 2003 or higher.
 - Data: Gives you report data in an XML file, which is used mainly for editing the report layout.
 6. Click Add Destination to send the output somewhere, for example to a printer or email address. You can add many destinations and send the output to all of them at the same time.
 Tip: You can also print the output as part of the steps for finishing the submission, instead of adding a printer destination here.
 7. To add more output documents, repeat steps 2 to 6.
Set Up Notifications
You can have notifications sent out depending on how the process ends. Use the Process Details dialog box in Advanced mode to set that up.
 1. Open the Notification tab.
 2. Click Create Notification.
 3. In the Recipient field, enter the user ID of the person you want to send the notification to.
 4. In the Condition list, select when to send the notification, for example when the process ends in error.
 5. Click OK.
 6. To send notifications to more people, repeat steps 2 to 5.
Finish the Submission
Follow these steps in the Process Details dialog box:
 1. Click the Process Options button if you want to define settings that affect the data to be processed.
 2. If the process gives you output and you want to print it, select the Print output check box and a printer.
 3. Select the Notify me when this process ends check box if you want to get an email notification.
 4. Enter submission notes


Send Docs Feedback
Deploy API proxies using the management API
Every organization has a unique software development lifecycle (SDLC). It is often necessary to synchronize and align API proxy deployment with the processes used for backend services.
The Edge management API methods demonstrated in this topic can be used to integrate API proxy management into your organization's SDLC. A common usage of this API is to write scripts or code that deploy API proxies, or that migrate API proxies from one environment to another, as part of a larger automated process that also deploys or migrates other applications.
The management API makes no assumptions about your SDLC (or anyone else's, for that matter). Rather, it exposes atomic functions that can be coordinated by your development team to automate and optimize your API development lifecycle.
All of the management APIs are documented in APIs. This topic focuses on the set of APIs that are for managing API proxies.
Video: Check out this short video to learn how to deploy an API.
Interacting with the API
The following steps walk you through simple interactions with the APIs.
List APIs in your organization
You can begin by listing all of the API proxies in your organization. (Remember to substitute entries for email:password and {org_name}. For instructions, see API reference getting started.
$ curl -u email:password _URL_
Sample Response:
[ "weatherapi" ]
Get an API
You can call the GET method on any API proxy in your organization. This call returns a list of all available revisions of the API proxy.
$ curl -u email:password -H "Accept: application/json" _URL_
Sample Response:
{
 "name" : "weatherapi",
 "revision" : [ "1" ]
}
The only detail returned by this method is the name of the API proxy along with the associated 'revision', which has an associated number. API proxies consist of a bundle of configuration files. Revisions provide a lightweight mechanism for managing your updates of the configuration as you iterate. Revisions are sequentially numbered, enabling you to revert a change by deploying a previous revision of your API proxy. Also, you can deploy a revision of an API proxy into the prod environment, while continuing to create new revisions of that API proxy in the test environment. When you are ready, you can 'promote' the higher revision of your API proxy from the test environment over the prior revision of the API proxy in the prod environment.
In this example, there is only one revision because the API proxy was just created. As an API proxy moves through the lifecycle of iterative configuration and deployment, the revision number increments by integers. Using direct API calls to deploy, you can optionally increment the revision number of the API proxy. Sometimes when you make minor changes, you might not want to increment the revision.
Get API Revision
Don't confuse the version of an API (that is, the public interface) with the revision of an API proxy (that is, the internal number associated with a configuration). The two numbers are unrelated, and the revision number of an API proxy is totally opaque to apps that consume your API.
The API version (for example, _URL_ should change very infrequently. When you do increment the API version, it signifies to developers that there has been a significant change in the signature of the external interface exposed by the API.
The API proxy revision is an incremented number associated with an API proxy configuration. API Services maintains revisions of your configurations so that you can revert a configuration when something goes wrong. By default, an API proxy's revision is automatically incremented every time you deploy an API proxy. If you don't want to increment an API proxy's revision, use the Update API Proxy Revision API. If you're using Maven to deploy, use the clean or update options, as described in the Maven plugin readme.
To obtain the detailed profile of an API proxy configuration, you call the GET method on a specific revision number.
For example, you can call the GET method on API proxy revision 1 to get a detailed view.
$ curl -u email:password -H "Accept:application/json" _URL_
Sample Response
{
 "configurationVersion" : {
 "majorVersion" : 4,
 "minorVersion" : 0
 },
 "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}",
 "createdAt" : 1343178905169,
 "createdBy" : "_EMAIL_",
 "lastModifiedAt" : 1343178905169,
 "lastModifiedBy" : "_EMAIL_",
 "name" : "weatherapi",
 "policies" : [ ],
 "proxyEndpoints" : [ ],
 "resources" : [ ],
 "revision" : "1",
 "targetEndpoints" : [ ],
 "targetServers" : [ ],
 "type" : "Application"
}
These API proxy configuration elements are documented in detail in the API proxy configuration reference.
Deploying an API to an environment
Once your API proxy is configured to receive and forward requests properly, you can deploy it to one or more environments. Usually, you iterate on API proxies in 'test' and then, when ready, you 'promote' the API proxy revision to 'prod'. Often, you will find that you have many more revisions of an API proxy in the test environment, primarily because you will do much less iteration in the prod environment.
An API proxy cannot be invoked until is has been deployed to an environment. Once you have deployed the API proxy revision to prod, you can then publish the 'prod' URL to external developers.
As you've seen, you deploy the API revision to an environment, so the first step in deploying API proxy revisions is to verify the list of environments in your organization.
How to list environments
Every organization in Apigee Edge has at least two environments: 'test' and 'prod'. The distinction is arbitrary. The goal is to provide you with an area to verify that your API proxy is working properly before you open it up to outside developers.
Each environment is really just a network address, enabling you segregate traffic between the API proxies that you are working on, and those that are being accessed by apps at runtime.
Environments also provide segregation of data and resources. You can for example, set up different caches in test and prod, which can be accessed only by API proxies executing in that environment.
View environments in an organization
$ curl -u email:password _URL_
Sample Response
[ "test", "prod" ]
If you have an On-Premise installation of Apigee Edge, you may see a different list of environments.
Explore Deployments
A "deployment" is a revision of an API proxy that has been deployed in an environment. An API proxy that is in the 'deployed' state is accessible over the network, at the addresses defined in the VirtualHost for that environment.
It is often useful to check to see in which environment (and if!) your API is deployed. For example, you might find requests to your API proxy are failing. One troubleshooting step is to ensure that the API proxy is deployed as expected.
Deploying API proxies
API proxies cannot be invoked until they have been deployed. API Services exposes RESTful APIs that provide control over the deployment process.
The following APIs are called on your behalf by the Python deploy tool. The deploy tool provides support for packaging and importing API proxies that you develop locally, and it also manages undeployment of existing API proxy revisions. Use the direct API calls described below when you need additional control over the deployment process.
Only one revision of an API proxy can be deployed in an environment at a given time. Therefore the deployed revision needs to be undeployed. You can control whether the new bundle is deployed as a new revision or whether it overwrites the existing revision.
The size limit of a proxy bundle is 15 MB.
First undeploy the existing revision. Using query parameters, specify the environment name and the revision number of the API proxy you want to undeploy:
$ curl -X DELETE \
_URL_ \
-u email:password
Then deploy the new revision. (You can deploy using the same revision number, or you can increment it.)
$ curl -X POST -H "Content-type:application/x-www-form-urlencoded" \
_URL_ \
-u email:password
Using this approach, there will inevitably be some lag between the time when the first package is undeployed and the next one is deployed. During this interval, calls from apps may be rejected with an HTTP code 5xx. If this is a problem, as it usually is in production deployments, use the seamless deployment option, described below.
Seamless deployment (zero downtime)
To minimize the potential for downtime during deployment, use the override option on the deployment method, and set it to true.
You cannot deploy one revision of an API proxy on top of another. The first must always be undeployed. By setting override to true, you indicate that one revision of an API proxy should be deployed over the currently deployed revision. The result is that the deployment sequence is reversed--the new revision