Multislit masks for the Binospec spectrograph at the MMT telescope are designed by the proposers using BinoMask, a web based package written by Sean Moran at CfA.
This page has a tutorial / walkthrough on using BinoMask. For now this is a walkthrough of a slitmask design, notes written by Ben Weiner, with screenshots of the process. We are updating this page as needed and will add a video walkthrough in mid-2018. To access BinoMask for trial purposes, visit the URL scheduler.mmto.arizona.edu/BinoMask/ . To actually submit a mask design, you should find an email titled "MMT Observatory Queue Observing Form" that the MMT Scheduler sent you prior to the run, and click the link in that email to log into your account on the MMT queue catalog server. From your catalog page, make a new target, choose slitmask, and you will be sent to BinoMask. This process is necessary to associate your mask design with the correct catalog, PI, and observing run.
However, if you want a collaborator to have access to your queue catalog to be able to edit targets and design masks, you can forward them the email with the catalog link. Be careful with this link, since anyone with the link can edit that catalog.
You will need to have:
The BinoMask software is web based, so you need an Internet connection and a modern browser, but don't have to download/install anything.
When you get Binospec time, the MMT/Binospec queue will send you a link to sign in and administer your program. Or you can go to http://scheduler.mmto.arizona.edu/ and log in. Then click through: Queue Observing Form > Access Catalog Editor > New Target. This will open a "wizard" to help you specify the type of observation. Try clicking Mask > Create New Mask > Launch BinoMask. (If it gives you a warning about leaving the page without saving data, click ok to leave the page.) This will start the BinoMask design software running on scheduler.mmto.arizona.edu. (If you have difficulty here, see the "Troubleshooting" section at bottom of the page.)
The BinoMask page has a header saying "BinoMask MMT Observatory [observer name]", a list of actions in the left column, and a main sky image window in lower right. If you get a JS9 error message and/or the sky window is blank, try clicking the "BinoMask" at upper left to start it. Scrolling down in the sky window will show the assigned target table, which at first is empty.
To begin designing a mask, click Mask Configuration at top of the left column. A data entry window will pop out to the right. Enter a mask name; then enter RA/Dec, or try lookup by name (likely to work on names resolvable by NED/SIMBAD, e.g. NGC galaxies), observation date, grating and central wavelength, and click "Update Display." The image window should update to show your field. Note you may need to scroll up/down to see everything in the Mask Configuration pop-out. To close it click the X in upper right corner.
The tab for setting up your mask configuration: name, coordinates, PA, etc.
Overlaid on the sky image, there is a red oval at the center of the Bino field. You can click and drag it to move the Binospec pointing center. Clicking the red oval will show a red "handle" point - dragging this will rotate the Binospec pointing. Large green boxes show the Binospec fields of view, small yellow boxes show the alignment star regions, and a large blue box to the side shows the guider/WFS patrol region. If you drag the field toward the edge and want to refresh the background image, go to the Mask Configuration tab and click Update Display to recenter on the current mask center.
With the Mask Configuration tab closed, you can see the Binospec field of view on the sky, and click the red oval at center to move and rotate the field. The position and PA in the Mask Configuration tab will update to reflect your changes.
The Mask Configuration tab is also where you set slit width and length. At present, these are global values. As an aid, the MMT web site states that the median seeing is in the range of 0.77" - 0.85" based on data from 2003 to the present. 1 arcsecond wide slits are a good starting point, and 6 arcseconds is a good minimum length to ensure sky subtraction.
Under the "Reference Image" heading in the left column, there are tools for: uploading a local image to use as backdrop; refreshing the mask overlay of the Bino field; and show/hide control buttons in the image window. The image control buttons are DS9-ish file, view, zoom, scale, color, regions, WCS, analysis, help. You can, for example, zoom out if your catalog contains objects over a larger area than the default view. If you're happy with the default, you don't need to change anything in this tab.
Clicking "Target List" on the left pops out a window to upload a list of targets. The first line should be a header with column names selected from (lowercase only):
name,ra,dec,magnitude,priority,pm-ra,pm-dec,epoch,typeOnly ra and dec are required, but name, magnitude, priority are recommended. Priorities are 1-highest, 2-next, .... You then choose comma or tab delimited for the table. The RA, Dec can be in either HMS or decimal degrees, i.e. (1) hh:mm:ss, dd:mm:ss ; or (2) ddd.dddd, dd.dddd . Type should be 1 (or “target”), 2 (“sky”) or 3 (“standard”). You can use types 2 and 3 to designate slits as blank sky, or standard stars (TBD: is this used in the reduction process?) The targets will be plotted as red points. Once your target list is loaded, you can scroll down in the tab to see it under the heading "Current Target List."
Note that the target table must be comma or tab delimited, and currently must not include any extra whitespace in the header line - so 'name,ra,dec,mag' works, but 'name, ra, dec, mag' won't. We will fix this to ignore extra whitespace in the near future. (Whitespace in the catalog lines should be ok, just not in the header line.)
Object priorities can be 1-most important, 2-next most, and so on. The mask designer will try to optimize the sum of N_rank * 10^-rank, so a priority 1 object counts 10 times as much as a priority 2 object, and so on. Using all-integer priorities will work; using all-float priorities should work (to be tested); and mixing integers and floats in the priority column currently will cause an error during slit placement.
An RA or Dec value that is exactly an integer, such as 40.0000 degrees, will also cause an error when placing slits. (This is because the javascript front end types it as an integer and mixes it into an array of floats, which causes a problem when parsed by the backend.) You can solve this by adding a tiny amount to the coordinate, such as 40.00001 degrees.
This star catalog must include the magnitude column or guide selection will fail. (If absolutely necessary, you can fake this by setting all WFS stars to mag=13 and all guide stars to mag=15, but you should have the magnitudes that you used to select the stars anyway.) You'll load this catalog in the next step.
TODO: we will find some resources for transforming catalogs from common reference frames to the GAIA frame and provide links here. For the moment, one way to address this is to take stars from your catalog and cross-match them to the GAIA catalog. The CDS has a table cross matching web service (may be slow to render) and the University of Heidelberg's GAIA DR1 page gives an example of how to do a GAIA-to-user table crossmatch with a client such as TOPCAT. You can also query the GAIA catalog using Vizier to do a search in a region around your field; start from GAIA DR2 Vizier at CADC.
The tab for loading your target list.
Scrolled down to show a target list after loading it.
The beginning of my target catalog text file, to show the format - CSV in this case.
A forthcoming feature will be to import a catalog broadcast over SAMP from e.g. TOPCAT, with mostly similar format requirements, but this is not yet working with https.
The "Guide Box" pop out allows you to load stars from GAIA or GSC2 catalogs; you must choose the catalog whose reference frame matches your target catalog. You can also load guide stars from a file, change guide box size, or disable strict checking if absolutely necessary. Click "Retrieve" to get a list of guide stars. The guide stars will be plotted as blue points. You have to scroll down in the tab to see the list of guide stars after it was retrieved.
The tab for selecting a guide star catalog.
Scrolled down to show the list of guide stars after it was generated by BinoMask (using GAIA coordinates).
On rare occasions we have had problems with an outage at CDS where Binomask's query fails to return GAIA stars. If this happens (unlikely), you can get a list of GAIA stars from one of the mirrors, such as GAIA DR2 Vizier at CADC. See the page on Binomask special topics.
The "Generate Slits" pop out will assign slits to objects in your catalog. You can let it vary the instrument PA freely, specify a range of PA to allow, or fix it to the current value. You can also let it vary the mask center position in RA and Dec. You can choose the goal to optimize: most uniform wavelength coverage, maximum slit packing, or fully random selection.
Click the "Place Slits" button to start the process. Once Binomask has produced slit assignments, it will populate the "Targets Assigned" table below the sky view. You have to scroll down in the Generate Slits tab to see this "Targets Assigned" table. The selected targets and guide stars will now be shown on the image. Cyan outlines of slits and guide star boxes are drawn on the image.
(Binomask properly takes account of effects like optical distortion and differential atmospheric refraction at the selected time of observation to place the slits on the correct physical location on the mask. However, the translation from physical units back to sky coordinates in the display is approximate. So if you zoom in on the JS9 display, you may see slits in the corners of the mask drawn offset from the targets by 1-2 arcsec. This is normal and is only a display issue; the mask will be cut correctly.)
Varying the PA: Binomask will take account of what PAs are observable when your field is up and will avoid PAs that take your mask too close to the rotator limits during the observing window (either before or after transit, depending on which has a longer observable window) . So it's generally a good idea to let Binomask optimize the PA. If you need to constrain the PA, it may complain if the PAs are too close to the rotator limits.
It is good practice to avoid mask position angles that run into the rotator limits (which are near +180/-180). Binomask will try to avoid PAs that hit the limits in the middle of your observing window. In practice, the limits mean that: to avoid hitting the limit at transit, for masks that are north of the MMT (Dec > +33), you should avoid position angles near 0. For masks south of the MMT (Dec < +33), you should avoid PAs near +180 or -180.
Varying the mask center: Binomask can try a grid search of 5x5 centers in RA/Dec over a range you specify (eg 2x2 arcmin) to optimize the number of targets placed on slits. However, this slows down the slit placing step by a factor of 25, and currently may lead to timeout errors if you have a large target catalog.
The tab for generating slits, in which Binomask selects objects to be placed on slits, maximizing criteria that you select.
A display of the first trial of generated slits. Here I let it vary the PA but not the pointing center, and selected the maximum wavelength coverage option.
Scrolled down to show the table of targets assigned to slits in the first trial.
Second trial of generated slits. Here I let it vary the PA and allow the pointing center to shift by 1 arcmin in both RA and Dec, and selected the maximum number of objects option.
Scrolled down to show the table of targets assigned to slits in the second trial.
If you want to get a summary of how many objects in each priority were assigned to slits, use your browser to copy/paste the target table into a text file named e.g. "targetlist". Then run this unix command:
awk '{print $7}' targetlist | sort | uniq -cThis should work if the copy/paste preserved rows so that the priority is in column 7 of the text file.
Slit widths are also set by the user. As an aid, the MMT web site states that the median seeing is in the range of 0.77" - 0.85" based on data from 2003 to the present. 1 arcsecond slits are a good starting point.
You may get the error “slits can not be made” which often occurs because the rotator setting is not correct. Try adding or subtracting 180 from the present setting.
Note that if you redesign a mask repeatedly and allow it to vary the mask center each time, the center can wander away from the original coordinates. To recenter it, go back to the Mask Configuration tab.
Finally, click the "Submit Mask" header to get a pop out that allows you to submit the mask design. You can also use this pop out to: make another mask using unassigned targets from your catalog; clear and start over ; or to save and load mask files to local disk.
After submitting, you can choose to design more masks, or be sent back to the MMT Queue Catalog page.
If you want to design multiple masks to tile a field or to overlap for
greater coverage (eg second mask gets targets that could not be assigned on the first mask),
then you should make the first mask, submit it, and choose "Make Another."
This will send you back to the beginning. Choose your new mask center and
go through the steps, and
The tab for submitting your mask to the queue. After submission it will show up on your queue management page.
For each observation, you need to add it as a catalog target. This will define the observing block(s) that are actually executed. This is done on your Queue Observing page. Choose "New Target" or "Add New" under the listing of Catalog Target Fields. For observation type pick Mask, and then click Already Submitted or Existing Mask and choose the name of the mask that you made. The software will extract the RA/Dec from the mask file for you. You then specify the grating and central wavelength, and on the next dialog box you specify the exposure time, number of exposures, and number of visits. The total exposure you are asking for will be the product of exposure time, exposures/visit, and number of visits.
If you don't have special requirements you can specify all the exposures in one visit. The queue scheduler will break long observations into 2 hour observing blocks anyway for practical scheduling reasons. The number of visits isn't critical but can be used to specify a monitoring program. For example if you wanted to get 1 hour exposure on a target for each of 4 nights, and not have all 4 hours on the same night, you could specify 3x1200 sec exposures x 4 visits, and tick the "one visit per night" box. In practice, if you have special scheduling requirements, you should write them in the notes attached to the catalog target.
Note there is a distinction between "mask" and "target." A target is basically an observing block definition. You could use the same physical mask for more than one target. For example, you might choose to observe the same mask at two different central wavelength settings. Each would be a distinct "target" in the queue.
From the Queue Catalog page, if you click the name of a mask, it will reopen BinoMask with fewer options. This will show a Mask Configuration tab and a Save Mask tab. From Save Mask, you can click Save Mask to File. This will download a file called mask.json (on Safari it doesn't offer a choice of name/location, just instantly downloads mask.json to my Downloads folder). This is a text file without any breaks - if you want to view it in a nice tree format, it can be uploaded to an online JSON viewer, or parsed by standard JSON parsing libraries.
Reopening / reusing older mask designs is under development, so some aspects of that interface may change.
Note that the differential atmospheric refraction across the 15 arcminute field is significant, so that the location of slitlets depends on the hour angle at which the mask is observed. In practice this means that the mask machining would change slightly depending on whether the mask is observed when HA is East or West. Thus the date and time of observation specified during mask design are significant. Observable hour angles will be taken into account during queue scheduling.
Some special cases and black-belt techniques are discussed on the Binospec and Binomask special topics page.
Can't access Binomask: Normally you start from your queue catalog page and click "New Target" and "Launch Binomask." If this takes you back to the scheduler homepage rather than starting Binomask, the problem is a stale browser cookie that keeps track of your login. We are working on fixing this. In the meantime, you can fix it by either: 1. launching a private/incognito browser session and accessing your catalog; or 2. clearing cookies in your browser for the hostname "https://scheduler.mmto.arizona.edu"; the tokens to clear are "token" and "PHPESSID".
Load target catalog fails: Check your catalog to make sure that the field names in the header are exactly as shown here: name,ra,dec,magnitude,priority,type and so on.
Placing slits fails: Check your catalog to make sure that your priority column uses either all integer priorities, or all floats. Mixing datatypes will cause an error (because Javascript and IDL typing don't interact well). Also check to make sure that you don't have an object with RA or Dec that is exactly integer, such as Dec = 40.0000. This will cause the same problem, and you can solve it by adding a tiny amount, eg Dec = 40.00001.
“Slits can not be made” error: This error message in the generate slits stage may mean that your selected PA or PA range is not compatible with the rotator limits and observation time. Try removing any PA constraints, or adding/subtracting 180 degrees to your PA.
"Problem connecting to backend server" error during slit placement: This means that the web process is failing to talk to the server that is actually doing the computation of allowable slit placement and optimization of number of targets and priorities. It may happen if the computational load is high or the slit placement is very demanding / takes a long time. Large input target catalogs can cause this to happen. One option is to fix the mask center position: set the "Vary Center By" RA and Dec numbers to 0 and place slits again. This speeds up the computation by a factor of 25.


MAINFLUX
Mainflux is highly secure, scalable, open-source IoT platform written in Go and deployed in Docker.
It serves as software infrastructure and set of microservices for development of the
Internet of Things Solutions and deployment of Intelligent products.
SEAMLESS INTEGRATION
WITH OTHER SYSTEMS
SCALABLE AND FAST
HIGHLY SECURE
HARDWARE AND DEVICE
AGNOSTIC
Mainflux is an open-source IoT cloud platform for the development of
Internet of Things solutions, IoT applications and intelligent products.
Mainflux’s primary functions are:
Interact with very large numbers of devices
and gateways with different protocols
Server System for Device
and Data Management
Event processing,
data analysis and report creation
Software Foundation for
Intelligent Products Deployment
Cloud Platform & Tools for IoT Applications
and Solution Development
Mainflux software infrastructure stack contains all necessary components and microservices required for fully functional IoT solutions.
The IoT Cloud Platform will facilitate the interoperability of the IoT solution with existing enterprise applications and other IoT solutions.
An extensive list of features includes:
Exclude demanding development and maintenance of software technology and server infrastructure. Minimize deployment risks, costs, time and requirements.
With SDKs and pre-built client libraries, setup is quick and easy, enabling developers to save implementation time.
Mainflux’s back-end cloud platform configuration and open APIs provide the ability to easily connect any device or sensor without modification or adjustment, saving customers and end-users valuable time by simplifying the entire configuration process. With built-in platform graphic elements (integrated visualization and analytical tools) customers can quickly create screens, dashboards and analytics ready for use.
Our platform has the capacity to manage large-scale device deployments and extreme volume transaction.
Mainflux architecture ensures indispensable performance required in large Internet of Things project deployments such as cloud scale data reads per day, concurrent user applications and very large device networks.
Mainflux platform supports many Internet of Things protocols including MQTT, Websockets, CoAP, and restAPI.
This allows fast data integration and communication between the wide range of different connected assets, entities and systems, such as machines, enterprise applications, networking devices, systems (3rd party device clouds, hubs, routers, servers, gateways, peripheral and user interfaces).
Customers are freed from typical barriers and project delays so they can shorten the IoT project to market time without additional costs and expenses.
Mainflux platform is compatible with any networking hardware and an intelligent device.
With pre-built client libraries, we offer customers the ability to select the solution that responds to their business needs and operational requirements in the best possible manner.
You can easily enable web connectivity to any of your assets whether they are machines, devices, objects, users or physical environment.
With our comprehensive cybersecurity system, customer data is safe and secure – first by persisting data in multiple fault-tolerant scalable storage locations and second through the hierarchical administration of users, user group asset and asset group profiles and thirdly by encrypting all communication between end-user clients, networked devices and the Mainflux cloud.
This ensures that Mainflux’s security system is protected and safe from any single point of failure while providing full control and API access to the underlying data.
With extensive practical experience and deep knowledge of hardware and intelligent devices, our team can provide operational expertise for the optimal cost-quality related solutions and support needed for any IoT project. This expertise includes all functional aspects of the networking technology required for connecting assets from the vast market place of manufacturers.
Additionally, we have developed the open source hardware platform WeIO. Awarded as the best open source project by Postscapes and presented at multiple conferences such as; Linux.com, OSCON Portland, New York Makefaire,Techcrunch Disrupt London and others.
The Mainflux cloud platform is an actilvely participated community initiative guided and driven by the Mainflux project team experts.
The core cloud software is open sourced so that industry participants can inspect, change and adapt the software to their own needs while still obtaining industry leading support. We strongly believe that open source provides high-quality, verified bug-free code and increases cybersecurity which is a threat in all industries.
Mainflux cloud is published under the very permissive Apache v2.0 license which guarantees patent-free software usable by the industry in proprietary and commercial products. All the Mainflux source code, product and development information can be found on project’s official GitHub page.
The LoRaWAN (Low Power Wide Area Network LPWAN) technology is ideal for use in battery operated sensors and low power applications providing an alternative energy efficient option to M2M cellular connectivity.
LoRaWAN provides the ability to cover entire cities or states with a few base stations. This removes the need for large upfront rollouts and maintenance of thousands of network nodes typical in traditional cellular networking. This has made the deployment of IoT solutions a reality now with minimal infrastructure investment.
Increase organisational efficiency and reduce costs with enhanced IoT data-driven decision-making.
Integrate real-time, operational device data into key enterprise decision- making systems.
Modernise IT environments and improve technology stacks by upgrading with systems and applications that help generate growth and better business outcomes.
Develop connected IoT applications and enterprise-grade IoT solutions.
Create real-time dashboards, collaborative workspaces, rich user interfaces and powerful experiences across different devices.
Connect your application with hardware and smart devices using multiple network protocols and best cybersecurity practices.
Employ/Use the full suite of tools and APIs for data storage, analysis, business logic, visualization, execution, collaboration and security required for fully functional IoT interactive applications.
Quickly develop prototypes, POCs with connectivity to the internet and your products with Mainflux’s software development tools. Feel confident in the project delivery knowing that the expert MainFlux team is available for any support needs.
Deploy and manufacture products at scale with our real-time, secure and scalable cloud platform and back-end infrastructure.
Manage your intelligent product with a dashboard. Update firmware, collect real-time data and integrate your product with other applications and web servicies.


Expression object for dense vector-dense vector additions.The DVecDVecAddExpr class represents the compile time expression for additions between dense vectors.
More...
#include <DVecDVecAddExpr.h>
Inherits blaze::DenseVector< DVecDVecAddExpr< VT1, VT2, TF >, TF >, blaze::VecVecAddExpr, and blaze::Computation.
|
| enum | : bool { simdEnabled
} |
| | Compilation switch for the expression template evaluation strategy.
|
| |
| enum | : bool { smpAssignable = VT1::smpAssignable && VT2::smpAssignable
} |
| | Compilation switch for the expression template assignment strategy.
|
| |
| enum | : size_t { SIMDSIZE = SIMDTrait<ElementType>::size
} |
| | The number of elements packed within a single SIMD element.
|
| |
|
typedef DVecDVecAddExpr< VT1, VT2, TF > | This |
| | Type of this DVecDVecAddExpr instance.
|
| |
|
typedef AddTrait_< RE1, RE2 > | ResultType |
| | Result type for expression template evaluations.
|
| |
|
typedef TransposeType_< ResultType > | TransposeType |
| | Transpose type for expression template evaluations.
|
| |
|
typedef ElementType_< ResultType > | ElementType |
| | Resulting element type.
|
| |
|
typedef const IfTrue_< returnExpr, ExprReturnType, ElementType > | ReturnType |
| | Return type for expression template evaluations.
|
| |
|
typedef IfTrue_< useAssign, const ResultType, const DVecDVecAddExpr &> | CompositeType |
| | Data type for composite expression templates.
|
| |
|
typedef If_< IsExpression< VT1 >, const VT1, const VT1 &> | LeftOperand |
| | Composite type of the left-hand side dense vector expression.
|
| |
|
typedef If_< IsExpression< VT2 >, const VT2, const VT2 &> | RightOperand |
| | Composite type of the right-hand side dense vector expression.
|
| |
|
typedef VT | VectorType |
| | Type of the vector.
|
| |
|
| enum | : bool { returnExpr = !IsTemporary<RN1>::value && !IsTemporary<RN2>::value
} |
| | Compilation switch for the selection of the subscript operator return type. More...
|
| |
| enum | : bool { useAssign = ( RequiresEvaluation<VT1>::value || RequiresEvaluation<VT2>::value || !returnExpr )
} |
| | Compilation switch for the serial evaluation strategy of the addition expression. More...
|
| |
|
typedef ResultType_< VT1 > | RE1 |
| | Result type of the left-hand side dense vector expression.
|
| |
|
typedef ResultType_< VT2 > | RE2 |
| | Result type of the right-hand side dense vector expression.
|
| |
|
typedef ReturnType_< VT1 > | RN1 |
| | Return type of the left-hand side dense vector expression.
|
| |
|
typedef ReturnType_< VT2 > | RN2 |
| | Return type of the right-hand side dense vector expression.
|
| |
|
typedef CompositeType_< VT1 > | CT1 |
| | Composite type of the left-hand side dense vector expression.
|
| |
|
typedef CompositeType_< VT2 > | CT2 |
| | Composite type of the right-hand side dense vector expression.
|
| |
|
typedef ElementType_< VT1 > | ET1 |
| | Element type of the left-hand side dense vector expression.
|
| |
|
typedef ElementType_< VT2 > | ET2 |
| | Element type of the right-hand side dense vector expression.
|
| |
|
typedef AddExprTrait_< RN1, RN2 > | ExprReturnType |
| | Expression return type for the subscript operator.
|
| |
template<typename VT1, typename VT2, bool TF>
class blaze::DVecDVecAddExpr< VT1, VT2, TF >
Expression object for dense vector-dense vector additions.
The DVecDVecAddExpr class represents the compile time expression for additions between dense vectors.
§ anonymous enum
template<typename VT1, typename VT2, bool TF>
Compilation switch for the selection of the subscript operator return type.
The returnExpr compile time constant expression is a compilation switch for the selection of the ReturnType. If either vector operand returns a temporary vector or matrix, returnExpr will be set to 0 and the subscript operator will return it's result by value. Otherwise returnExpr will be set to 1 and the subscript operator may return it's result as an expression.
§ anonymous enum
template<typename VT1, typename VT2, bool TF>
Compilation switch for the serial evaluation strategy of the addition expression.
The useAssign compile time constant expression represents a compilation switch for the serial evaluation strategy of the addition expression. In case either of the two dense vector operands requires an intermediate evaluation or the subscript operator can only return by value, useAssign will be set to 1 and the addition expression will be evaluated via the assign function family. Otherwise useAssign will be set to 0 and the expression will be evaluated via the subscript operator.
§ DVecDVecAddExpr()
template<typename VT1, typename VT2, bool TF>
Constructor for the DVecDVecAddExpr class.
- Parameters
-
| lhs | The left-hand side operand of the addition expression. |
| rhs | The right-hand side operand of the addition expression. |
§ at()
template<typename VT1, typename VT2, bool TF>
Checked access to the vector elements.
- Parameters
-
| index | Access index. The index has to be in the range . |
- Returns
- The resulting value.
- Exceptions
-
| std::out_of_range | Invalid vector access index. |
§ begin()
template<typename VT1, typename VT2, bool TF>
Returns an iterator to the first non-zero element of the dense vector.
- Returns
- Iterator to the first non-zero element of the dense vector.
§ canAlias()
template<typename VT1, typename VT2, bool TF>
template<typename T >
Returns whether the expression can alias with the given address alias.
- Parameters
-
| alias | The alias to be checked. |
- Returns
- true in case the expression can alias, false otherwise.
§ canSMPAssign()
template<typename VT1, typename VT2, bool TF>
Returns whether the expression can be used in SMP assignments.
- Returns
- true in case the expression can be used in SMP assignments, false if not.
§ end()
template<typename VT1, typename VT2, bool TF>
Returns an iterator just past the last non-zero element of the dense vector.
- Returns
- Iterator just past the last non-zero element of the dense vector.
§ isAliased()
template<typename VT1, typename VT2, bool TF>
template<typename T >
Returns whether the expression is aliased with the given address alias.
- Parameters
-
| alias | The alias to be checked. |
- Returns
- true in case an alias effect is detected, false otherwise.
§ isAligned()
template<typename VT1, typename VT2, bool TF>
Returns whether the operands of the expression are properly aligned in memory.
- Returns
- true in case the operands are aligned, false if not.
§ leftOperand()
template<typename VT1, typename VT2, bool TF>
Returns the left-hand side dense vector operand.
- Returns
- The left-hand side dense vector operand.
§ load()
template<typename VT1, typename VT2, bool TF>
Access to the SIMD elements of the vector.
- Parameters
-
| index | Access index. The index has to be in the range . |
- Returns
- Reference to the accessed values.
§ operator[]()
template<typename VT1, typename VT2, bool TF>
Subscript operator for the direct access to the vector elements.
- Parameters
-
| index | Access index. The index has to be in the range . |
- Returns
- The resulting value.
§ operator~() [1/2]
template<typename VT, bool TF>
Conversion operator for non-constant vectors.
- Returns
- Reference of the actual type of the vector.
§ operator~() [2/2]
template<typename VT, bool TF>
Conversion operator for constant vectors.
- Returns
- Const reference of the actual type of the vector.
§ rightOperand()
template<typename VT1, typename VT2, bool TF>
Returns the right-hand side dense vector operand.
- Returns
- The right-hand side dense vector operand.
§ size()
template<typename VT1, typename VT2, bool TF>
Returns the current size/dimension of the vector.
- Returns
- The size of the vector.
The documentation for this class was generated from the following file:


global model fish fisheries technological harvest climate historical fishing progress change {border-style future px;} #ffffff;} Supplementary effort marine MSY effective long-term price Fig. century management rate simulations fishery year economic biomass increasing range ecosystem fisheries. given harvest, using wild changes cost increase production Methods). catchability century, ensemble ex-vessel px; shown {font-family Fish. Sci. available capture coupled decrease font-size hindcast including observed open peak simulated technology trend D.B. Given Global Mar. Proc. Science average catch constant double; dynamics ecological estimated fishery. greater idealized ocean scenarios, D.A.C. Earth Figure Galbraith RCP. University [], ability according border-color border-width consider development effort, estimate factors fish, fishermen important increased market possible primary projections rates relative relatively representing role scale simple simulation. solid; stock suggest that, trends unit {font-style {font-weight (Methods, Bianchi Biol. Can. Carozza Department Fish Pauly Research Rev. Soc. Watson access bold constrained courier; demand determined different does efficiency em; expansion food forced grid harvest. importance included includes individual interactions maximum model, observational parameter population potential price, pristine produce progress, pt;} reproduce roles scenarios simulations. species technology, trophic use


{% extends 'base.html' %} {% block content %}
Drone Video Measure (DVM) is a open source tool to measure and track things on a planar surface. Developed to measure and track marine mammals in the surface of the ocean.
A detailed description of how to use the program can be found here: manual
Demo data is available at DOI including a video demo of how to use the program.
Currently only flight logs from DJI drones are suppored. If you what support for other drones please create a issue with a flight log attached.
Written by Henrik Dyrberg Egemose<EMAIL_ADDRESS>as part of the InvaDrone and Back2Nature projects, research projects by the University of Southern Denmark UAS Center (SDU UAS Center).
This project is licensed under the MIT license - see License for details.
No projects added yet.
{% endif %}


Wall Street opens higher as trade optimism returns
NEW YORK, Nov 22 — Wall Street opened higher today as President Donald Trump said a trade deal with China was “potentially very close”, adding to optimism triggered by comments from Beijing that it wanted to reach an initial agreement.
The Dow Jones Industrial Average rose 64.94 points, or 0.23 per cent, at the open to 27,831.23. The S&P 500 opened higher by 7.87 points, or 0.25 per cent, at 3,111.41, while the Nasdaq Composite gained 24.33 points, or 0.29 per cent, to 8,530.54 at the opening bell. — Reuters


|
lab4-UART_SPI
UART servo controller with angle indication on OLED display
|
#include <stdint.h>
Go to the source code of this file.
Macros | |
| #define | LD1_PORT_BIT LATGbits.LATG6 |
| Macros that used for setting or reseting of LED1. More... | |
| #define | LD2_PORT_BIT LATDbits.LATD4 |
| Macros that used for setting or reseting of LED2. More... | |
| #define | LD3_PORT_BIT LATBbits.LATB11 |
| Macros that used for setting or reseting of LED3. More... | |
| #define | LD4_PORT_BIT LATGbits.LATG15 |
| Macros that used for setting or reseting of LED4. More... | |
| #define | BTN1_PORT_BIT PORTAbits.RA5 |
| Macros for reading button1 state. More... | |
| #define | BTN2_PORT_BIT PORTAbits.RA4 |
| Macros for reading button2 state. More... | |
| #define | PWM_FREQ_HZ (50) |
| Definition of PWM frequency. More... | |
| #define | PWM_PERIOD_COUNTS (100000000/(256 * PWM_FREQ_HZ)) |
| Definition of PWM period counts. More... | |
| #define | SERVO_0 (220) |
| Definition of servo angle. More... | |
| #define | SERVO_90 (550) |
| Definition of servo angle. More... | |
| #define | SERVO_180 (880) |
| Definition of servo angle. More... | |
Functions | |
| void | initGPIO (void) |
| GPIO initialization. More... | |
| void | UART4_init (void) |
| UART initialization. More... | |
| void | delayMs (int t) |
| primitive delay function More... | |
| void | set_angle (char) |
| function for turning servo More... | |
| #define BTN1_PORT_BIT PORTAbits.RA5 |
Macros for reading button1 state.
Definition at line 18 of file lab4_UART_SPI.h.
| #define BTN2_PORT_BIT PORTAbits.RA4 |
Macros for reading button2 state.
Definition at line 19 of file lab4_UART_SPI.h.
| #define LD1_PORT_BIT LATGbits.LATG6 |
Macros that used for setting or reseting of LED1.
Definition at line 13 of file lab4_UART_SPI.h.
| #define LD2_PORT_BIT LATDbits.LATD4 |
Macros that used for setting or reseting of LED2.
Definition at line 14 of file lab4_UART_SPI.h.
| #define LD3_PORT_BIT LATBbits.LATB11 |
Macros that used for setting or reseting of LED3.
Definition at line 15 of file lab4_UART_SPI.h.
| #define LD4_PORT_BIT LATGbits.LATG15 |
Macros that used for setting or reseting of LED4.
Definition at line 16 of file lab4_UART_SPI.h.
| #define PWM_FREQ_HZ (50) |
Definition of PWM frequency.
Definition at line 21 of file lab4_UART_SPI.h.
| #define PWM_PERIOD_COUNTS (100000000/(256 * PWM_FREQ_HZ)) |
Definition of PWM period counts.
Definition at line 22 of file lab4_UART_SPI.h.
| #define SERVO_0 (220) |
Definition of servo angle.
Definition at line 24 of file lab4_UART_SPI.h.
| #define SERVO_180 (880) |
Definition of servo angle.
Definition at line 26 of file lab4_UART_SPI.h.
| #define SERVO_90 (550) |
Definition of servo angle.
Definition at line 25 of file lab4_UART_SPI.h.
| void delayMs | ( | int | t | ) |
| void initGPIO | ( | void | ) |
| void set_angle | ( | char | mode | ) |


|
cds
1.2.0
|
Pass The Buck reclamation schema. More...
Namespaces | |
| namespace | details |
| Details of Pass the Buck algorithm. |
Data Structures | |
| class | Guard |
| Guard. More... | |
| class | GuardArray |
| Array of guards. More... | |
| class | GarbageCollector |
| Memory manager (Garbage collector) More... | |
| class | ThreadGC |
| Thread GC. More... |
Typedefs | |
|
typedef cds::gc::details::retired_ptr | retired_ptr |
| Retired pointer type. |
Pass The Buck reclamation schema.
The cds::gc::ptb namespace and its members are internal representation of the Pass-the-Buck GC and should not be used directly. Use cds::gc::PTB class in your code.
 The main user-level part of PTB schema is GC class and its nested classes.  See cds::gc::PTB class for explanation.


While working on a template for a client we decided to use Flexbox. I had these requirements set in stone from the get go:
Jquery for all its usefulness I felt was unneeded for this navigation for a few reasons. One being if JQuery wasn't being used on the page I didn't want to load it. Two It would make our dependency tree smaller. Not loading un-needed files helps with #2 requirement and Tim Kadlec's "whatdoesmysitecost.com" really helps put into perspective what heavy sites may cost in other parts of the world. Our browser support was at least Internet Explorer 9. So working off the assumptions of being mobile AND accessible first I came up with Flexbox Mobile Dropdown Navigation
Its a small "module" that should be fine plugged into any site. In the tables below you'll find the sizes of both files - CSS and JavaScript - minified and gzipped. Gzip sizes may differ depending on your servers settings.
| File | Size Minified | Size Gzipped |
|---|---|---|
| navigation.min.css (with fallback support) | 4.5KB | 1.7KB |
| nav-flexbox-only.min.css (without fallback support) | 3.0KB | 1.0KB |
| navigation.android-ie8.min.js | 3.3KB | 1.9KB |
| navigation.min.js (without classList polyfill) | 1.6KB | 1.1KB |
This isn't going to be useful to everyone - for instance there is no support for multi-level menus currently - but you can modify it to to fit your needs!
navigation.android-ie8.min.js
or classList Polyfill for Android Gingerbread github.com/eligrey/classList.js)
Screenshots of the demo page on various browsers:
For a demo visit: Flexbox Nav on Github
dist
directory into
your css and JS folders of your project along with the menu.png
from the img directory to a directory titled "img".
This is written in a way to assume that JavaScript has failed to load or a user has disabled JavaScript.
Also known as progressive enhancement. So I have made a few opinionated assumptions and added a no-js
class to the document. This will be removed if you include the bundled modernizr or your own version. To go along with an accessibility minded approach we have not disabled zooming and set the viewport to:
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
More information on the viewport can be found at the a11y project website.
<!doctype html>

<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
Add in the CSS file you wish to use from the dist/css
directory.
<link rel="stylesheet" href="dist/css/navigation.MOST-CURRENT-DATE-HERE.min.css">
Underneath that add in either the included modernizr from dist/js
or
your own custom version with flexbox tests.

Your Site Title

<input type="checkbox" id="fn-noJs" class="fn-navTrigger__no-js"/>

Link 1

On small devices to enable the menu to be closed besides clicking the close button you must add in a
tag.

Include the navigation js file from dist/js
you wish to use before your
closing body.

<!doctype html>

<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="dist/css/navigation.MOST-CURRENT-DATE-HERE.min.css">

Your Site Title

<input type="checkbox" id="fn-noJs" class="fn-navTrigger__no-js"/>

Link 1

Link 2

Link 3

Link 4

Link 5


SHAKESPEARE IN LOVE (M). (Universal/Miramax/UIP) Director: John Madden Stars: Joseph Fiennes, Gwyneth Platrow, Geoffrey Rush, Colin Firth, Imelda Staunton, Tom Wilkinson, Ben Affleck, Martin Clunes, Judi Dench, Simon Callow, Jim Carter, Joe Roberts, Rupert Everett, Antony Sher, Mark Williams Running time: 123 minutes.
This bawdy, slightly irreverent but delightfully entertaining romantic comedy offers us a fictional interpretation of the creation of Romeo And Juliet, one of literature's greatest tragic love stories.
The film is set in the Elizabethan London of 1593. Up and coming young playwright Will Shakespeare (Joseph Fiennes, recently seen in Elizabeth) has been commissioned to write a play by sycophantic but debt ridden theatre owner Henslowe (Geoffrey Rush, in a wonderful comic turn). It is hoped that this new play will put him on a par with arch rival, the famous playwright Christopher Marlowe (an uncredited Rupert Everett). But, even before he has put pen to paper for his farce Romeo And Ethel, The Pirate's Daughter, he is unfortunately struck by writer's block.
Enter Viola (Gwyneth Paltrow, in a role originally intended for Julia Roberts), the headstrong daughter of a noble family, who desperately wants to become an actress at a time when women were forbidden to pursue a career in the theatre. Although she is betrothed to the slimy Wessex (Colin Firth) in an arranged marriage, Shakespeare falls heavily in love with Viola. She becomes his muse, and soon the words are flowing from his quill. Their illicit romance provides the inspiration for the struggling playwright, and the drama of their affair is reflected in the developing play.
Some of the characters and incidental details may already be familiar to audiences who saw the lavish BBC tv mini-series starring Tim Curry as Shakespeare. Playwright Tom Stoppard (Rosencrantz And Guildenstern Are Dead, etc) and co-writer Marc Norman suffuse their script with an air of irreverence, playfully mixing fact with fiction. The result is a briskly paced and enjoyable comedy about love, mistaken identities, duels, passion and death - the very stuff that became the essence of Shakespeare's famous plays.
This wonderfully written film offers plenty of insights into the world of Elizabethan theatre without becoming didactic. British director John Madden (Mrs Brown) also gives it a slightly contemporary flavour with his treatment of the off stage dramas, the bruised egos, the rivalry between writers, and the scrambling for patronage and favour. His direction is crisp, and he makes the most of the sharp script and the poetic beauty of the dialogue.
The ensemble cast are all uniformly good, and their solid performances lift this delicious comedy. Golden Globe winner Paltrow is luminescent as Viola, and she delivers a wonderful performance in a quite challenging dual role. Fiennes only stepped into the role of Shakespeare after Daniel Day Lewis passed, but it's hard to imagine anyone else bringing such passion, wit and smouldering intensity to the part. He is superb, and if he keeps getting good roles in quality films like this, the younger Fiennes will possibly eclipse his more famous but over rated brother Ralph.
Tom Wilkinson brings his usual touch of class to his role as Fennyman, the money lender who eventually sponsors the creation of Romeo And Juliet. Judi Dench lends her commanding presence to the role of Queen Elizabeth. Imelda Staunton is marvellous as Viola's sympathetic and understanding nurse.
This handsomely mounted production beautifully brings to life the Elizabethan setting. The costumes and the set design evoke the marked contrasts between Viola's world of pomp and privilege and the destitute, grimy world of London's growing theatre community. Stephen Warbeck's gorgeous music score and Richard Greatrex's luscious cinematography further enhance the classy production. **** greg king http://www.netat.com.au/gregking
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The Amazing Weather Checking Machine
for when looking outside is too hard
What's happening outside?
°F
°C


The icat.oaipmh component provides an interface for OAI-PMH. For this purpose, once it is deployed in Payara, it listens for requests at a dedicated endpoint URL. It then connects to ICAT as a normal client to gather the information needed to answer those requests.
The component will disseminate all relevant information from ICAT. This can be regulated using the normal ICAT access rules: The user that icat.oaipmh connects as must have read permission for all relevant ICAT objects. It shouldn't be given read access to any private information, and no write permissions. For instance, one might configure icat.oaipmh to connect as the anonymous user.
The major value of this component is the ability to provide flexibility on both ends:
In order to overcome this challenge, icat.oaipmh in a fist step compiles the information from ICAT into a generic XML format. The information that gets into this XML file can be controlled using the various "data.*" directives in run.properties (see installation notes). One may tweak these directives according to where the relevant information is to be found in ICAT.
In a second step, icat.oaipmh transforms the generic XML file into the metadata format requested by the harvester using XSLT. For each metadata format which a facility wants to support, a corresponding XSLT stylesheet must be created. These stylesheets will also depend on the way the information is stored in the ICAT schema.


PUT : To create resource POST : Update resource GET : Get a resource or list of resources DELETE : To delete resource
200 OK
- the request was successful (some API calls may return 201 instead).
201 Created
- the request was successful and a resource was created.
204 No Content
- the request was successful but there is no representation to return
(i.e. the response is empty).
400 Bad Request
- the request could not be understood or was missing required
parameters.
401 Unauthorized
- authentication failed or user doesn't have permissions for requested
operation.
403 Forbidden
- access denied.
404 Not Found
- resource was not found.
405 Method Not Allowed
- requested method is not supported for resource.
All calls need to be authenticated. For obtainging a JWT key use the following enpoint:
To verify the token:
{ "token": "abcdef..." }
To refresh the token:
To register:
To authenticate with the token set the headers like this:
{ "count": 0, "next": null, "previous": null, "results": [] }
{ "count": 1, "next": null, "previous": null, "results": [ { "location": { "type": "Point", "coordinates": [ 0.02197265625, -0.000411987566627 ] }, "type": 1 } ] }
{ "count": 1, "next": null, "previous": null, "results": [ { "name": "Win the trash tournament", "description": "Make a lot of deals and win the customer of the year badge", "dificulty": 9, "badges": [ 1 ] } ] }
{ "count": 1, "next": null, "previous": null, "results": [ { "name": "Customer of the year", "description": "you are the best" } ] }
{ "count": 1, "next": null, "previous": null, "results": [ { "company": 1, "end_date": "2019-01-25T12:34:55Z" } ] }
{ "count": 1, "next": null, "previous": null, "results": [ { "name": "Trash Company S.R.L.", "promoted": true } ] }


'Enemy of the State' (1998)
A movie review by Walter Frith
Member of the 'Internet Movie Critics Association' http://www.geocities.com/Hollywood/Studio/5713/index.html
and
Member of the 'Online Film Critics Society' http://ofcs.org/ofcs/
If you've seen one Tony Scott film you've seen them all, right? If you've seen one Jerry Bruckheimer film you've seen them all, right? If you like formula concoctions with loud noise, rapid editing and a swift pace then you'll enjoy 'Enemy of the State', right? Only once. This latest entry into the fast food market of film is made in the best tradition of Tony Scott's theme of slick machismo complete with shadows given off by window blinds, the exploitation of women (where can I find a lingerie store like the one in this film, darn I'm a hypocrite) and, of course, enough guns, explosions, chases, and slimy bad guys to fill a dozen movies with only a couple of good guys to go around. Although, this time, there is a nasty looking scene where a boom mic is visible not once but a couple of times. It occurs as Will Smith is talking to a mobster about 50 minutes into the movie.
I don't think I've ever seen a film where the bad guys execute their evil plans believing all the while that they're doing the right thing for the good of their country. Jon Voight portrays a sinister NSA (National Security Agency) agent who, along with some henchmen, murder a Congressman who refuses to go along with a telecommunications bill that will give the government greater power to invade the privacy of its citizens in the name of national security and their hope is that it will reduce crime, terrorism, internet mischief and other paranoia they perceive the be a threat. Evil for evil is their motto. It's just too bad for them that the murder was caught on tape by a hidden camera, used by a nature photographer and environmentalist whose life is now in danger.
Will Smith portrays a hot shot Washington D.C. attorney and the man with the deadly evidence is a friend of his who slips it into Smith's hands without his knowledge. Smith now becomes the target of the government's pursuit of the evidence and there is no shortage of technology with which to aid them. Complicating Smith's life is his past as we find out he had an adulterous affair with a woman from law school and his wife is suspicious he is fooling around with her again.
There is no surveillance you've ever seen like the type you will see in this movie. Cameras that can peek through concrete walls, huge government database systems that can tap a person's call, bring up their entire life's history, wiretap them and take pictures of their location using a satellite 155 miles above the Earth.
Gene Hackman plays a former NSA agent who assists Smith in his evasion of the government and Hackman has his own agenda for doing so. Hackman and Voight are the real actors and characters that make the picture work. Smith is a good leading man but there is no substitute for experience and Voight and Hackman simply upstage him at every turn.
There is also a sub plot involving the mob who make for interesting allies in the film's climax similar to the guys who helped Arnold Schwarzenegger in the climax of 'Eraser' but I'm not sure there is a need to find such witty qualities in organized crime.
Gene Hackman's role is under written as he doesn't appear in the film until the first 57 minutes and then he is still under used. A one hit wonder story can get tiresome after a while and this film is no exception.
The only redeeming quality the film has is that it points out that even though citizens of a great country like the United States know that their country can keep surveillance on them so closely, I don't think they realize that the technology used in this film is so state of the art and seeing Gene Hackman in this film brings back memories of his role as the wire tapper in 1974's 'The Conversation' and one mug shot of Hackman in the film, used by the government, looks exactly like his character from that film so I wouldn't be surprised if it was an inside joke in getting film buffs to find it.
The argument of privacy vs. safety would have been better made in an academic film rather than a technical one where intelligence is used this time around as an oxy moron and the audience is so overwhelmed technically, that they may miss the film's entire point if they don't focus on the film's message which often gets lifted away with the force of a tornado like feel and pace.
OUT OF 5 > * * *
Visit FILM FOLLOW-UP by Walter Frith http://www.cgocable.net/~wfrith/movies.htm
<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


How to Learn to Code - A Recommended Approach
March 19, 2021 • Posted on dev.toI'm a JavaScript developer who mostly works in React and React Native codebases. I also work with Java microservices using Spring.
To find out more about me take a look at my Linkedin profile, check out my Github, or follow me on Twitter.
How to Learn to Code - A Recommended Approach
March 19, 2021 • Posted on dev.toTest-driven development with React and React Testing library
November 20, 2019 • Posted on giffgaff.io


ex
for
Log in
The cheapest, fastest way to buy foreign currency.
Enter an amount and currency below to convert it.
USD
EUR
JPY
GBP
CAD
CHF
USD
EUR
JPY
GBP
CAD
CHF
Guaranteed rate:
Swap currencies
Buy currencies


Load Visual ARIA
Basic link with aria-selected
Current Page
Load Visual ARIA and confirm what is wrong with this markup.


| {{laptop.brand + " " + laptop.model}} | |
| Newegg Rating |
{{laptop.rating}} ({{laptop.reviewCount}} reviews) |
| Price | {{laptop.price}} |
| Brand | {{laptop.brand}} |
| Operating System | {{laptop.os}} |
| CPU | {{laptop.cpu}} |
| Screen | {{laptop.screen}} |
| Memory | {{laptop.memory}} |
| Storage | {{laptop.storage}} |
| Graphics Card | {{laptop.gpu}} |
| Video Memory | {{laptop.gpuMem}} |
| Weight | {{laptop.weight}} |
| Resolution | {{laptop.resolution}} |
| Touchscreen | {{laptop.touchscreen}} |
| Battery Life | {{laptop.battery}} |
| Style | {{laptop.hwStyle}} |
| Review | Review |


We build this template with HTML5,Vuejs and Laravel.
Preskool template includes various features for providers such as student list, teachers list, department,etc.


About Us!
we believe that a child is life’s greatest gift and pregnancy is one of the most magical experiences nature can offer. This gift deserves to be nurtured and cared for, not just at birth, but for the entire duration of your pregnancy. Which is why, to ensure a healthy and happy pregnancy, Cloudnine provides you with world-class medical expertise, state-of-the-art facilities, a space filled with love and laughter and staff dedicated to the holistic well-being of you and your baby.
Vision!
To be the kind of leader in the space of women and health that India has not witnessed yet, by providing premier quality healthcare to women and children.
We at R.K Hospital for Women & Children have dedicated ourselves to the providing the highest quality of care to the women and children whom we serve.
Mission!
Our vision is to reach out to every woman and child in India, extending the entire spectrum of healthcare services in integrated facilities.
Our aim is the pursuit of excellence in providing the best maternal and neonatal care by setting higher standards for ourselves and striving constantly to achieve them.


Tap or Click the avatar button on the top menu bar to enter your credentials.
PROFIT/LOSS
Lorem ipsum, dolor sit amet consectetur adipisicing elit.


Start working on your Stratosphere Java program in a few simple steps.
The only requirements are working Maven 3.0.4 (or higher) and Java 6.x (or higher) installations.
Use one of the following commands to create a project:
$ curl https://raw.githubusercontent.com/stratosphere/stratosphere-quickstart/master/quickstart.sh | bash
$ mvn archetype:generate \
-DarchetypeGroupId=eu.stratosphere \
-DarchetypeArtifactId=quickstart-java \
-DarchetypeVersion=
There will be a new directory in your working directory. If you've used the curl approach, the directory is called quickstart
. Otherwise, it has the name of your artifactId.
The sample project is a Maven project, which contains two classes. Job is a basic skeleton program and WordCountJob a working example. Please note that the main method of both classes allow you to start Stratosphere in a development/testing mode.
We recommend to import this project into your IDE to develop and test it. If you use Eclipse, the m2e plugin allows to import Maven projects. Some Eclipse bundles include that plugin by default, other require you to install it manually. The IntelliJ IDE also supports Maven projects out of the box.
A note to Mac OS X users: The default JVM heapsize for Java is too small for Stratosphere. You have to manually increase it. Choose "Run Configurations" -> Arguments and write into the "VM Arguments" box: "-Xmx800m" in Eclipse.
If you want to build your project, go to your project directory and issue the mvn clean package
command. You will find a jar that runs on every Stratosphere cluster in target/stratosphere-project-0.1-SNAPSHOT.jar
.
Write your application!
The quickstart project contains a WordCount implementation, the "Hello World" of Big Data processing systems. The goal of WordCount is to determine the frequencies of words in a text, e.g., how often do the terms "the" or "house" occurs in all Wikipedia texts.
Sample Input:
big data is big
Sample Output:
big 2
data 1
is 1
The following code shows the WordCount implementation from the Quickstart which processes some text lines with two operators (FlatMap and Reduce), and writes the prints the resulting words and counts to std-out.
public class WordCount {
public static void main(String[] args) throws Exception {
// set up the execution environment
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
// get input data
DataSet<String> text = env.fromElements(
"To be, or not to be,--that is the question:--",
"Whether 'tis nobler in the mind to suffer",
"The slings and arrows of outrageous fortune",
"Or to take arms against a sea of troubles,"
);
DataSet<Tuple2<String, Integer>> counts =
// split up the lines in pairs (2-tuples) containing: (word,1)
text.flatMap(new LineSplitter())
// group by the tuple field "0" and sum up tuple field "1"
.groupBy(0)
.aggregate(Aggregations.SUM, 1);
// emit result
counts.print();
// execute program
env.execute("WordCount Example");
}
}
The operations are defined by specialized classes, here the LineSplitter class.
public class LineSplitter extends FlatMapFunction<String, Tuple2<String, Integer>> {
@Override
public void flatMap(String value, Collector<Tuple2<String, Integer>> out) {
// normalize and split the line into words
String[] tokens = value.toLowerCase().split("\\W+");
// emit the pairs
for (String token : tokens) {
if (token.length() > 0) {
out.collect(new Tuple2<String, Integer>(token, 1));
}
}
}
}
Check GitHub for the full example code.
For a complete overview over our Java API, have a look at the API Documentation and further example programs. If you have any trouble, ask on our Mailing List. We are happy to provide help.


darknet module¶
Python 3 wrapper for identifying objects in images
Requires DLL compilation
Both the GPU and no-GPU version should be compiled; the no-GPU version should be renamed “yolo_cpp_dll_nogpu.dll”.
On a GPU system, you can force CPU evaluation by any of:
Set global variable DARKNET_FORCE_CPU to True
Set environment variable CUDA_VISIBLE_DEVICES to -1
Set environment variable “FORCE_CPU” to “true”
Set environment variable “DARKNET_PATH” to path darknet lib .so (for Linux)
Directly viewing or returning bounding-boxed images requires scikit-image to be installed (pip install scikit-image)
Original *nix 2.7: https://github.com/pjreddie/darknet/blob/0f110834f4e18b30d5f101bf8f1724c34b7b83db/python/darknet.py Windows Python 2.7 version: https://github.com/AlexeyAB/darknet/blob/fc496d52bf22a0bb257300d3c79be9cd80e722cb/build/darknet/x64/darknet.py
@author: Philip Kahn @date: 20180503
-
class
darknet.
BOX
[source]¶ Bases:
_ctypes.Structure
-
h
¶ Structure/Union member
-
w
¶ Structure/Union member
-
x
¶ Structure/Union member
-
y
¶ Structure/Union member
-
-
class
darknet.
DETECTION
[source]¶ Bases:
_ctypes.Structure
-
bbox
¶ Structure/Union member
-
classes
¶ Structure/Union member
-
embedding_size
¶ Structure/Union member
-
embeddings
¶ Structure/Union member
-
mask
¶ Structure/Union member
-
objectness
¶ Structure/Union member
-
points
¶ Structure/Union member
-
prob
¶ Structure/Union member
-
sim
¶ Structure/Union member
-
sort_class
¶ Structure/Union member
-
track_id
¶ Structure/Union member
-
uc
¶ Structure/Union member
-
-
class
darknet.
DETNUMPAIR
[source]¶ Bases:
_ctypes.Structure
-
dets
¶ Structure/Union member
-
num
¶ Structure/Union member
-
-
class
darknet.
IMAGE
[source]¶ Bases:
_ctypes.Structure
-
c
¶ Structure/Union member
-
data
¶ Structure/Union member
-
h
¶ Structure/Union member
-
w
¶ Structure/Union member
-
-
class
darknet.
METADATA
[source]¶ Bases:
_ctypes.Structure
-
classes
¶ Structure/Union member
-
names
¶ Structure/Union member
-
-
darknet.
detect_image
(network, class_names, image, thresh=0.5, hier_thresh=0.5, nms=0.45)[source]¶ Returns a list with highest confidence class and their bbox
-
darknet.
load_network
(config_file, data_file, weights, batch_size=1)[source]¶ load model description and weights from config files args:
config_file (str): path to .cfg model file data_file (str): path to .data model file weights (str): path to weights
- returns:
network: trained model class_names class_colors


In this chapter we will present the implementation part of the thesis. The first section describes about DSP-C support implemented in CBMC, second section is dedicated to contract programming, third section talks about memory overlay handling and last section presents the support for parallel programs in multicore platform.
Note that, software we were working with was property of Ericsson and we cannot publish real examples, to avoid Intellectual property rights violation. We are using hypothetical examples to present the ideas.


{% extends "base.html" %} {% block body %}
Created by raffael.me
klipps is a kippt client for OS X.
Say Hello to klipps, possibly the best way to enjoy kippt on your Mac. With klipps you have a real application sitting in your Dock dedicated to your kippt library. Drag URLs from Safari, Mail or other sources to the Dock icon to add new links for later.
We have added several functions to better integrate kippt into the OS X environment you are used to. Enhanced browsing features, chromeless full screen reading, Sidebar toggling and more. Enjoy kippt like you never did before.
| Developer | raffael.me |
|---|---|
| Platform | Desktop |
| Price | $0 |
| Added | April 7. 2013 |
| Website | Visit |
| @klippsapp | |
| Get the App |


Your need the NEM nano wallet, download it from nem.io
Register your namespace (use the testnet) from the nano wallet.
You can use this tool to find your namespace pointer address (PA).
Send a massage to the PA to update DNS info. Include the info in a message using a json format.
Bookmark this site and use it to find DNS info and go to NEM namespace websites.
Install the extension for direct access in your address bar. (dot)nem extensions is automatically redirected.


Best Robot Vacuum Black Friday Deals 2019 That Suck
Black Friday 2019 is a great time to find deals on robot vacuum cleaners at various price points. These machines can perform various jobs to clena up your family's dust and debris.
The following deals are hot and won't last long.
Shark Robot Vacuum with Self-Empty Base
That's right, this robot vacuum will empty its own dust bin into the base when it's full, and the base can hold up to 30 days worth of dust and debris. It has a self-cleaning brush roll, strong suction, and so much more.
Works for you
Shark IQ Self-Empty Robot Vacuum
That's right, this robot vacuum will empty its own dust bin into the base when it's full, and the base can hold up to 30 days worth of dust and debris. It has a self-cleaning brush roll, strong suction, and so much more.
$349.99 $549.99 $200 off
ILIFE A9 Robot Vacuum Cleaner
Today's deal is the best we've seen for this recently-released product. The vacuum automatically maps and navigates your home to keep it clean, and you can control it using a free app or your voice and a smart home assistant.
Don't miss out on today's newest and best Black Friday deals
Amazon's Fire Tablet is the one Black Friday purchase you NEED to make!
This deal sucks
ILIFE A9 Robot Vacuum Cleaner
Today's deal is the best we've seen for this recently-released product. The vacuum automatically maps and navigates your home to keep it clean, and you can control it using a free app or your voice and a smart home assistant.
$181.99 $279.99 $98 off
ECOVACS DEEBOT 661
Control this smart robotic vacuum cleaner using an app on your phone, or even with your voice! It's compatible with Google Assistant and Amazon Alexa, and today's one-day deal brings it to a new low price by over $100.
Smart Buy
Ecovacs Deebot 661 Smart Robotic Vacuum Cleaner
Control this smart robotic vacuum cleaner using an app on your phone, or even with your voice! It's compatible with Google Assistant and Amazon Alexa, and today's one-day deal brings it to a new low price by over $100.
$189.99 $343.44 $153 off
Shark Robot Cleaning System S86
This smart robot cleaning system is already at one of its lowest prices ever at various retailers now that it's down to $250, but Amazon's taking an extra $63 off when you reach checkout! That's easily the best deal ever for this robot vacuum bundle.
Robomaid
Shark S86 Robot Cleaning System with Hand Vacuum
This smart robot cleaning system is already at one of its lowest prices ever at various retailers now that it's down to $250, but Amazon's taking an extra $63 off when you reach checkout! That's easily the best deal ever for this robot vacuum bundle.
$187.49 $368.87 $181 off
Roborock E35 Robot Vacuum and Mop
This Alexa-compatible vac uses a dual-gyro system and motion tracking sensors to clean your floors in the most efficient way possible. It won't fall down stairs or get stuck on obstacles and the battery gives it 2.5 hours of cleaning.
Robots are the future
Roborock E35 Robot Vacuum and Mop
This Alexa-compatible vac uses a dual-gyro system and motion tracking sensors to clean your floors in the most efficient way possible. It won't fall down stairs or get stuck on obstacles and the battery gives it 2.5 hours of cleaning.
$229.99 $349.99 $120 off
Neato Botvac D4 Connect Blk
You have to clip the on-page coupon for the full savings here. Neato makes some of the best robot vacuums out there, and at this price its features are hard to beat.
Feature-loaded
Neato Botvac D4
You have to clip the on-page coupon for the full savings here. Neato makes some of the best robot vacuums out there, and at this price its features are hard to beat.
$279.99 $399.99 $120 off
Ecovacs Deebot 901 Smart Robotic Vacuum Cleaner
Moves from hard floors to carpet. You can control how it cleans and where it goes thanks to smart navigation technology. The vacuum can talk to you to let you know its progress. Control it through an app or your smart home. Lasts up to 90 minutes.
No Mess
Ecovacs Deebot 901 robot vacuum cleaner
Moves from hard floors to carpet. You can control how it cleans and where it goes thanks to smart navigation technology. The vacuum can talk to you to let you know its progress. Control it through an app or your smart home. Lasts up to 90 minutes.
$191.09 $250.00 $59 off
With coupon: 19CYBER15


|
Lib-Util
A Utility C Library
|
A Collection of hash functions with a common interface. More...
Go to the source code of this file.
Macros | |
| #define | _FUN_CNT 4 |
| The number of hash functions availible. Used in test-hash.c. | |
| #define | BUF_SZ ((size_t) 1<<20) |
| size of file buffer for file hashing | |
Functions | |
| static uint32_t | rotl32 (uint32_t x, int8_t r) |
| 32-bit barrel shift | |
| static uint64_t | rotl64 (uint64_t x, int8_t r) |
| 64-bit barrel shift | |
| static uint64_t | hash_a (uint64_t hash, uint32_t chunk) |
| A hash function based on FNV-1a | |
| static uint64_t | hash_b (uint64_t hash, uint32_t chunk) |
| A hash function based on murmur | |
| static uint64_t | hash_c (uint64_t hash, uint32_t chunk) |
| A hash function based on murmur3 | |
| static uint64_t | hash_d (uint64_t hash, uint32_t c) |
| a hash of my own design | |
| static uint64_t | array_hash (uint64_t hash, uint64_t(*fn)(uint64_t hash, uint32_t chunk), const void *array, size_t len) |
| Hash a memory array. More... | |
| static uint64_t | string_hash (uint64_t hash, uint64_t(*fn)(uint64_t hash, uint32_t chunk), const char *str) |
| Hash a `'\0'` terminated string. More... | |
| static uint64_t | file_hash (uint64_t hash, uint64_t(*fn)(uint64_t hash, uint32_t chunk), FILE *fd) |
| Hash a file. More... | |
A Collection of hash functions with a common interface.
These functions make no attempt to correct for endianess and therefore may produce different results on different machines. All of these functions process their input 4 bytes at a time. All require the caller to set the the inital hash value, which should never be 0.
hash.h currently provides 4 hash functions:
hash_a
: based on FVN-1a but with variable initalization, and eats 4 bytes at a time.hash_b
: based on murmurhash_c
: based on murmur3hash_d
: based on burtle's newhashIn addition to the actual hash functions, hash.h provides 3 different hasher functions, one each for array's, strings, and files. The actual hash function used is determined by passing its pointer to the hasher.
I can't make any guarantee's about these hash functions. In my own tests (test-hash.c
) I get from 651 to 702 collisions from 3 150 027 entries when usind a 32-bit hash, and none at 64-bits.
|
inlinestatic |
Hash a memory array.
| hash | The inital seed for the hash. Should not be 0. |
| fn | The hash function to use. One of hash_X. |
| array | The array of data to be hashed. |
| len | The size of the array in bytes. |
|
static |
Hash a file.
| hash | The inital seed for the hash. Should not be 0. |
| fn | The hash function to use. One of hash_X. |
| fd | The file descriptor to be hashed. |
|
static |
Hash a `'\0'` terminated string.
| hash | The inital seed for the hash. Should not be 0. |
| fn | The hash function to use. One of hash_X. |
| str | A null terminated string to be hashed. |


CONTACTS
getPhone
getEmail
getLocation
QUALIFICATIONS
SKILLS
candidate-name
vacancy-job
DESIRED SALARY
desired salary
AVAILABILITY
availability
NATIVE LANGUAGES
native languages
LANGUAGES
languages
EDUCATION
education
WORK EXPERIENCE
company-section-title
position-section-title
MMM yyyy - -
DESIRED WORKING HOURS
desired working hours
SOFT SKILLS
soft skills
BENEFITS
benefits
PERSONALITY
getScoreFormatted


GrowItems
ABOUT
Hello Visitor, This is my Growtopia shop. Here I sell many items I have for cheap
WARNING: These items are from stolen accounts!


| > The Unit Test Framework > Tutorials > |
Table of Contents
You think writing tests is difficult, annoying and fruitless work? I beg to differ. Read through these tutorials
and I am sure you will agree.
你认为写测试是困难、让人厌恶而且无成果的工作吗？我打赌不是这样的。阅读这个教程，我保证你会同意的。


--- title: "Steps to Cook Speedy Chili with Quinoa Delicious" slug: chili-with-quinoa description: "Chili with Quinoa Recipe - My husband said this is the best chili yet! Plus it is so easy to make! To serve, put a small amount of pasta in a bowl and spoon in chili with quinoa. Add a dollop of sour cream (vegan or regular) and a sprinkle of chives for garnish. Enjoy! Easiest Way to Prepare Quick Chili with Quinoa Tasty" date: 2021-04-28T12:14:30Z image: https://cdn.statically.io/img/images.media-allrecipes.com/userphotos/3360447.jpg thumbnail: https://cdn.statically.io/img/images.media-allrecipes.com/userphotos/3360447.jpg cover: https://cdn.statically.io/img/images.media-allrecipes.com/userphotos/3360447.jpg author: Keisha ratingvalue: 4.7 reviewcount: 609 recipeingredient: - "1 large onion, chopped" - "2 large cloves garlic, minced" - "2 (28 ounce) cans tomatoes, undrained" - "1 (28 ounce) can tomato sauce (such as Dei Fratelli®)" - "1 (15 ounce) can chili beans, drained and rinsed" - "1 (15 ounce) can kidney beans, drained and rinsed" - "3 tablespoons chili powder (such as Mexene®)" - "1 ¾ teaspoons ground cumin" - "1 ½ teaspoons salt, or to taste" - "1 teaspoon white sugar" - "4 cups water, divided" - "1 cup quinoa" recipeinstructions: - "Saute onion and garlic in a stockpot over medium-high heat until softened, 5 to 10 minutes. Add canned tomatoes, tomato sauce, chili beans, kidney beans, chili powder, cumin, salt, and sugar; pour in 2 cups water and simmer until flavors blend, about 1 hour." - "Bring 2 cups water and quinoa to a boil in a saucepan. Reduce heat to medium-low, cover, and simmer until quinoa is tender and water has been absorbed, 15 to 20 minutes. Stir quinoa into chili." categories: - "Soups Stews and Chili Recipes" - "Chili Recipes" - "Vegetarian" - "Recipes" tags: - "soups stews and chili recipes" - "chili recipes" - "vegetarian" katakunci: chili with quinoa, soups stews and chili recipes, chili recipes, vegetarian, . nutrition: 197.9 calories recipecuisine: Western preptime: "P0DT0H20M" cooktime: "P0DT1H5M" totaltime: "P0DT1H25M" recipeyield: "10 servings" recipecategory: - Soups Stews and Chili Recipes - Chili Recipes - Vegetarian quotes: Magic happens in the kitchen during lunch time and dinner time. ---
Chili with Quinoa - Hello everybody, I hope youre having an incredible day today. Its me again Keisha , welcome to our recipe website. Today, Im gonna show you how to prepare a distinctive dish, Chili with Quinoa. It is one of my favorites food recipes. For mine, I will make it a little bit tasty. This is gonna smell and look delicious.
Chili with Quinoa is My husband said this is the best chili yet! Plus it is so easy to make! To serve, put a small amount of pasta in a bowl and spoon in chili with quinoa. Add a dollop of sour cream (vegan or regular) and a sprinkle of chives for garnish. Enjoy!
Chili with Quinoa is one of the most well liked of recent trending foods on earth. its simple, it is fast, it tastes yummy. It is appreciated by millions daily. its easy, it is fast, it tastes yummy. Chili with Quinoa is something which I ve loved my whole life. They re fine and they look wonderful. They are fine and they look wonderful. Chili with Quinoa is something which I ve loved my entire life.
To begin with this particular recipe, we must first prepare a few components. You can have Chili with Quinoa using 12 ingredients and 2 steps. Here is how you can achieve it.
So that is going to wrap this up with this exceptional food Chili with Quinoa recipe. Thanks so much for reading. Im confident that you will make this at home. Theres gonna be more interesting food at home recipes coming up. Dont forget to bookmark this page in your browser, and share it to your family, colleague and friends. Thank you for reading. Go on get cooking!


As seen on Two Dragon's Den
Welcome to Elite Competitions the internet’s most interactive prize competition company. Elite Competitions will be helping people like you realise your dream.
Treat yourself you deserve it!
What a win for Harrison Griffiths, a Lamborghini Huracan for under £10. He was absolutely speechless to say the least!!
What a win for Harrison Griffiths, a Lamborghini Huracan for under £10. He was absolutely speechless to say the least!!


--- meta-title: EBI Search indexing title: EBI Search indexing description: The EBI provides a global search service across most of the data sources available at the institute. cta: Call to action hero-class: hero-building-blocks hero: true filter-nav: false filter-dropdowns: false layout: static pagetype: meta-pattern location: search-ebi-indexing.html --- {{#markdown}} ### Glossary of terms used in the search guidelines - Document: Lucene term A document is a virtual document consisting of a set of fields. A document can have several fields with the same name. - Field: Lucene term Part of a Document (see above). A field is a <name, content> pair. The name provides metadata, e.g. row name in a database or the different parts of a web page or email (header, body, ...). The content contains the actual data. Both parts of a field are indexed but the name is only available as structural information, i.e. one can search for something with a specific field-name but a field-name usually will not appear in the search result. - Domain: EB-eye term A data source, most of the times a database. For example: UniProtKB, PDBe, ... - Domain tree, hierarchy: EB-eye term All domains in the EB-eye are organised in a tree. Nodes of the tree are for example Protein Sequences or Small Molecules. Leaves of the tree are for example UniProtKB (parent Protein Sequences) or ChEBI (parent Small Molecules) - Data provider: EB-eye term A group/person who provides the data for a domain.
The EBI provides a global search service across most of the data sources available at the institute. The Lucene EBI search engine (aka EB-eye) is a search engine aimed at providing unified summary results for global searches over the majority of the EBI databases. The engine is responsible for indexing a meaningful subset of data from the databases and returns summary information containing links to the original databases.
The engine has been built to accommodate the vast variety of data available amongst all databases at the EBI. Most of the databases at the EBI already have flat files or XML dumps which are used by the search engine. Some databases use the XML format specifically defined for EB-eye to dump their data and make them available through the search engine.
To make it easier to maintain, and to guarantee the most up-to-date data, EB-eye has a mechanism for updating data automatically. At least once a day, all data sources will be checked and analyzed to identify possible updates and the system will automatically re-index them.
After each update, a footprint is generated and represents a signature for the data source. A new footprint is generated before each new update and is compared to the previous one. If they are equal, i.e. the data has not changed, no update is needed. If they are different, the data gets updated.
In order to index data properly the EB-eye indexer needs some information:
| Information needed for the EB-eye indexer | Description | Example |
|---|---|---|
| Analyser | Extracts information out of documents and transforms them into tokens, which than can be indexed. | For example, dates can be written in different formats. A date analyser tries to find the used format and transforms it into an internal representation and returns this as a token. EB-eye provides several analysers. Most of them are derived from Lucene's analysers, but we also developed our own analysers, e.g. for chemical writing. If no analyser is available for a field, the standard analyser is used. This means a user can only find something if she is querying the exact term. |
| Store | Should the data be stored. Possible values for store are: YES, NO, COMPRESSED. At a first glance a NO might be confusing but EB-eye can index data without storing it. | This can be useful for example for keywords. An entry can have several keywords, these can be indexed with the entry so that the entry will be found, if searched for the keywords. However, on the result page the keywords will not appear because they was not stored. |
| Boost | Value for the "importance" of a field. EB-eye can give fields a boost factor. The higher the boost factor the higher this entry will be ranked (actually, it is a little bit more complicated). | Boost factors should be used, if at all, only for very important fields, like IDs. For more information about the boost factor, please refer to the Lucene documentation. |
There are various input indexer implementations available in EB-eye, but mostly two are used. These two implementations are based on parsers which are used to describe the structure of the source files and index them.
By default, the source data are indexed in a distributed environment. The files are split into several chunks (set of entries) or grouped into set of files and are indexed in parallel by several machine. This allows us, if necessary, to index all domains in one go in less than half a day.
The previous section explained what information are needed in order to index data. The input indexer most of the time relies on the use of parsers which in turn rely on a grammar to extract information from input files.
The grammar is a lexical representation of the data associated with a set of actions to be executed. The grammar helps to extract the structure of an entry and its various fields from the data source. Actions can be associated with this structure, this means that from the grammar, an action can be executed for each entry and for each of its fields (i.e. dates, cross-references, authors), typically extracting the information and indexing it. A set of predefined actions using the information from the configuration files are available to ease the indexing. That's why it's important to have a detailed description of the format of the data files to make sure the parsers match properly the corresponding data structure.
After the data has been indexed it is available for searching through the global search engine. Several types of searches are possible. Note, the following subsections refer to the internal search mechanisms. For the user interface skip to the next section "Web Interface".
The simplest search is the global search in all the fields indexed for a particular domain.
A more specific search is the field-specific search, where a query term is only searched in a particular field. This type of search is typically what an advanced search offers. Every field indexed for a domain will be available for a field-specific search, including the cross-reference fields.
An important feature of the search engine is the ability to use cross-references to navigate between different domains by jumping from entries to entries.
During the indexing of the data, the cross-references information is extracted from the source files and stored as cross-reference fields in the index. Lucene imposes some restrictions that had to be by-passed and, as a result, the name of the reference database and the ID of the entry referenced are the only information stored.
When launching a cross-reference search, the system will try to find the cross-references by looking for exact matches for the stored IDs. This means if cross-references indexed for a particular domain don't use IDs but an accession number or another kind of identifier the system will not be able to retrieve the cross-reference. In this case the name for the cross reference needs to be specified in the configuration file.
The previous sections explained how the EB-eye search engine works internally, from the automatic update and the indexing of the data to the handling of several types of querys and the retrieval of search results.
Another important element of the EB-eye is its web interface. The aim for the EB-eye web interface should be a "design" as simple as possible. The following text provides some basic guidelines.
A basic search form should be present on all EBI pages and always at the same position. The syntax of the basic search form should be:
Presenting search results is part of the focused group exercise and therefore likely to be subject to changes. The following text gives therefore only very rough guidelines for result pages.
When searching for some information, the way the results are displayed is essential for the user experience. Not enough detail is annoying when browsing through the results, too much information on the other hand might discourage users from using the service.
EB-eye can parse and index data files of different formats but also defines its own XML format (XML4dbDumps). This can be used for databases that currently don't have a flat file or an XML formatted dump and where there is no requirement to dump the whole database in a specified format.
As a rule of thumb:
An existing file format is preferable if:
XML4dbDumps format is preferable if:
Note: Whatever file format will be used the entries can be present in one or several files. There is no restriction on the number of entries per file.
To get data index by the EB-eye search engine two things are needed:
In order to ease the maintenance of the EB-eye and to guaranty the most up-to-date data, an automatic data update mechanism has been implemented. If updates are available the new data is downloaded and uncompressed if necessary and then re-indexed and redeployed to be visible to users. Additionally, metadata (release, release date, number of entries, ...) are generated from the data or a release note for verification and information purposes.
The following information is needed for this step:
# Comment release=[release number or release date if no release defined] release_date=[DD-MMM-YYYY] entries=[number of entries]
You don't need to create a metadata file if you use the XML4dbDumps format as it already contains the information.
e.g. for UniProt:
Root source URI: "/ebi/ftp/private/uniprot/4EBIES/knowledgebase/"
File pattern: "uniprot_.*\.dat\.gz"
Excluded sub dirs: ".*"
Metadata file: "/ebi/ftp/private/uniprot/4EBIES/knowledgebase/relnotes.txt"
e.g. for MSD:
Root source URI: "ftp://ftp.ebi.ac.uk/ebeye_msd"
File pattern: "MSDCHEM\.xml"
Excluded sub dirs: ".*"
Metadata file: -no need as it's a XML4dbDumps format-
e.g. for GO:
Root source URI: "http://archive.geneontology.org/latest-termdb"
File pattern: "go_daily-termdb\.rdf-xml\.gz"
Excluded sub dirs: ".*"
In order to index data the EB-eye search engine needs to know the format of the data (syntax) and what how to index (semantics) it. The format is needed to develop a parser and the semantics defines which fields should be stored under which names.
If a data provider decides not use EB-eye's data format XML4dbDumps, they need to provide sufficient information for their data format to write a parser for it. It is important to well define these fields and how to index them as it has a huge impact on the quality and relevance of the results.
A data provider needs to provide 3 pieces of information for each field to be indexed:
If you use the XML4dbDumps format some fields are already defined (id, authors,keywords, date, ...). Additional fields can be defined in:
<additional_fields>
<field name="namefield1">value1</field>
<field name="namefield2">value2</field>
...
</additional_fields>
Another type of indexed fields are cross-references to other databases.
If the XML4dbDumps format is used they are defined as:
<cross_references>
<ref dbname="db2" dbkey="abc123"/>
<ref dbname="db3" dbkey="abcdef"/>
...
</cross_references>
These cross-references can point to either internal databases that are indexed by the EB-eye (domains) or to external resources.
Note:The external xrefs are not displayed at the moment but will be in the future.
The internal xrefs defined in the data can use different database names from the ones EB-eye uses and can also use a specific field for the identifier. E.g. Databases contain xrefs to dbname="swiss-prot",dbkey="Q62594". This xref needs actually to point to the domain 'UniProtKB' and use the accession number 'Q62594'.
Note:you can add a suffix to the database name to add some 'semantics' to the cross-reference. For example if you have xrefs to Ensembl which actually are xrefs to either transcripts or genes you can name the fields as either ENSEMBL_TRANSCRIPT or ENSEMBL_GENE so that users will be able to make the difference between the two. They will both internally point to the domain Ensembl. Data providers need to go through their xrefs and establish to which database and field they point to.
Here is an example for the information the EB-eye team needs for the different fields:
| Field name in data | Brief field description | (NOT_)INDEXED / (NOT_) STORED | Type of value (regular expression, format, semantics, ...) |
|---|---|---|---|
| [field name] | [description] | [(NOT_)INDEXED/(NOT_)STORED] | [type of the value, specific format, list of values...] |
| id | id of the entry | INDEXED, STORED | [A-Z][0-9]{4} |
| name | name of the entry | INDEXED, STORED | english text |
| last_update | last update | INDEXED, STORED | date |
Information needed for cross references to other resources:
| Cross-reference | Brief xref description | Domain name / external resource referenced |
Field referenced (for domains) / URL (for external db) |
Comment |
|---|---|---|---|---|
| swiss-prot | xref to UniProtKB | UniProtKB (domain) | AC | |
| AFCS | xref to AFCS | AFCS (external db) | id | {nolink:[http://www.signaling-gateway.org/data/Y2H/cgi-bin/y2h_int.cgi?id=%{id}] |
Please check for every xref whether the referenced resource is an EB-eye domain: [https://www.ebi.ac.uk/ebisearch/statistics.ebi|]
The previous sections described how the EB-eye search engine works, explained the relationship between the configuration files and the indexing process or the web interface. The following paragraphs describe what can be done to improve the quality of the results and the user experience.
The EB-eye tries to offer the most up to date data for its users. For this reason an automatic update mechanism has been developed and is running every day to make sure the indexes are updated. However, the system relies on the data providers to get these data and needs to know where the latest versions can be found. It is therefore important to define a static location where the EB-eye data for a domain is stored.
Another important stage of the update is the verification of the data. A clearly defined format for the source files is a good start. Most of the time a parser will be used to go through the data and index them. Unfortunately, the format of these data is sometimes not available or not up to date and as a result, writing the parsers becomes difficult and takes time. Providing a detailed description of the data structure, be it a description document, a DTD or an XML schema, will greatly help not only to write the parsers, but also to verify the source files.
Some data providers include release notes which can be used by the automatic update to verify the data which have been indexed (The number of entries is one of the details which are really useful to verify whether the data have been indexed correctly). Unfortunately, most of the data indexed cant be verified because this information is missing or incorrect. Making sure that such information is available and accurate helps to guaranty the quality of the indexed data.
The parsers will determine what fields and what information will be stored in the index. So, to ensure the quality of the data, the data providers should establish a list of the fields that have to be indexed, with their names and descriptions, and how they are represented in the source files. This as well as a detailed description of the data format will help writing a parser and define proper names for the fields. These names will be available in the Advanced Search, so they have to be meaningful for the user.
When using the EB-eye XML format, the names of the fields and their content must be clearly defined with the search application in mind. The additional fields section can prove to be really important to improve the quality of the search. A dump with only ids and names will never return any results when searching for common biological terms. If a description or full text additional fields are included the search engine will provide much better results.
Another aspect to consider when selecting data to export for EB-eye are cross-references. Providing a maximum number of cross-references to a wide range of databases will benefit users. By following cross references she will be able to navigate easily between and explore the different domains within the EB-eye.
However, cross-references have to be clearly identified otherwise they might not be properly recognized by the system. Ideally, the cross-references should be using a correct database name and the corresponding ID (and not an accession number), but obviously this is not always possible. If cross reverences can not be provided in the canonical way, please provide necessary information which allow the EB-eye team to update the EB-eye configuration files with the new aliases and further cross-references information.
EB-eye has only has 2 different result pages which can be slightly modified to improve the user experience.
The default layout displays for each entry the id, name and descriptions followed by the entry links and cross-references links. Correctly defining this information ensures coherence of the result display. Therefore name and description should be stored in the index. If no obvious name or ID can be provided data providers should define a meaningful name and ID. Data without ID and name will be only indexed, if a data provider can conclusively argue why she cannot provide them.
Links pointing to data have to be carefully defined. An important link is the ID field link which will redirect to the corresponding data provider web site. The entry links should be checked as well and reviewed by the data providers to make sure they are correct. Obviously, all links should resolve to a valid web page. EB-eye does not check whether the link to behind an ID is valid. However, EB-eye check for every cross reference whether the site behind the cross reference exists. Obviously, EB-eye cannot check whether the content is valid.
Sometimes the default layout is not appropriate to display the results. In such cases, data providers should contact the EB-eye team to discuss a possibly custom layout. For every layout default or custom, the simplicity of the layout should be one of the main objectives. Thus, only the information which is really needed to allow the user to decide whether he should visit the original site should be included.
{{/markdown}}


sysfs - get filesystem type information
int sysfs(int option, const char *fsname);
int sysfs(int option, unsigned int
fs_index, char *buf);
int sysfs(int option);
Note: if you are looking for information about the sysfs
filesystem that is normally mounted at /sys, see sysfs(5).
The (obsolete) sysfs() system call returns information
about the filesystem types currently present in the kernel. The specific
form of the sysfs() call and the information returned depends on the
option in effect:
- 1
- Translate the filesystem identifier string fsname into a filesystem
type index.
- 2
- Translate the filesystem type index fs_index into a null-terminated
filesystem identifier string. This string will be written to the buffer
pointed to by buf. Make sure that buf has enough space to
accept the string.
- 3
- Return the total number of filesystem types currently present in the
kernel.
The numbering of the filesystem type indexes begins with zero.
On success, sysfs() returns the filesystem index for option 1,
zero for option 2, and the number of currently configured filesystems
for option 3. On error, -1 is returned, and errno is set
appropriately.
- EFAULT
- Either fsname or buf is outside your accessible address
space.
- EINVAL
- fsname is not a valid filesystem type identifier; fs_index
is out-of-bounds; option is invalid.
This System-V derived system call is obsolete; don't use it. On systems with
/proc, the same information can be obtained via
/proc/filesystems; use that interface instead.
There is no libc or glibc support. There is no way to guess how large buf
should be.
This page is part of release 5.05 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at https://www.kernel.org/doc/man-pages/.