Dell EMC | November 2021 - Present
Working as a Software Engineer in Storage Data Protection and Recovery in Cloud
Tata Consultancy Services | January 2020 - November 2021
Working as a Software Engineer in Cloud Infrastructure
Aryabhatta Robotics | June '19 - Aug '19
Worked on an end to end Computer Vision based software which included Face Recognition, Object Detection, Eye Gaze tracking, etc.
Responsibility includes training of neural nets and the deployment.
Azuik Technologies | Oct'18 - Dec'18
Here I have worked on implementation of NLP systems, test and validated software functionalities.
Udiyate Technologies | May'18 - July'18
Udiyate is an IIT Bombay SINE incubated startup, that mostly works on AI, IoT, robotics, analytics, product design and development.
Here I have worked on real time object detection for some custom objects. Designed the whole pipeline (data collection & preparation, annotation, modelling, fine-tuning),experimented with different model architectures (YOLO-v2, Faster-RCNN, SSD). Also monitored the model performance using Tensorboard. Used Tensorflow along with other python libraries like OpenCV, matplotlib, numpy. The best part arrived when I read the arxiv-paper for different models and tried implementing some from scratch.


pyfos_class_manager
- PyFOS module to Manage all pyfos classes.¶
The pyfos_class_manager
Provides the management functionality
for all REST supported classes.
-
class
pyfos_class_manager.
clsmanager
¶ class for management of all the rest supported classes.
-
classmethod
addsession
(session, username, passwd)¶ Add the session for session management for Callback handling support.
-
classmethod
cbhandler
(session, cb_input)¶ Callback Handler function to execute all callbacks
-
classmethod
clsglobalinit
(logenable=0)¶ Init the globals for class Manager
-
classmethod
clsorderinginit
(slots)¶ Init the class ordering for class Manager
-
classmethod
diffignoreattrib
(instcls)¶ Get the list of ignored attrib in diff Calculation.
-
classmethod
getAllCls
()¶ Get all the class list
-
classmethod
getAllOperation
()¶ Get all the HTTP operation per config stages for a class.
-
classmethod
getClsStageCB
(instcls, stage, slot)¶ Get the ordering config stage CallBack handler per pyfos class.
-
classmethod
getClsStagePri
(instcls, stage, slot)¶ Get the ordering config stage priority per pyfos class.
-
classmethod
getClsStageSupported
(instcls, stage, slot)¶ Get the ordering config stage Stage supported per pyfos class.
-
classmethod
getConfigOperation
(stage)¶ Get the HTTP operation for a given config stage.
-
classmethod
getConfigStages
()¶ Get all the config stages for all classes.
-
classmethod
getContainerfromCls
(clsname)¶ Get the container from class name for all pyfos class.
-
classmethod
getInstacefromContainer
(container, valuedict=None)¶ Get the Instance of class based on container name for all pyfos class.
-
classmethod
getInstacefromcls
(clsname, valuedict=None)¶ Get the Instance of class based on clsname for all pyfos class.
-
classmethod
getSlotAttrib
(obj)¶ Get the slot attribute for a pyfos class object.
-
classmethod
getSlotforObject
(obj)¶ Get the slot from the class object.
-
classmethod
getbladeslots
(ret)¶ Get the blade slots as per blade response
-
classmethod
getcallback
(cmd, arg)¶ Get the Callback Handler list per config stage/class.
-
classmethod
getclasspatchstage
(instcls, obj)¶ This is to get the patch stage for the class object based on diff default stage is PRE_PATCH.
-
classmethod
getclsfromcontainer
(container)¶ Get the class from container name for all pyfos class.
-
classmethod
getclskey
(tmpcls, op, slot)¶ Get the class key for all pyfos class.
-
classmethod
getclsoptions
(tmpcls, session=None)¶ Set the OPTIONS for all pyfos class.
-
classmethod
getmultiplesheetdict
(container)¶ Get the sheet dictionary per class for dump and load configuration.
-
classmethod
getordering
(instcls, stage, slot)¶ Get the ordering config stage per pyfos class.
-
classmethod
getpriPridict
(instcls, stage)¶ Get the pridict per stage per pyfos class.
-
classmethod
getreinitsessioncallback
(arg)¶ Get the Dup/Reinit session Callback.
-
classmethod
getsessionpasswd
(session)¶ Get the session password from session
-
classmethod
getsessionuser
(session)¶ Get the session user from session
-
classmethod
getsleepcallback
(arg)¶ Get the sleep Callback Handler as per delay args in seconds.
-
classmethod
getsortedlist
(op, slot)¶ Get a sorted list based on the priority per config stage per slot for all class.
-
classmethod
initConfigstages
()¶ Init the class config stages for class Manager
-
classmethod
initSlotObjectDict
()¶ Init the slot object dict for mapping slot attribute per pyfos class.
-
classmethod
initlogger
(app)¶ Init the logger infra for class Manager
-
classmethod
initoptionsdict
()¶ Init the optionsdict per pyfos class.
-
classmethod
initordering
()¶ Init the ordering per pyfos class.
-
classmethod
initorderingclsslot
(instcls, stage, slot)¶ Init the ordering per slot per pyfos class.
-
classmethod
initpridict
()¶ Init the pridict per config stage per pyfos class.
-
classmethod
isConfigClass
(tmpcls, session=None)¶ Check if a class is supported for config operation.
-
classmethod
isSingletonClass
(tmpcls)¶ Check if the class is a singleton class.
-
classmethod
isSlotBasedObject
(instcls)¶ Check is the class is object are slot based.
-
classmethod
isValidrequest
(mgr, fid, op, tmpcls, slot, session=None)¶ Check if an config operation for a class is valid.
-
classmethod
ispostSupportedClass
(tmpcls, session=None)¶ Check if a class is supported for config operation.
-
classmethod
log
(lvl, *msg)¶ add the log messages
-
classmethod
logbase
(loggerObj, lvl, messages)¶ add the log messages
-
classmethod
mapClsfunction
(fname)¶ Map the classmethod function for all pyfos class.
-
classmethod
mapInstacefunction
(fname)¶ Map the Object function for all pyfos class.
-
classmethod
printordering
()¶ Display the ordering for all pyfos class.
-
classmethod
pristage
(instcls)¶ The stage priority ordering per config stage for all class.
-
classmethod
reinitsession
(arg, session)¶ Callback Handler to reinit the session.
-
classmethod
resetClsStageSupported
(instcls, stage, slot, supported=False)¶ Reset the ordering config stage supported per pyfos class.
-
classmethod
sanitize
(instcls, old)¶ These are all conditional based set operation and defaults ignore settings as per yang being handled for class objects. They can be further handled separately per HTTP operation as well based on the diff operations identified individually for the objects as well.
-
classmethod
sessionkey
(session)¶ Get the session key authorization.
-
classmethod
setClsStageCB
(instcls, stage, slot, CB)¶ Set the ordering config stage CallBack handler per pyfos class.
-
classmethod
setClsStagePri
(instcls, stage, slot, pri)¶ Set the ordering config stage priority per pyfos class.
-
classmethod
setClsStageSupported
(instcls, stage, slot, supported=True)¶ Set the ordering config stage supported per pyfos class.
-
classmethod
setclsoptions
(tmpcls, session)¶ Set the OPTIONS for a pyfos class.
-
classmethod
setoptions
(session)¶ Set the OPTIONS for all pyfos class.
-
classmethod
setpriPridict
(instcls, stage, pri)¶ Set the pridict per stage per pyfos class.
-
classmethod
sleep
(delay, session)¶ Callback Handler to sleep the session.
-
classmethod
stageordering
(instcls, old, new)¶ The stage ordering check and handling support for Callack handling.
-
classmethod
updateordering
(instcls, stage, slot, supported, pri, CB=None)¶ Set/update the ordering/config stage per pyfos class.
-
classmethod
See also
Module pyfos_config_manager
Module pyfos_rule_manager


PDF:
Click here for the PDF of my Web Presence Project Proposal
PDF:
Click here for the PDF of my Balsamiq Mockups


MShoot¶
-
class
mshoot.
MShoot
(cfun)¶ Bases:
object
-
static
cfun
(ux, *args)¶ Cost function applied to all intervals.
ux contains free inputs and adjoint states.
-
extend_bounds
(bounds, n)¶ Unfold scalar bounds to constant vectors. All scalar bounds are copied to n-element arrays.
Parameters: bounds – list(tuple) Paran n: int Returns: array, indexing: [variable][lo/up][interval]
-
static
f_eqcons
(ux, *args)¶ Equality constraints for adjoint variables. SLSQP tries to keep all elements of discont equal to 0.
ux contains free inputs and adjoint states.
-
static
jac
(ux, *args)¶ Calculate Jacobian of the cost function.
ux contains free inputs and adjoint states.
-
norm_ubounds
(ubounds, unominal)¶ Normalize bounds formatted as: [(lo1, hi1), (lo2, hi2), …, (lon, hin)]
Return in the same format.
-
optimize
(model, inp, free, ubounds, xbounds, x0, uguess=None, unominal=None, ynominal=None, join=1, maxiter=50)¶ Multiple shooting in which the problem is transcribed into a single sparse NLP with adjoint variable continuity conditions.
ubounds has to be a list of 2-tuples of floats (one tuple per free input).
xbounds has to be a list of 2-tuples of floats or vectors (one tuple per state). Floats are used for constant bounds. Vectors can be used to define time-varying bounds. The size of a vector must be N+1, where N is the number of rows in inp.
join can be used to solve on a coarser mesh. By default join equals to 1, meaning each interval is treated separately. On larger problems it may be usefull to merge intervals though (less adjoint variables).
Return a tuple with 2 DataFrames: udf with optimized free inputs and xdf with resulting adjoint states. Note that xdf has one more row than udf (for final state).
If x0 doesn’t lie in the feasible region, it will be automatically adjusted.
The shape of uguess should be (n_intervals, n_free_inputs). The number of intervals equals to
inp.index.size - 1
.Parameters: - model – SimModel, control model
- inp – DataFrame, fixed inputs, index with time
- free – list, names of free inputs
- ubounds – list of tuples, free input bounds
- xbounds – list of tuples, state bounds
- x0 – 1D array, initial state
- uguess – 2D array, initial guess for free inputs
- ynominal – list, nominal values of outputs (for regularization)
- join – int, number of intervals to join (default 1)
- maxiter – int, maximum number of iterations (default 50)
Returns: udf, xdf (two DataFrames with optimized inputs and states)
-
slice_bounds
(bounds, nrows)¶ Slice bounds into
n = steps // (nrows-1)
parts.Each bound must be given as a tuple of vectors. Each vector element represents the bound for a specific time.
Return:
list(list(tuple(float, float))) | | | ^ lo. ^ up. bound | | ^ variable | ^ period ^ list of periodsParameters: - bounds – list(tuple(vector, vector))
- nrows – int
Returns: list(list(tuple(float, float)))
-
slice_inputs
(inp, nrows)¶ Slice inp into even adjacent parts with nrows each.
Parameters: - inp – DataFrame
- nrows – int
Returns: list of DataFrames
-
test_input
(u, unames, model, inp, x0)¶ Test input u. u is assumed to be time-varying, but is given as a flattened array (vector) of length:
len(unames) * inp.index.size
.Parameters: - u – vector, flattened inputs
- unames – list(str)
- model – SimModel
- inp – DataFrame
- x0 – vector
Returns: ydf (DataFrame), xdf (DataFrame)
-
test_input_const
(u, unames, model, inp, x0)¶ Test input u. u is assumed to be constant, so must be given as a 1D array (vector) of length
len(unames)
.Parameters: - u – vector, constant inputs
- unames – list(str)
- model – SimModel
- inp – DataFrame
- x0 – vector
Returns: ydf (DataFrame), xdf (DataFrame)
-
trim_to_bounds
(xt, bounds)¶ Returns xt if lies within bounds, otherwise returns the nearest bound.
Parameters: - xt – vector, state at time t
- bounds – list(tuple), bounds for each state
Returns: vector
-
x0_within_bounds
(x0, bounds)¶ Return a tuple of two tuples, each containing one bool per state. The booleans are True is respective bounds are not violated.
The first tuple refers to the lower bound. The second tuple refers to the upper bound.
Parameters: - xt – vector, state at time t
- bounds – list(tuple), bounds for each state
Returns: tuple(tuple(bool, …), tuple(bool, …))
-
static


Security Questions
Security Question 1(Select from the Options)
What is the name of your first pet?
What is the name of the city you were born?>
What is favorite childhood memory?

Who was your childhood hero?
Security Question 2(Select from the Options)
What was your fav toy as a kid?
What is the name of your first grade teacher?
In what city or town did your mother and father meet?
What is the name of your favorite childhood friend?
What is your oldest sibling's middle name?
Register Now


Runtime variables for Time Sync implementation. More...
#include <icss_timeSyncApi.h>
Data Fields | |
| uint8_t | enabled |
| uint8_t | stateMachine |
| PTP State machine used internally by driver This is a bitmap Bit 0 : Set 1 if First adjustment done Bit 1 : Set 1 if delay has been computed Bit 2 : Set 1 if sync interval has been computed Bit 3 : Set 1 if device is in sync with master if first 3 bits are set then clock adjustment is performed. More... | |
| uint16_t | pDelReqSequenceID [NUM_PORTS] |
| uint16_t | delReqSequenceID |
| uint16_t | syncSequenceID |
| uint16_t | announceSequenceID |
| uint16_t | curSyncSeqId [NUM_PORTS] |
| uint32_t | currSyncInterval |
| uint32_t | ltaSyncInterval |
| uint32_t | firstSyncInterval |
| int32_t | currOffset |
| int32_t | prevOffset |
| int32_t | initialOffset |
| uint8_t | syncPortNum |
| uint32_t | pathDelay [NUM_PORTS] |
| uint32_t | clockDrift |
| uint32_t | avgCorrectionField |
| uint64_t | tickCounter |
| uint32_t | syncLastSeenCounter |
| uint32_t | syncTimeoutInterval |
| uint8_t | forced2step [NUM_PORTS] |
Runtime variables for Time Sync implementation.
| uint16_t timeSync_RuntimeVar_t::announceSequenceID |
Sequence ID used for announce frames
| uint32_t timeSync_RuntimeVar_t::avgCorrectionField |
Running average of correction field in Sync frame
| uint32_t timeSync_RuntimeVar_t::clockDrift |
Difference between current and previous offset
| int32_t timeSync_RuntimeVar_t::currOffset |
Offset from master : current value
| uint32_t timeSync_RuntimeVar_t::currSyncInterval |
Sync interval between last two sync frames
| uint16_t timeSync_RuntimeVar_t::curSyncSeqId[NUM_PORTS] |
Current sequence id from Sync frame
| uint16_t timeSync_RuntimeVar_t::delReqSequenceID |
Sequence ID used for Delay request frames
| uint8_t timeSync_RuntimeVar_t::enabled |
Enable/Disable status
| uint32_t timeSync_RuntimeVar_t::firstSyncInterval |
First sync interval value
| uint8_t timeSync_RuntimeVar_t::forced2step[NUM_PORTS] |
Flag to indicate that forced 2-step mode is active
| int32_t timeSync_RuntimeVar_t::initialOffset |
Initial offset. Taken when adjustment settles down.
| uint32_t timeSync_RuntimeVar_t::ltaSyncInterval |
Long term average calculated using an exponential filter
| uint32_t timeSync_RuntimeVar_t::pathDelay[NUM_PORTS] |
Line delay or Peer Delay for each port
| uint16_t timeSync_RuntimeVar_t::pDelReqSequenceID[NUM_PORTS] |
Sequence ID to be sent for Delay Request/Pdelay Request packets
| int32_t timeSync_RuntimeVar_t::prevOffset |
Offset from master : present value
| uint8_t timeSync_RuntimeVar_t::stateMachine |
PTP State machine used internally by driver This is a bitmap Bit 0 : Set 1 if First adjustment done Bit 1 : Set 1 if delay has been computed Bit 2 : Set 1 if sync interval has been computed Bit 3 : Set 1 if device is in sync with master if first 3 bits are set then clock adjustment is performed.
PTP State machine. This is a bitmask
| uint32_t timeSync_RuntimeVar_t::syncLastSeenCounter |
Ageing counter to detect missed Sync frames
| uint8_t timeSync_RuntimeVar_t::syncPortNum |
Port number on which master is connected
| uint16_t timeSync_RuntimeVar_t::syncSequenceID |
Sequence ID used for Sync frames
| uint32_t timeSync_RuntimeVar_t::syncTimeoutInterval |
Ageing counter is compared against this value to detect missed sync frames. 1.5x the sync interval
| uint64_t timeSync_RuntimeVar_t::tickCounter |
background tick counter, increments inside TimeSync_BackgroundTask()


Overview
Country Filter
Weather Filter
Wind Filter
Captain's Logs
Info Panel
Change Projection and Reset Map
Time Filter
Overview: Introductory information and how to navigate Wooden Ships.
Country Filter: Filter ships by country. Choose between British, Dutch, French, and Spanish ships. Only one country can be displayed at a time!
Weather Filter: Filter by weather observations to see weather patterns over the high seas. Choose between snow, thunder and lightning, rain, sea ice, hail, gusty winds, fog, and air temperature.
Wind Filter: Filter by both wind direction and wind speed to see wind patterns across the oceans.
Captain's Log: What observations were naval captains making on their voyages? Use this feed to cue into observations about weather, travel info, conflicts, life on board, or other encounters. Simply click on a hexbin.
Info Panel: Use the info panel to get a summary of weather conditions at sea. Hover over a hexbin to see corresponding air temp, wind speed, wind direction, and air pressure.
Change Projection and Reset Map: Change your projection from Robinson, a compromise project (yes, we know this isn't correct), to a cylindrical equal-area (the optimal choice for a hexbin choropleth), to a globe (otherwise known as snazzy eye candy).
Time Filter: See ships that were out at sea at certain points in time. Simply scroll the bar through time sequence. To adjust the time-period you wish to filter by, drag the bar at either end to resize.
Wooden Ships explores European maritime activity and observations from 1750 to 1850. The data consists of logbook entries written by the captain of each ship. The location of each ship is spatially aggregated in hexagonal bins. Filter the map by country or time to better understand varying shipping patterns by colonial powers. Hover over the ships or hexbins to view summary weather statistics. Click a hexbin to view handwritten log entries about weather observations as well as candid events at sea from the captains! Select ships with particular weather or climatic features, such as temperature recordings or encounters with sea ice. Check out wind speed patterns across the Atlantic. This application will enhance your understanding of the geography and environmental history of maritime trade!
Data sources: Climatological Database for the World's Oceans 1750-1850 for digitized shipping logs, Natural Earth for line work, and The Noun Project for icons.
Cartographers/developers/designers/shipping enthusiasts: Scott Farley, Starr Moss, and Meghan Kelly.


Struct Player
Represents the index of the user in a IMultiplayerGame.
Acts as a wrapper for System.Int32, like an enum.
Inherited Members
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.ReferenceEquals(System.Object, System.Object)
Assembly: Pacman.dll
Syntax
[DataContract]
[JsonConverter(typeof(Player.PlayerJsonConverter))]
public struct Player
Fields
|
Improve this Doc
View Source
Blue
Declaration
public static readonly Player Blue
Field Value
|
Improve this Doc
View Source
ColorNames
Standard player color names for multiplayer games.
Declaration
public static readonly string[] ColorNames
Field Value
| Type |
Description |
| System.String[] |
|
|
Improve this Doc
View Source
Green
Declaration
public static readonly Player Green
Field Value
|
Improve this Doc
View Source
None
Declaration
public static readonly Player None
Field Value
|
Improve this Doc
View Source
Orange
Declaration
public static readonly Player Orange
Field Value
|
Improve this Doc
View Source
Purple
Declaration
public static readonly Player Purple
Field Value
|
Improve this Doc
View Source
Red
Declaration
public static readonly Player Red
Field Value
|
Improve this Doc
View Source
RgbColors
Standard player colors for multiplayer games.
Declaration
public static readonly Color[] RgbColors
Field Value
| Type |
Description |
| Discord.Color[] |
|
|
Improve this Doc
View Source
Tie
Declaration
public static readonly Player Tie
Field Value
|
Improve this Doc
View Source
Yellow
Declaration
public static readonly Player Yellow
Field Value
Properties
|
Improve this Doc
View Source
Color
Returns the Discord.Color that represents this player.
Declaration
public Color Color { get; }
Property Value
| Type |
Description |
| Discord.Color |
|
|
Improve this Doc
View Source
ColorName
Returns the name of the color that represents this player.
Declaration
public string ColorName { get; }
Property Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Opponent
Returns the opposing player in a two-player game.
Declaration
public Player Opponent { get; }
Property Value
Methods
|
Improve this Doc
View Source
Circle(Boolean)
Returns this player's circle custom emoji.
Declaration
public string Circle(bool highlighted = false)
Parameters
| Type |
Name |
Description |
| System.Boolean |
highlighted |
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Equals(Object)
Declaration
public override bool Equals(object obj)
Parameters
| Type |
Name |
Description |
| System.Object |
obj |
|
Returns
| Type |
Description |
| System.Boolean |
|
Overrides
System.ValueType.Equals(System.Object)
|
Improve this Doc
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
| Type |
Description |
| System.Int32 |
|
Overrides
System.ValueType.GetHashCode()
|
Improve this Doc
View Source
Symbol(Boolean)
Returns this player's Tic-Tac-Toe symbol custom emoji.
Declaration
public string Symbol(bool highlighted = false)
Parameters
| Type |
Name |
Description |
| System.Boolean |
highlighted |
|
Returns
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
ToString()
Declaration
public override string ToString()
Returns
| Type |
Description |
| System.String |
|
Overrides
System.ValueType.ToString()
Operators
|
Improve this Doc
View Source
Implicit(Player to Int32)
Declaration
public static implicit operator int (Player player)
Parameters
| Type |
Name |
Description |
| Player |
player |
|
Returns
| Type |
Description |
| System.Int32 |
|
|
Improve this Doc
View Source
Implicit(Int32 to Player)
Declaration
public static implicit operator Player(int value)
Parameters
| Type |
Name |
Description |
| System.Int32 |
value |
|
Returns


Main Page
From today's featured articleSergo Ordzhonikidze (1886–1937) was a Bolshevik and Soviet politician from Georgia. Joining the Bolsheviks at a young age, he became an important figure and was arrested repeatedly. After the Bolsheviks came to power in 1917, he oversaw the invasions of Azerbaijan, of Armenia, and of Georgia. He backed their union into the Transcaucasian Socialist Federative Soviet Republic in 1922, one of the original Soviet republics, and served as its first secretary until 1926. He then oversaw Soviet economic production and led a massive overhaul; he implemented five-year plans, helped create the Stakhanovite movement and was named to the Politburo. He was reluctant to join the campaign against so-called wreckers and saboteurs in the early 1930s, causing friction with Joseph Stalin. Before a meeting where he was expected to denounce workers, Ordzhonikidze shot himself. He was posthumously honoured, and several towns and cities in the Soviet Union were named after him. (Full article...)
Recently featured:
Did you know ...
|
In the news
On this dayDecember 21: December solstice (10:03 UTC, 2020); Yule begins
More anniversaries:
|
From today's featured list
Procyonids are members of Procyonidae, a family of mammals in the order Carnivora. The family includes raccoons, coatis, olingos, kinkajous, ring-tailed cats, and cacomistles, and many other extant and extinct mammals. They are native to North and South America, though the common raccoon (pictured) has been introduced to Europe, western Asia, and Japan. Procyonid habitats are generally forests, though some are found in shrublands and grasslands as well. The fourteen species of Procyonidae are split into six genera, which are not currently grouped into named clades. Procyonidae is believed to have diverged as a separate family within Carnivora around 22.6 million years ago. Procyonidae includes forty extinct species placed in the six extant and nineteen extinct genera, though due to ongoing research and discoveries the exact number and categorization is not fixed. (Full list...)
Today's featured picture
|
Anne Vallayer-Coster (21 December 1744 – 28 February 1818) was an 18th-century French painter, best known for her still-life works. When she was 26, she was admitted to the prestigious Académie royale de peinture et de sculpture; Vallayer-Coster was one of only four women to be accepted into the Académie before the French Revolution, in a period when men dominated the profession. By 1780, she had come under the patronage of Marie Antoinette, after which her career flourished. This 1783 oil-on-canvas portrait, showing Vallayer-Coster at work, is by the Swedish painter Alexander Roslin. The painting is in the collection of the Crocker Art Museum in Sacramento, California. Painting credit: Alexander Roslin
Recently featured:
|
Other areas of Wikipedia
- Community portal – Bulletin board, projects, resources and activities covering a wide range of Wikipedia areas.
- Help desk – Ask questions about using Wikipedia.
- Local embassy – For Wikipedia-related communication in languages other than English.
- Reference desk – Serving as virtual librarians, Wikipedia volunteers tackle your questions on a wide range of subjects.
- Site news – Announcements, updates, articles and press releases on Wikipedia and the Wikimedia Foundation.
- Village pump – For discussions about Wikipedia itself, including areas for technical issues and policies.
Wikipedia's sister projects
Wikipedia is hosted by the Wikimedia Foundation, a non-profit organization that also hosts a range of other projects:
Free media repository
Wiki software development
Wikimedia project coordination
Free textbooks and manuals
Free knowledge base
Free-content news
Collection of quotations
Free-content library
Directory of species
Free learning resources
Free travel guide
Dictionary and thesaurus


To work around some of these deficiencies, the menu used to input vector overlays allows the user to define certain defaults and offsets as described below.
Default Color Color assigned to all entities in the file only where no color is specified Although many formats define colors, shapefiles apparently do not Altiltude Offset Elevations may be defined relative to different vertical datums 2 common datums used are Earth Gravitational Model (EGM96) and mean sea level (MSL). The offset between these 2 datums varies with Lat-Lon, but it can be found on the net. You also may use this to place models slightly above the corresponding features on the map. Overwrite Render-with-map option renders the model along with the map The hidden surface algorithm mixes all elements, showing either map or model as any point, whichever is closer This option MUST be used when filled polygons are used -- otherwise (owing to the graphics library) the model will be completely muddled Overwrite-the-map The model will always overwrite the map even where it is behind it This option is appropriate for wireframes if you want to see lines that may be obscured by the terrain Polygon Fill -- Default fill mode where not defined as in Shapefiles Wireframe-- lines only Filled -- fills all polygons For shapefiles, this will be the solid color defined by the default color (see above) Altitude Mode -- Default mode where the altitude mode is not defined as in Shapefiles Clamp-to-Ground -- all elevations clamped to the ground elevation (unlikely to be used) Relative-to-Ground -- all elevations relative to the ground (unlikely to be used) Absolute -- all elevations absolute, but may be a different datum than the map Relative to Ground HAE -- elevations relative to a attribute defined for each object in the shapefile (GrndHAE if present)You may input the same model twice -- once as filled polygons and once as a wireframe in a contrasting color -- to show the model but highlight the individual polygons that comprise the model.
Elevations Absolute Altitude Mode -- For Multipatch use the 'Absolute" option Absolute -- all elevations absolute, but may be with a vertical datum different than the map Altitude Offset -- For the Belgium map it is 46.98m but will vary with the map You may also want to place models slightly above the corresponding features on the map.Other information:
Features: multiple GDAL GeometryCollection features subfeatures are mutliple GDAL TIN features for the building sides and multiple GDAL MultiPolygon for the roofs Captures: both roof (MultiPolygon) and building sides (TIN) coord system: projected Elevations: absolute Attributes BuildingID Area Perimeter BldHeight GrndHAE GrndMSL
Elevations Relative to attributes defined for each object in the file GrndHAE Attribute defined GrndMSL Attribute defined Altitude Mode -- For Poly-Z use the "Relative to GrndHAE" option Relative to Ground HAE -- elevations relative to a attribute defined for each object in the shapefile Altiltude Offset -- Not needed for Belgium map but may be required for other mapsOther information:
Features: multiple GDAL Polygon and MultiPolygon Captures: rooftops only -- no sides Coord system: geodetic Elevations: relative to ground I think relative to attribute of each feature -- GrndHae (or GrndMsl) Attributes -- same as Multipatch BuildingID Area Perimeter BldHeight GrndHAE GrndMSL


Contents
Add dependencies and download the data.
% Add path to GLMsingle addpath('./../') addpath(genpath('./../utilities')) % You also need fracridge repository to run this code % https://github.com/nrdg/fracridge.git clear clc close all outputdir = 'example2outputs'; % Download files to data directory if ~exist('./data','dir') mkdir('data') end if ~exist('./data/nsdflocexampledataset.mat','file') % download data with curl system('curl -L --output ./data/nsdflocexampledataset.mat https://osf.io/g42tm/download') end load('./data/nsdflocexampledataset.mat') % Data comes from subject1, fLoc session from NSD dataset. % https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>2340v1.full.pdf
clc whos % data -> consists of several runs of 4D volume files (x,y,z,t) where % (t)ime is the 4th dimention. % ROI -> manually defined region in the occipital cortex. It is a binary % matrix where (x,y,z) = 1 corresponds to the cortical area that responded % to visual stimuli used in the NSD project. fprintf('There are %d runs in total.\n',length(design)); fprintf('The dimensions of the data for the first run are %s.\n',mat2str(size(data{1}))); fprintf('The stimulus duration is %.6f seconds.\n',stimdur); fprintf('The sampling rate (TR) is %.6f seconds.\n',tr);
Name Size Bytes Class Attributes data 1x4 662329024 cell design 1x4 4640 cell floc 1x1 1415408 struct outputdir 1x15 30 char stimdur 1x1 8 double tr 1x1 8 double visual 1x1 1415408 struct There are 4 runs in total. The dimensions of the data for the first run are [52 81 42 234]. The stimulus duration is 4.000000 seconds. The sampling rate (TR) is 1.333333 seconds.
figure(1);clf %Show example design matrix. for d = 1:length(design) subplot(2,2,d) imagesc(design{d}); colormap gray; drawnow xlabel('Conditions') ylabel('TRs') title(sprintf('Design matrix for run%i',d)) % axis image end
design -> Each run has a corresponding design matrix where each column describes a single condition (conditions are repeated across runs). Each design matrix is binary with 1 specfing the time (TR) when the stimulus is presented on the screen.
% In this NSD fLOC session there were 10 distinct images shown and hence % there are 10 predictor columns/conditions. Notice that white rectangles % are pseudo randomized and they indicate when the presentaion of each % image occurs. Stimulus details are described here % https://github.com/VPNL/fLoc
figure(2);clf imagesc(makeimagestack(data{1}(:,:,:,1))); colormap(gray); axis equal tight; colorbar; title('fMRI data (first volume)');
Call GLMestimatesingletrial with default parameters.
opt = struct('wantmemoryoutputs',[1 1 1 1]); if ~exist([outputdir '/GLMsingle'],'dir') [results] = GLMestimatesingletrial(design,data,stimdur,tr,[outputdir '/GLMsingle'],opt); models.FIT_HRF = results{2}; models.FIT_HRF_GLMdenoise = results{3}; models.FIT_HRF_GLMdenoise_RR = results{4}; else results = load([outputdir '/GLMsingle/TYPEB_FITHRF.mat']); models.FIT_HRF = results; results = load([outputdir '/GLMsingle/TYPEC_FITHRF_GLMDENOISE.mat']); models.FIT_HRF_GLMdenoise = results; results = load([outputdir '/GLMsingle/TYPED_FITHRF_GLMDENOISE_RR.mat']); models.FIT_HRF_GLMdenoise_RR = results; end
Plot a slice of brain with GLMsingle outputs.
slice_v1 = 20; val2plot = {'meanvol';'R2';'HRFindex';'FRACvalue'}; cmaps = {gray;hot;parula;copper}; figure(3);clf for v = 1 : length(val2plot) f=subplot(2,2,v); imagesc(models.FIT_HRF_GLMdenoise_RR.(val2plot{v})(:,:,slice_v1)); axis off image; colormap(f,cmaps{v}) colorbar title(val2plot{v}) set(gca,'FontSize',20) end set(gcf,'Position',[1224 840 758 408])
Run a standard GLM.
opt.wantlibrary = 0; % switch off HRF fitting opt.wantglmdenoise = 0; % switch off GLMdenoise opt.wantfracridge = 0; % switch off ridge regression opt.wantfileoutputs = [0 1 0 0]; opt.wantmemoryoutputs = [0 1 0 0]; if ~exist([outputdir '/GLMbaseline'],'dir') [ASSUME_HRF] = GLMestimatesingletrial(design,data,stimdur,tr,[outputdir '/GLMbaseline'],opt); models.ASSUME_HRF = ASSUME_HRF{2}; else results = load([outputdir '/GLMbaseline/TYPEB_FITHRF.mat']); models.ASSUME_HRF = results; end
% Now, "models" variable holds solutions for 4 GLM models
disp(fieldnames(models))
'FIT_HRF' 'FIT_HRF_GLMdenoise' 'FIT_HRF_GLMdenoise_RR' 'ASSUME_HRF'
designALL = cat(1,design{:}); % compute a vector containing 1-indexed condition numbers in chronological % order. corder = []; for p=1:size(designALL,1) if any(designALL(p,:)) corder = [corder find(designALL(p,:))]; end end
model_names = fieldnames(models); model_names = model_names([4 1 2 3]); % We arrange models from least to most sophisticated (for visualization % purposes)
% In order to compute split-half reliability, we have to do some indexing. % We want to find all repetitions of the same image. For example we can % look up when during the 4 blocks image 1 was repeated. Each image should % be repeated exactly 24 times. find(corder==1) fprintf('Image 1 was repeated %i times.\n',length(find(corder==1)));
ans = Columns 1 through 13 8 13 17 20 34 57 64 76 85 97 106 114 126 Columns 14 through 24 137 142 151 171 174 195 202 204 214 227 237 Image 1 was repeated 24 times.
% To calculate the split-half reliability we are going to average the odd % and even beta weights extracted from the same condition and calculate the % correlation coefficent between these values. We do this for each voxel vox_reliabilities = cell(1,length(models)); for m = 1 : length(model_names) modelmd = models.(model_names{m}).modelmd; dims = size(modelmd); Xdim = dims(1); Ydim = dims(2); Zdim = dims(3); cond = size(design{1},2); reps = dims(4)/cond; betas = nan(Xdim,Ydim,Zdim,reps,cond); for c = 1 : length(unique(corder)) indx = find(corder == c); betas(:,:,:,:,c) = modelmd(:,:,:,indx); end vox_reliability = NaN(Xdim, Ydim, Zdim); for i = 1:Xdim for j = 1:Ydim for k = 1:Zdim % Calcualte the reliability only for voxels within the % visual and fLOC ROI to save time if visual.ROI(i,j,k) > 0 || floc.ROI(i,j,k) > 0 vox_data = squeeze(betas(i,j,k,:,:)); even_data = nanmean(vox_data(1:2:end,:)); odd_data = nanmean(vox_data(2:2:end,:)); vox_reliability(i,j,k) = corr(even_data', odd_data'); end end end end % store reliablity for each model vox_reliabilities{m} = vox_reliability; end
Compare visual voxel reliabilities between beta versions with V1 and FFA ROIs.
figure(5);clf set(gcf,'Position',[491 709 898 297]) % Show V1 and FFA ROIs slice_v1 = 10; slice_ffa = 3; for s = 1 : 5 subplot(2,5,s) underlay = data{1}(:,:,slice_v1,1); overlay = visual.ROI(:,:,slice_v1)==1; underlay_im = cmaplookup(underlay,min(underlay(:)),max(underlay(:)),[],gray(256)); overlay_im = cmaplookup(overlay,-0.5,0.5,[],[0 0 1]); mask = visual.ROI(:,:,slice_v1)==1; hold on imagesc(imrotate(underlay_im,180)); imagesc(imrotate(overlay_im,180), 'AlphaData', imrotate(mask,180)); title(sprintf('V1 voxels, slice = %i',slice_v1)) slice_v1 = slice_v1 + 1; axis image axis off subplot(2,5,s+5) underlay = data{1}(:,:,slice_ffa,1); overlay = floc.ROI(:,:,slice_ffa)==2; underlay_im = cmaplookup(underlay,min(underlay(:)),max(underlay(:)),[],gray(256)); overlay_im = cmaplookup(overlay,-0.5,0.5,[],round([237 102 31]/255,2)); mask = floc.ROI(:,:,slice_ffa)==2; hold on imagesc(imrotate(underlay_im,180)); imagesc(imrotate(overlay_im,180), 'AlphaData', imrotate(mask,180)); title(sprintf('FFA voxels, slice = %i',slice_ffa)) slice_ffa = slice_ffa + 1; axis image axis off end
figure(6) cmap = [0.2314 0.6039 0.6980 0.8615 0.7890 0.2457 0.8824 0.6863 0 0.9490 0.1020 0]; % For each GLM type we calculate median reliability for voxels within the % V1 and FFA and plot it as a bar plot. mydata = zeros(length(vox_reliabilities),2); for m = 1 : 4 vox_reliability = vox_reliabilities{m}; mydata(m,:) = [nanmedian(vox_reliability(floc.ROI==2)) nanmedian(vox_reliability(visual.ROI==1))]; end bar(mydata) ylabel('Median reliability') set(gca,'Fontsize',12) set(gca,'TickLabelInterpreter','none') xtickangle(0) legend({'FFA';'V1'},'Interpreter','None','Location','NorthWest') set(gcf,'Position',[418 412 782 605]) title('Median voxel split-half reliability of GLM models') xticklabels(model_names') % Here we should come up with explanation why FFA > V1
% We now plot the improvement of reliability when comparing FITHRF_GLMDENOISE_RR % with ASSUME_HRF, higher positive values mean higher reliability figure(7) set(gcf,'Position',[616 227 863 790]) vox_improvement = vox_reliabilities{4} - vox_reliabilities{1}; slice = 3; ROI = visual.ROI == 1 | floc.ROI == 2; for s = 1:15 subplot(5,3,s) underlay = data{1}(:,:,slice,1); overlay = vox_improvement(:,:,slice); underlay_im = cmaplookup(underlay,min(underlay(:)),max(underlay(:)),[],gray(256)); overlay_im = cmaplookup(overlay,-0.3,0.3,[],cmapsign2); mask = ROI(:,:,slice)==1; hold on imagesc(imrotate(underlay_im,180)); imagesc(imrotate(overlay_im,180), 'AlphaData', imrotate(mask,180)); title(sprintf('slide idx %i',slice)) slice = slice + 1; axis image colormap(cmapsign2) c = colorbar; c.TickLabels = {'-0.3';'0';'0.3'}; xticks([]) yticks([]) end sgtitle('change in V1 and FFA voxel reliability due to GLMsingle (r)','Interpreter','none')


Restaurant Menu
Here you can sort the menu in order of your choice.
Appetizers
- A1. Cha Gio Vietnam (Fried Egg Rolls) 2 rolls - chicken $2.75 - pork $2.50
- A2. Goi Cuon (Steamed Rolls - 2 rolls - Steamed rice-paper rolls with lettuce, bean sprouts, vermicelli noodles served with peanut sauce) shrimp $3.90 - shrimp & pork $4.70
- A3. Xiu Mai (Dumplings 4 pcs - steamed pork and shrimp dumplings) - $4.25
- A4. Banh Cuon Cha Lua (Rice Cake - steamed rice cake filled with grounded pork and pork rolls, and shredded pork) - $6.85
- A5. Sup Hoang Thanh - Wonton Soup (pork won-ton soup)- $3.00
- A6. Soup Tom - Shrimp Soup (sizzling rice soup with shrimp and egg)- $8.00
- A7. Egg Drop Soup - (Soup of wispy beaten eggs in boiled chicken broth)- $2.00
- A8. Chao Ga - Chicken rice porridge - $3.00
- A9. Bot Chien - Fried Rice Cake (Fried rice cake with a fried egg on top) - $5.00
- A10. Banh Xeo - Vietnamese Crepe (Vietnamese crepe filled with bean sprouts and onions, served with a special sauce) - $8.50 - Shrimp & Pork - $9.35
- A11. Goi Ga - Chicken Salad (chicken salad with cucumber, onions, lime juice, topped with peanuts and shrimp chips) - $6.00
- A12. Goi Cuon Nem (2 rolls - Steamed rice paper rolls with vermicelli & pork patties) - $4.30
Soup & Noodles
- SN1. Bun Bo Hue (Spicy Hue Style vermicelli noodle soup with combination of beef shank, lemon grass, Vietnamese mint, pork hock, pork cake OR beef only) - $12.75
- SN2. Bun Rieu (tomatoes-egg-crab base noodle soup with shrimp, pork ball, tofu, spare ribs and dry shrimp) - $12.00
- SN3. Pho Tai (rice noodles soup with thin-sliced beef) - $10.00
- SN4. Pho Dac Biet (rice noodles soup with sliced beef, tendon, meatball, and tripe) - $12.50
- SN5. Pho Tai Bo Vien (rice noodles soup with beef and meatballs.) - $11.00
- SN6. Pho Ga (rice noodles soup with shredded chicken) - $10.00
- SN7. Hu Tieu Dac Biet (rice noodles soup with thin-sliced roasted pork, steamed pork, shrimp, squid, fish patty, and quail egg) - $11.85
- SN8. Hu Tieu Bo Kho (lemon grass beef stew with rice noodles and carrots, your choice of beef or chicken and choice of rice noodle or egg noodle) - $12.50
Rice Dishes
- R1. Com Chien Bo (fried rice with beef, carrots, peas, and onions) - $9.85
- R2. Com Chien Ga (fried rice with chicken, carrots, peas, and onions) - $9.50
- R3. Com Chien Tom (fried rice with shrimp, carrot, peas, and onions) - $10.25
- R4. Com Chien Duong Chau (combination fried rice with shrimp, Chinese sausage, BBQ pork, chicken, and beef) - $10.75
- R5. Com Suon Nuong (char-broiled boneless pork chops) - $11.00
- R6. Com Suon Bi Cha (char-broiled boneless pork chop, meat cake, and shredded pork) - $10.85
- R7. Tom Xao Bong Cai (Shrimp & Broccoli Stir-fry with onion and carrots in brown sauce) - $13.15
- R8. Ca Hoi Nuong (grilled salmon with vegetables) - $14.15
- R9. Tom Xao Ca Ri (stir-fried curry shrimp with potatoes, eggplants, and onions) - $14.75
- R10. Ca Trout Nuong (grilled trout with green beans, mushrooms, and onions) - $16.00
Vegetarian Dishes
- V1. Hu Tieu Bo Kho Chay (rice noodles soup with tofu stew and lemon grass) - $11.00
- V2. Bun Bo Hue Chay (spicy mid-country style tofu noodles soup with lemon grass) - $11.00
- V3. Hu Tieu Chay (Veggie Tofu rice noodle soup, mockduck, broccoli, mushrooms, carrots) - $12.25
- V4. Canh Chua Dau Hu (spicy sour soup with tofu and Vietnamese vegetables, served with steam rice) - $12.50
- V5. Bun Dau Hu Cha Gio (vermicelli noodles, tofu with an eggroll, cucumbers, lettuce, bean sprouts, mint, lemon grass, and peanuts) - $9.50
- V6. Mi Can Xao Dau (tir-fried mock duck and green beans) - $11.00


An ambitious, organized and self-motivated developer with a
passion for learning new programming languages and encouraging
team collaboration everywhere I go. I enjoy volleyball, travel and
a good cup of coffee!
A graduate of Lipscomb University with
a Bachelor of Science in Information Technology Management.
Currently working as an Application Developer at Vanderbilt
University Medical Center.
Specializing in web applications
for use in clinical trials by leveraging a variety of technical
skills including: JavaScript, NodeJS, Jquery, RoR, XHTML, CSS,
Bootstrap, SQL, SQLite, AWS, GitHub
(615) 918-2912
savannahobregon242@gmail.com


Static tooltips can be added to elements to give the user detailed instructions on the purpose of the control when they first
navigate to the page.
Add the static-tooltip
directive to an element to show a static tooltip.
The following attributes can be used to configure static tooltips:
Specifies the text to be displayed within the tooltip.
If specified will set the text of the dismiss all static tooltips option that will be displayed on hover.
Specifies the direction the tooltip will point to the chosen element. Available options are: up
,
down
, left
and right
.
Specifies where the callout should be placed on the tooltip. Available options are: start
, middle
and end
.
Specifies the number of pixels to the left or right that the tooltip should be offset.
Specifies the number of pixels up or down that the tooltip should be offset.
If specified will set the z-index of the tooltip.
If specified will allow a custom class to be set on the tooltip offering more customization.
If set to true this tooltip will not be displayed initially
Can be used to set a custom id on the tooltip, these must be unique for each tooltip.
The Static Tooltip Service, $staticTooltip
, allows you to show and hide all tooltips or individual tooltips
and check if any tooltips are visible. The full API for this service is as follows:
This function will hide all the tooltips.
This function will hide all the tooltips.
Arguments:
This function will show the tooltip with the matching id.
Arguments:
This function will hide the tooltip with the matching id.
This function returns true if any tooltips are visible, otherwise returns false.
An example of how static tooltips can be used in an application can be found on List View 1.


Use the Config tool to change a target's configuration database.
Also see Manage Config Tree
Functions supported include: inspect a tree, read/write values, and import/export enitre tree sections.
Usage
config [OPTIONS]
config get[--format=json]
Read a value.
config set[ ]
Write a value.
config move
Move a node.
config copy
Copy a node.
config delete
Delete a node.
config clear
Clear a node. Or create a new empty node if it didn't previously exist.
config import[--format=json]
Import config data.
config export[--format=json]
Export config data.
config list
List all config trees.
config rmtree
Delete a tree.
config help
Display help.
Options
Path to the tree and node to configure.
Is the name of a tree in the system, but without a path.
Path to the file for import/export.
String value to write to the config tree.
Optional, must be bool, int, float, or string. If tool, must be true or false. If unspecified, default type is string.
--format=json
For imports, then properly formatted JSON will be expected. For exports, then the data will be generated as well. It is also possible to specify JSON for the get sub-command.
Tree Paths
A tree path is specified similar to a *nix
path. With the beginning slash being optional.
For example: /a/path/to/somewhere or a/path/to/somewhere
The configTree supports multiple trees: a default tree is assigned per user. If the config tool is run as root, then alternative trees can be specified in the path by entering a tree name, then a colon and the value path.
Here's an example using the tree named 'foo' instead of the default tree:
foo:/a/path/to/somewhere
Tree location
The trees themselves are stored in the file system at:
/opt/legato/configTree
The configTree cycles through the extensions, .rock, .paper, and .scissors to differentiate between versions of the tree file. The base file name is the same as the tree.
A listing for /opt/legato/configTree where the system tree and the user trees are foo and bar looks like this:
$ ls /opt/legato/configTree/ -l total 32 -rw------- 1 user user 3456 May 12 11:02 bar.rock -rw------- 1 user user 3456 May 9 11:04 foo.scissors -rw------- 1 user user 21037 May 9 11:04 system.paper
The system, or root user, has its own tree; each application has a separate tree.
Config Code Samples
To dump a tree, run this to get the default tree for the current user:
config get /
Or to get a specific tree:
$ config get foo:/ / helloWorld/ greeted== true ignored == false
The config tool can also read and write individual values. You can read the value of greeted like this:
$ config get /helloWorld/greeted true
If you want to see everything under helloWorld:
$ config get /helloWorld helloWorld/ greeted== true ignored == false
If you want to change the value of ignored:
$ config set /helloWorld/ignored true bool
You can check it by running:
$ config get /helloWorld/ignored true
If the config tool is listing a tree, it will display the node name and a / if the current node has children (except for the root node, as the root node does not have a name.)
For leaf nodes, the config tool will display the value type in angle brackets, <>, as well as its name and actual value:
/ testValues/ aBoolValue== true aStringValue == This is some text I saved. anIntValue == 1024 afloatValue == 10.24
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


ckmamerc
—
config file for ckmame, dumpgame, and mkmamedb
The ckmamerc
config file sets global or local
configuration for running ckmame(1),
dumpgame(1), and
mkmamedb(1).
By default, the configuration is read from
~/.config/ckmame/ckmamerc and
.ckmamerc in the current directory if they exist, in
this order.
Many settings can also be specified on the command line.
Later settings override earlier ones.
The config file is in TOML format and consists of three types of sections. A
section header consists of the name of the section enclosed in square brackets
on its own line.
- [global]
- The “global” section contains settings that apply in
general.
- ["set name"]
- “set name” sections contain settings for a particular set
(see the
-
-set
command
line option).
- [profile."profile name"]
- Settings can be shared and referenced from multiple sets by defining them
in a profile and referencing this. Use sections whose name starts with
“profile.” for this. They can be referenced from other
sections by using the “profiles” keyword with
“profile name” (without the leading
“profile.”).
Most command line options can be used as configuration variables in the config
file. Take the name of the long option and use it without the leading dashes.
For boolean settings and those with a value, use the
variable = value
syntax. For example, ckmame(1)'s
-
-complete-games-only
will be
written in the config file as
complete-games-only =
true
Options that exist as
-
-foo
and
-
-no-foo
are mapped to a
single configuration value with values “true” and
“false”.
For full documentation of config file options with corresponding
command line options, see the manual page of the command.
Options can use the string “$set” which will be
replaced by the set name when used.
The following options are supported by all tools:
- rom-db
- String.
- profiles
- Array of strings. List of profile names (without the leading
“profile.”) whose configuration variables should be merged
into the current section.
- sets
- Array of strings. Each string is the name of a set.
- sets-file
- String. Points to a file that lists sets, one line per set.
- update-database
- Boolean.
- verbose
- Boolean.
The following options are supported only by
ckmame(1) and
mkmamedb(1):
- roms-zipped
- Boolean.
- use-central-cache-directory
- Boolean. Put the cache databases generated by
ckmame(1) and
mkmamedb(1) below
$HOME/.cache/ckmame/. This affects the location of
mkmamedb(1)'s
.mkmamedb.db
(
-
-directory-cache
) and
ckmame(1)'s
.ckmame.db files for extra-directories (but not
for the roms, saved, and
unknown directories).
The following options are supported only by
ckmame(1):
- complete-games-only
- Boolean.
- complete-list
- String.
- create-fixdat
- Boolean.
- extra-directories
- Either an array of strings, or a table where the keys are directories and
the values are a table of options. For the second case, the following
options are supported:
- move-from-extra
- Boolean.
- use-central-cache-directory
- Boolean.
- extra-directories-append
- Same as “extra-directories” but does not override the
previous value, but appends to it instead.
- fixdat-directory
- String.
- keep-old-duplicates
- Boolean.
- missing-list
- String.
- move-from-extra
- Boolean. Setting this to “false” is the same as using
-
-copy-from-extra
on the
command line.
- old-db
- String.
- report-correct
- Boolean.
- report-detailed
- Boolean.
- report-fixable
- Boolean.
- report-missing
- Boolean.
- report-no-good-dump
- Boolean.
- report-summary
- Boolean.
- rom-directory
- String.
- saved-directory
- String.
- unknown-directory
- String.
The following variables are only supported by
mkmamedb(1):
- dats
- Array of strings, or table where the keys are strings and the values are
tables with options. Each string is the (internal) name of a dat. The
supported options in the second case are:
- game-name-suffix
- String. Suffix all game names in the dat with the given string
argument.
- use-description-as-name
- Boolean.
- dat-directories
- Either an array of strings, or a table where the keys are directories and
the values are a table of options. Each string is a directory containing
dats.
- use-central-cache-directory
- Boolean.
- use-temp-directory
- Boolean.
While TOML is a relatively simple and readable format, it has some unexpected
details:
Any key that contains characters other than letters, digits,
“-”, and “_” must be quoted using double
quotes.
Nested tables can be written in two forms:
Inline using “{” and “}”. However, the
complete inline table must be on one line (unlike inline arrays, which can
span multiple lines). See “extra-directories-append” in
“Big Set” in EXAMPLES below.
As sections with a “.” separating the outer and
inner names:
["outer table
name"."inner table name"]
Note that the “.” must be outside any quotation marks. All
settings in this section apply to the inner table. When using this for options
that allow tables as values (like “dats”), the keys in this
table are not configuration variables and need to be quoted if they contain
special characters. See “extra-directories” in “Unzipped
Set” in EXAMPLES below.
[global]
verbose = true
extra-directories = [ "incoming" ]
sets = [ "Set using standard settings only" ]
[profile.incomplete]
complete-only = true
report-missing = false
["Big Set"]
verbose = false
rom-directory = "Big Set ROMs"
extra-directories-append = { "another-location" = { move-from-extra = true } }
rom-db = "Big Set.db"
profiles = [ "incomplete" ]
["Unzipped Set"]
roms-unzipped = true
rom-directory = "Unzipped Set ROMs"
rom-db = "Unzipped Set.db"
["Unzipped Set".extra-directories]
"unzipped-incoming" = { use-central-cache-directory = true }
This configuration would by default report verbosely, but override
this for the "Big Set" set. It would also set the rom directories
and database files for both the "Big Set" and the "Unzipped
Set" and not use ZIP archives for the latter.
Example run:
ckmame --set Big Set


Conference Registration
Each participant in the conference must be registered and the registration fee paid. One
regular registration covers the publication of a maximum of three papers in the conference proceedings (main conference or workshops).
At least one author of each paper must be a regular registration - the student registration only applies for students accompanying an author with a regular registration, or without a paper. In the registration form, state for main conference ID-number of paper and title of paper, and for a workshop, state acronym of workshop and title of paper. If two or more co-authors of the same paper(s) participate in the conference, they must all be registered and the registration fees paid. You do not have to be an author to attend. If you are not an author, please follow the registration process and leave the “paper(s)" field blank.
The registration fee (both categories, Regular or Student) includes participation to workshops, tutorials, and to the main conference, conference materials, coffee breaks, lunches, social events, and conference dinner.
We would appreciate timely registration for the conference, because it helps us organise the catering and schedule the program. The registration site will remain open after October 1st, but the Earlybird discount will not be available anymore. The registration site supports Visa, Mastercard, and American Express. Payment by other credit cards or by invoice is not supported.
The Conference proceedings will be published by Springer after the conference. Payment of the registration fee is required for a paper to be presented at the conference and included in the Springer proceedings.
| Type |
Earlybird Registration |
Late Registration |
|
(by October 1, 2019) |
(after October 1, 2019) |
| Regular |
NZ$800 |
NZ$900 |
| Student |
NZ$500 |
NZ$550 |
Separate tickets for accompanying persons:
| Event |
Registration |
Note |
| Welcome Reception |
NZ$50 |
Drinks and food |
| Conference Dinner |
NZ$100 |
Pre-dinner drink at 50th floor (Sky Tower), dinner with drinks at Sky City |
| Survivor's Party |
NZ$50 |
Drinks, Tracey Collins and band, and food |
Refund policy
All refund requests must be made via email to the Organizing Secretariat (acpr2019@aut.ac.nz).
All cancellations received before and on Monday 30th September will be subject to a 20% cancellation fee.
All cancellations received before and on Sunday 10th November will be subject to a 50% cancellation fee.
NO REFUNDS will be made for cancellation after Monday 11th November.
Cancellations should be submitted in writing via e-mail to the Registration Office before Monday 11th November.


EVENTS
Erasing Family Documentary
Thursday, September 19, 2019
3391 Middlefield Road
Palo Alto, CA 94306
6:00PM - 8:00PM
CHILDREN'S NEEDS FIRST will be hosting a private pre-screening of Erasing Family Documentary with film Director Ginger Gentle.
Erasing Family captures the unheard voices in separation and divorce - the children. Director Ginger Gentle has revealed the trauma experienced by children when they are forced to pick sides, resulting in a loving parent being erased from their lives. Family bond obstruction is one of the most significant public health crises of our times. In fact, in the United States, there are an estimated 22 million parents affected by this plight.
The film follows young people as they seek to reunited with their erased families. We hope that their journey will inspire other families to reunite. Resource-rich information packets will be available for audience members at this event. These packets give practical tips for children, parents, and professionals.
Learn more at ErasingFamily.org
Purchase tickets at TicketLeap


No Assets counted or no questionnaire was completed!
No Attack Costs defined or no Economic estimate completed!


Display Amazon's own Goodreads ratings
Amazon recently added their own version of Goodreads ratings for book listings (depends of region and other factors). By default this is hidden when using this extension, but you can display it by checking this option.


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
E
F
G
H
I
L
M
O
P
Q
R
S
T
U
W
S
save()
- Method in class ca.teamTen.recitopia.models.
CloudRecipeBook
Flush any cached update/insert commands to server.
save()
- Method in class ca.teamTen.recitopia.models.
Fridge
Save the fridge to a file.
save()
- Method in interface ca.teamTen.recitopia.models.
RecipeBook
Write RecipeBook to long-term storage.
save()
- Method in class ca.teamTen.recitopia.models.
SimpleRecipeBook
Saves recipes to the loutput stream returned by the IOFactory.
saveFavorite(View)
- Method in class ca.teamTen.recitopia.activities.
RecipeViewActivity
saveUserID()
- Method in class ca.teamTen.recitopia.models.
ApplicationManager
Save the user id to a file.
SearchActivity
- Class in
ca.teamTen.recitopia.activities
Basic searching activity.
SearchActivity()
- Constructor for class ca.teamTen.recitopia.activities.
SearchActivity
SearchByIngredientActivity
- Class in
ca.teamTen.recitopia.activities
This activity loads the ingredients within the Fridge and populates a ListView with them.
SearchByIngredientActivity()
- Constructor for class ca.teamTen.recitopia.activities.
SearchByIngredientActivity
searchByIngredients(View)
- Method in class ca.teamTen.recitopia.activities.
FridgeActivity
Launch SearchByIngredientActivity
setByteImage(byte[])
- Method in class ca.teamTen.recitopia.models.
Photo
setCallbacks(RecipeBook.AsyncAddRecipeTask.Callbacks)
- Method in class ca.teamTen.recitopia.models.
RecipeBook.AsyncAddRecipeTask
Add a Callbacks object which will have its recipesAdded() method called once this task is complete.
setPublished(boolean)
- Method in class ca.teamTen.recitopia.models.
Recipe
Sets whether the recipe has been published
setUserID(String)
- Method in class ca.teamTen.recitopia.models.
ApplicationManager
Set the user id (should be an email)
shareRecipe()
- Method in class ca.teamTen.recitopia.activities.
RecipeViewActivity
SimpleRecipeBook
- Class in
ca.teamTen.recitopia.models
RecipeBook class which can be used to store, query recipes without interacting with (many) external systems.
SimpleRecipeBook(IOFactory)
- Constructor for class ca.teamTen.recitopia.models.
SimpleRecipeBook
Create a recipe book using the given IOFactory for loading and saving.
SimpleRecipeBook()
- Constructor for class ca.teamTen.recitopia.models.
SimpleRecipeBook
Create a recipe book that doesn't load/save.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
E
F
G
H
I
L
M
O
P
Q
R
S
T
U
W


I'm 21 years old, I'm from Indianapolis and I'm a senior at Purdue University.
I am currently attending Purdue University for Webpage Development and Design and will graduate in the spring of 2021.
I managed a lawn mowing business with my brothers for several years, I worked for Keep Indianapolis Beautiful for 2 summers, and I worked at the Rathskeller Restaurant downtown for a short time. From the Nextech program I have learned the basics of HTML, CSS and JavaScript and have become quite proficient in those languages. I have also learned the basics of Bootsrap and jQuery.
The reason I intend to get involved in the tech field for future education and eventually a career is for a few simple reasons. First, it is such a vast field. I have never been totally sure on what career path I am going to choose, but I do know that almost every modern company has a need for technology workers. Second, technology amazes me. The possiblities in technology are literally endless and it is incredible to see what new tech can do. Third, there will always be more opportunities. It is growing and expanding rapidly and there will always be more opportunity for new jobs, businesses, ideas.
I help out at my church with the younger kids' sunday school classes, I'm involved with my Bible study and during the school year we volunteer with local homeless shelters, I play the drums and I love playing videogames. I also have an interest in photography and animation.
Most of this work I did throughout the Nextech program while the Eleven-Fifty crew taught us the various elements of HTML, CSS, JavaScript, and jQuery. I also did some of this work in my physics class and my Intro Computer Science class at my school.


SuppressPrint
An object to silence console output.
build_shortcuts_dict
Build a shortcuts dictionary with script paths, names and shortcut keys.
clean_pyc
Remove all .pyc files recursively in path.
common_path
get_context
Get the current environment in which hTools2 is running.
in_DrawBot
in_FontLab
in_NodeBox
in_RoboFont
merge_shortcuts_dicts
Merge all shortcut dictionaries in a given list.
path_split
rel_path
rasterizer
Dialogs


Developer Student Club, NIE
We are still building our website
But if you curious enough you can look
Here for the leaderboard ??
LeaderBoard
Who are we ?
<< content >>
Join us to connect, learn and grow.
#30 Days Of Google Cloud
Hello, folks! ✨
We are so glad to tell you that there's something big and exciting coming up for you all.
So, we bring to you a 30 day program which gives you hands-on practice on Google Cloud Platform- the tool that powers apps like Google search, gmail and YouTube.
Google Cloud Platform is finally here at NIE!! So, do not miss out on this opportunity!!!
Join us on discord if you haven't, especially the cloud channel to stay updated.
We are so glad to tell you that there's something big and exciting coming up for you all.
So, we bring to you a 30 day program which gives you hands-on practice on Google Cloud Platform- the tool that powers apps like Google search, gmail and YouTube.
Google Cloud Platform is finally here at NIE!! So, do not miss out on this opportunity!!!
Join us on discord if you haven't, especially the cloud channel to stay updated.
Tech Stack
-
Web Dev
Members experienced in MERN & MEVN -
Android Dev
Team members skilled in native App dev -
Flutter
Execellent Flutter Developers. -
Scripting
Scripting and server side coders -
Cloud Computing
Certified GCP facilitators -
Machine Learning
Certified Tensorflow developers
What are we working on ?
Contribute on Github.


This game requires the user to guess the computer's chosen letter. 10 guesses to win or lose!  Find out!
A quick trivia game, with a Toronto Blue Jays theme!  Answer in time, or lose!
A challenging game of hidden math, and beautiful gems! Click a gem with a hidden value, to match the computer's total!
A web app, designed to accept user entered trains, and determine how long from now they'll be arriving! Plan your trip!
Looking to have an awesome time out on the town, but don't know what to do? Have a "sketchy" time with this app!
A virtual assistant, to compete with Siri! Using node, this app will provide song, movie, Twitter data and more!
A command line game, inspired by HangMan!  What's the good word!
A web app, designed with a movies theme, to accept user requested GIF searches, and a few start choices too!
A Command Line tool, so YOU can drop in on your own Bamazon store!
A survey based friend seeker! A web app designed to match up two people, based on their interests and experiences. Great for dating!
A web platform for Love in My Tummy Artisan Sweets online baking business. Amazing treats, hand-made by a one-woman business!
A web platform that scrapes the headlines of the CP24 website, and spits out a feed of the latest news!
A web based memory game with a Canadian sports team theme! Click the various team logos, but don't click the same one twice or you lose!
A web platform for searching the New York Times story database, based on open input criteria.


FAQ
What is MINDFIRL?
MINDFIRL stands for Minimum & Necessary Disclosure for Interactive Record Linkage. It is a software for interactive record linkage. At the beginning, all the attributes of the records are masked, and you can make record linkage decisions by the aid of supplemental visual markups, as shown in the figure.
You can click the attribute to disclose it if you think the information can help you make better decisions. However, openning attributes costs your privacy budget. When the privacy budget reaches the limit set by the project manager, you cannot open more attributes.
Projects and Assignments
You can create projects and assign the project to others. Your projects are shown in the "My projects" list. By clicking on the project, you can check the detailed information. The "My Assignments" list shows the projects that have been assigned to you. You can check your progress and privacy budget used. You can start working on the project by clicking "Go to project".
Creating projects
You can create project by clicking the "create project" button above. You will need to provide two csv files with following format:
| ID | voter_reg_num | firstname | Lastname | DoB | Gender | Race |
|---|---|---|---|---|---|---|
| 1 |<PHONE_NUMBER> | LYNN | WILDING | 07/04/1946 | M | W |
| 2 |<PHONE_NUMBER> | CHARLES | ALBUQUERQUE | 07/10/1930 | M | W |
| 3 |<PHONE_NUMBER> | RONNIE | HILL | 07/25/1958 | M | B |
The first column is internal ID for your database. If two records have the same internal ID, then they must be the same record. However, if two records have different internal ID, they could be the same record or different records. The second column is the id for the data, such as voter registration number or ssn. This id does not indicate two records are the same or different.
Then you can choose one or more attributes to block on. Records with same blocking attributes will be group into one block. Then, we will generate record linking candidates for each block.
Then you can choose the user to assign to. You can also set up a privacy budget limit. You can type in percentage of privacy budget limit, or choose among these options: masked, minimum, moderate, full. The "masked" option means no attribute can be opened, and "full" means all the attributes are opened at the beginning. The "minimum" and "moderate" option has around 5% and 40% privacy budget limit, dependent on the data.


Sofia Private Island Resort
Number: +1 423<PHONE_NUMBER>234
Email<EMAIL_ADDRESS>1 Sofia RoadSofia City, Sofia IslandIonian Isles, Greece


Brahmastra: Nagarjuna’s Comeback In Bollywood With Sci-Fi Thriller Has Twitteraties Go Frenzy
Fans of the iconic actor took to Twitter on Thursday to post his pictures with co-stars Ranbir and Alia, and also to wish him luck.
by IANSTelugu superstar Nagarjuna returns to the Bollywood screen with a stellar role in “Brahmastra“, starring Amitabh Bachchan, Ranbir Kapoor and Alia Bhatt. Fans of the iconic actor took to Twitter on Thursday to post his pictures with co-stars Ranbir and Alia, and also to wish him luck.
“Brahmastra” is first part of Ayan Mukerji’s sci-fi trilogy, scheduled to release in May 2020.
Apart from pictures of the star cast, there were several memes circulating on social media.
A fan wrote: “Really looking forward to Brahmastra next year. In the era of remakes, biopics and historicals, Brahmastra is looking like an original story out of Bollywood. I really hope it does well. It doing well will encourage more original stories.”
One user posted a video clip from the Tv series, “Mahabharata” along with other trending hashtags of ‘gonnatellmykids’ and wrote: “Gonna tell my kids the last one is how #Brahmastra works and this was the best adaptation of #Mahabharata”.
One fan reacted; “Really hyped for this movie! Please don’t disappoint! Good luck!”
Another remarked: “Brahmastra has all the potential to be a game changer. Something on lines with Marvel’s series The defenders or so. Can’t wait”.


EVITA A film review by Andrew Hicks Copyright 1997 Andrew Hicks
(1996) ** (out of four)
I've always liked Madonna's music, although we all know her movie performances are, for the most part, lackluster. That's why it was good news to find out her performance in EVITA is 98% singing. Now that I've finally seen it, though, I realize that's also the bad news. Everything in EVITA is sung, which makes it hard for most viewers to retain interest after the first hour. Even the most musical musicals consist of at least 50% dialogue, which makes EVITA some kind of genetic strand of hyper-musical.
EVITA tells the story of Eva Peron, one of Argentina's most beloved historical figures and one of the longest running contemporary Broadway musicals. A lot of the Andrew Lloyd Webber / Tim Rice songs are catchy, yeah, but (as Roger Ebert pointed out) it's because you end up hearing most of them five or six times through the course of the movie. Around the fourth reprise of "Don't Cry For Me, Argentina," I was about ready to burst into tortured tears of repetition.
Madonna, of course, plays Eva from the age of 15 or so, which is completely unconvincing. You'd have to be pretty stressed out to have crow's feet in high school. The teenage Evita convinces a visiting singer she's sleeping with (which in Madonna's case is completely convincing at any age) to take her back to Buenos Aires with him. He does, but their association ends there. Eva makes it in the big city because she has that certain Madonna-esque quality, her stylish antics accounting more for her success than her voice or acting abilities. Art imitates life, you know.
Evita becomes semi-famous with her radio program, but much more famous when she joins forces with Juan Peron (Jonathan Pryce), an authoritarian army officer who becomes leader of the country thanks to Evita's endless campaigning. The peasants love her because they sense she came from among them to make something of herself, although she never actually accomplishes much on their behalf aside from tossing money out a train window while she sings a gleeful song. Antonio Banderas, as some kind of singing narrator / collective peasant conscience, is always around to question her motives through cynical song, which doesn't lend the film any dramatic credibility.
What's good about EVITA is the occasional gleeful song. Three highlights are Madonna singing "I'd Be Surprisingly Good For You" to Pryce, the one toward the beginning where she's trying to persuade her singer / lover to bring her along, and "Rainbow High," a showtune version of "Material Girl." And of course there's "You Must Love Me," the painful ballad that comes during Eva's dying days. Evita died at age 33, but from the denouement of this movie, it would seem like she lived for decades and decades. Around the fifth she's- going-to-die-and-aren't-we-sad song, I was ready to yank the plug myself.
The film does have a huge, epic scope. Director Alan Parker put a lot of effort into making EVITA an eventa, but in the end it's the singing and the epic length that bring this movie down. When going for emotional drama, a song doesn't cut it cinematically, and on the larger scope action scenes, a disco rock score is used. It helps to note that EVITA producer Robert Stigwood also produced the 1978 Frampton / Bee Gee abortion SGT. PEPPER'S LONELY HEARTS CLUB BAND.
--
Visit the Andrew Hicks: Movie Critic at LARGE homepage at http://www.missouri.edu/~c667778/movies.html
Serving The World For Nearly 1/25th of a Century!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Copyright Bruce Wilcox<EMAIL_ADDRESS>www.brilligunderstanding.com
Revision 4/24/2022 cs12.1
By default, a CS server records the current state of a user in a file stored in the local filesystem under the name topic_username_botname.txt. This works fine for single-server systems. In a world where one uses a second server as a hot backup and transfer users to it while redeploying the primary server, user information gets lost. The solution to this (and the ability to scale CS with an arbitrary number of servers) is to have some kind of networked file server.
CS directly supports use of Mongo, Postgres, MySQL,and MsSQL databases as file servers. Instead of writing the users’s state record to the local file system, it writes it as a record in the database. That record will be overwritten each volley with the changed state. There is no accumulation of prior state data. Nor are user logs ever written there. If user logging is on, such logs are written to the machine performing the chat (which may scatter them over many machines). Likewise server logging is kept per machine.
To run CS MySQL you need two things. First, you need to run an
executable that has been compiled with MySQL enabled.
Second, you need to supply parameters for CS startup in the cs_init.txt
file or cs_initmore.txt file. A line entry looks like this:
mysql="host=localhost port=3306 user=root password=admin db=chatscript"
where the host and port refer to the MySQL server access, user and
password refer to some userid on the mysql server allowed to access the
named db.
The database itself needs to already exist, it is not automatically
created by CS. It should be defined with the following fields in the
schema/table called chatscript using this statement: The keys (hose,
port, user, password, db, appendport) should be in lowercase.
create database chatscript character set 'UTF8';
create user chatuser identified by 'password'; or whatever
grant all on chatscript.* to chatuser;
use chatscript;
CREATE TABLE userfiles (userid varchar(100) PRIMARY KEY, file MEDIUMBLOB, when DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
The table name “userfiles” and the field names are fixed. ChatScript assumes them. userid: a limit of 64 is more than enough file: in our world we are going to have less than 500K bytes of data when: CS never sends or uses this value. It is there to allow an external program to query the database and delete old records since our users do not continue forever with Pearl.
An optional key is appendport
which takes no value. It
means to add the current CS port as a suffix onto the db name. So
mysql="host=localhost port=3306 user=root password=admin db=chatscript appendport"
will yield a db name of chatscript1024
for a default CS
server.
If at any time a call to utilize MySQL fails, the CS server will abort itself. If you have an automatic restart and retry mechanism, then maybe things will just work next time, or a different CS server will get invoked.
A script may also access MySQL using 3 functions: ^MySQLInit, ^MySQLQuery, ^MySQLClose.
To open a database access, you need to supply a string of information. The data is similar to the cs_init.txt mysql line, e.g.,
^mysqlinit("host=localhost port=3306 user=root password=admin db=chatscript")
This implies you must have already created the database to be used.
When you are done accessing the database, this will end the connection.
You may provide a query in the query string. The output, if there is any, will be returned from this function. You have the option to provide a quoted function name to execute on each row of data returned. If your function only takes 1 argument, all output from a row will be sent to it as a single quoted string. If your function takes multiple arguments, the separate columns of a row will be passed to the corresponding arguments.
There is a sample bot compilable with :build mysql.
Currently Microsoft SQL can be used as a file server or as a database. As a file server, this allows infinite scaling of CS.
For Linux you need to install a Microsoft ODBC driver to your machine. Instructions are here: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15
To run CS MsSQL you need two things. First, you need to run an
executable that has been compiled with MySQL enabled.
Second, you need to supply parameters for CS startup in the cs_init.txt
file or cs_initmore.txt file. A line entry looks like this:
mssql="host=localhost port=3306 user=chatuser password=admin db=chatscript"
where the host and port refer to the MsSQL server access, user and
password refer to some userid on the mssql server allowed to access the
named db.
The database itself needs to already exist, it is not automatically
created by CS. It should be defined with the following fields in the
schema/table called chatscript using this statement: The keys (host,
port, user, password, db) should be in lowercase.
create database chatscript character set 'UTF8';
create user chatuser identified by 'password'; or whatever
grant all on chatscript.* to chatuser;
use chatscript;
CREATE TABLE userfiles (userid varchar(100) PRIMARY KEY, [file] VARBINARY(max), stored DATETIME DEFAULT CURRENT_TIMESTAMP)
The table name “userfiles” and the field names are fixed. ChatScript assumes them. userid: a limit of 64 is more than enough file: in our world we are going to have less than 500K bytes of data stored: CS never sends or uses this value. It is there to allow an external program to query the database and delete old records since our users do not continue forever with Pearl.
If at any time a call to utilize MsSQL fails, the CS server will abort itself. If you have an automatic restart and retry mechanism, then maybe things will just work next time, or a different CS server will get invoked. Such a mechanism is done automatically by CS.
From user script one can open a database with
^msqlinit($_params)
and close it with ^msqlclose()
.
^msqlread($_username)
and
^msqlwrite($_username $_value)
perform db operations. Init
Params are the same as for using such a db for a filesystem.
Aside from using Mongo to store data for a chatbot to look up, one
can also use Mongo as a replacement for the local file system of the
USERS directory. Log files will remain local but the
USERS/topicxxxxx
will be rerouted, as will any
^export
or ^import
request. If you name your
file USERS/ltm-xxxxx
then that will be routed to its own
collection, otherwise it will go into the same collection as the topic
file.
To set collections, on the command line use:
mongo="mongodb://localhost:27017 ChatScript topic:MyCollection"
or for user topic and ltm files
mongo="mongodb://localhost:27017 ChatScript topic:MyCollection ltm:MyLtm"
or for a remote host with no ltm file.
mongo=mongodb://<IP_ADDRESS>:27017 ChatScript topic:UserTopics
Any ^import()
and ^export()
will check the
file name for a match against a collection reference to allow for any
document to be redirected to the database. For example, with the
following definition any file names that cache will be saved in a
MyCache collction in the Mongo database.
mongo="mongodb://localhost:27017 ChatScript topic:MyCollection ltm:MyLtm cache:MyCache"
Read preferences for queries on Mongo collections can be added to each collection definition. To specify the cache documents can be read from a secondary replica, but keeping the topic and ltm read from primary (the default), use definitions like
mongo="mongodb://localhost:27017 ChatScript topic:MyCollection ltm:MyLtm cache:MyCache?readPreference=secondaryPreferred"
or
mongo="mongodb://localhost:27017 ChatScript topic:MyCollection ltm:MyLtm cache:MyCache?readPreference=secondaryPreferred&readPreferenceTags=dc:east&readPreferenceTags=west"
The additional options follow the standard Mongo style used in URL definitions, see https://www.mongodb.com/docs/manual/reference/connection-string/#read-preference-options
Using a cs_init.txt file to contain that line is most convenient, so no quotes are needed.
Obviously put the correct data for your mongo machine. CS will store
user topic files in the Mongo machine and well as ^export
and ^import
data. For user and server logs it will continue
to store those on the local machine. You may have the same or different
collection active, one or two via filesystem replacement and once via
normal script access.
There are only a couple of functions you need.
^mongoinit
(
server domain collection )Once the named collection is open, it becomes the current database the server uses until you close it no matter how many volleys later that is. Currently you can only have one collection open at a time.
By the way, if a call to ^mongoinit
fails, the system
will both write why to the user log and set it onto the value of
$$mongo_error
. ^mongonit
will fail if the
database is already open.
^mongoclose
()closes the currently open collection.
^mongoinsertdocument
(key
string)does an up-sert of a json string (which need not have double quotes around it. Key is also a string which does not require double quotes.
^mongodeletedocument
(key)removes the corresponding data.
^mongofinddocument
(pattern)finds documents corresponding to the mongo pattern (see a mongo manual).
^mongoinit(mongodb://localhost:27017 ChatScript InputOutput)
^mongoinsertdocument(dog ^"I have a dog")
$_var = ^mongofinddocument(dog)
^mongodeletedocument(dog)
# $_var == I have a dog
^mongoclose()
You can include a JSON object’s worth of additional attributes on a Mongo upsert using $cs_mongoqueryparams.
You also use a private hook code to alter things on upsert.
$mongo_enable_ssl if set to “true” will then use these variables:
$mongosslcafile
$mongosslpemfile
$mongosslpempwd
$mongovalidatessl
$mongo_timeexcess -- record into log file if operation takes more than this ms
$$mongo_error
While standing in the SRC directory, you can do:
make server
- build ordinary CS server w/o PostgreSQL
client make pgserver
- build CS server w PostgreSQL
client (you had to install postgress first)
Usually postgres somes with amazon servers, but if not you may have to do something like
sudo apt-get install libpq-dev
to build successfully.
On Mac and IOS #define DISCARDPOSTGRES
is on by default.
If you have access to a PostgreSQL server remotely, that’s fine. If you
need one installed on your machine, see the end for how to install
one.
To do this, on the ChatScript command line use:
pguser="dbname = mydb host = <IP_ADDRESS> port = 5432 user = postgres password = somepassword "
If host is omitted, it defaults to localhost. Localhost might not work as the name of the host, in which case use <IP_ADDRESS> .
If you do not specify dbname, the system assumes you have a db named
users
. If it doesn’t find it, it will try to open a root
database named postgres
. If it can find that, it will then
create the users
db. CS will automatically create a
users
database and a userfiles
tables. Each
user will get an entry in the userfiles table.
If the dbname is specified, the postgres module will not try to create a new database or a userfiles table.
The postgres code uses the following parameter queries to read, insert, and update a user record:
-- read a user
SELECT file FROM userfiles WHERE userid = $1::varchar ;
-- insert a user
INSERT INTO userfiles (file, userid) VALUES ($1::bytea, $2::varchar) ;
-- update a user
UPDATE userfiles SET file = $1::bytea WHERE userid = $2::varchar ;
You can override these queries to support alternate schemas. However, the postgres module assumes that any sql used to override the default queries will use the same sequence of arguments. For example, assume you want to store user data in a table named ‘randomusertable.’ The following parameters can be used to override the default postgres SQL:
pguserread=SELECT userdata FROM randomusertable WHERE username=$1::varchar ;
pguserinsert=INSERT INTO randomusertable (userdata,username) VALUES ($1::bytea, $2::varchar) ;
pguserupdate=UPDATE randomusertable SET userdata = $1::bytea WHERE username = $2::varchar ;
Note that the default and override queries use the same arguments in the same order.
There are only a couple of functions you need.
^dbinit
( xxx )xxx
is the parameter string you want to pass PostgreSQL.
The default minimal would be something like this:
u: (open)
if (^dbinit( dbname = postgres port = 5432 user = postgres password = mypassword ))
{db opened}
else
{db failed}
Once the named database is open, it becomes the current database the
server uses until you close it no matter how many volleys later that is.
Currently you can only have one database open at a time. By the way, if
a call to ^dbinit
fails, the system will both write why to
the user log and set it onto the value of $$db_error
.
^dbinit(^"null")
creates a dummy database access, whereby nothing is actually done thereafter but you can pretend to write to the database.
^dbinit
will fail if the database is already open. If
you want it return without failure, having done nothing, just add this
at the start of your arguments: EXISTS
u: (open)
if (^dbinit(EXISTS dbname = postgres port = 5432 user = postgres password = mypassword ))
^dbexecute
( “xxx”
'myfunc
)executes database commands as a blocking call.You may omit the 2nd argument if those commands do not generate answers, otherwise it names a function you have defined whose argument count matches the number of pieces of information coming from the database.
Typically a database query like SELECT
will return
multiple rows containing multiple columns of values. The number of
values per row must match your function, which is called once for each
row. The exception is that a one-argument function will accept all the
values returned from the query for each row, automatically concatenated
with underscore separators.
If any call to your function fails, ^dbexecute
stops and
fails. When you want to use multiple commands to the database, you must
separate them with ; and only answers from the last command are returned
(per PostgreSQL standards and behavior).
Note: for any direct calls, the format string
^"xxx"`` is your friend, as it will generally preserve the contents of the string unchanged (except for variable substitutions) to pass to
^dbexecute. In addition, don't worry generally about single quotes inside of quoted parameters. ChatScript will automatically double the internal single quotes for you. There will be issues with format strings because ChatScript finds meanings in some things that conflict with postgres command structure. ``` if (^dbexecute(^"INSERT INTO word VALUES '_1' );" NULL )) {word added} else {dbexecute failed - $$db_error} ``` The
_1has issues because postgre wants quotes around string values, but ChatScript will be trying to decode
’_1as the original form of
_1. This might require you to do this: ``` $$tmp = '_1 if (^dbexecute(^"INSERT INTO word VALUES '$$tmp' );" NULL )) {word added} else {dbexecute failed - $$db_error} ``` Due to conflicts in interpreting
$`, you can't use postgres `$value$notation inside a quoted string because ChatScript will seek variable values. So, after this, you can read whatever commands PostgreSQL supports because they all funnel through
^dbexecute`.
Note there is a similar issue with text strings coming back from Postgres. They may be multiple words, etc. You should declare arguments to outputmacros that will receive postgres text like this:
outputmacro: ^myfunc( ^arg1.HANDLE_QUOTES ^arg2)
where ^arg1
will receive a text argument. This causes
DBExecute to put double-quotes around the value (and \
on
any interior quotes) and then the call to ^myfunc
will
strip them off after evaluation. You can use :trace sql
to
see what goes in and what comes out. By the way, if a call to
^dbexecute
fails, the system will both write why to the
user log and set it onto the value of $$db_error
.
The basic commands you most likely need are:
CREATE DATABASE name - to make a new database
CREATE TABLE weather - to define a new table
(
city varchar(80),
stateAbbr char[2],
temp_lo int,
temp_hi int,
prcp real,
date date
)
DROP TABLE weather
to delete a table
Note that the weather table, while shown all nicely laid out, has to
be a single string to ^dbexecute
which will NOT span
multiple lines (but could have been created by ^join(...)
whose arguments could have been neatly laid out. Field names are case
insensitive (per std).
INSERT INTO weather VALUES ('San Francisco', 'CA', 46, 50, 0.25, '1994-11-27')
Note that text values must be encased in ’ xxx ’ (per std). Better style is to name the fields and values, omitting any you don’t want to supply:
INSERT INTO weather (date, city, temp_hi, temp_lo)
VALUES ('1994-11-29', 'Hayward', 54, 37)
or with lots of data and a file on the same machine as the database server,
COPY weather FROM '/home/user/weather.txt'
SELECT * FROM weather
retrieves all fields and all rows of table weather (rows in arbitrary order). You can name the fields and order with this:
SELECT city, temp_lo, temp_hi, prcp, date FROM weather
assuming the function of yours named expects 5 arguments. And a constrained query like:
SELECT * FROM weather WHERE city = 'San Francisco' AND prcp > 0.0
And of course there are other things the database can do, including joins and other searches, but you can go read the PostgreSQL manual for that. The above is enough to do many simple things.
It’s never as easy as you’d hope. Maybe I’ve hit all the stumbles for you.
While in theory you can install a 64-bit version of PostgreSQL on a
64-bit machine, I found there were problems in compiling ChatScript with
it, so I use only the 32-bit version, which works on either 32-bit or
64-bit Windows machines. Note that the 32-bit dll that is needed is at
the top level of ChatScript, so the system will automatically find it.
For reference, the compilation header files and library for loading are
in src/postgre/WIN32
First, you need to download the 32-bit Windows PostgreSQL. I used version 9.3.3 from this page: http://www.enterprisedb.com/products-services-training/pgdownload#windows win-x86-32. Download that and run it. You can default everything. ChatScript will just work with it.
Sorry. Don’t have a mac. You have to figure it out yourself.
So many choices. You probably have to read docs for your system. I went wrong in so many directions I lost track of whether I was logged in as me, su, sudo, postgres, etc. If you have problems installing, here is my best knowledge… After that go search the internet or documentation, don’t come to me to get postgres installed.
On my amazon AMI server I used
sudo yum -y install postgresql postgresql-server postgresql-devel postgresql-contrib
My 64-bit machine worked fine, my 32-bit machine had issues. Nominally you need to: set a password for your postgres user (the user that runs the db) and initialize the database in PGDATA via
service postgresql initdb
or
su - postgresql
initdb -D /var/lib/pgsql9/data/
Confirm there is now stuff installed in /var/lib/pgsql9
.
You may need to edit /var/lib/pgsql9/pg_hba.conf
to change
the local validation from peer to trust - e.g.
local all all trust
Sometimes it was already trust, and sometimes it was peer. On a
32-bit AMI I tried to lauch the postgres server but it wanted it to have
been installed in /var/lib/pgsql
for some reason. So I had
to create a symbolic link to make it happy:
ln -s /var/lib/pgsql9 /var/lib/pgsql
#2 launch the server via
service postgresql start
or
su - postgres - log in as postgres user
pg_ctl start - starts server in background
#3 make it auto restart on reboot
chkconfig postgresql on
You can confirm a server is running by typing
psql
which is a tool to log into the server. You may have to be logged in as postgres. There’s a bunch more about setting up login passwords, etc. RTFM.
Be careful about allowing the special characters / and . It will likely break your CS database implementation if you are using Postgres. You can always use ^substitute to alter your input.
The Postgres CS database schema definition for your user data field value is bytea and under the latest version of Postgres, the / and are special characters that will not be saved in this field without escaping it. So, if you save the data and these special characters are within it, it will not save the data. You might not notice it, until you realize that your user data is not being saved. And to fix this, it is a rabbit hole for now. Best to just avoid it altogether, unless you have a solution. You will need to modify the Postgres cs code and database definition. I would stay away from using any reference of / and in anything that might make it to your user files. Actually, I would scan all of your code and get rid of anything that uses these characters.


Is technology negatively affecting the Quality of human relationships ?
We live in a digital world
* With the existing of new and emerging technologies through the past decade, it is an undeniable fact that digital technologies have made a high contribution to improvements in our lives. It has made our lives easier * Humans are made to form relationships since we have an innate longing to share our lives with family, friends and partners. This social interaction is important but often complex as people take in face to face communication in different ways (through tone, facial expression, words etc.)
My opinion and ideas
* Effects of Technology on Communication * No Communication Barriers * Better Development Solutions * Negative Impact of Technology on Interpersonal Communication * Addiction to Technology
Conclusions
* All in all, the impact of technology on human interaction paints a pretty gloomy picture. But it’s a valuable discussion to have, as it teaches us the value of balancing our offline and online communications with others – personally and professionally. I guess the best approach is to make yourself available through technology only when appropriate, so that it supplements our relationships rather than replacing them.


|
Hailie's
Song
(Eminem) |
|
Yo
I can't sing·but I feel like singing.
I want to fuckin' sing·cuz I'm happy·yea·I'm happy. I got my baby back·yo·check it out... Verse 1 Somedays I sit staring out the window, watchin' this world pass me by Sometimes I think there's nothin' to live for. I almost break down and cry. Sometimes I think I'm crazy. I'm crazy, oh so crazy. Why am I here? Am I just wasting my time But then I see my baby, suddenly I'm not crazy.  Everyone's leaning on me Cuz sometimes it feels like the world's almost over, but then she comes back to me. Verse 2 My baby girl keeps getting' older. I watch her grow up with pride.  My insecurities could eat me alive But then I see my baby, suddenly I'm not crazy. It all makes sense when I look in her eyes. Verse 3 Man, if I could sing, I'd keep singin' this song to my daughter. If I could hit the notes, I'd blow something as long as my father to show her how I feel about her. How proud I am that I got her.  Now you probably get this picture from my public persona that I'ma pistol packin' drug addict who bags on his mama.  And just know that I grow colder the older I grow. This boulder on my shoulder gets heavy and harder to hold, and this load is like the weight of the world, and I think my neck is breakin'. Should I just give up or try to live up to these expectations? Now look, I love my daughter more than life in itself, but I got a wife that's determined to make my life livin' hell. But I handle it well, given the circumstances I'm dealt. So many chances, man, it's too bad - could have had someone else But the years that I've wasted is nothing to the tears that I've tasted, so here's what I'm facin'·3 felonies, 6 years of probation. I've went to jail for this woman, I've been to bat for this woman. I've taken bats to people's backs, bent over backwards for this woman. Man, I should have seen it coming.  Wouldn't have ripped the pre-nup up if I'da seen what she was fuckin.'  There's no more reason to cry no more. I got my baby, baby the only lady that I adore (Hailie). So sayonara, try tommorra, nice to know ya. Our baby's traveled back to the arms of her rightful owner. And suddenly it seems like my shoulder blades have just shifted. It's like the greatest gift you could get. The weight has been lifted. Chorus Outro Told you I can't sing.. Oh well... I tried... Hailie, remember when I said if you ever need anything, Daddy would be right there? Guess what? Daddy's here, and I ain't going nowhere, baby. I love you·(kiss) |