|
|
interface ABLineAesthetics : OptionsCapsule
|
|
|
class ABLineMapping : ABLineAesthetics, WithGroupOption |
|
|
interface AreaAesthetics : OptionsCapsule
|
|
|
class AreaMapping : AreaAesthetics, WithGroupOption |
|
|
interface BarAesthetics : OptionsCapsule
|
|
|
class BarMapping : BarAesthetics, CountStatAesthetics, WithGroupOption
|
|
|
class Bin2dMapping : TileAesthetics, Bin2dStatAesthetics, WithGroupOption
|
|
|
interface BoxplotAesthetics : OptionsCapsule
|
|
|
class BoxplotMapping : BoxplotAesthetics, BoxplotStatAesthetics, WithGroupOption
|
|
|
interface BoxplotParameters : OptionsCapsule
|
|
|
class ContourfMapping : PolygonAesthetics, ContourStatAesthetics, WithGroupOption
|
|
|
class ContourMapping : PathAesthetics, ContourStatAesthetics, WithGroupOption
|
|
|
interface CrossBarAesthetics : OptionsCapsule
|
|
|
class CrossBarMapping : CrossBarAesthetics, WithGroupOption |
|
|
class Density2dfMapping : PolygonAesthetics, Density2dStatAesthetics, WithGroupOption
|
|
|
class Density2dMapping : PathAesthetics, ContourStatAesthetics, Density2dStatAesthetics, WithGroupOption
|
|
|
class DensityMapping : AreaAesthetics, DensityStatAesthetics, WithGroupOption
|
|
|
interface ErrorBarAesthetics : OptionsCapsule
|
|
|
class ErrorBarMapping : ErrorBarAesthetics, WithGroupOption |
|
|
interface HistogramAesthetics : OptionsCapsule
|
|
|
class HistogramMapping : HistogramAesthetics, BinStatAesthetics, WithGroupOption
|
|
|
interface HLineAesthetics : OptionsCapsule
|
|
|
class HLineMapping : HLineAesthetics, WithGroupOption |
|
|
interface ImageAesthetics : OptionsCapsule
|
|
|
class ImageMapping : ImageAesthetics, WithGroupOption |
|
|
interface JitterParameters : OptionsCapsule
|
|
|
interface LineAesthetics : OptionsCapsule
|
|
|
class LineMapping : LineAesthetics, WithGroupOption |
|
|
interface LineRangeAesthetics : OptionsCapsule
|
|
|
class LineRangeMapping : LineRangeAesthetics, WithGroupOption |
|
|
interface PathAesthetics : OptionsCapsule
|
|
|
class PathMapping : PathAesthetics, WithGroupOption |
|
|
interface PointAesthetics : OptionsCapsule
|
|
|
class PointMapping : PointAesthetics, WithGroupOption |
|
|
interface PointRangeAesthetics : OptionsCapsule
|
|
|
class PointRangeMapping : PointRangeAesthetics, WithGroupOption |
|
|
interface PolygonAesthetics : OptionsCapsule
|
|
|
class PolygonMapping : PolygonAesthetics, WithGroupOption |
|
|
interface RasterAesthetics : OptionsCapsule
|
|
|
class RasterMapping : RasterAesthetics, WithGroupOption |
|
|
interface RectAesthetics : OptionsCapsule
|
|
|
class RectMapping : RectAesthetics, WithGroupOption |
|
|
interface RibbonAesthetics : OptionsCapsule
|
|
|
class RibbonMapping : RibbonAesthetics, WithGroupOption |
|
|
interface SegmentAesthetics : OptionsCapsule
|
|
|
class SegmentMapping : SegmentAesthetics, WithGroupOption |
|
|
interface SmoothAesthetics : OptionsCapsule
|
|
|
class SmoothMapping : SmoothAesthetics, WithGroupOption |
|
|
interface TextAesthetics : OptionsCapsule
|
|
|
class TextMapping : TextAesthetics, WithGroupOption |
|
|
interface TextParameters : OptionsCapsule
|
|
|
interface TileAesthetics : OptionsCapsule
|
|
|
class TileMapping : TileAesthetics, WithGroupOption |
|
|
interface VLineAesthetics : OptionsCapsule
|
|
|
class VLineMapping : VLineAesthetics, WithGroupOption |


SmartHouse API
API for SmartHouse application
Version: 1.0.0
Kamil Dudek Adrian Foremny Maciej Ciach Szymon Furman
All rights reserved
http://apache.org/licenses/LICENSE-2.0.html
Access
[ Jump to Models ]
Table of Contents
post /authenticate
get /rooms
get /rooms/room_number/doors
post /rooms/room_number/doors
get /rooms/room_number/lights
post /rooms/room_number/lights
get /rooms/room_number/temperature
post /rooms/room_number/temperature
get /rooms/room_number/windows
post /rooms/room_number/windows
User Authentication with JWT provided (authenticatePost)
Endpoint used for authorization
Query parameters
email (required)
Query Parameter — Email of app user
password (required)
Query Parameter — Password of app user
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
JWT token provided
401
Bad password and email combination
Room list (roomsGet)
Room endpoint returns room array with room name and number You have to set value inside json request body
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
An array of rooms
0
Unexpected error
Up
get /rooms/room_number/doors
Door state (roomsRoomNumberDoorsGet)
Room endpoint returns the state of doors inside room selected by room_number
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Door state 0 - opened,1- closed
0
Unexpected error
Up
post /rooms/room_number/doors
Door state (roomsRoomNumberDoorsPost)
Room endpoint sets the state of doors
Query parameters
value (required)
Query Parameter — 0 for closing,1 for opening
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Door state was set
0
Unexpected error
Up
get /rooms/room_number/lights
Door state (roomsRoomNumberLightsGet)
Room endpoint returns the state of lights inside room selected by room_number
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Light state 0 - off,1- on
0
Unexpected error
Up
post /rooms/room_number/lights
Light state (roomsRoomNumberLightsPost)
Room endpoint sets the state of light
Query parameters
value (required)
Query Parameter — 0 for off,1 for on
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Light state was set
0
Unexpected error
Up
get /rooms/room_number/temperature
Door state (roomsRoomNumberTemperatureGet)
Room endpoint returns the tenmperature inside room selected by room_number
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Temperature value in degree Celcius
0
Unexpected error
Up
post /rooms/room_number/temperature
Temperature control (roomsRoomNumberTemperaturePost)
Room endpoint sets the temperature
Query parameters
value (required)
Query Parameter — Desired temperature
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Temperature was set
0
Unexpected error
Up
get /rooms/room_number/windows
Window state (roomsRoomNumberWindowsGet)
Room endpoint returns the state of windows inside room selected by room_number
Return type
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Window state 0 - closed,1- opened
0
Unexpected error
Up
post /rooms/room_number/windows
Window state (roomsRoomNumberWindowsPost)
Room endpoint sets the state of window
Query parameters
value (required)
Query Parameter — 0 for closed,1 for opened
Produces
This API call produces the following media types according to the request header;
the media type will be conveyed by the
Content-Type response header.
text/html
application/json
Responses
200
Window state was set
0
Unexpected error
[ Jump to Methods ]
Table of Contents
Error
Token
BadCredentials
Roomlist
DoorValue
WindowValue
TemperatureValue
LightValue
code
Integer
message
String
fields
String
error
String invalid_credeintials
room_name
String room name
room_number
Integer room number


Jesse Edwards is a Twin Cities based web developer with experience
in HTML, CSS, Javascript, Jquery, and Node.js
Hello, I am Jesse Edwards. I am studying to be a full stack web
developer. I am also well versed in robotics and hope to start
making web aplications for robotics soon. I am currently living in
Jordan,MN and have lived in Minnesota my entire life.


Float modification events and propagation conditions
[Programming float actors]
Variables | |
| const Gecode::ModEvent | Gecode::Float::ME_FLOAT_FAILED = Gecode::ME_GEN_FAILED |
| Domain operation has resulted in failure. | |
| const Gecode::ModEvent | Gecode::Float::ME_FLOAT_NONE = Gecode::ME_GEN_NONE |
| Domain operation has not changed domain. | |
| const Gecode::ModEvent | Gecode::Float::ME_FLOAT_VAL = Gecode::ME_GEN_ASSIGNED |
| Domain operation has resulted in a value (assigned variable). | |
| const Gecode::ModEvent | Gecode::Float::ME_FLOAT_BND = Gecode::ME_GEN_ASSIGNED + 1 |
| Domain operation has changed the minimum or maximum of the domain. | |
| const Gecode::PropCond | Gecode::Float::PC_FLOAT_NONE = Gecode::PC_GEN_NONE |
| Propagation condition to be ignored (convenience). | |
| const Gecode::PropCond | Gecode::Float::PC_FLOAT_VAL = Gecode::PC_GEN_ASSIGNED |
| Propagate when a view becomes assigned (single value). | |
| const Gecode::PropCond | Gecode::Float::PC_FLOAT_BND = Gecode::PC_GEN_ASSIGNED + 1 |
| Propagate when minimum or maximum of a view changes. |
Variable Documentation
Domain operation has resulted in failure.
Definition at line 260 of file var-type.hpp.
Domain operation has not changed domain.
Definition at line 262 of file var-type.hpp.
Domain operation has resulted in a value (assigned variable).
Definition at line 264 of file var-type.hpp.
Domain operation has changed the minimum or maximum of the domain.
Note that this implies that the domain has not resulted in a value.
If a propagator subscribes to this variable, it will be processed assuming a ME_FLOAT_BND modification event.
Definition at line 273 of file var-type.hpp.
Propagation condition to be ignored (convenience).
Definition at line 275 of file var-type.hpp.
Propagate when a view becomes assigned (single value).
If a propagator p depends on a view x with propagation condition PC_FLOAT_VAL, then p is propagated when a domain update operation on x returns the modification event ME_FLOAT_VAL.
Definition at line 283 of file var-type.hpp.
Propagate when minimum or maximum of a view changes.
If a propagator p depends on a view x with propagation condition PC_FLOAT_BND, then p is propagated when a domain update operation on x returns the modification events ME_FLOAT_VAL or ME_FLOAT_BND.
Definition at line 292 of file var-type.hpp.


Biography
My name is Ryan, and I am the proud owner of two cats. My Meyers-Briggs type is INTP, and naturally I love learning how to code. Some of my hobbies are cooking, swimming, and playing chess. My favorite thing to cook has been Italian cuisine. I can make a mean lasagna, as well as pasta carbonara. As far as I know, I'm not allergic to anything. Also, Han Solo shot first.
Education
- several university courses under my belt
- will finish a general studies degree in Math and Applied Tech in December 2021
- currently loving this journey at Code Fellows
- pushing hard to become a professional software engineer
- have applied for an internship in Eastern Washington
- hope to collect work experience that way
Work Experience
- food service
- worked in several fancy restaurants
- spent most time at The Black Cypress, a renowned Greek bar and grill in Pullman, Washington
- padding my LinkedIn, GitHub, and resume with code projects
Goals
My goals are simple. By the end of the 2021 year I would like to have a college degree, bootcamp certification, an internship, and healthy social media accounts with projects to showcase. This should be a strong foundation for landing a tech job. I would also like to get back in shape by the end of summer. Covid has had me putting on the pounds! As a side project, I am also collecting books to build a personal library of noteworthy information and literature. This is a slow work in progress; I hardly have any time to read for enjoyment until the end of my schooling.
My top ten favorite jellybean flavors
- Vomit
- Earwax
- Spinach
- Liver
- Tripe
- Bogey
- Toffee
- Popcorn
- Pear
- Watermelon


Disney+ Hacked? Or Do You Just Have a Bad Password?
by Genevieve ScaranoWhen Disney+ first launched, many experienced issues while trying to log into the streaming TV service. But as far as problems go, waiting a few extra minutes to watch The Mandalorian is nothing compared to having your identity stolen. As the week-long free trial comes to an end, many users are finding their accounts hacked and in some cases sold online for a couple of bucks. At least, that’s according to a ZDNet report.
However, further reporting from outlets like Gizmodo suggest the problem isn’t Disney+ itself being hacked, although the lack of two-factor authentication doesn’t help, but rather users have had their passwords stolen from other locations. And then if they happened to use that same password on Disney+, then the account is compromised, even if Disney itself wasn’t breached. So get better passwords!
1.
So many streaming TV services to choose from. Where do you start?
2.
Netflix is still arguably the biggest name in streaming TV.
3.
Although it no longer has a free option, Hulu is a great streaming TV service that is worth paying for.
4.
From buying to renting to subscribing to individual channels, Amazon offers a bevy of streaming TV options.
5.
YouTube Red subscribers can watch original shows from streaming stars, but YouTube TV lets you watch actual live TV.
6.
Hook up a Slingbox and watch the cable and live TV you're already paying for anywhere.
7.
You have to buy channels in bulk and still deal with commercials, but with DirecTV Now you get the real live TV experience delivered through streaming.
8.
Crunchyroll is the best anime streaming service if you're all about subtitles.
9.
If dubs are more your thing, Funimation Now is the anime streaming service for you.
10.
If you want to stream shows and documentaries that actually teach you something, go with CuriosityStream.
11.
AMC Premiere just focuses on current AMC shows, but for Walking Dead super fans that might be enough.
12.
With Boomerang, tons of retro cartoons, from Looney Tunes to Scooby-Doo, can all come back to you
13.
FuboTV may be the escape from cable that sports fans are looking for. It’s pricey, but being able to easily stream live sports and more from dozens of channels with only one subscription might very well be worth it.
14.
Brown Sugar has all of the classic Blaxploitation movies you could want and then some. It’s niche, but it’s one of the most impressive niche libraries we’ve seen.
15.
For the true cinephile, FilmStruck has a large collection of classic films from all eras and countries, including movies from the Criterion Collection.
16.
CollegeHumor's Dropout provides premium streaming online laughs.
17.
DC Universe offers live-action adaptations of less familiar superheroes, like Doom Patrol.
18.
Shudder Is the Horror Streaming Service Fans Were Waiting For
19.
Along with presenting streaming services like Netflix and Sling through one box, Dish AirTV also lets you watch local over-the-air channels with an additional installation.
20.
Get a streaming media device to enjoy these services on your TV. Our favorite is the Amazon Fire Stick.
21.
The sheer nostalgic power of the library on Disney+ just can't be beat.
22.
As expensive and glossy as it is, the actual original content on AppleTV+ just can't compete quite yet.
Disney+ has finally launched and the mega kickoff is reportedly causing some connection issues across the U.S.
The streaming service, which features many movies and TV shows, officially went live this morning. However, over the past couple of hours, Disney+ has been showing “unable to connect” errors for many East Coast customers, The Verge reported.
Subscribers shared their error notifications on Twitter, which showed Mickey Mouse and Pluto in space or characters from Wreck-It Ralph playing with WiFi symbols and an “unable to connect to Disney+” message.
Disney+ responded to complaints on Twitter and said they are “working quickly to resolve any current issues.” Disney Streaming Services also has teams overseeing the Disney+ launch, so hopefully customers can start watching their favorite Disney and Marvel flicks soon without any additional tech issues.
For more information on streamable content and subscriptions, visit Disney+’s website here.
More on Geek.com:


|
ArUco Unity
1.2.0
OpenCV's ArUco Marker Detection module adapted for Unity 5.
|
C interface for the OpenCV's ArUco Marker Detection extra module. More...
Modules | |
| Board | |
| Board of markers. | |
| CharucoBoard | |
| A ChArUco board is a planar board where the markers are placed inside the white squares of a chessboard. | |
| C interfaces for classes and modules of the OpenCV library | |
| DetectorParameters | |
| Parameters for the detectMarker process. | |
| Dictionary | |
| Set of markers. | |
| GridBoard | |
| Planar board with grid arrangement of markers. | |
| C interfaces for classes of the C++ Standard Library | |
Functions | |
| double | au_calibrateCameraAruco (std::vector< std::vector< cv::Point2f >> *corners, std::vector< int > *ids, std::vector< int > *counter, const cv::Ptr< cv::aruco::Board > *board, cv::Size *imageSize, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, std::vector< cv::Mat > **rvecs, std::vector< cv::Mat > **tvecs, int flags, cv::TermCriteria *criteria, cv::Exception *exception) |
| Calibrate a camera using aruco markers. More... | |
| double | au_calibrateCameraCharuco (std::vector< std::vector< cv::Point2f >> *charucoCorners, std::vector< std::vector< int >> *charucoIds, const cv::Ptr< cv::aruco::CharucoBoard > *board, cv::Size *imageSize, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, std::vector< cv::Mat > **rvecs, std::vector< cv::Mat > **tvecs, int flags, cv::TermCriteria *criteria, cv::Exception *exception) |
| Calibrate a camera using Charuco corners. More... | |
| void | au_detectCharucoDiamond (cv::Mat *image, std::vector< std::vector< cv::Point2f >> *markerCorners, std::vector< int > *markerIds, float squareMarkerLengthRate, std::vector< std::vector< cv::Point2f >> **diamondCorners, std::vector< cv::Vec4i > **diamondIds, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, cv::Exception *exception) |
| Detect ChArUco Diamond markers. More... | |
| void | au_detectMarkers (cv::Mat *image, cv::Ptr< cv::aruco::Dictionary > *dictionary, std::vector< std::vector< cv::Point2f >> **corners, std::vector< int > **ids, const cv::Ptr< cv::aruco::DetectorParameters > *parameters, std::vector< std::vector< cv::Point2f >> **rejectedImgPoints, cv::Exception *exception) |
| Basic marker detection. More... | |
| void | au_drawAxis (cv::Mat *image, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, cv::Vec3d *rvec, cv::Vec3d *tvec, float length, cv::Exception *exception) |
| Draw coordinate system axis from pose estimation. More... | |
| void | au_drawCharucoDiamond (cv::Ptr< cv::aruco::Dictionary > *dictionary, cv::Vec4i *ids, int squareLength, int markerLength, cv::Mat **img, int marginSize, int borderBits, cv::Exception *exception) |
| Draw a ChArUco Diamond marker. More... | |
| void | au_drawDetectedCornersCharuco (cv::Mat *image, std::vector< cv::Point2f > *charucoCorners, std::vector< int > *charucoIds, cv::Scalar *cornerColor, cv::Exception *exception) |
| Draws a set of Charuco corners. More... | |
| void | au_drawDetectedDiamonds (cv::Mat *image, std::vector< std::vector< cv::Point2f >> *diamondCorners, std::vector< cv::Vec4i > *diamondIds, cv::Scalar *borderColor, cv::Exception *exception) |
| Draw a set of detected ChArUco Diamond markers. More... | |
| void | au_drawDetectedMarkers (cv::Mat *image, std::vector< std::vector< cv::Point2f >> *corners, std::vector< int > *ids, cv::Scalar *borderColor, cv::Exception *exception) |
| Draw detected markers in image. More... | |
| int | au_estimatePoseBoard (std::vector< std::vector< cv::Point2f >> *corners, std::vector< int > *ids, const cv::Ptr< cv::aruco::Board > *board, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, cv::Vec3d **rvec, cv::Vec3d **tvec, cv::Exception *exception) |
| Pose estimation for a board of markers. More... | |
| bool | au_estimatePoseCharucoBoard (std::vector< cv::Point2f > *charucoCorners, std::vector< int > *charucoIds, const cv::Ptr< cv::aruco::CharucoBoard > *board, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, cv::Vec3d **rvec, cv::Vec3d **tvec, cv::Exception *exception) |
| Pose estimation for a ChArUco board given some of their corners. More... | |
| void | au_estimatePoseSingleMarkers (std::vector< std::vector< cv::Point2f >> *corners, float markerLength, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, std::vector< cv::Vec3d > **rvecs, std::vector< cv::Vec3d > **tvecs, cv::Exception *exception) |
| Pose estimation for single markers. More... | |
| cv::Ptr< cv::aruco::Dictionary > * | au_generateCustomDictionary (int nMarkers, int markerSize, cv::Ptr< cv::aruco::Dictionary > *baseDictionary, cv::Exception *exception) |
| Generates a new customizable marker Dictionary. More... | |
| void | au_getBoardObjectAndImagePoints (const cv::Ptr< cv::aruco::Board > *board, std::vector< std::vector< cv::Point2f >> *detectedCorners, std::vector< int > *detectedIds, std::vector< cv::Point3f > **objPoints, std::vector< cv::Point2f > **imgPoints, cv::Exception *exception) |
| Returns the corresponding the image points and object points of a board configuration and a set of markers. More... | |
| cv::Ptr< cv::aruco::Dictionary > * | au_getPredefinedDictionary (cv::aruco::PREDEFINED_DICTIONARY_NAME name) |
| Returns one of the predefined dictionaries defined in PREDEFINED_DICTIONARY_NAME. More... | |
| int | au_interpolateCornersCharuco (std::vector< std::vector< cv::Point2f >> *markerCorners, std::vector< int > *markerIds, cv::Mat *image, const cv::Ptr< cv::aruco::CharucoBoard > *board, std::vector< cv::Point2f > **charucoCorners, std::vector< int > **charucoIds, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, cv::Exception *exception) |
| Interpolate position of ChArUco board corners. More... | |
| void | au_refineDetectedMarkers (cv::Mat *image, const cv::Ptr< cv::aruco::Board > *board, std::vector< std::vector< cv::Point2f >> *detectedCorners, std::vector< int > *detectedIds, std::vector< std::vector< cv::Point2f >> *rejectedCorners, cv::Mat *cameraMatrix, cv::Mat *distCoeffs, float minRepDistance, float errorCorrectionRate, bool checkAllOrders, std::vector< int > *recoveredIdxs, const cv::Ptr< cv::aruco::DetectorParameters > *parameters, cv::Exception *exception) |
| Refind not detected markers based on the already detected and the board layout. More... | |
C interface for the OpenCV's ArUco Marker Detection extra module.
See the OpenCV documentation for more information about its ArUco Marker Detection extra module: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html
| double au_calibrateCameraAruco | ( | std::vector< std::vector< cv::Point2f >> * | corners, |
| std::vector< int > * | ids, | ||
| std::vector< int > * | counter, | ||
| const cv::Ptr< cv::aruco::Board > * | board, | ||
| cv::Size * | imageSize, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| std::vector< cv::Mat > ** | rvecs, | ||
| std::vector< cv::Mat > ** | tvecs, | ||
| int | flags, | ||
| cv::TermCriteria * | criteria, | ||
| cv::Exception * | exception | ||
| ) |
Calibrate a camera using aruco markers.
| corners | Vector of detected marker corners in all frames. The corners should have the same format returned by detectMarkers ( |
| ids | List of identifiers for each marker in corners. |
| counter | Number of markers in each frame so that corners and ids can be split. |
| board | Marker board layout. |
| imageSize | Size of the image used only to initialize the intrinsic camera matrix. |
| cameraMatrix | Output 3x3 floating-point camera matrix. |
| distCoeffs | Output vector of distortion coefficients. |
| rvecs | Output vector of rotation vectors (see Rodrigues) estimated for each board view (e.g. std::vector<cv::Mat>>). |
| tvecs | Output vector of translation vectors estimated for each pattern view. |
| flags | Different flags for the calibration process (See http://docs.opencv.org/3.2.0/d9/d0c/group__calib3d.html#ga687a1ab946686f0d85ae0363b5af1d7b) |
| criteria | Termination criteria for the iterative optimization algorithm. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#gaee8294f02fb752562096aadb2e62a00f.
| double au_calibrateCameraCharuco | ( | std::vector< std::vector< cv::Point2f >> * | charucoCorners, |
| std::vector< std::vector< int >> * | charucoIds, | ||
| const cv::Ptr< cv::aruco::CharucoBoard > * | board, | ||
| cv::Size * | imageSize, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| std::vector< cv::Mat > ** | rvecs, | ||
| std::vector< cv::Mat > ** | tvecs, | ||
| int | flags, | ||
| cv::TermCriteria * | criteria, | ||
| cv::Exception * | exception | ||
| ) |
Calibrate a camera using Charuco corners.
| charucoCorners | Vector of detected charuco corners per frame. |
| charucoIds | List of identifiers for each corner in charucoCorners per frame. |
| board | Marker Board layout. |
| imageSize | Input image size. |
| cameraMatrix | Output 3x3 floating-point camera matrix. |
| distCoeffs | Output vector of distortion coefficients. |
| rvecs | Output vector of rotation vectors (see Rodrigues) estimated for each board view (e.g. std::vector<cv::Mat>>). |
| tvecs | Output vector of translation vectors estimated for each pattern view. |
| flags | Different flags for the calibration process (see calibrateCamera). |
| criteria | Termination criteria for the iterative optimization algorithm. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_detectCharucoDiamond | ( | cv::Mat * | image, |
| std::vector< std::vector< cv::Point2f >> * | markerCorners, | ||
| std::vector< int > * | markerIds, | ||
| float | squareMarkerLengthRate, | ||
| std::vector< std::vector< cv::Point2f >> ** | diamondCorners, | ||
| std::vector< cv::Vec4i > ** | diamondIds, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| cv::Exception * | exception | ||
| ) |
Detect ChArUco Diamond markers.
| image | Input image necessary for corner subpixel. |
| markerCorners | List of detected marker corners from detectMarkers function. |
| markerIds | List of marker ids in markerCorners. |
| squareMarkerLengthRate | Rate between square and marker length: squareMarkerLengthRate = squareLength/markerLength. |
| diamondCorners | Output list of detected diamond corners (4 corners per diamond). |
| diamondIds | Ids of the diamonds in diamondCorners. |
| cameraMatrix | Optional camera calibration matrix. |
| distCoeffs | Optional camera distortion coefficients. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_detectMarkers | ( | cv::Mat * | image, |
| cv::Ptr< cv::aruco::Dictionary > * | dictionary, | ||
| std::vector< std::vector< cv::Point2f >> ** | corners, | ||
| std::vector< int > ** | ids, | ||
| const cv::Ptr< cv::aruco::DetectorParameters > * | parameters, | ||
| std::vector< std::vector< cv::Point2f >> ** | rejectedImgPoints, | ||
| cv::Exception * | exception | ||
| ) |
Basic marker detection.
| image | Input image. |
| dictionary | Indicates the type of markers that will be searched. |
| corners | Vector of detected marker corners. For each marker, its four corners are provided, (e.g std::vector<std::vector<cv::Point2f> > ). For N detected markers, the dimensions of this array is Nx4. The order of the corners is clockwise. |
| ids | Vector of identifiers of the detected markers. The identifier is of type int (e.g. std::vector<int>). For N detected markers, the size of ids is also N. The identifiers have the same order than the markers in the imgPoints array. |
| parameters | Marker detection parameters. |
| rejectedImgPoints | Contains the imgPoints of those squares whose inner code has not a correct codification. Useful for debugging purposes. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga306791ee1aab1513bc2c2b40d774f370.
| void au_drawAxis | ( | cv::Mat * | image, |
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| cv::Vec3d * | rvec, | ||
| cv::Vec3d * | tvec, | ||
| float | length, | ||
| cv::Exception * | exception | ||
| ) |
Draw coordinate system axis from pose estimation.
| image | Input/output image. |
| cameraMatrix | Input 3x3 floating-point camera matrix. |
| distCoeffs | Vector of distortion coefficients. |
| rvec | Rotation vector of the coordinate system that will be drawn. |
| tvec | Translation vector of the coordinate system that will be drawn. |
| length | Length of the painted axis in the same unit than tvec (usually in meters). |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga16fda651a4e6a8f5747a85cbb6b400a2
| void au_drawCharucoDiamond | ( | cv::Ptr< cv::aruco::Dictionary > * | dictionary, |
| cv::Vec4i * | ids, | ||
| int | squareLength, | ||
| int | markerLength, | ||
| cv::Mat ** | img, | ||
| int | marginSize, | ||
| int | borderBits, | ||
| cv::Exception * | exception | ||
| ) |
Draw a ChArUco Diamond marker.
| dictionary | Dictionary of markers indicating the type of markers. |
| ids | List of 4 ids for each ArUco marker in the ChArUco marker. |
| squareLength | Size of the chessboard squares in pixels. |
| markerLength | Size of the markers in pixels. |
| img | Output Image with the marker. |
| marginSize | Minimum margins (in pixels) of the marker in the output image. |
| borderBits | Width of the marker borders. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_drawDetectedCornersCharuco | ( | cv::Mat * | image, |
| std::vector< cv::Point2f > * | charucoCorners, | ||
| std::vector< int > * | charucoIds, | ||
| cv::Scalar * | cornerColor, | ||
| cv::Exception * | exception | ||
| ) |
Draws a set of Charuco corners.
| image | Input/output image. |
| charucoCorners | Vector of detected charuco corners |
| charucoIds | List of identifiers for each corner in charucoCorners |
| cornerColor | Color of the square surrounding each corner |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_drawDetectedDiamonds | ( | cv::Mat * | image, |
| std::vector< std::vector< cv::Point2f >> * | diamondCorners, | ||
| std::vector< cv::Vec4i > * | diamondIds, | ||
| cv::Scalar * | borderColor, | ||
| cv::Exception * | exception | ||
| ) |
Draw a set of detected ChArUco Diamond markers.
| image | Input/output image. |
| diamondCorners | Positions of diamond corners in the same format returned by detectCharucoDiamond(). |
| diamondIds | Vector of identifiers for diamonds in diamondCorners, in the same format returned by detectCharucoDiamond() (e.g. std::vector<Vec4i>). |
| borderColor | Color of marker borders. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_drawDetectedMarkers | ( | cv::Mat * | image, |
| std::vector< std::vector< cv::Point2f >> * | corners, | ||
| std::vector< int > * | ids, | ||
| cv::Scalar * | borderColor, | ||
| cv::Exception * | exception | ||
| ) |
Draw detected markers in image.
| image | Input/output image. It must have 1 or 3 channels.The number of channels is not altered. |
| corners | Positions of marker corners on input image (e.g std::vector<std::vector<cv::Point2f>>). For N detected markers, the dimensions of this array should be Nx4. The order of the corners should be clockwise. |
| ids | Vector of identifiers for markers in markersCorners. Optional, if not provided, ids are not painted. |
| borderColor | Color of marker borders. Rest of colors(text color and first corner color) are calculated based on this one to improve visualization. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga2ad34b0f277edebb6a132d3069ed2909
| int au_estimatePoseBoard | ( | std::vector< std::vector< cv::Point2f >> * | corners, |
| std::vector< int > * | ids, | ||
| const cv::Ptr< cv::aruco::Board > * | board, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| cv::Vec3d ** | rvec, | ||
| cv::Vec3d ** | tvec, | ||
| cv::Exception * | exception | ||
| ) |
Pose estimation for a board of markers.
| corners | Vector of already detected markers corners. |
| ids | List of identifiers for each marker in corners. |
| board | Layout of markers in the board. |
| cameraMatrix | Input 3x3 floating-point camera matrix. |
| distCoeffs | Vector of distortion coefficients. |
| rvec | Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board (see Rodrigues). |
| tvec | Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#gae89235944f3bdbaad69d8dbac5340f1c
| bool au_estimatePoseCharucoBoard | ( | std::vector< cv::Point2f > * | charucoCorners, |
| std::vector< int > * | charucoIds, | ||
| const cv::Ptr< cv::aruco::CharucoBoard > * | board, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| cv::Vec3d ** | rvec, | ||
| cv::Vec3d ** | tvec, | ||
| cv::Exception * | exception | ||
| ) |
Pose estimation for a ChArUco board given some of their corners.
| charucoCorners | Vector of detected charuco corners. |
| charucoIds | List of identifiers for each corner in charucoCorners. |
| board | Layout of ChArUco board. |
| cameraMatrix | Input 3x3 floating-point camera matrix. |
| distCoeffs | Vector of distortion coefficients. |
| rvec | Output vector (e.g. cv::Mat) corresponding to the rotation vector of the board (see Rodrigues). |
| tvec | Output vector (e.g. cv::Mat) corresponding to the translation vector of the board. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_estimatePoseSingleMarkers | ( | std::vector< std::vector< cv::Point2f >> * | corners, |
| float | markerLength, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| std::vector< cv::Vec3d > ** | rvecs, | ||
| std::vector< cv::Vec3d > ** | tvecs, | ||
| cv::Exception * | exception | ||
| ) |
Pose estimation for single markers.
| corners | Vector of already detected markers corners. |
| markerLength | The length of the markers' side. |
| cameraMatrix | Input 3x3 floating-point camera matrix. |
| distCoeffs | Vector of distortion coefficients. |
| rvecs | Array of output rotation vectors (see Rodrigues) (e.g. std::vector<cv::Vec3d>). |
| tvecs | Array of output translation vectors (e.g. std::vector<cv::Vec3d>). |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#gafdd609e5c251dc7b8197323657a874c3
| cv::Ptr<cv::aruco::Dictionary>* au_generateCustomDictionary | ( | int | nMarkers, |
| int | markerSize, | ||
| cv::Ptr< cv::aruco::Dictionary > * | baseDictionary, | ||
| cv::Exception * | exception | ||
| ) |
Generates a new customizable marker Dictionary.
| nMarkers | number of markers in the Dictionary. |
| markerSize | number of bits per dimension of each markers. |
| baseDictionary | Include the markers in this Dictionary at the beginning (optional). |
| exception | The first exception threw by any trigerred CV_ASSERT. |
| void au_getBoardObjectAndImagePoints | ( | const cv::Ptr< cv::aruco::Board > * | board, |
| std::vector< std::vector< cv::Point2f >> * | detectedCorners, | ||
| std::vector< int > * | detectedIds, | ||
| std::vector< cv::Point3f > ** | objPoints, | ||
| std::vector< cv::Point2f > ** | imgPoints, | ||
| cv::Exception * | exception | ||
| ) |
Returns the corresponding the image points and object points of a board configuration and a set of markers.
| board | Marker board layout. |
| detectedCorners | List of identifiers for each marker. |
| detectedIds | List of detected marker corners of the board. |
| objPoints | Vector of vectors of the projections of board marker corner points. |
| imgPoints | Vector of vectors of board marker points in the board coordinate space. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
| cv::Ptr<cv::aruco::Dictionary>* au_getPredefinedDictionary | ( | cv::aruco::PREDEFINED_DICTIONARY_NAME | name | ) |
Returns one of the predefined dictionaries defined in PREDEFINED_DICTIONARY_NAME.
| int au_interpolateCornersCharuco | ( | std::vector< std::vector< cv::Point2f >> * | markerCorners, |
| std::vector< int > * | markerIds, | ||
| cv::Mat * | image, | ||
| const cv::Ptr< cv::aruco::CharucoBoard > * | board, | ||
| std::vector< cv::Point2f > ** | charucoCorners, | ||
| std::vector< int > ** | charucoIds, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| cv::Exception * | exception | ||
| ) |
Interpolate position of ChArUco board corners.
| markerCorners | Vector of already detected markers corners. |
| markerIds | List of identifiers for each marker in corners. |
| image | Input image necesary for corner refinement. |
| board | Layout of ChArUco board. |
| charucoCorners | Interpolated chessboard corners |
| charucoIds | Interpolated chessboard corners identifiers. |
| cameraMatrix | Optional 3x3 floating-point camera matrix. |
| distCoeffs | Optional vector of distortion coefficients. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463
| void au_refineDetectedMarkers | ( | cv::Mat * | image, |
| const cv::Ptr< cv::aruco::Board > * | board, | ||
| std::vector< std::vector< cv::Point2f >> * | detectedCorners, | ||
| std::vector< int > * | detectedIds, | ||
| std::vector< std::vector< cv::Point2f >> * | rejectedCorners, | ||
| cv::Mat * | cameraMatrix, | ||
| cv::Mat * | distCoeffs, | ||
| float | minRepDistance, | ||
| float | errorCorrectionRate, | ||
| bool | checkAllOrders, | ||
| std::vector< int > * | recoveredIdxs, | ||
| const cv::Ptr< cv::aruco::DetectorParameters > * | parameters, | ||
| cv::Exception * | exception | ||
| ) |
Refind not detected markers based on the already detected and the board layout.
| image | Input image. |
| board | Layout of markers in the board. |
| detectedCorners | VECTOR of already detected marker corners. |
| detectedIds | Vector of already detected marker identifiers. |
| rejectedCorners | Vector of rejected candidates during the marker detection process. |
| cameraMatrix | Optional input 3x3 floating-point camera matrix. |
| distCoeffs | Optional vector of distortion coefficients of 4, 5, 8 or 12 elements. |
| minRepDistance | Minimum distance between the corners of the rejected candidate and the reprojected Marker in order to consider it as a correspondence. |
| errorCorrectionRate | Rate of allowed erroneous bits respect to the error correction capability of the used dictionary. -1 ignores the error correction step. |
| checkAllOrders | Consider the four posible corner orders in the rejectedCorners array. If it set to false, only the provided corner order is considered (default true). |
| recoveredIdxs | Optional array to returns the indexes of the recovered candidates in the original rejectedCorners array. |
| parameters | Marker detection parameters. |
| exception | The first exception threw by any trigerred CV_ASSERT. |
See the OpenCV documentation for more information: http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html#ga90374a799f1da566e5de16f277b12463


It is our pleasure to welcome you to the twenty fifth edition of the National Conference on Communications (NCC). NCC is now widely acknowledged to be a premier conference in India covering the fields of signal processing, communications, and networks. It is run by the Joint Telematics Group comprising Indian Institutes of Technology (IITs) and IISc.
NCC 2019 is very special since it is the Silver Jubilee edition of the conference. It is a great milestone for the conference to have run continuously and successfully for 25 years. This is a tribute to the vision of the faculty who founded this conference and to all those who conducted it all these years. To commemorate this historic occasion, we have put together a special “Silver Jubilee Reminiscences” event. It will be held on February 22 evening. A web page to commemorate this has also been set up – it features thoughts and comments from eminent researchers from India and abroad who have participated in NCC. Do look around the conference for surprise banners and other items related to this.
In this year’s edition of NCC, we have come up with a program that blends high-quality contributed papers with invited talks, tutorials on cutting-edge topics by both academia and industry, and plenary talks by eminent researchers. NCC 2019 will feature three plenary talks, two industry keynotes, and five tutorials. Our goal has been to expose our participants from academia and industry to world-class, cutting-edge research and development.
We have also introduced a new Graduate Students Day event, in which several selected senior PhD students will present a short summary of their research work. This event will be held on February 21 afternoon. We hope that this will be appealing to students, faculty, and prospective employers. NCC 2019 will also feature cutting-edge demos from the 5G testbed project that is funded by the Department of Telecommunications and is a joint effort of several IITs, IISc, and SAMEER.
The plenary talks and industry keynotes will be held in the spacious and historic faculty hall in the main building of IISc. All other events will take place in the ECE department. We welcome you to check out our airy and bright new building in ECE. The recently inaugurated new lecture halls in this building will host several sessions and tutorials of NCC 2019. We hope you will enjoy the serene and green ambience of the ECE department. The conference proceedings will be available via download from the internet. The proceedings will also be accessible via IEEEXplore. In addition, three best paper awards and two best graduate student day talks have been instituted.
The success of NCC is due to the untiring efforts of its organizing committee and the army of volunteers from among the students and staff at IISc. We sincerely thank all the committee members for doing a wonderful job in putting together this major conference and ensuring that it runs smoothly. We thank the technical program committee for burning the midnight oil and putting together an exciting technical program.
Finally, we extend our thanks to the sponsors whose financial contributions made this conference possible. These sponsors will be exhibiting their cutting-edge products in their respective booths, and we encourage you to visit them.
We invite you to participate in and thoroughly enjoy NCC 2019.
Sincerely,
Neelesh B. Mehta and A. Chockalingam
The NCC 2019 Graduate Student Day workshop will be held at IISc Bangalore, India, as a part of NCC 2019. It will be a forum for PhD students to showcase their work in the areas of communication, networking and signal processing. The presenters will benefit from lively discussions and critical feedback on their work.
The following are the list of candidates that are shortlisted to present their work at the workshop:
| Speaker | Thesis Title | Affiliation | Slot |
|---|---|---|---|
| Shikha Gupta | Deep CNN-based SMN Representation for Scene Recognition | IIT-Mandi | 2:15-2:26 P.M. |
| Nazil Perveen | Spontaneous Facial Expression Recognition in Wild | IIT-Hyderabad | 2:27-2:38 P.M. |
| Gowdham Prabhakar P G | Comparison of Ocular Parameters for Distraction Detection of Drivers in Cars | IISc | 2:39-2:50 P.M. |
| Sumit Datta | Efficient Compressed Sensing Magnetic Resonance Image Reconstruction for Clinical Applications | Tezpur University | 2:51-3:02 P.M. |
| Anu Shaju Areeckal | Early Diagnosis of Osteoporosis Using Metacarpal Radiogrammetry and Texture Analysis | NIT-Suratkal | 3:03-3:14 P.M. |
| Sweta Sharma | Large Scale Twin Support Vector Machine and its applications in Human Activity Recognition | South Asian University | 3:15-3:26 P.M. |
| Rajendra Nagar | Multidimensional Reflection Symmetry: Theory, Algorithms, and Applications | IIT-Gandhinagar | 3:27-3:38 P.M. |
| Tasleem Khan | Low Complexity Distributed Arithmetic based Pipelined VLSI Architectures for LMS Adaptive Filters | IIT-Guwahati | 3:39-3:50 P.M. |
| Coffee Break | 3:50-4:14 P.M. | ||
| Praveen Jaraut | Digital Predistortion Linearization for Multi-band/Multi-channel Software Defined Transmitters | IIT-Roorkee | 4:15-4:26 P.M. |
| Jinesh Jacob | Low Complexity Transmission in Few Mode Fibers using Limited Feedback of Principal Modes | IIT-Bombay | 4:27-4:38 P.M. |
| Karan Gumber | Low Cost RF Predistortion for Carrier Aggregated Ultra-Wideband Signals | IIT-Roorkee | 4:39-4:50 P.M. |
| Satish Kumar Tiwari | Estimation and Optimization of Design Parameters in Diffusive Molecular Nanonetworks | IIT-Indore | 4:51-5:02 P.M. |
| Shaifu Gupta | Online Multivariate Resource Usage Prediction in Cloud Datacenters | IIT-Mandi | 5:03-5:14 P.M. |
| Om Jee Pandey | Small World Models for Development of Wireless Sensor Network Services | IIT-Kanpur | 5:15-5:26 P.M. |
| Priyanka Naik | libVNF: Library to build Virtual Network Functions | IIT-Bombay | 5:27-5:38 P.M. |
| Rohit Kumar | Channel Selection in Dynamic Networks of Unknown Size | NIT-Delhi | 5:39-5:50 P.M. |
| Vaibhav Kumar Gupta | Fair Subchannel Allocation Algorithms for the Inter Cell Interference Coordination with Fixed Transmit Power Problem | IIT-Bombay | 5:51-6:02 P.M. |
The National Conference on Communications (NCC) is the flagship conference of India in the area of Communications, Signal Processing and Networks. It has been organized every year, starting from the year 1995, by the Joint Telematics Group (JTG) of the Indian Institutes of Technology and the Indian Institute of Science. More information on the history and previous editions of NCC can be found on this page.
NCC 2019, the silver jubilee edition, will be held at the ECE department (Golden Jubilee Hall) on the Indian Institute of Science campus.
Previous editions:| Committee | Members |
|---|---|
| General Co-Chairs: | Neelesh B. Mehta (IISc Bangalore), A. Chockalingam (IISc Bangalore) |
| TPC Co-Chairs: | Chandra R. Murthy (IISc Bangalore), Navin Kashyap (IISc Bangalore),Dilip Krishnaswamy (Reliance Jio) |
| Finance: | Rajiv Soundararajan (IISc Bangalore) |
| Publicity: | Shayan Garani Srinivasa (IISc Bangalore), Bharath Bettagere (IIT Dharwad) |
| Tutorial: | Aditya Gopalan (IISc Bangalore), Prasanta Ghosh (IISc Bangalore) |
| Website: | Himanshu Tyagi (IISc Bangalore) |
| Publications: | Soma Biswas (IISc Bangalore) |
| Local arrangements: | Sriram Ganapathy (IISc Bangalore), Navin Kumar (Amrita School of Engineering), Sundeep Prabhakar Chepuri (IISc) |
| Industry liaison: | Dilip Krishnaswamy (Reliance Jio), Neelesh B. Mehta (IISc Bangalore) |
| Graduate student day: | Kunal Chaudhury (IISc Bangalore), Chandramani Singh (IISc Bangalore) |
| Best paper awards committee: | Rahul Vaze (TIFR Mumbai), Kalpana Dhaka (IITG), Avishek Chatterjee (IITM) |
Professor Neleesh B. Mehta,
Department of Electrical Communication Engineering,
Indian Institute of Science, Bangalore 560012
Email: ncc.iisc.2019@gmail.com


Molecular markers and population genetics were effective tracking tools.
Imported malaria threatens control and elimination efforts in countries that have low rates of transmission. In 2010, an outbreak of Plasmodium falciparum malaria was reported among United Nations peacekeeping soldiers from Guatemala who had recently returned from the Democratic Republic of the Congo (DRC). Epidemiologic evidence suggested that the soldiers were infected in the DRC, but local transmission could not be ruled out in all cases. We used population genetic analyses of neutral microsatellites to determine the outbreak source. Genetic relatedness was compared among parasites found in samples from the soldiers and parasite populations collected in the DRC and Guatemala; parasites identified in the soldiers were more closely related to those from the DRC. A phylogenetic clustering analysis confirms this identification with >99.9% confidence. Thus, results support the hypothesis that the soldiers likely imported malaria from the DRC. This study demonstrates the utility of molecular genotyping in outbreak investigations.
Imported malaria threatens control and elimination efforts in countries that report low malaria transmission rates ( 1 – 3 ). In Central America, malaria transmission decreased by >50% during 2000–2010 ( 4 ); in 2010, the Guatemala Ministerio de Salud Pública y Asistencia Social reported 31 confirmed cases of malaria, all caused by the species Plasmodium falciparum ( 5 ). Central America is unusual compared with other areas in which malaria is endemic because chloroquine remains an effective treatment option for P. falciparum infection there, but not in other parts of the world ( 6 – 8 ); the introduction of parasites harboring chloroquine-resistant genotypes could fuel a resurgence of clinical illness and transmission.
In 2010, an outbreak of malaria was reported among 12 soldiers from Guatemala shortly after they returned from a United Nations (UN) peacekeeping mission in the Democratic Republic of the Congo (DRC). Of the 12, 8 also reported visiting > 1 area in Guatemala in which malaria is endemic when they returned but before the outbreak was identified. An outbreak investigation was undertaken after 1 of the infected soldiers died; laboratory tests of blood from this patient identified choroquine-resistant and -sensitive strains of P. falciparum .
The epidemiologic evidence suggested that the soldiers were infected while stationed in the DRC ( 9 ). Because the local acquisition of chloroquine-resistant parasites in Guatemala could necessitate a change in local treatment practices, it was vital to determine the origin of the soldiers’ infections.
Molecular markers have been used to assess the genetic relatedness of malarial parasites from different geographic regions ( 10 , 11 ). Accordingly, if the soldiers acquired P. falciparum in the DRC during their stay, the genotypes of the parasites isolated from the soldiers’ samples would be more closely related to parasites from the DRC than to parasites from Guatemala. To test this hypothesis, we used molecular methods from the field of population genetics to determine the source of the malaria outbreak among the soldiers who returned to Guatemala after being stationed in the DRC.
We included P. falciparum parasites from 3 distinct populations: 1) soldiers from Guatemala returning from the DRC with malaria; 2) adult residents of the DRC; and 3) residents of Guatemala (adults and children). The initial outbreak investigation in Guatemala received appropriate human subject review by the Universidad del Valle de Guatemala (Guatemala City, Guatemala) and the US Centers for Disease Control and Prevention (Atlanta, GA, USA) and was qualified as public health practice because its purpose was to identify and treat malaria cases among military personnel returning from the DRC. Samples from these soldiers were anonymized, and the investigations reported in this publication were reviewed and approved by the same institutions. Samples from the DRC were obtained during the 2007 Demographic Health Survey (DHS), which was approved by the review boards of Macro International (Calverton, MD, USA), the University of Kinshasa School of Public Health (Kinshasa, DRC), and the University of North Carolina (Chapel Hill, NC, USA). Samples collected from a previous malaria surveillance study (conducted during 1998–2000) that was originally approved by the Universidad del Valle de Guatemala human subjects review board were used to determine population structure of the parasite population of Guatemala.
In August of 2013, Guatemala sent its 13th mission to the DRC since it began sending troops in 2000 ( 12 ). In January 2010, 144 soldiers from Guatemala and 6 civilian support staff were deployed to the DRC as part of a United Nations peacekeeping mission. Upon return to Guatemala in October 2010, 12 soldiers were found to be infected with P. falciparum by using active and passive case detection; the infections were confirmed by using nested PCR. Of the 12 soldiers, 5 reported clinical symptoms and the other 7 were asymptomatic; date of onset of symptoms for the 5 soldiers ranged from October 12, 2010 (5 days before leaving the DRC) to November 7, 2010 (3 weeks after their arrival in Guatemala) ( 9 ). The first soldier in whom malaria was diagnosed died and was found to have been infected with parasites that had chloroquine-sensitive and chloroquine-resistant genotypes ( 9 ). Samples from all 12 soldiers were included in the analysis reported here.
To compare the parasites found in the DRC with those that infected the returning soldiers, we analyzed P. falciparum parasites from 74 participants in the national 2007 DRC DHS. The parent study and ancillary studies have been described in detail ( 13 – 16 ). For the analysis reported here, we selected 7 clusters, all of which included >10 P. falciparum –positive persons, as part of a study to quantify gene flow in P. falciparum strains within the DRC. Three outbreak clusters (81, 88, and 183) were chosen because they were located on or near the Congo River, a principal route of human transportation ( 17 ); 2 clusters (164 and 211) were chosen because they were not on the river but were approximately the same distance apart from the 3 river sites as the river sites were from each other; and 2 clusters (29 and 203) were chosen because they were far away from the other clusters (Patel et al., unpub data) ( Figure 1 ). We also included 40 P. falciparum specimens collected from previous surveillance studies conducted in Guatemala during 1998–2000 for comparison of genetic profiles of the local parasite population.
Location of the major cities, rivers, and the 7 Demographic Health Survey clusters (203, 81, 88, 183, 211, 164, and 29) within the Democratic Republic of the Congo (DRC) included in study of malaria outbreak among soldiers from Guatemala who had been stationed in DRC.
Genomic DNA (gDNA) from the DRC samples was isolated from dried blood spots as described ( 13 ). We used the QIAamp DNA Mini Kit (QIAGEN, Valencia, CA, USA) according to the manufacturer’s recommendations to extract gDNA from the soldiers and from samples from persons who were indigenous to Guatemala. All samples were sealed securely and stored at −20°C.
Eight neutral microsatellites were selected on chromosomes 2 (C2M33, C2M34, C2M29, C2M27) and 3 (C3M40, C3M88, C3M39, and C3M69) to assess whether the parasites identified in the soldiers were related to those found in the DRC. PCR primer sequences and cycling conditions for samples from the soldiers and other persons in Guatemala were adapted from earlier studies ( 18 ). For the samples from the DRC, a slightly different PCR technique was used. Specimens were initially amplified in single-round PCR protocols similar to those for samples from the soldiers and from persons in Guatemala; for those that failed to return PCR products, we used a heminested strategy wherein a newly designed additional external primer was used in a primary amplification, and then performed the standard round of amplification ( 19 , 20 ). Primer sequences are provided in the Table ; their PCR cycling parameters have been described elsewhere ( 18 , 21 ). All PCR products were separated by capillary electrophoresis by using an Applied Biosystems 3130xl genetic analyzer (Applied Biosystems, Foster City, CA). The alleles were scored by using GeneMapper software, version 3.7 (Applied Biosystems). Alleles were binned to the nearest 2 or 3 nucleotides in length depending on the size of the repeat unit. To distinguish alleles from background noise in multiple infections, we recorded peaks if they were >1/3 of the maximum peak level and exceeded 100 fluorescence units.
| bottomleftrow11 Locus name | bottomcenter11 Chromosome | bottomcenter11 Primer | bottomcenter11 Primer sequence (5′→3′) | bottomcenter11 Tag | bottomcenter11 Expected product size, bp |
| topleftrow11C2M33 | topcenter112 | topcenter11Forward | topcenter11CATTGCAAAATATATATTCTCC | topcenter11FAM | topcenter11193 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11GTGATTTGTACAATGTACATA | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 ATTGCGTAAATAACACATCTGCA | topleft11 | topleft11 |
| topleftrow11C3M88* | topcenter113 | topcenter11Forward | topcenter11CAAAAATGAAAAATGAAAAGG | topcenter11HEX | topcenter11150 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11TAAAGGGTGCGCATATCAAT | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 GTTATTCAAAAAGGACGAAACAAG | topleft11 | topleft11 |
| topleftrow11C3M69 | topcenter113 | topcenter11Forward | topcenter11AATAGGAACAAATCATATTG | topcenter11HEX | topcenter11173 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11AGATATCCAGGTAATAAAAAG | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 TTTATGAACACCCTCATGTCACT | topleft11 | topleft11 |
| topleftrow11C2M29 | topcenter112 | topcenter11Forward | topcenter11GTGAATAACGGAAAAGGATA | topcenter11FAM | topcenter11141 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11AAGATCAAATACCAGGTGA | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 TTAAGAAACAATCAGAAGCGATG | topleft11 | topleft11 |
| topleftrow11C2M27 | topcenter112 | topcenter11Forward | topcenter11CTTTTAATCACTACCATGTTG | topcenter11HEX | topcenter11117 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11ATAATTTAATTGAGGATACCT | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 TTGTATGTATCACTTTTTCATTAC | topleft11 | topleft11 |
| topleftrow11C3M40 | topcenter113 | topcenter11Forward | topcenter11GGGTAAAGAAAAACACACAAA | topcenter11FAM | topcenter11128 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11AATGTGTATATTACTAGAAGC | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 TCCGAATATGGAATGTCGAAAG | topleft11 | topleft11 |
| topleftrow11C3M39 | topcenter113 | topcenter11Forward | topcenter11CAAGAAGATAGGGATGATAAC | topcenter11FAM | topcenter11159 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11TATTAATTGGTCTTCACCCG | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11 Heminested | topcenter11 GGAGGAACGTAAAGAAGATATTG | topleft11 | topleft11 |
| topleftrow11C2M34 | topcenter112 | topcenter11Forward | topcenter11TCCCTTTTAAAATAGAAGAAA | topcenter11FAM | topcenter11260 |
| topleftrow11 | topleft11 | topcenter11Reverse | topcenter11GATTATATGAAAGGATACATG | topleft11 | topleft11 |
| topleftrow11 | topleft11 | topcenter11Heminested | topcenter11TTCACTTTGTAAATTAGAACATATC | topleft11 | topleft11 |
* Censored locus caused by poor amplification success.
To determine the source of the parasites found in the soldiers, we
treated them as a discrete population and calculated the
relatedness (β-diversity) between this parasite population
and those identified in persons in the DRC and Guatemala. Genetic
relatedness between the 3 populations was calculated by using the
Nei standard genetic distance (
G
in which
p
in which
S
is the average squared difference in allele size between all pairs
of alleles and
Sw
is the average sum of squares of the differences in allele size
within each subpopulation. Pairwise
R
Because we were studying parasite populations and not hosts, each individual host could contribute > 1 parasite variant to the population. Since the indices above are calculated locus by locus, haplotype construction was unnecessary. However, because haplotypes are required for entering data into GenAlEx and SPAGeDi, we created “virtual” haplotypes for mixed genotypes. If > 2 alleles were detected on 1 locus, distinct haplotypes were created that differed from each other only at the locus with multiple alleles. If multiple loci contained 2 alleles, 2 distinct haplotypes were created; alleles were randomly assorted for each locus. The same was done if multiple loci contained 3 alleles. If > 1 loci had 2 alleles and > 1 loci had 3 alleles, we created 2 full haplotypes using random assortment as above and a third haplotype that was missing data on loci that had 2 alleles. To assess whether the arrangement of these virtual haplotypes affected the analyses, we recalculated all indices of genetic relatedness using a different assortment of virtual haplotypes.
In addition to these analyses, to investigate the geographic clustering of the parasite populations, we calculated genetic distances and created a neighbor-joining phylogenetic tree ( 26 ) based on the Cavalli-Sforza and Edwards chord distance model ( 27 ) in Populations v.1.2.31 ( 28 ) and visualized it in the ape package for R ( 29 ). Further, we used Fast UniFrac, which is a frequently used measure of genetic differentiation between pathogen populations, to group the parasite populations with precision derived from permutation ( 30 ). To determine whether the observed population splits were caused by chance alone, we used 1,000 permutations. For these analyses, we used isolates for which the majority (>50%) of the microsatellite markers were characterized.
Initially, 8 microsatellite loci were characterized by capillary electrophoresis. One locus was censored in all analyses because of poor amplification success (<50%). For the remaining 7 loci, 71%–85% of the samples were successfully amplified. Seven infected soldiers and 8 infected persons from the DRC were excluded from further analyses because we were unable to amplify the majority of the microsatellites in specimens collected from them. Final analysis was conducted on samples from 5 infected soldiers, 74 infected persons from the DRC, and 40 infected persons from Guatemala.
Similar to the organisms causing infections documented in persons in the DRC, most of the organisms associated with the soldiers’ infections contained polyclonal antibodies. Of the remaining 5 infected soldiers, samples from 3 (60%) contained > 1 locus that had 3 genetically distinct alleles. This is similar to the distribution in the DRC, where strains from 47.3% (n = 35) of the subjects had > 2 alleles in > 1 locus. All the samples from persons living in Guatemala contained a single genotype. No significant linkage disequilibrium was observed between the neutral microsatellite markers used in all 3 study populations (data not shown).
To identify the source of the infections, we measured the genetic
relatedness between parasite populations obtained from the soldiers,
from the DRC residents, and from residents of Guatemala. Pairwise
R
Genetic relatedness (pairwise
R
The phylogenetic analyses also revealed a stark clustering effect between the 3 parasite populations. Visual inspection of the neighbor-joining tree ( Figure 3 ) showed that the parasites found in the soldiers were part of the parasite population from the DRC and the parasites found in Guatemala were distinct from the other 2 populations. The ecologic clustering algorithm, after 1,000 jackknife permutations, also clustered the parasites from the soldiers with the parasite population in the DRC while they remained distinct from the parasites from Guatemala ( Figure 4 ). The predicted differences between the parasites from Guatemala and those from the DRC and soldiers returning to Guatemala were statistically significant (>99.9% confidence).
Neighbor-joining tree of 3 Plasmodium falciparum populations. Prefixes of genomes indicate parasite origins: Green text indicates parasite populations from the Democratic Republic of the Congo (DRC); orange indicates parasite populations detected in soldiers who were returning from the DRC to Guatemala; red indicates parasite populations from Guatemala.
Phylogenetic tree showing predicted clustering between Plasmodium falciparum populations from the Democratic Republic of Congo (DRC), soldiers returning to Guatemala from the DRC, and Guatemala. The predicted split between parasites identified in samples taken in Guatemala and parasites from DRC among soldiers was significant (95% CI >99.9%) (black bar); the predicted split between parasites from DRC and returning soldiers was not significant (95% CI 50%–70%) (white bar). Computed by using Fast UniFrac ( 30 ) with jacknifing and 1,000 permutations.
We further attempted to examine the genetic relatedness of
parasites, comparing those from each DRC cluster, the soldiers, and
Guatemala. We observed that the parasites identified in samples from
soldiers were more closely related to every selected DHS cluster
within the DRC than to parasites from the samples from persons
living in Guatemala (
R
Molecular tools have become valuable in tracking the source of infectious agents in outbreak investigations ( 31 , 32 ). This study, which was based on the use of population genetic analyses of microsatellite data, supports previous epidemiologic findings that an outbreak of P. falciparum malaria in soldiers from Guatemala, who returned after their peacekeeping mission in the DRC in 2010, was caused by an imported parasite population from the DRC ( 9 ). This study further validates the use of molecular epidemiologic tools in malaria outbreak investigations.
Genetic relatedness among 3 parasite populations was first assessed
by pairwise
R
Countries in Central America are experiencing low levels of malaria incidence, and several of them are taking steps toward its elimination ( 4 , 34 ). In June 2013, the Council of Health Ministers from Central America and the Dominican Republic called for malaria elimination in the region by 2020 ( 35 ). Although chloroquine-resistant P. falciparum strains are widespread, Central America is one of the few regions in the world where chloroquine remains an effective treatment option for locally acquired malaria ( 6 – 8 ). Importation of chloroquine-resistant strains could lead to increased malaria-related illness and deaths, even though the local Anopheles spp. vector population may be refractory to foreign Plasmodium strains ( 36 , 37 ). Of the 12 soldiers who died after returning from the peacekeeping mission, 1 was found to have been infected with parasites of the P. falciparum chloroquine-resistance transporter ( pfcrt ) genotype CVIET, but it was not clear whether this patient acquired resistant parasites from the DRC or locally ( 9 ). It is unlikely that the patient acquired chloroquine-resistant parasites locally because these parasites are absent in Central America ( 7 , 8 ).
If chloroquine-resistant strains circulated in Guatemala, chloroquine drug pressure would positively select them and ultimately render chloroquine ineffective. Conversely, chloroquine resistance has been widespread in the DRC since at least 2002, which is supported by the report that the hallmark K76T mutation has been found in 93% of Congolese specimens ( 38 ). The current data provide evidence that this soldier acquired chloroquine-resistant P. falciparum in the DRC. Indeed, the microsatellite data suggested that this soldier had multiple strains. Given increasing globalization, international travel, and high frequency of military peacekeeping missions from Central America to Africa, persons returning from a malaria-endemic country who have malarial symptoms should be suspected of harboring chloroquine-resistant strains. These circumstances also provide impetus for countries such as Guatemala to make artemisinin-based combination therapies and other appropriate treatment available to treat imported multidrug-resistant malaria cases.
This study had several limitations. First, we included samples from only 7 DHS clusters. Including more clusters, especially those near Bunia, Isiro, and Dungo, which the soldiers reported having traveled through, would have helped in triangulating the source of infection with a higher resolution. Also, the local samples collected in Guatemala included in the study were collected during different years (1998–2000) from the outbreak. Because of the low number of malaria cases reported annually in Guatemala (31 total cases reported in 2010), it was not feasible to include samples from persons in Guatemala that were collected closer to the time of the outbreak. Further, of the 12 patients identified during the outbreak investigation, we were able to successfully characterize microsatellite profiles for P. falciparum parasites in only 5 patients who had microscopically detectable parasitemia levels. Microsatellites could not be amplified in samples obtained from any of the 7 patients who had asymptomatic P. falciparum infection. A possible explanation for this failure could be the potential degradation of gDNA between the time of extraction and time at which the microsatellite markers were characterized. However, the results of the study were likely unaffected as shown by the stark similarity between parasites from the soldiers and persons in the DRC and substantial divergence between parasites from the soldiers and persons in Guatemala.
Molecular epidemiology and population genetic tools have been used successfully to identify geographic areas where outbreaks of poliomyelitis originate, leading to focused intensification of public health efforts to reduce polio-related illness and future outbreaks ( 39 , 40 ). Here we have demonstrated the use of molecular tools to conclusively identify the source of a parasite population during an outbreak investigation. Because of the extreme minimal diversity of the parasites from Guatemala, we were able to triangulate the source of the outbreak with high statistical significance. However, if each of the 3 parasite populations were as highly diverse as those in the DRC, we would require a greater number of samples and would use other genotyping methods which characterize parasite subpopulations on a finer scale, such as next-generation deep-sequencing methods to sequence polymorphic targets or whole genomes. There is also a clear need for capacity strengthening of sample collection, storage, and extraction techniques to support genotyping in countries that report low malaria transmission rates. These molecular tools could help strengthen existing surveillance efforts to prevent future outbreaks and the reintroduction of malaria in countries working toward malaria elimination.
Suggested citation for this article : Patel JC, Taylor SM, Juliao PC, Parobek CM, Janko M, Gonzalez LD, et al. Genetic evidence of importation of drug-resistant Plasmodium falciparum to Guatemala from the Democratic Republic of the Congo. Emerg Infect Dis. 2014 Jun [ date cited ].
We thank Silvia Sosa for help in obtaining samples from Guatemala. We also thank Fabiola Enriquez, Mario Roberto Perez Franco, Harold Garcia Sergio Fernando, Nitsch Montiel, and Mario Luis Ovalle Figuero for their help in obtaining samples from the soldiers.
This work was supported by a Gillings Innovation Laboratory award from the UNC Gillings School of Global Public Health and by grants from the National Institutes of Health (NIH) (NIAID 1R56AI097609-01) and National Science Foundation (NSF) (BSC-13339949).
Mr Patel is a doctoral student in epidemiology at the University of North Carolina at Chapel Hill. His primary research interests include the use of molecular markers to study the geographic and temporal spread of malaria and the development of field appropriate molecular diagnostic tools for malaria.


It appears you don't have a PDF plugin for this browser. No worries! you can click here to download my resume.


Here are just some of them
As you start typing your step name, Feature Editor will search for existing steps
Edit step data quickly and safely
Search for all your features in the project
Browse features by tag, package or user


| |
| Usage |
Summon the Screensaver runs on Windows startup by default (can be changed in Preferences) and it resides in the system tray as a magic-cirlce icon. Right-click on the icon to see the list of available commands. Some commands can be run by just placing the mouse cursor at corners (can be defined in Preferences, default is bottom-left or bottom-right corner) of your desktop or by short-cut keys (can be defined in Preferences, default is Ctrl/Shift - F11).
- To invoke your screensaver:
Method #1: Place the mouse cursor at one of the corners of your desktop. Don't move your mouse and wait for several seconds (can be defined in Preferences, default is 3 seconds).
Method #2: Press short-cut keys Ctrl - F11. Hold the keys for a while until the screensaver appears.
Method #3: Select "Summon Screensaver" in the pop-up menu of the magic-circle icon.
- To lock the workstation (for Windows 2000/XP/2003 or above):
Method #1: Place the mouse cursor at one of the corners of your desktop, with [Shift] key kept pressed. Don't move your mouse and wait for several seconds (can be defined in Preferences, default is 3 seconds).
Method #2: Press short-cut keys Shift - F11. Hold the keys for a while until workstation is locked.
Method #3: Select "Lock Workstation" in the pop-up menu of the magic-circle icon.
- To temporarily disable/enable the screensaver:
Method #1: Double-click the magic-circle icon. Red magic-circle indicates screensaver is disabled. Blue magic-circle indicates sreensaver is enabled.
Method #2: Select "Disable Screensaver" or "Enable Screensaver" in the pop-up menu of the magic-circle icon.
- Preferences options:
- Runs on Windows startup: Tick the box to let Summon the Screensaver startup
automatically.
- Sensor Position: Select all positions at where you would like to place a mouse sensor.
Note that the sensible area for each corner is 5x5 pixels.
- Sensor Delay: Enter the number of seconds to wait after the mouse cursor has been
detected and before screensaver is invoked or workstation is locked. Note that the
value must be greater than or equal to 1.
- Short-cut Keys: Select a Function key as the short-cut key for invoking screensaver
and locking screen. F11 is recommended.
|
| |
| Screenshots |
| |
Startup screen is a semi-transparent magic circle with a Chinese character meaning "summon" at the center. |
| |
Place the mouse cursor at one of the corners defined in the Preferences, say some magic words in your heart, and your screensaver will be summoned immediately to your screen. |
| |
The screensaver has been disabled after double-clicking the magic-circle icon in the system tray. The icon becomes a red magic-circle. To re-enable the screensaver, double-click the icon again. The icon will be switched back to the original blue one. |
|
| |
|


We puts small files (known as ‘cookies’) onto your computer to collect information about how you use the site.
Cookies are used to:
find out more about how to manage cookies.
We use Google Analytics software to collect information about how you use Civil Service Jobs. We do this to help make sure the site is meeting the needs of its users and to help us make improvements.
Google Analytics stores information about:
Google Analytics sets the following cookies:
| Name | Purpose | Expired |
|---|---|---|
| _ga | Used to distinguish users | 2 years |
| _gat | Used to throttle request rates | 10 minutes |
You can opt out of Google Analytics cookies.
You will have seen a message advising of our use of cookies, when you click the "close" button this sets a cookies (oh, the irony!) so that your computer knows you've seen it and knows not to show it again.
| Name | Purpose | Expired |
|---|---|---|
| cookiebanner-accepted | Removes cookies banner | Forever |


08 May 1998
Disease Outbreak Reported
Crimean-Congo haemorrhagic fever has been diagnosed in cases occurring in a village in the district of Rustaq, Province of Takar in mid-March 1998. A total of 19 cases of which 12 were fatal were reported. Rustaq district, in the north-eastern part of Afghanistan, was severely affected by the earthquake in early February and access was further complicated by melting snow. However, representatives from United Nations and non-governmental organizations were on site to provide assistance and notified WHO about the outbreak. The WHO country office organized with the International Federation of Red Cross and Red Crescent Societies and Médecins Sans Frontières the investigation and management of the cases. Blood specimens were shipped to the WHO Collaborating Centre for Reference and Research on Special Pathogens at the Centre for Applied Medical Research, Public Health Laboratory Service, Porton Down,United Kingdom. Serological testing (IgG/IgM antibody) provided evidence for Crimean-Congo haemorrhagic fever virus infection. Other virological testing is in progress at Porton Down.


<graph mode="slice" defaultedgetype="directed" timerepresentation="timestamp" timestamp="1">
2017-02-16
last modified: 2023-04-10
== !
I organize online workshops and personalized trainings for Gephi, for beginners and experts. To schedule one or to get more information<EMAIL_ADDRESS>We are going to create one very simple non dynamic network (network "A").
then we will create a modified version of it (network "B").
in both files, we need to modify a single line.
finally, we will merge networks A and B, forming a new dynamic network evolving from version A to B.
The creation of the 2 networks is not a mandatory step: you can use your own network files, as long as they are in gexf file format. In this case, skip to here. We create the networks in this tutorial to provide the most simple and clear case. |
open Gephi. On the Welcome screen that appears, click on New Project
Our project is empty. We can use a simple click-and-point tool to create a network:
When you have created a couple of nodes, click again on the pencil icon to stop the node creation.
Export the network as a file and call it "network A":
Clicking on "Save" saves the file in the folder you chose. You are back to the view on your graph.
Now, click on the "Edge pencil", just below the "Node pencil we have used (careful, the icons are identical!)
Create one edge, or a couple of edges, in this way.
Clicking again on the pencil stops the edge creation by mouse clicks.
Then export the network in the same folder where we put the previous file (File → Export → Graph File …
)
This time, name the file 'network B.gexf' and remember to choose the gexf
file format just like we did before.
Delete and replace this line by this one:
<graph mode="slice" defaultedgetype="directed" timerepresentation="timestamp" timestamp="1">
See timestamp="1"
? It means this will be the first "time slice" of your dynamic network.
Save the file.
Repeat the steps for network B.gexf:
open the file in a text editor,
find the line <graph defaultedgetype="directed" mode="static">
replace it by:
<graph mode="slice" defaultedgetype="directed" timerepresentation="timestamp" timestamp="2">
(see that we have timestamp="2"
here: this is going to be the second time slice!)
save the file.
We will use the 2 files network A.gexf and network B.gexf that we have created.
First, let’s close the project we have in Gephi, without saving:
Then click on File → Open
and navigate to the folder where network A.gexf and network B.gexf are located:
Here, make sure you select the 2 files at once (using the key Ctrl on pc or {commandkey} on mac).
Opening the files display a report window:
You should see this button, click on it (if not: something went wrong. Retrace your steps)
Click and slide the right side border of the timeline to the left. You should see the edge disappear:
We created a dynamic network. It needs to be animated precisely with the timeline, dynamic attributes should be explored, as well as dynamic layouts.
These features will be explained in the coming tutorials on dynamic networks with Gephi.
Visit the Gephi group on Facebook to get help,
or visit the website for more tutorials
Give a try to nocodefunctions.com, the web application I develop to create networks for Gephi. Click-and-point, free, no registration needed.


My name is Andrew Sarmiento and I currently attend San Francisco State University.
I am majoring in Computer Science.
Thank you for visiting.


Logo A
Logo B
Colors
Typography
Usage
Download assets
Menu
SheSharp Brand Guidelines 1.0
Logo A - Horizontal
Logo B - Vertical
Colors
Typography
DO
s
& DON'T
s
UNDER CONSTRUCTION


RTL Should work
Toggle Dropdown
Example form in a dropdown.
Name
Rank
Hoverable Dropdown
Just some junk that needs to be said. Or not. Your choice.


Nasus1795.github.io
ION QUICK PLAY LP QUICK START MANUAL Pdf Download. View and Download ION LP2CD quick start manual online. LP2CD Turntable pdf manual download. View and Download ION QUICK PLAY LP quick start manual online. USB-POWERED LP-TO-MP3 TURNTABLE. QUICK PLAY LP Turntable pdf manual download. ION LP2CD QUICK START MANUAL Pdf Download.


Gaetan Almela
Founder of ChromaTilt, MemeDB, and Mobius ML
ABOUT ME
Hey! I see that you've found my resume and I'm overjoyed that you would decide to spend your precious time reading it. So out of respect, I'll promise I'll keep it short.
My name is Gaetan Almela and I'm a French software developer. I moved to America when I was 14 and I've been programming since then.
My projects and awards are listed here on this page and you can click on them to find out more on my GitHub
If you have any questions about my projects, you can contact me directly at<EMAIL_ADDRESS>and I'll be more than happy to get back to you!
EDUCATION
Gulliver Schools— Miami, FL
AUG 2015 - MAY 2019
My high school i what got me into programming. I learned HTML 5 at the end of my freshman year and have continued to learn more since then.
British School of Brussels— Brussels, Belgium
2013 - 2014
This is where I learned to solve a rubik's cube for the first time. It's also where I was introduced to the idea of programming.
Mougins School— Mougins, France
2011 - 2013 / 2014 - 2015
This is where I learned english.
Ecole des Maurettes— Villeneuve Loubet, France
2007 - 2011
General troublemaker, professional doodler.
OUTREACH
Amazon France— Scraping sales websites
GRADE 12
I built a web scraper that Amazon in France uses to scrape sales websites and facilitate their work.
Minds DB— Machine Learning with UC Berkeley
GRADE 12
I contributed to mindsdb, a machine learning library started by UC berkeley students. I added the entire section about adding the library to Google colab. You can find more about the project here
Breakthrough Miami— Helping children in developing areas
GRADE 10 - GRADE 12
Breakthrough Miami is a club in which we teach middle schoolers STEM related topics such as computer science, engineering and biomedical.
PROJECTS
Mobius ML— A tool for quadriplegics using Machine Learning
GRADE 12
Using a 3 layer feedforward Neural network built in tensorflow.js, this tool uses facial recognition to allow quadriplegics to move around with minimal effort and very little costs.
An app for iOS is in the works.
MemeDB— A Social Network Database
FEB 16 2017 - ONGOING
A social Network/database optimised for memes made to categorise, classify and understand the internet’s humor. It comprises of an app a website and a database which are currently in developement.
I plan to use this data for personal research with machine learning, however I also plan on releasing public datasets for anyone to use.
Unfortunately, for security reasons, the project was recently made private. Please contact me at<EMAIL_ADDRESS>if you would want to know more about it
ChromaTilt— An App for people with colorblindness
GRADE 11
An app meant for people with colorblindness available on the Google Play Store. It shifts the colors of the camera on your screen so people can better distinguish between colors. This was my first application
The App Will be updated to support iOS by switching to React Native
PuzzleTimer— An App for Rubik’s Cube speedsolving
GRADE 11 - ONGOING
An App built using React Native that synchronizes rubik’s cube times across both the website and the app.
Magic!— An App to facilitate Mathematics
GRADE 12 - ONGOING
Allows the user to handwrite mathematical equations or operations on their devices.
Equations are interpreted using a Neural Net and values can be assigned to the variables manually.
Manipulation of equations is extremly intuitive (i.e. dragging variables around) allowing for complex operations and function chains.
SKILLS
Languages HTML, CSS, Java, C++, Javascript, Python
Frameworks p5.js, JQuery, React Native, Node js
Can work with Illustrator, Photoshop, After Effects and Premiere Pro
Experienced with full stack developement
Can solve a Rubik’s cube in under 12 seconds
AWARDS
Published social scientist in the journal of Gulliver Principles of Social Science - Who controls the Web
Winner of the 2017 Congressional App Challenge for ChromaTilt
Member of French Honor Society
LANGUAGES
Fluent English both in reading and writing.
Fluent in French as first language.


Coronavirus Disease (COVID-19)
PLEASE NOTE:
Infectious agent:
severe acute respiratory syndrome coronavirus2 (SARS-CoV-2)
Situation Summary:In December 2019, Chinese health authorities identified an outbreak of pneumonia associated with a novel, or new, coronavirus which has resulted in thousands of confirmed cases in China. Additional cases have been identified in a growing number of other international locations, including the United States. There are ongoing investigations to learn more. Click here to access CDC’s COVID-19 webpage for the most up to date information: https://www.cdc.gov/coronavirus/2019-nCoV/index.html
For Vendors wanting to provide their services to help the state respond:
For Donations:
TEMA's site for private sector PPE donations
https://www.tn.gov/tema/news/2020/3/23/private-sector-ppe-donations.html
|
Laboratory Type |
Positive Test |
Negative Tests |
Total |
|---|---|---|---|
|
State PH Lab |
111 |
1,111 |
1,222 |
|
Non-State PH Lab |
846 |
12,841 |
13,687 |
|
Total |
957 |
13,952 |
14,909 |
|
* Please note, these data are meant to provide a rough estimate ** Laboratory reports of positive cases are reported to metro and local health departments as soon as results are available. State numbers are updated at 2pm daily and there may be a lag in the reporting of cumulative numbers at the state level. |
| Hospitalizations | 76 |
|---|---|
| Information about hospitalization status is gathered at the time of diagnosis, therefore this information may be incomplete. This number indicates the number of patients that were Information about hospitalization status is gathered at the time of diagnosis, therefore this information may be incomplete. This number indicates the number of patients that were ever |
| Fatalities | 3 |
|---|---|
| Some deaths may be reported by health care providers, hospitals, medical examiners, local health departments, or others before they are included in the statewide count. |
|
Age Ranges of Confirmed Cases
|
|
|---|---|
| 0-10 | 13 |
| 11-20 | 56 |
| 21-30 | 260 |
| 31-40 | 161 |
| 41-50 | 151 |
| 51-60 | 141 |
| 61-70 | 96 |
| 71-80 | 56 |
| 80+ | 16 |
| Pending | 7 |
| Total | 957 |
|
County |
Cases |
|---|---|
|
Anderson County |
3 |
|
Bedford County |
1 |
|
Benton County |
1 |
|
Blount County |
4 |
|
Bradley County |
5 |
|
Campbell County |
2 |
|
Cannon County |
1 |
|
Carroll County |
3 |
|
Cheatham County |
7 |
|
Chester County |
2 |
|
Claiborne County |
2 |
|
Cocke County |
1 |
|
Cumberland County |
6 |
|
Davidson County |
203 |
|
Dekalb County |
2 |
|
Dickson County |
7 |
|
Dyer County |
3 |
|
Fayette County |
3 |
|
Franklin County |
3 |
|
Gibson County |
2 |
|
Greene County |
8 |
|
Grundy County |
1 |
|
Hamblen County |
2 |
|
Hamilton County |
28 |
|
Hardin County |
1 |
|
Hawkins County |
1 |
|
Houston County |
2 |
|
Jefferson County |
4 |
|
Knox County |
26 |
|
Lewis County |
2 |
|
Lincoln County |
1 |
|
Loudon County |
6 |
|
Macon County |
1 |
|
Madison County |
2 |
|
Marion County |
2 |
|
Maury County |
7 |
|
McMinn County |
3 |
|
Meigs County |
1 |
|
Monroe County |
2 |
|
Montgomery County |
6 |
|
Overton County |
1 |
|
Perry County |
1 |
|
Putnam County |
11 |
|
Roane County |
1 |
|
Robertson County |
20 |
|
Rutherford County |
27 |
|
Scott County |
1 |
|
Sevier County |
3 |
|
Shelby County |
147 |
|
Sullivan County |
4 |
|
Sumner County |
43 |
|
Tipton County |
8 |
|
Unicoi County |
1 |
|
Washington County |
9 |
|
White County |
1 |
|
Williamson County |
70 |
|
Wilson County |
13 |
|
Pending |
112 |
|
Out of TN |
117 |
|
Grand Total |
957 |
This data changes rapidly as labs conduct tests and identify new cases. Labs assign those cases to a county or leave that information blank. Metro and regional health departments then determine the appropriate county of jurisdiction during their public health investigation. We’re working to reduce the “pending” number to 0. Contact the local health department for county specific information. Cases among Tennessee residents are counted by their county of residence. Residents of other states who were tested at Tennessee healthcare facilities are counted as “Out of TN”.
- Learn more about this disease
- What to Expect After Being Diagnosed
- What to Expect If You Were Possibly Exposed
- What to Expect After Being Tested
- CDC Guidance for Travelers
- Facility Visitor Guidance
- Interim Guidelines: Businesses & Employers
- Interim Guidelines: Mass Gatherings/Large Community Events
- Guidance for Faith-Based Organizations
- Food Handler Guidance
- Guidance for Hotels
- Guidance for Tattoo and Piercing Parlors
- Funerals
-
Multilingual COVID-19 Resources
- Triage and assessment
- Clinical information about this disease
- Report a case of this disease
- Submit a specimen for laboratory testing
- Strategies for Optimizing the Supply of N95 Respirators
- TDH COVID-19 Webinars for Health Care Providers
- PPE Conservation Guidance
- Application for Executive Order
- Guidance for Healthcare Workers Diagnosed with COVID
- Guidance for HealthCare Workers Returning to Work after COVID Illness
- Extended Use and Re-Use of N95s
- Extended Use and Re-Use of Facemasks
- Extended Use and Re-Use of Eye Protection
- CDC Daily Key Points
- TDH traveler interview guide
- TDH contact tracing guide
- TDH contact interview script
- TDH active monitoring full guidance
- TDH active monitoring quick guide
- Guidance for returning travelers
- Triage and assessment
- TDH Release from Isolation and Quarantine
- CDC PUI Form
- Processing OOT Cases in NBS
- COVID19 Healthcare Tabletop Exercise Facilitator Manual
- COVID19 Healthcare Tabletop Facilitator PPT
- COVID19 Healthcare Tabletop Exercise for Participants
- COVID19 Practice Scenario for Education Facilitator Manual
- COVID19 Practice Scenario for Education Facilitator PPT
- COVID19 Practice Scenario for Education Situation Manual
- COVID19 Practice Scenario for Higher Education Facilitator Manual
- COVID19 Practice Scenario for Higher Education Facilitator PPT
- COVID19 Practice Scenario for Higher Education Situation Manual
-
TDH: Group Care Settings
- TDH: Correctional Facilities
- TDH: Homeless Shelters and Facilities
- TDH: Homeless Shelter Client Triage Guide
- TDH: Homeless Shelter COVID-19 FAQs
- TDH: Resources for Homeless Shelters
- CDC: People Experiencing Homelessness
- CDC: Homeless Service Providers
- CDC: Retirement Communities and Independent Living
- CDC: Correctional and Detention Facilities


--- layout: post title: TDD Caveat | How not to follow Test Driven Development categories: - Developer Deep Dive status: publish type: post published: true meta: _edit_last: '16' _wp_old_slug: tdd-caveat%e2%80%93-how-not-to-follow-test-driven-development dsq_thread_id: '833906870' _aioseop_keywords: TDD, Test-Driven-Development,Mocks, Refactoring, Loosely-Coupled, Highly-Cohesive, CommandProcessor MvcContrib _aioseop_description: Learning from my experiment with TDD. This post is to help make distinction between where TDD should be applied vs where it is best not to use. _aioseop_title: TDD Caveat | How not to do Test Driven Development (TDD) _podPressPostSpecific: a:6:{s:15:"itunes:subtitle";s:15:"##PostExcerpt##";s:14:"itunes:summary";s:15:"##PostExcerpt##";s:15:"itunes:keywords";s:17:"##WordPressCats##";s:13:"itunes:author";s:10:"##Global##";s:15:"itunes:explicit";s:7:"Default";s:12:"itunes:block";s:7:"Default";} ---
TDD or Test Driven Development was considered an industry buzz for a while. Now a days it is considered more of a main stream development methodology. we, at Headspring, are among those early adopters who likes to walk on cutting edge technologies.
Over last 5 year, I have transition through different stages of mind set when it comes to unit testing or TDD in general. As an early adoptor I was curious to know to what extend we can take this concept. At this stage, my unit test looked more state testing i.e
[Test]
public void Should_Add_Two_Number()
{
var number1 = 100;
var number2 = 50;
var sum = number1 + number2;
sum.ShouldEqual(150);
}
As I moved further and realize power of maintainability and loosely coupled design, I started designing solution in terms of interfaces. With that my knowledge on TDD expanded towards interaction testing. Mocking frameworks like Rhino.Mock and Moq, TypeMock etc emerged during that timeframe to support such testing scenarios. And those test now started looking like this:
[Test]
public void Use_Is_Anything_when_args_are_not_important()
{
const int intToReturn = 5;
_stub = MockRepository.GenerateStub<ISampleInterface>();
_stub.Stub(s => s.MethodThatReturnsInteger("foo")).Return(intToReturn);
_stub.MethodThatReturnsInteger("foo").ShouldEqual(intToReturn);
}
Exploring further, I started utilizing more features provided by those mocking framework. Now you have way to not only ensure method on stub/mock returns predictable value, but also make assertion that it was called with right argument. Taking this even further, when you have more services to interact with, these frameworks have option to assert sequence in which you call them. Example of first case may look like this:
[Test]
public void Use_GetArgumentsForCallsMadeOn_to_inspect_arguments()
{
var interactor = new InteractingClass();
interactor.CallTheInterfaceTwice(_mock);
IList<object[]> argsPerCall = _mock.GetArgumentsForCallsMadeOn(m => m.MethodThatReturnsInteger(null));
argsPerCall[0][0].ShouldEqual("foo");
argsPerCall[1][0].ShouldEqual("bar");
}
Picture looked quite rosy here until I passed over excitement phase and entered phase of maintaining such software. Refactoring such code became painful job now. That is precisely because I have my logic duplicated at two places, one in production code and one in test. Every single change that I make in production code has to be reflected into test interaction as well. This is direct violation of fundamental principle of OOP. This indeed is one of the code-smell whose root is buried in wrong choice of underlying software design.
Now let’s step back and analyze what has gone wrong over this journey. Moving from state base test into interaction base test has its value under certain situation. However as we move towards “loosely coupled” and “highly cohesive” software architecture design, underlying elements are all services that works together to achieve given use case. Unit testing at those service level yields sweet fruit in terms of coverage and confidence in being able to refactor codebase at any give time. However there is little value in testing interaction between these services and their sequencing with much of mocks.
Big question that remains here then would be “How do I ensure those end to end scenarios are covered under test?”. Well, the answer is hidden inside question itself. Coverage on “End to end scenarios” needs “End to End” testing. That’s exact where Integration test has real value to demonstrate. For the case of web page which let user fill in form and take some action, typically such integration test will include testing all but the actual UI layer. In language of CommandProcessor from MvcContrib, it is called PageTester. Last but not least is UI Tests which ensures application level configuration and environment is set up correctly.
Till next time. Code smartly.
Interested in Agile? Download a Copy of our Whitepaper 'The Agile Difference' on our Whitepapers page


As as student of life, I have alot of experience. One of my first experiences was joining the military and a young age. I have traved the world and seen many cultures. Currently I plan on learning as much about life as possible.
As a developer I love to help and assist other people, I enjoy talking with and listening to other peoples creative ideas. I used to be a former professional chef for the United States Coast Guard. This allowed for me to be very creative with the way I make food or product. This is the same way for me write code and perform things that I have never done before. Creating code that allows me to be creative in the ways that I can develop certain code and make fun projects like games.!!!
Here is a list of Countries that I have visited


--- layout: basic title: Thank You description: "We have received your contact email." class: basic ---


{include file="public/header" /}
{include file="public/nav" /}
{__CONTENT__}
{include file="public/footer" /} {include file="public/js" /}