This is an EPICS areaDetector driver for cameras from Point Grey. These include IEEE 1394 Firewire DCAM, GigE, USB 2.0, and USB 3.0 cameras. The driver should work with any Point Grey camera. It has been tested on Firewire (Flea2), GigE (BlackFly, Flea3, Grasshopper3), and USB 3.0 (Grasshopper3) cameras. The driver has been tested on Windows and Linux with all 3 of these cameras. Note that Point Grey Firewire cameras can also be controlled by the generic areaDetector Windows Firewire driver and the areaDetector Linux Firewire driver, which work with Firewire cameras from any vendor. However, this Point Grey driver provides access to some vendor-specific features like strobe outputs that are not available in the generic drivers.
On Linux the Point Grey FlyCap2 SDK requires glibc version 2.14. This means it cannot be used on RHEL 6, but it can be used on RHEL 7, and Fedora 15 and higher. For USB 3.0 cameras kernel version 3.5.0 or higher is required. This means USB 3.0 cameras require Fedora 18 or higher, or RHEL 7.0 or higher.
This driver inherits from ADDriver. It implements many of the parameters in asynNDArrayDriver.h and in ADArrayDriver.h. It also implements a number of parameters that are specific to the Point Grey cameras. The pointGrey class documentation describes this class in detail.
The Point Grey cameras use the IIDC/DCAM model for controlling features like shutter time, white balance, frame sizes, shutter time, frame rates, etc. This model is used not only for the IEEE 1394 Firewire cameras, for which the IIDC/DCAM model was developed, but also for their USB and GigE cameras. The Point Grey driver thus has many similarities to the generic areaDetector Windows Firewire driver and the areaDetector Linux Firewire driver. The FlyCapture2 SDK abstracts this model to a certain extent, which facilitates writing a driver that works with all of the Point Grey cameras.
Point Grey frequently updates the available firmware for each camera to add features and fix bugs. However, they are not very good about putting the link to the latest firmware on their Web site. They claim this is because they only put the firmware on the Web site once it has been tested on all camera models in the camera family on which that firmware runs. In practice the firmware version listed on the Web site is often old and buggy. I have encouraged them to make the latest firmware more easily available. At present one must e-mail the support team<EMAIL_ADDRESS>and ask them if newer firmware is available for a particular camera, and if so to provide access to it. They normally do this by sending a link to a Dropbox folder.
The DCAM specification defines standard video formats, and a set of video modes for each video format. Point Grey combines the video format and video mode into a single quantity they call VideoMode. The following table lists these standard video modes.
Video mode Format7 is special. It allows defining an ROI on the camera to read out. The pixel resolution with which the size and position of this ROI can be defined can be queried, and is not necessarily a single pixel. In Format 7 the frame rate settings do not apply, and there is a another setting called PixelFormat that controls the video format, e.g. Mono8, Mono16, RGB8, etc.
Most cameras only support a small subset of these standard modes. The EPICS record $(P)$(R)VideoMode is an mbbo record that only has choices for the video modes actually available on the specific camera in use. Since mbbo records only allow a maximum of 16 choices and there are 24 standard video modes, it is conceivable that all available videos modes would not be presented. In practice this is not a problem since no existing camera supports more than 16 video modes.
| Point Grey Video Modes | |
| Mode Number | Mode Description |
|---|---|
| 0 | 160x120 YUV444 |
| 1 | 320x240 YUV422 |
| 2 | 640x480 YUV411 |
| 3 | 640X480 YUV422 |
| 4 | 640x480 RGB |
| 5 | 640x480 Mono8 |
| 6 | 640x480 Mono16 |
| 7 | 800x600 YUV422 |
| 8 | 800x600 RGB |
| 9 | 800x600 Mono8 |
| 10 | 1024x768 YUV422 |
| 11 | 1024x768 RGB |
| 12 | 1024x768 Mono8 |
| 13 | 800x600 Mono16 |
| 14 | 1024x768 Mono16 |
| 15 | 1280x960 YUV422 |
| 16 | 1280x960 RGB |
| 17 | 1280x960 Mono8 |
| 18 | 1600x1200 YUV422 |
| 19 | 1600x1200 RGB |
| 20 | 1600x1200 Mono8 |
| 21 | 1280x960 Mono16 |
| 22 | 1600x1200 Mono16 |
| 23 | Format7 (user-defined) |
When the video mode is Format7 then there is an available selection of Format7 modes. These modes are not defined in the IIDC/DCAM standard, but are specific to each vendor and camera. Typically Format7 mode 0 is the entire chip unbinned, and mode 1 is often the entire chip with 2x2 binning. The supported Format7 modes are listed in the Point Grey Technical Reference Manual for each camera. The EPICS Format7Mode record is used to select the Format7 mode to use. This is an mbbo record and the enum choices are only those supported by the camera in use. The enum strings are of the form "Format7 mode # (NYxNY)", for example "0 (1920x1200)" or "1 (960x600)" for Format7 modes 0 and 1 respectively on a camera with 1920 x 1200 pixels.
When the video mode is Format7 then there is an available selection of PixelFormats. The available PixelFormats depend on the selected Format7 mode. Selection of a PixelFormat is done with the EPICS PixelFormat record. This is an mbbo record that only has choices that are valid for the currently selected Format7 mode. The enum values in this record are thus dynamic, and it is displayed in a separate GUI window that must be closed and re-opened when the Format7 mode changes in order to guarantee that it is displaying the currently valid PixelFormat choices.
The following tables lists the standard pixel formats for video mode Format7. Note that typically only a few of these pixel formats are supported on a particular camera with a specific Format7 mode.
| Point Grey Format7 Pixel Formats | |
| Pixel Format Number | Pixel Format Description |
|---|---|
| 0 | Mono8 |
| 1 | YUV411 |
| 2 | YUV422 |
| 3 | YUV444 |
| 4 | RGB8 |
| 5 | Mono16 |
| 6 | RGB16 |
| 7 | Mono16_Signed |
| 8 | RGB16_Signed |
| 9 | Raw8 |
| 10 | Raw16 |
| 11 | Mono12 |
| 12 | Raw12 |
| 13 | BGR |
| 14 | BGRU |
| 15 | BGR16 |
| 16 | BGRU16 |
| 17 | YUV422_JPEG |
The following tables lists the standard IIDC/DCAM frame rates for video modes other than Format7. Selecting a video mode (other than Format7) defines the choice of available standard frame rates. Selecting a standard frame rate actually defines a range of frame rates that are available, and the actual frame rate can be adjusted within this range with the FrameRate property. The FrameRate property is controlled with the EPICS FrameRateAbsVal or AcquirePeriod records.
Selection of a standard frame rate is done with the EPICS FrameRate record. This is an mbbo record that only has choices that are valid for the currently selected video mode. The enum values in this record are thus dynamic, and it is displayed in a separate GUI window that must be closed and re-opened when the video mode changes in order to guarantee that it is displaying the currently valid FrameRate choices. Note that not all frame rates are supported by the IIDC standard for every video mode, and even when a frame rate is supported by the standard it may not be implemented for a particular camera.
In Format 7 the frame rate settings do not apply, and the frame rate is controlled solely by the FrameRate property.
| Standard IIDC/DCAM Video Frame Rates | |
| Frame Rate Number | Frame Rate (Frames/second) |
|---|---|
| 0 | 1.875 |
| 1 | 3.75 |
| 2 | 7.5 |
| 3 | 15 |
| 4 | 30 |
| 5 | 60 |
| 6 | 120 |
| 7 | 240 |
The DCAM specification defines a number of standard features, which control things such as the brightness, white balance, shutter time, etc. For each feature the standard defines control in both device units (12-bit integers) and absolute units (floating point). For example shutter time may support absolute seconds, as well as device units. A feature may or may not be supported on a particular camera. If it is supported it may or may not permit control in absolute units. Each feature may support both manual control and automatic control (e.g. automatic gain control).
Point Grey supports 18 of these DCAM features, which they call Properties.
| Point Grey Camera Properties | ||
| Property Number | EPICS Record Base Name | Point Grey PropertyType enum |
|---|---|---|
| 0 | Brightness | BRIGHTNESS |
| 1 | AutoExposure | AUTO_EXPOSURE |
| 2 | Sharpness | SHARPNESS |
| 3 | WhiteBalance | WHITE_BALANCE |
| 4 | Hue | HUE |
| 5 | Saturation = | SATURATION |
| 6 | Gamma | GAMMA |
| 7 | Iris | IRIS |
| 8 | Focus | FOCUS |
| 9 | Zoom | ZOOM |
| 10 | Pan | PAN |
| 11 | Tilt | TILT |
| 12 | Shutter | SHUTTER |
| 13 | Gain | GAIN |
| 14 | TriggerMode | TRIGGER_MODE |
| 15 | TriggerDelay | TRIGGER_DELAY |
| 16 | FrameRate | FRAME_RATE |
| 17 | Temperature | TEMPERATURE |
Point Grey supports 4 properties that are specific to GigE cameras.
| Point Grey Camera Properties | ||
| Property Number | EPICS Record Base Name | Point Grey PropertyType enum |
|---|---|---|
| 0 | Heeartbeat | HEARTBEAT |
| 1 | HeartbeatTimeout | HEARTBEAT_TIMEOUT |
| 2 | PacketSize | PACKET_SIZE |
| 3 | PacketDelay | PACKET_DELAY |
The following table describes how the Point Grey driver implements some of the standard driver parameters.
| Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record Definitions in ADBase.template and NDFile.template | ||
| Parameter index variable | EPICS record name | Description |
|---|---|---|
| ADTriggerMode | $(P)$(R)TriggerMode |
The choices for the Point Grey are:
|
| ADTemperatureActual | $(P)$(R)TemperatureActual | The readback of the temperature. |
| ADNumImages | $(P)$(R)NumImages | Controls the number of images to acquire. When TriggerMode=Internal this is handled in software. When TriggerMode=Multi-shot it is handled in the camera firmware. |
| ADNumExposures | $(P)$(R)NumExposures | Controls the number of exposures per image when TriggerMode="Multi-exposure" or "Multi-exposure bulb". |
| ADAcquireTime | $(P)$(R)AcquireTime | Controls the acquisition time per image. This is converted into the ShutterAbsVal control of the SHUTTER property. ShutterAbsVal = AcquireTime*1000., because SHUTTER units are ms. |
| ADAcquirePeriod | $(P)$(R)AcquirePeriod | Controls the period between images. This is converted into the FrameRateAbsVal control of the FRAME_RATE property. FrameRateAbsVal = 1./AcquirePeriod. |
| ADGain | $(P)$(R)Gain | Controls the analog gain on the camera. This is converted into the GainAbsVal control of the GAIN property. The units are dB. |
The Point Grey driver implements the following parameters in addition to those in asynNDArrayDriver.h and ADDriver.h. The database file is pointGrey.template for all records except the property records, which are in pointGreyProperty.template.
| Parameter Definitions in firewireWinDCAM.cpp and EPICS Record Definitions | ||||||
| Parameter index variable | asyn interface | Access | Description | drvInfo string | EPICS record name | EPICS record type |
|---|---|---|---|---|---|---|
| Video mode parameters | ||||||
| PGVideoMode | asynInt32 | r/w | The video mode. All possible values are listed in the Video modes section above. The actual enum choices for this record will only include the video modes supported by the camera in use. | PG_VIDEO_MODE |
$(P)$(R)VideoMode $(P)$(R)VideoMode_RBV |
mbbo
mbbi |
| PGFormat7Mode | asynInt32 | r/w | The Format7 mode when the camera is in VideoMode=Format7. This is discussed in the Format7 modes section above. The actual enum choices for this record will only include the Format7 modes supported by the camera in use. | PG_FORMAT7_MODE |
$(P)$(R)Format7Mode $(P)$(R)Format7Mode_RBV |
mbbo
mbbi |
| PGPixelFormat | asynInt32 | r/w | The pixel format when the camera is in VideoMode=Format7. This is discussed in the Pixel formats section above. The actual enum choices for this record will only include the pixel formats supported by the camera in use for the Format7Mode currently selected. | PG_PIXEL_FORMAT |
$(P)$(R)PixelFormat $(P)$(R)PixelFormat_RBV |
mbbo
mbbi |
| PGConvertPixelFormat | asynInt32 | r/w |
The driver allows converting the pixel format from the camera to another pixel format.
The pixel formats from the camera that can be converted are:
|
PG_CONVERT_PIXEL_FORMAT |
$(P)$(R)ConvertPixelFormat $(P)$(R)ConvertPixelFormat_RBV |
mbbo
mbbi |
| PGFrameRate | asynInt32 | r/w | The frame rate choice when the VideoMode is not Format7. This is discussed in the Frame rates section above. The actual enum choices for this record will only include the frame rates supported by the camera in use for the VideoMode currently selected. | PG_FRAME_RATE |
$(P)$(R)FrameRate $(P)$(R)FrameRate_RBV |
mbbo
mbbi |
| BinningMode | asynInt32 | r/w | The binning mode for GigE cameras. The allowed values are camera-specific. | PG_BINNING_MODE |
$(P)$(R)BinningMode $(P)$(R)BinningMode_RBV |
mbbo
mbbi |
|
Property parameters These parameters apply to each of the 18 Point Grey properties discussed in the Properties section above. The $(PROPERTY) macro in this table is the EPICS record base name listed in that section. These records are defined in pointGreyProperty.template. |
||||||
| PGPropertyAvail | asynInt32 | r/o | A flag indicating if the property is available. | PG_PROP_AVAIL | $(P)$(R)$(PROPERTY)Avail | bi |
| PGPropertyOnOffAvail | asynInt32 | r/o | A flag indicating if the property supports turning on and off. | PG_PROP_ON_OFF_AVAIL | $(P)$(R)$(PROPERTY)OnOffAvail | bi |
| PGPropertyOnOff | asynInt32 | r/w | Controls whether the property is on or off. | PG_PROP_ON_OFF |
$(P)$(R)$(PROPERTY)OnOff
$(P)$(R)$(PROPERTY)OnOff_RBV |
bo
bi |
| PGPropertyOnePushAvail | asynInt32 | r/o | A flag indicating if the property supports setting once (called One Push). This is typically used for setting things like the gain or shutter time automatically once. | PG_PROP_ONE_PUSH_AVAIL | $(P)$(R)$(PROPERTY)OnePushAvail | bi |
| PGPropertyOnePush | asynInt32 | r/w | Processing this record causes a one-push setting of the property. | PG_PROP_ONE_PUSH | $(P)$(R)$(PROPERTY)OnePush | bo |
| PGPropertyAbsAvail | asynInt32 | r/o | A flag indicating if the property supports absolute (floating point) control. | PG_PROP_ABS_AVAIL | $(P)$(R)$(PROPERTY)AbsAvail | bi |
| PGPropertyAutoAvail | asynInt32 | r/o | A flag indicating if the property supports automatic control. | PG_PROP_AUTO_AVAIL | $(P)$(R)$(PROPERTY)AutoAvail | bi |
| PGPropertyManAvail | asynInt32 | r/o | A flag indicating if the property supports manual control. | PG_PROP_MAN_AVAIL | $(P)$(R)$(PROPERTY)ManAvail | bi |
| PGPropertyAutoMode | asynInt32 | r/w | Controls whether the property is manually controlled or automatically controlled. | PG_PROP_AUTO_MODE |
$(P)$(R)$(PROPERTY)AutoMode
$(P)$(R)$(PROPERTY)AutoMode_RBV |
bo
bi |
| PGPropertyAbsAvail | asynInt32 | r/o | A flag indicating if the property supports absolute (floating point) control. | PG_PROP_ABS_AVAIL | $(P)$(R)$(PROPERTY)AbsAvail | bi |
| PGPropertyAbsMode | asynInt32 | r/w | Controls whether the property is controlled in integer device units or floating point absolute units. | PG_PROP_ABS_MODE |
$(P)$(R)$(PROPERTY)AbsMode
$(P)$(R)$(PROPERTY)AbsMode_RBV |
bo
bi |
| PGPropertyValue | asynInt32 | r/w | The value of the property in integer device units. This controls the ValueA field of the property, which is the only integer field used for all properties except WHITE_BALANCE. | PG_PROP_VAL |
$(P)$(R)$(PROPERTY)Val
$(P)$(R)$(PROPERTY)Val_RBV |
ao
ai |
| PGPropertyValueB | asynInt32 | r/w | The value of the property in integer device units. This controls the ValueB field of the property, which is only used to control the Blue value of WHITE_BALANCE. | PG_PROP_VAL_B |
$(P)$(R)$(PROPERTY)ValB
$(P)$(R)$(PROPERTY)ValB_RBV |
ao
ai |
| PGPropertyValueMin | asynInt32 | r/o | The minimum value of the property in device units. This is used to control the LOPR and DRVL fields of the $(P)$(R)$(PROPERTY)Val record. | PG_PROP_VAL_MIN | $(P)$(R)$(PROPERTY)ValMin | ai |
| PGPropertyValueMax | asynInt32 | r/o | The maximum value of the property in device units. This is used to control the HOPR and DRVH fields of the $(P)$(R)$(PROPERTY)Val record. | PG_PROP_VAL_MAX | $(P)$(R)$(PROPERTY)ValMax | ai |
| PGPropertyValueAbs | asynFloat64 | r/w | The value of the property in floating point absolute units. | PG_PROP_VAL_ABS |
$(P)$(R)$(PROPERTY)ValAbs
$(P)$(R)$(PROPERTY)ValAbs_RBV |
ao
ai |
| PGPropertyValueAbsMin | asynFloat64 | r/o | The minimum value of the property in absolute units. This is used to control the LOPR and DRVL fields of the $(P)$(R)$(PROPERTY)ValAbs record. | PG_PROP_VAL_ABS_MIN | $(P)$(R)$(PROPERTY)ValAbsMin | ai |
| PGPropertyValueAbsMax | asynFloat64 | r/o | The maximum value of the property in absolute units. This is used to control the HOPR and DRVH fields of the $(P)$(R)$(PROPERTY)ValAbs record. | PG_PROP_VAL_ABS_MAX | $(P)$(R)$(PROPERTY)ValAbsMax | ai |
|
GigE Property parameters These parameters apply to each of the 4 Point Grey GigE properties discussed in the GigE Properties section above. The $(PROPERTY) macro in this table is the EPICS record base name listed in that section. These records are defined in pointGreyProperty.template. |
||||||
| PGPropertyValue | asynInt32 | r/w | The value of the property in integer device units. This controls the ValueA field of the property, which is the only integer field used for all properties except WHITE_BALANCE. | PG_PROP_VAL |
$(P)$(R)$(PROPERTY)Val
$(P)$(R)$(PROPERTY)Val_RBV |
ao
ai |
| PGPropertyValueMin | asynInt32 | r/o | The minimum value of the property in device units. This is used to control the LOPR and DRVL fields of the $(P)$(R)$(PROPERTY)Val record. | PG_PROP_VAL_MIN | $(P)$(R)$(PROPERTY)ValMin | ai |
| PGPropertyValueMax | asynInt32 | r/o | The maximum value of the property in device units. This is used to control the HOPR and DRVH fields of the $(P)$(R)$(PROPERTY)Val record. | PG_PROP_VAL_MAX | $(P)$(R)$(PROPERTY)ValMax | ai |
| Trigger parameters | ||||||
| PGTriggerSource | asynInt32 | r/w | The trigger source signal. Choices are "GPIO_0", GPIO_1","GPIO_2", and "GPIO_3", which selects one of 4 GPIO pins on the camera. However, not all choices may be available on a specific camera, and the enum choices will only be the trigger sources actually supported on the camera in use. | PG_TRIGGER_SOURCE |
$(P)$(R)TriggerSource
$(P)$(R)TriggerSource_RBV |
mbbo
mbbi |
| PGTriggerPolarity | asynInt32 | r/w | The trigger polarity. Choices are "Low", and "High". | PG_TRIGGER_POLARITY |
$(P)$(R)TriggerPolarity
$(P)$(R)TriggerPolarity_RBV |
bo
bi |
| PGSoftwareTrigger | asynInt32 | r/w | Processing this record causes the driver to issue a software trigger. | PG_SOFTWARE_TRIGGER | $(P)$(R)SoftwareTrigger | bo |
| PGSkipFrames | asynInt32 | r/w | The number of frames to skip when TriggerMode="Skip frames". | PG_SKIP_FRAMES |
$(P)$(R)SkipFrames
$(P)$(R)SkipFrames_RBV |
longout
longin |
| Strobe parameters | ||||||
| PGStrobeSource | asynInt32 | r/w | The strobe output signal. Choices are "GPIO_0", GPIO_1","GPIO_2", and "GPIO_3", which selects one of 4 GPIO pins on the camera. However, not all choices may be available on a specific camera, and the enum choices will only be the strobe sources actually supported on the camera in use. | PG_STROBE_SOURCE |
$(P)$(R)StrobeSource
$(P)$(R)StrobeSource_RBV |
mbbo
mbbi |
| PGStrobeEnable | asynInt32 | r/w | Enables the strobe output. Choices are "Disable", and "Enable". | PG_STROBE_ENABLE |
$(P)$(R)StrobeEnable
$(P)$(R)StrobeEnable_RBV |
bo
bi |
| PGStrobePolarity | asynInt32 | r/w | The strobe polarity. Choices are "Low", and "High". | PG_STROBE_POLARITY |
$(P)$(R)StrobePolarity
$(P)$(R)StrobePolarity_RBV |
bo
bi |
| PGStrobeDelay | asynFloat64 | r/w | The delay of the strobe signal relative to the start of acquisition. | PG_STROBE_DELAY |
$(P)$(R)StrobeDelay
$(P)$(R)StrobeDelay_RBV |
ao
ai |
| PGStrobeDuration | asynFloat64 | r/w | The duration of the strobe signal. If zero then the strobe output is asserted during the image aquisition time. | PG_STROBE_DURATION |
$(P)$(R)StrobeDuration
$(P)$(R)StrobeDuration_RBV |
ao
ai |
| Bandwidth control parameters | ||||||
| PGMaxPacketSize | asynInt32 | r/o | The maximum packet size. This depends on the current acquisition settings for Firewire and USB cameras. For GigE cameras this is determined by calling DiscoverGigEPacketSize at startup, which should return the maximum Ethernet packet size supported between the camera and the IOC. However, this sometimes returns 9000 (jumbo packets) when jumbo packets are not in fact supported. In this case the user should manually set PacketSize to 1440 or image acquisition will fail. | PG_MAX_PACKET_SIZE | $(P)$(R)MaxPacketSize | longin |
| PGPacketSize | asynInt32 | r/w | The packet size to use. This is used to control the maximum bandwidth, and hence maximum frame rate, on Firewire and USB cameras. For GigE cameras it should be set to the largest packet size supported on the Ethernet connection between the camera and IOC. It should be set to 1440 for connections that do not support jumbo packets, and as large as 9000 for connections that do support jumbo packets. If PacketSize is set to 0 then the driver will use the current value of MaxPacketSize. | PG_PACKET_SIZE |
$(P)$(R)PacketSize
$(P)$(R)PacketSize_RBV |
ao
ai |
| PGPacketSizeActual | asynInt32 | r/o | The actual packet size being used. | PG_PACKET_SIZE_ACTUAL | $(P)$(R)PacketSizeActual | longin |
| PGPacketDelay | asynInt32 | r/w | The packet delay to use in microseconds. This is used to control the maximum bandwidth, and hence maximum frame rate, on GigE cameras. It is not used for Firewire or USB cameras. The default is 400 microseconds. If the number of CorruptFrames is large then this can be increased, for example to 1000. This will reduce the maximum frame rate but can significantly reduce the number of CorruptFrames. | PG_PACKET_DELAY |
$(P)$(R)PacketDelay
$(P)$(R)PacketDelay_RBV |
longout
longin |
| PGPacketDelayActual | asynInt32 | r/o | The actual packet delay being used. | PG_PACKET_DELAY_ACTUAL | $(P)$(R)PacketDelayActual | longin |
| PGBandwidth | asynFloat64 | r/o | The calculated bandidth in MB/s. This is computed from the image size and the frame rate. | PG_BANDWIDTH | $(P)$(R)Bandwidth | ai |
| Timestamp parameters | ||||||
| PGTimeStampMode | asynInt32 | r/w |
The timestamp mode. Controls the value of the NDArray,.timeStamp value. Choices
are:
|
PG_TIME_STAMP_MODE |
$(P)$(R)TimeStampMode
$(P)$(R)TimeStampMode_RBV |
mbbo
mbbi |
| Camera statistics | ||||||
| PGCorruptFrames | asynInt32 | r/o | The number of corrupt frames. The Point Grey SDK resets this to 0 each time acquisition is started. | PG_CORRUPT_FRAMES | $(P)$(R)CorruptFrames_RBV | longin |
| PGDroppedFrames | asynInt32 | r/o | The number of dropped frames. The Point Grey SDK resets this to 0 each time acquisition is started. | PG_DROPPED_FRAMES | $(P)$(R)DroppedFrames_RBV | longin |
| PGDriverDropped | asynInt32 | r/o | The number of frames dropped by the driver. The Point Grey SDK resets this to 0 each time acquisition is started. | PG_DRIVER_DROPPED | $(P)$(R)DriverDropped_RBV | longin |
| PGTransmitFailed | asynInt32 | r/o | The number of time transmission failed. The Point Grey SDK resets this to 0 each time acquisition is started. | PG_TRANSMIT_FAILED | $(P)$(R)TransmitFailed_RBV | longin |
The Point Grey driver is created with the pointGreyConfig command, either from C/C++ or from the EPICS IOC shell.
pointGreyConfig(const char *portName, const char* cameraId, int traceMask, int memoryChannel, int maxBuffers, size_t maxMemory, int priority, int stackSize)
The cameraId parameter can either be an index of the camera in the list of available cameras (e.g. 0 if there is only a single Point Grey camera available) or the serial number of the camera to use. For additional details on the meaning of the parameters to this function refer to the detailed documentation on the pointGreyConfigConfig function in the pointGrey.cpp documentation and in the documentation for the constructor for the pointGrey class.
The traceMask can be set to a value > 1 to enable asynTrace debugging during initialization, before the value can be set from the IOC shell or via the asynRecord. Set this to 0x21 to enable ASYN_TRACE_WARNING, which will trace all calls to the Point Grey FlyCap2 library.
The memoryChannel can be set to a value > 0 to load the initial camera parameters from non-volatile memory in the camera. Setting memoryChannel to N loads from memoryChannel N-1, i.e. 1 loads memory channel 0. There is currently a problem with Linux and for BlackFly GigE cameras. If the IOC is run a second time after it has been used to acquire any images the driver loses communication with the camera. The problem appears to be that there is a corrupt setting in the camera, which causes it to malfunction the next time the program is run. Setting memoryChannel 1 will work around this problem by replacing the settings in the camera with a default set. Since the EPICS IOC sets nearly all the camera settings to save/restore values at startup anyway, this is not a serious limitation.
There an example IOC boot directory and startup script (iocBoot/iocPointGrey/st.cmd) provided with areaDetector.
The following show the MEDM screens that are used to control the Point Grey cameras.
pointGrey.adl
is the main screen used to control Point Grey cameras.
pointGreyProperties.adl
is the screen used to control the properties
of Point Grey cameras. Note that some of these properties, such as Shutter, FrameRate,
and Gain can also be controlled by standard areaDetector records, like AcquireTime,
AcquirePeriod, and Gain. The widgets on the medm screen are hidden if the corresponding
feature is not available.
pointGreyFrameRate.adl
is the screen used to control the frame rate
in standard video modes. This is a separate screen because the valid enum strings
for the Framerate record can change when the standard video mode is changed. When
that is changed it is necessary to close this screen and re-open it in order for
the new menus to be displayed. This is a limitation of the EPICS Channel Access
which does not send monitor events for changes in enum fields. Note that the readback
of the FrameRate on the main pointGrey.adl screen can also be incorrect, so it may
be necessary to close and re-open that main screen as well.
pointGreyPixelFormat.adl
is the screen used to control the pixel format
in Format7 mode. This is a separate screen because the valid enum strings for the
PixelFormat can change when the Format7 mode is changed. When that is changed it
is necessary to close this screen and re-open it in order for the new menus to be
displayed. This is a limitation of the EPICS Channel Access which does not send
monitor events for changes in enum fields. Note that the readback of the PixelFormat
on the main pointGrey.adl screen can also be incorrect, so it may be necessary to
close and re-open that main screen as well.


Nikkor 24mm F/1.8
Prime Lense
Fast f/1.8 aperture
Great for landscapes, skyscrapers, environmental portraits, food, action, hobbies and much more
Price 22,XXX Baht
Nikkor 28mm F/1.8
Prime Lense
Fast f/1.8 aperture
Great for landscapes, skyscrapers, environmental portraits, food, action, hobbies and much more
Price 22,XXX Baht
Nikkor 35mm F/1.8
Prime Lense
Fast f/1.8 aperture
Versatile lens well suited for everyday photo and HD video applications.
Price 16,XXX Baht
Nikkor 50mm F/1.8
Prime Lense
Fast f/1.8 aperture
Versatile lens well suited for everyday photo and HD video applications.
Price 7,XXX Baht
Nikkor 85mm F/1.8
Prime Lense
Fast f/1.8 aperture
Great for portrait and telephoto
Price 14,XXX Baht


- Fantasy
- Sportsbook
- Racebook
With three championships to choose from, there’s something for every kind of fan. Qualify for the Live Finals to get a beach getaway for two — including live events hosted by NFL veteran Jon Dorenbos and a special performance by ARTIST. Or stay home and compete online for an equally massive prize pool.
Win your way to the Live Final in Puerto Rico to get loads of bonus perks and compete for the $500K top prize.
Play online for a $1M Championship grand prize — with more qualifiers, more finalists, and more chances to win.
Pick your team in a snake draft to qualify now. Win, and you’ll join us in Puerto Rico for all the WFFC parties and events.
Win a WFFC Live Final qualifier contest to get a share of $2.5M in prizes — and all this:
Trip for two to beautiful Puerto Rico, including flights and four nights of hotel accommodations in our luxury resort on the beach
Access for two to our WFFC Welcome Reception on 12/12 featuring our host, NFL Veteran and AGT Alum, Jon Dorenbos
VIP invitation for two to the WFFC Live Final Viewing Party on 12/15
Entry for two to the WFFC After Party, with a special concert performance by ARTIST
$300 in resort credits to use on the various activities and excursions at the Wyndham Rio Mar Resort
Entry for you and your guest into the $50K Single Game Championship on 12/12
Entry into the WFFC Fan Championship
Check out our highlight
video from last year's WFFC to see what you missed!
The Live Final isn’t for everyone, but the Fan Championship is. With over 15K total spots and qualifiers for as low as $0.25, there are plenty of chances to win a shot at the $3.5M prize pool.
*Direct entry available after 12/10 for $250
These titans of the touchscreen have already earned their spot at the WFFC. Enter a qualifier for your chance to join them.


LinkedIn Design Exercise
Connect to classmates who can be
lifelong mentors, best teams, or help you land your dream job
Type Individual Project
Role UX Designer
Tools Sketch, Adobe Illustrator, Adobe Photoshop, Protopie
Timespan Spring 2019 | One week
The Challenge
LinkedIn is a place where people can connect to people they know, in order to share professional experience and
opportunities. Professional networking can begin at any point, even in school. Increasingly, students are relying on
their mobile address book, and not their email address book, to manage their contacts.
Design an experience that helps college students discover and connect to their classmates, without relying on email.
Re-define the challenge
There are some keywords that need to be clearly re-defined for this challenge:
- College students: all levels of college students including undergraduate, graduate, and PhD
- Classmates: peers physically at the same school who have met, or who have not met before
- Without relying on email: without using any features of email
Given the fact that LinkedIn specializes in professional networking, I assumed that
all levels of college students want to develop connections with classmates through LinkedIn in order to:
1) view classmates' profiles to better understand their recruiting status
2) share previous job experiences
3) find peers who can work on any and all types of projects together for career development
After re-defining the challenge and having initial assumptions, I started to delve into the research phase.
User Research: Survey & Interviews
Keeping the initial assumptions in mind, my research goal was to better understand a college student's motivation and behavior when connecting to classmates; this would help me to validate my assumptions. The most imperative question for me was: if they want to connect to classmates through LinkedIn, why?
Also, it's important to know that how users generally feel about LinkedIn's current features and how its features do or do not help students connect with classmates. Plus, I would like to know what kinds of features of email have motivated students to use the service frequently when they want to connect with classmates.
The following are the core questions I wanted to address through research:
User:
1. What does "connect" mean to college students?
2. Why do students want to connect with their classmates through LinkedIn? What are their core motivations?
3. How do students connect with classmates? Via what methods and why?
4. What expectations do college students have for LinkedIn when they use the service?
LinkedIn current product & Email:
1. Which of LinkedIn's features help students get connected with their classmates?
2. Which parts are the most challenging when connecting with classmates through LinkedIn?
3. What are the greatest strengths of email when it helps students connect with their classmates?
To better understand the problem and needs, I tried to survey and interview as many students as possible, and ended up conducting survey with 50+ students and 10 in-depth user interviews.
Affinity Map & Key Insights
Based on data from survey and qualitative interviews, I used Affinity map to gather data and organize them into groups based on their relationship. Some key insights and user needs I found include:
1) Students are looking for an exclusive space that allows them to find classmates for their personal/coursework projects: LinkedIn can be an optimal platform for them to validate peers' working capabilities and recruit.
2) Students are looking for an exclusive space that allows them to share the most recent recruiting experience: students especially want to learn and share their interview experiences from peers.
3) Students are looking for alumni directory based on industry: students want to find all alumni based on industry and seek mentorship and advice.
4) Students are satisfied with the fact that almost everyone uses email and people are quick to respond: students found that LinkedIn messaging function serves as a part of the entire service, so overall, users do not check it as regularly as they do their email, nor do they respond as quickly.
Persona & Current User Flow
Based on key insights from the previous phase, I created a persona to better understand target users' needs and frustrations. After, I looked at current LinkedIn features and analyzed current user flows related to previous college students' needs.
Wireframing & User Testing
Based on previous phases, I decided key features for my design solutions. After, I began wireframing, and tested with users to gain feedback and iterate my design.
The following are key features in my design solution:
1)
Switch to student mode: students can enjoy exclusive space only for college students.
2)
Find classmates and work together: students can look for a) opportunities working together with classmates, or b) classmates who have similar career interests.
3)
Share the most recent experiences: students can share their recruiting experiences including recent interviews or preparation, and also find someone to ask for help or advice.
4)
Find your alumni in your industry: students can easily find alumni in the industry they are interested in and seek mentorship.
5) Use a dedicated LinkedIn's Messenger application: students can install LinkedIn's dedicated messenger app for mobile devices that allows you to chat with your LinkedIn connection more quickly and conveniently.
Final Design
Prototyping & Key Features
1. Switch to Student Mode
College students have options for registering a student account and can input information about their university.
This would allow college students to not only continue exploring outside of college career opportunities, but also enjoy exclusive space for college students in LinkedIn.
2. Discover & Work Together
Students can discover classmates who have similar career interest through LinkedIn profile, and they can validate peer capabilities with each other.
They can either find opportunities through postings by classmates or post their own things to find the best team members.
Once students find something attractive, students can request to join the work by using auto message.
3. Share your latest experiences
User research indicates that students want to find classmates who have recent recruiting experiences.
This Share tap would allow students to post any recent career-related experience or information that they want to share with classmates.
Based on postings, students can ask for advice, mock interviews or exchange valuable tips and information.
4. Find alumni in your industry
Students can find alumni through School tap, where they see all industries and find which alumni work for specific industries.
Also, the solution would suggest top-matched alumni based on students' profile. This would enable students to easily find the best person to ask for advice, mentorship, or referrals.
Students can also use auto-message when initiate the conversation.
5. Use dedicated messaging service
One of the primary reasons for why students prefer email over LinkedIn was because users do not check LinkedIn message regularly (since it only serves as a part of the entire service), so there is a delay in responding.
In order to address this problem, I suggest offering a separate messaging service, which solely focuses on messaging.
Doing this would help users facilitate communication through LinkedIn, and I believe Facebook messenger application can be a good bench-marking point.
Reflection
This project gave me two important takeaways.
One: re-defining problem phase and assumption-driven approach played a significant role.
When I first started this project, I re-defined the problem and started with some initial assumptions. Later, through user research, I validated these assumptions, and it turned out that it helped me a lot when narrowing the scope, conducting research and saving time. It also helped me not to lose the track of the research focus. Although not all assumptions were correct, by validating initial assumptions, I was able to facilitate the overall process more efficiently.
Two: user research is important when improving current products.
When I was first given the project, I decided to spend more than a half of the week in conducting user research. I tried to recruit users as many as possible, and in the end, I was able to conduct surveys with 50+ users and 10 user in-depth interviews. This research really helped me better understand user's motivations and frustrations for the existing product. From there, I was able to find design opportunities; it allowed me to have deeper understanding of the users.
Lastly, if I were make any difference in this project, I would:
1) take "feasibility" into consideration as some of my solutions included launching a new product,
2) broaden the user research spectrum, which would allow me to have diversity in users - I only surveyed and interviewed Michigan students,
3) conduct competitive analysis and more user testings so I can come up with better ideas for solutions and understand current trends in connecting with peers for college students,
4) explore onboarding experience design for both college student version and independent messenger application,
5) think deeply more about how my solution can affect non-student users, ensuring my solution do not negatively affect the majority of LinkedIn users.
Next: Route Creator UX Design


I'm a Portuguese web developer currently living in Montreal, Canada. 🇨🇦
Currently, I work with the wonderful people at Shopify as a front-end developer. I seriously enjoy doing a bit of the many different worlds in development, but front-end is definitely where the heart is.
I maintain a separate website for my work at ricardofilipe.com. Why I have a separate one, I have no idea. It's also incredibly outdated, you've been warned.
This blog is built using Jekyll and hosted on Github Pages, and of course you can check out its source code. As well as serving as a blogging platform, it's also an excuse for me to try different patterns of development on the client side, so structure here is very experimental and bound to be changed a lot!
The original theme upon this was built was Pixyll, of which I stripped pretty much all markup and styling, but kept some of the Jekyll functionality as this was my first stab with the blogging platform. Big thanks and credits to its author!


Follow these steps to build custom LEAN Docker images using the CLI:
git
or download and extract the latest master branch archive. Save this repository to a directory called Lean in the directory created in step 1.lean build
to build the foundation image, compile LEAN, build the engine image, and build the research image.
$ lean build Building 'lean-cli/foundation:latest' from '/home/johndoe/QuantConnect/Lean/DockerfileLeanFoundation' Compiling the C# code in '/home/johndoe/QuantConnect/Lean' Building 'lean-cli/engine:latest' from '/home/johndoe/QuantConnect/Lean/Dockerfile' using 'lean-cli/foundation:latest' as base image Building 'lean-cli/research:latest' from '/home/johndoe/QuantConnect/Lean/DockerfileJupyter' using 'lean-cli/engine:latest' as base image Setting default engine image to 'lean-cli/engine:latest' Setting default research image to 'lean-cli/research:latest'
By default the lean build
command tags all custom images with latest
.
You can specify a different tag using the --tag <value>
option.
If you haven't changed the foundation Dockerfile, the CLI automatically skips building the custom foundation image and uses the official quantconnect/lean:foundation
image instead.


Here's a regular code block:
<?php echo 'Hello World!'; ?>
Here's one that holds a list:
- list item - another list item


Dream Team Digital Creatives is the brainchild of a litigation solicitor from Singapore who has a passion for building and promoting brands. While the ordinary marketing firms believe and follow the traditional methods of spamming the consumers with advertisements without forming a connection with them emotionally, we believe in the heart sell method. We sell the products after establishing a deeper emotional bond with the consumers, leaving an immense influence of the brand on their life. We make the brands a part of the consumers' lifestyle.
At Dream Team we follow five major steps and those are Discovery, Analyze, Build, Promote, Growth.
Our philosophy revolves around understanding our client and how to improve their business.
To serve our customers to the best by delivering technically sound and affordable business solutions.
At Dream Team we intend to provide best service possible to our clients


Do you also register for online courses but keep finding other stuff to do instead? Do you have a list of tutorials that you want to take and a bunch of tools you would love to learn but find it difficult to motivate yourself to do it? The coding club is a community where we help each other achieve these goals and educate ourselves.
We will schedule courses, exercises, guides etc, and as a group commit to do it in an agreed period of time. In the end we share our achievements, what we have learned, and the results. We also agree to keep in touch while taking the course by meeting online and share how it’s going.
Join the telegram chat if you want to join the coding club. In this channel we have informal chats about the ongoing courses:
https://t.me/terratowncodingclub
Meetings and presentations are done on jitsi meet:
https://meet.jit.si/terratowncodingclub
Scheduled courses
February/March 2021
Data Scraping for journalists and researchers (in Danish)
https://www.kaasogmulvad.dk/courses/python/
Status meetings: 10th February & 10th March, 7PM - 8PM on Jitsi Meet
Final presentation: 31st March, 7PM-8PM on Jitsi Meet
Shared list of ideas of courses, tutorials and guides https://docs.google.com/spreadsheets/d/1fj2awYUgWNMGXygJntNdsd-VyR8QXYfPQtg4e0z_-k


{% extends "_/base.html" %} {% block Title %}Welcome{% endblock Title %} {% block Main %}
This is the index page I haven't done yet.


HOLY THURSDAY: CHRISM MASS
ENTRANCE ANTIPHON
Jesus Christ has made us into a kingdom, and priests for his God and Father. To him be glory and power for ever and ever. Amen.
The
GLORIA is said
COLLECT
O God, who anointed your Only Begotten Son with the Holy Spirit and made him Christ and Lord, graciously grant that, being made sharers in his consecration, we may bear witness to your Redemption in the world. Through our Lord Jesus Christ, your Son, who lives and reigns with you in the unity of the Holy Spirit, one God, for ever and ever.
After
the reading of the Gospel, the Bishop preaches the Homily in which, taking his
starting point from the text of the readings proclaimed in the Liturgy of the
Word, he speaks to the people and to his Priests about priestly anointing,
urging the Priests to be faithful in their office and calling on them to renew
publicly their priestly promises.
RENEWAL OF PRIESTLY PROMISES
After
the Homily the Bishop speaks with the Priests in these or similar words.
Beloved sons, on the anniversary of that day when Christ our Lord conferred his priesthood on his Apostles and on us, are you resolved to renew, in the presence of your Bishop and Godís holy people, the promises you once made?
The Priests, all together, respond: I am.
Are you resolved to be more united with the Lord Jesus and more closely conformed to him, denying yourselves and confirming those promises about sacred duties towards Christís Church which, prompted by love of him, you willingly and joyfully pledged on the day of your priestly ordination?
Priests: I am.
Are you resolved to be faithful stewards of the mysteries of God in the Holy Eucharist and the other liturgical rites and to discharge faithfully the sacred office of teaching, following Christ the Head and Shepherd, not seeking any gain, but moved only by zeal for souls?
Priests: I am.
Then
the bishop addresses the people:
As for you, dearest sons and daughters, pray for your Priests, that the Lord may pour out his gifts abundantly upon them, and keep them faithful as ministers of Christ, the High Priest, so that they may lead you to him, who is the source of salvation.
People: Christ, hear us. Christ, graciously hear us.
And pray also for me, that I may be faithful to the apostolic office entrusted to me in my lowliness and that in your midst I may be made day by day a living and more perfect image of Christ, the Priest, the Good Shepherd, the Teacher and the Servant of all.
People: Christ, hear us. Christ, graciously hear us.
May the Lord keep us all in his charity and lead all of us, shepherds and flock, to eternal life.
All: Amen.
The
Profession of Faith (Creed) is not said.
PRAYER OVER THE OFFERINGS
May the power of this sacrifice, O Lord, we pray, mercifully wipe away what is old in us and increase in us grace of salvation and newness of life. Through Christ our Lord.
PREFACE The Priesthood of Christ and the Ministry of Priests
It is truly right and just, our duty and our salvation,
always and everywhere to give you thanks,
Lord, holy Father, almighty and eternal God.
For by the anointing of the Holy Spirit,
you made your Only Begotten Son
High Priest of the new and eternal covenant,
and by your wondrous design were pleased to decree
that his one Priesthood should continue in the Church.
For Christ not only adorns with a royal priesthood
the people he has made his own,
but with a brotherís kindness he also chooses men
to become sharers in his sacred ministry
through the laying on of hands.
They are to renew in his name
the sacrifice of human redemption,
to set before your children the paschal banquet,
to lead your holy people in charity,
to nourish them with the word
and strengthen them with the Sacraments.
As they give up their lives for you
and for the salvation of their brothers and sisters,
they strive to be conformed to the image of Christ himself
and offer you a constant witness of faith and love.
And so, Lord, with all the Angels and Saints,
we, too, give you thanks, as in exultation we acclaim:
Holy, holy, holy Lord...
Eucharistic
Prayer
COMMUNION ANTIPHON
I will sing for ever of your mercies, O Lord; through all ages my mouth will proclaim your fidelity.
PRAYER AFTER COMMUNION
We beseech you, almighty God, that those you renew by your Sacraments may merit to become the pleasing fragrance of Christ. Who lives and reigns for ever and ever.


separate your short-lived branch and long-lived branch
use short-lived branch for every issue you had
periodically delete your short-lived branch
don't push your short-lived branch to the remote repository, unless you want to share the code to other developers
name your long-lived branch clearly and understandable, eg production, staging, live, development
name your short-lived branch with prefix (if you don't have issue number / ticket number). this will make you easy to remember when you have a lot of short-lived branch
create another master backup if you are unsure when you want to merge. test it in that backup before going to master. don't forget to delete your junk branch
use revert instead reset unless you want completely remove commit history
be aware with rebase. one failure can be a fatal. rebasing will completely override code. that means you lost the changes in the same file


As you work your way through the Alien Invasion project, you’ll develop a number of files that work together to create a functioning game. If you make an error somewhere, it can be difficult to know exactly where things went wrong. There are several restore points available for this chapter. You can use these restore points in two ways:
Compare your code to code that works: You should try this first. Look at the code you have, and compare it to the corresonding restore point. You might be able to spot where your code differs, and simply correct your own code.
Start over from a restore point: If you want to just start with code that works, you can make a copy of the project using a restore point and pick up from there. For example if you want to start from a working version that fires bullets, you can copy the files and directories from restore_point_2_fires_bullets and go from there. This might be helpful if you get lost later in the project, or if you’ve been adding your own features and you want to go back to the book’s version of the game.
There are three restore points available for Chapter 12:
fire_bullets()
. This is restore_point_3_end_chapter_12.Pygame is usually straightforward to install, but it can get tricky depending on your operating system and the version of Python you have installed. These instructions can help you get Pygame installed quickly, so you can focus on building games.
If you’re using your system’s default version of Python 2.7, you can install Pygame using the package manager:
$ sudo apt-get install python-pygame
To make sure the installation worked correctly, start a Python terminal session and try to import Pygame:
$ python
>>> import pygame
>>>
If you don’t see an error message, you’re ready to start building Alien Invasion.
Setting up Pygame for Python 3 is a two-step process; first you’ll install some packages that Pygame depends on, then you’ll download and install Pygame.
Run the following commands to install the packages required to run Alien Invasion. (If you use a command such as python3.5
on your system, replace python3-dev
with python3.5-dev
):
$ sudo apt-get install python3-dev mercurial
$ sudo apt-get install libsdl-image1.2-dev libsdl2-dev libsdl-ttf2.0-dev
If you want to enable some more advanced functionality in Pygame such as the ability to add sounds, you can also install the following libraries:
$ sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev
$ sudo apt-get install libswscale-dev libsmpeg-dev libavformat-dev libavcode-dev
$ sudo apt-get install python-numpy
You’ll need pip for the next step; if you haven’t set up pip yet, see the instructions for seting up pip. Enter the following to install Pygame:
$ pip install --user hg+http://bitbucket.org/pygame/pygame
The output will pause for a moment, informing you which libraries were found. Press Enter, even if there are some libraries missing. You should see a message that Pygame installed successfully. To confirm the installation was successful, start a Python terminal session and try to import Pygame by entering the following:
$ python3
>>> import pygame
>>>
If you see no error messages, you’re ready to start working on Alien Invasion!
You’ll need Homebrew to install some packages that Pygame depends on.
To install the libraries that Pygame depends on, enter the following:
$ brew install hg sdl sdl_image sdl_ttf
This installs the minimum number of packages needed to run Alien Invasion. If you want Pygame to have a little more functionality such as working with sound, you can install two additional libraries:
$ brew install sdl_mixer portmidi
You’ll need pip to install Pygame. Once you have pip set up correctly, issue the following command:
$ pip3 install --user hg+http://bitbucket.org/pygame/pygame
To confirm the installation, start a Python terminal session and try to import Pygame:
$ python3
>>> import pygame
>>>
If this works, you’re ready to start building Alien Invasion!
To install Pygame on your version of Windows, find a Windows installer at https://bitbucket.org/pygame/pygame/downloads/ that matches the version of Python you’re running. If you don’t see an appropriate installer listed at Bitbucket, check http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame.
Once you’ve downloaded the appropriate file, run the installer if it’s a .exe file.
If you have a file ending in .whl, copy the file to your project directory. You’ll need pip set up, so if you haven’t done that yet do so now. Then open a command window, navigate to the folder that you copied the installer to, and use pip to run the installer:
> python -m pip install --user pygame-1.9.2a0-cp35-none-win32.whl
You can test if the installation was successful by starting a new Python terminal session and trying to import Pygame:
> python
>>> import pygame
>>>
If this works, you’re ready to start building Alien Invasion!


Which Operating System do you Prefer to Use?
Which Of These Kinds of Work Would you Prefer?
Which of These Projects Would You Enjoy Working On The Most?
You should consider a track that contains C#
You should consider a track that contains PHP
You should consider a track that contains RUBY


CLEARASIL ULTRA TINTED RAPID ACTION TREATMENT- benzoyl peroxide cream
Reckitt Benckiser, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredient
Benzoyl Peroxide 10%
Use
for the treatment of acne
Warnings
For external use only
Do not use if you have very sensitive skin or are sensitive to benzoyl peroxide
When using this product
- avoid unnecessary sun exposure and use a sunscreen
- avoid contact with the eyes, lips and mouth
- avoid contact with hair or dyed fabrics, including carpet and clothing which may be bleached by this product
- with other topical acne medications, at the same time or immediately following use of this product, increased dryness or irritation of the skin may occur. If this occurs, only one medication should be used unless directed by a doctor.
- skin irritation may occur, characterized by redness, burning, itching, peeling or possibly swelling. More frequent use or higher concentrations may aggravate skin irritation. Mild irritation may be reduced by using the product less frequently or in a lower concentration.
Stop use and ask a doctor if skin irritation becomes severe.
Keep out of reach of children. If swallowed, get medical help or contact a Poison Control Center immediately.
Directions
- cleanse the skin thoroughly before applying medication
- cover the entire affected area with a thin layer one to three times daily
- because excessive drying of the skin may occur, start with one application daily, then gradually increase to two or three times daily if needed or as directed by a doctor. If bothersome dryness or peeling occurs, reduce application to once a day or every other day.
-
if going outside use a sunscreen. Allow CLEARASIL ULTRA ® Tinted Rapid Action Treatment Cream to dry, then follow directions in sunscreen labeling. If irritation or sensitivity develops, discontinue use of both products and ask a doctor.
Other information
- keep tightly closed
- store at controlled room temperature 68-77 °F (20-25 °C)
Inactive Ingredients
Water, Gluconolactone, Glyceryl Stearate, Glycerin, PEG 40 Stearate, Propylene Glycol, PEG 100 Stearate, Cetyl Alcohol, Dimethicone, Magnesium Aluminum Silicate, Xanthan Gum, Phenoxyethanol, Ammonium Hydroxide, Isopropyl Paraben, Arginine, Isobutyl Paraben, Butyl Paraben, Iron Oxides, Titanium Dioxide
Questions? Comments?
Call 1-866-25-CLEAR (1-866-252-5327)
For details call the number above or
visit us at www.clearasil.com
Distributed by: Reckit Benckiser Inc Parsippany,
NJ 07054-0224.
PRINCIPAL DISPLAY PANEL - 28 g Tube Carton
Dermatologically
Tested
Clearasil
ULTRA ®
Tinted
Rapid Action™
Treatment
Cream
Acceladerm™
Technology
4
HOURS
Visibly reduces
redness and pimple
size in as little as
4 hours
Actual Size
10% BENZOYL PEROXIDE
ACNE MEDICATION
NET WT.: 1 OZ. (28 g)
Reckitt Benckiser, Inc.


Chapter 22 Statistical Application: Estimating Regression Coefficients with LU Decomposition
In OLS regression our goal is to estimate regression coefficients (b) from a data matrix (X) and vector of outcomes (y). To do this we want to solve the following equation for b:
\[ (\mathbf{X}^{\intercal}\mathbf{X})\mathbf{b} = \mathbf{X}^{\intercal}\mathbf{y} \]
Pre-multiplying both sides by \((\mathbf{X}^{\intercal}\mathbf{X})^{-1}\) gives us our conventional solution for b, namely \(\mathbf{b}=(\mathbf{X}^{\intercal}\mathbf{X})^{-1}\mathbf{X}^{\intercal}\mathbf{y}\). However, this requires us to find the inverse of \(\mathbf{X}^{\intercal}\mathbf{X}\). Unfortunately, the computational functions that are used to compute inverses of matrices sometimes end up being numerically unstable. For example, consider the following simulated data set of \(n=50\) cases:
# Number of cases
= 50
n
# Create 50 x-values evenly spread b/w 1 and 500
= seq(from = 1, to = 500, len = n)
x
# Create X matrix
= cbind(1, x, x^2, x^3)
X
# Create b matrix
= matrix(
b data = c(1, 1, 1, 1),
nrow = 4
)
# Create vector of y-values
set.seed(1)
= X %*% b + rnorm(n, mean = 0, sd = 1)
y
# Find determinant of (X^T)X
det(t(X) %*% X)
[1] 3.113748e+32
Here we have simulated data using the following statistical model:
\[ y_i = 1 + 1(x_i) + 1(x_i^2) + 1(x_i^3) + e_i \qquad \mathrm{where~} e_i\overset{i.i.d.}{\sim}\mathcal{N}(0,1) \]
The determinant of \(\mathbf{X}^{\intercal}\mathbf{X}\) is not zero (although it is close to zero), so we should be able to find an inverse. What happens if we try to use solve()
to find the inverse of the \(\mathbf{X}^{\intercal}\mathbf{X}\) matrix to obtain the regression coefficient estimates? Here crossprod(X)
is equivalent to t(X) %*% X
, and crossprod(X, y)
is equivalent to t(X) %*% y
.
# Try to compute b
solve(crossprod(X)) %*% crossprod(X, y)
Error in solve.default(crossprod(X)): system is computationally singular: reciprocal condition number = 2.93617e-17
The standard R function for inverse is computationally singular. To see why this happens, we can take a closer look at the \(\mathbf{X}^{\intercal}\mathbf{X}\) matrix. Here we will examine these values:
# Set the number of digits
options(digits = 4)
# Compute X^T(X) matrix
crossprod(X)
x
5.000e+01 1.253e+04 4.217e+06 1.597e+09
x 1.253e+04 4.217e+06 1.597e+09 6.454e+11
4.217e+06 1.597e+09 6.454e+11 2.716e+14
1.597e+09 6.454e+11 2.716e+14 1.176e+17
Note the difference of several orders of magnitude. On a computer, we have a limited range of numbers. This makes some numbers behave like 0, when we also have to consider very large numbers. This in turn leads to what is essentially division by 0, which produces errors.
22.0.1 Estimating Regression Coefficients Using LU Decomposition
Remember, our goal is to solve the following for b.
\[ (\mathbf{X}^{\intercal}\mathbf{X})\mathbf{b} = \mathbf{X}^{\intercal}\mathbf{y} \]
This is exactly the type of problem that LU decomposition can help solve. Note that the first “term,” \((\mathbf{X}^{\intercal}\mathbf{X})\), is a square matrix. The right-hand side of the equation is known from the data, and we want to solve for the elements of b. This is the exact format of \(\mathbf{AX}=\mathbf{Y}\). So rather than trying to find the inverse of \((\mathbf{X}^{\intercal}\mathbf{X})\), we can carry out the decomposition on the \(\mathbf{X}^{\intercal}\mathbf{X}\) matrix to produce an L and U matrix that we can then use to solve for b.
# LU decomposition
library(matrixcalc)
= lu.decomposition(crossprod(X))
lu_decomp
# View results
lu_decomp
$L
[,1] [,2] [,3] [,4]
[1,] 1.000e+00 0 0.0 0
[2,] 2.505e+02 1 0.0 0
[3,] 8.435e+04 501 1.0 0
[4,] 3.195e+07 227105 751.5 1
$U
[,1] [,2] [,3] [,4]
[1,] 50 12525 4.217e+06 1.597e+09
[2,] 0 1079851 5.410e+08 2.452e+11
[3,] 0 0 1.863e+10 1.400e+13
[4,] 0 0 1.953e-03 3.095e+14
Now we can solve for Z in the equation \(\mathbf{LZ}=\mathbf{Y}\), but remembering that here, the right-hand side of this equation is \(\mathbf{X}^{\intercal}\mathbf{y}\), so we are solving for Z in:
\[ \mathbf{LZ}=\mathbf{X}^{\intercal}\mathbf{y} \]
In our example,
\[ \begin{bmatrix} 1 & 0 & 0 & 0\\ 2.640052 \times 10^{-3} & 1 & 0 & 0\\ 7.840596 \times 10^{-6} & 7.919771 \times 10^{-3} & 1 & 0\\ 3.129978 \times 10^{-8} & 7.211598 \times 10^{-5} & 2.495756 \times 10^{-2} & 1 \end{bmatrix}\begin{bmatrix} z_{11} \\ z_{21} \\ z_{31} \\ z_{41} \\ \end{bmatrix} = \begin{bmatrix} 1.601685 \times 10^{9}\\ 6.470034 \times 10^{11}\\ 2.722570 \times 10^{14}\\ 1.178380 \times 10^{17}\\ \end{bmatrix} \]
Then we can solve the equation:
\[ \mathbf{Ub}=\mathbf{Z} \]
which in our example is:
\[ \begin{bmatrix} 1.597455 \times 10^{9} & 6.454018 \times 10^{11} & 2.7161 \times 10^{14} & 1.175658 \times 10^{17}\\ 1 & -1.064388 \times 10^{8} & -7.166250 \times 10^{10} & -3.876978 \times 10^{13}\\ 1 & 1 & 3.542182 \times 10^{7} & 3.066370 \times 10^{10}\\ 1 & 1 & 1 & -5.169923 \times 10^{7} \end{bmatrix}\begin{bmatrix} b_{11} \\ b_{21} \\ b_{31} \\ b_{41} \\ \end{bmatrix} = \begin{bmatrix} 1.601685 \times 10^{9}\\ 6.469992 \times 10^{11}\\ 2.722518 \times 10^{14}\\ 1.178312 \times 10^{17} \end{bmatrix} \]
# Solve for Z
= forwardsolve(lu_decomp$L, crossprod(X,y))
Z
# Solve for b
= backsolve(lu_decomp$U, Z)
b
# View b
b
[,1]
[1,] 0.9038
[2,] 1.0066
[3,] 1.0000
[4,] 1.0000
We have successfully estimated the coefficients, which are all near 1. Note that fitting the model using lm()
we obtain the same coefficients.
# Fit model using columns of the X matrix
.1 = lm(y ~ 1 + X[ , 2] + X[ , 3] + X[ , 4])
lm
# View coefficientw
coef(lm.1)
(Intercept) X[, 2] X[, 3] X[, 4]
0.9038 1.0066 1.0000 1.0000
The lm()
function (and most other statistical software) uses decomposition to solve for coefficients rather than inverting the \(\mathbf{X}^\intercal\mathbf{X}\) matrix. Although the estimates here are the same as those from LU decomposition, the lm()
function actually uses QR decomposition. We will examine this method in the next chapter.


Supervisors
arrow_back
arrow_back
Your Supervisor's information
Supervisor
Name
Licence Number
Phone Number
Cancel
Save
send
Supervisor
Name
Licence Number
Phone Number
Cancel
Save
send
Add
Delete All supervisors


May 2020 Hacker News Hiring Trends
With the midway point of 2020 fast approaching, and the world in the midst of perhaps the largest shift in employment in my lifetime, it seems like an appropriate time time to take a peek at how software job trends are looking through the lens of Ask HN: Who is hiring?, a regular, monthly collection of software development job postings. The summary posts on hntrends.com usually focus on specific technologies that are gaining or losing adoption, but first let's look at how Covid-19 is affecting this specific job board.
From my two perspectives, this data and my own job it should be no surprise that Software Development jobs have been significantly impacted by Covid-19. As companies halt hiring and announce furloughs and layoffs, the trend is showing clearly on Ask HN: Who is hiring?. April and May both dropped sharply, 39% decreases over the same month in 2019. May is traditionally the peak month of the year for postings on HN, let's hope the summer and fall can rebound to beat May this year.
Now, onto the tech changes, or lack thereof. React still reigns supreme in the number 1 spot with Python and AWS holding steady in second and third place, respectively. This is the same top three as April as well as the same top three as last May.
Looking further through the rankings, it looks like TypeScript is the one making the biggest push in 2020, just like it was in 2019. TypeScript has held the #5 spot nearly all of 2020. In fact 4 of the top 10 are JavaScript related as JavaScript continues its dominance of the web stack.
Onto the rankings...
Compare Top 10 Programming Languages
Compare Rails, node.js, PHP and Django
Compare React, Angular, Vue, and Ember
Compare Postgresql, MySQL and SQL Server
Compare Mongodb, Elasticsearch, Cassandra and DynamoDB
Compare Storm, Hadoop and Spark
Compare Kafka, RabbitMQ, SQS and Kinesis
Compare Terraform, Chef, Puppet, Ansible and CloudFormation
Compare Docker, Kubernetes, Mesos and Terraform
Compare Blockchain, Bitcoin and Ethereum
| Tech | Rank | Last Month | Change | Last Year | Change |
|---|---|---|---|---|---|
| React | 1 | 1 | 0 | 1 | 0 |
| Python | 2 | 2 | 0 | 2 | 0 |
| AWS | 3 | 3 | 0 | 3 | 0 |
| Full Stack | 4 | 7 | +3 | 8 | +4 |
| TypeScript | 5 | 5 | 0 | 12 | +7 |
| node.js | 6 | 10 | +4 | 4 | -2 |
| JavaScript | 7 | 8 | +1 | 7 | 0 |
| Postgresql | 8 | 4 | -4 | 6 | -2 |
| golang | 9 | 12 | +3 | 10 | +1 |
| Java | 10 | 13 | +3 | 11 | +1 |
| DevOps | 11 | 9 | -2 | 5 | -6 |
| Machine Learning | 12 | 6 | -6 | 9 | -3 |
| Docker | 13 | 19 | +6 | 13 | 0 |
| AI | 14 | 11 | -3 | 17 | +3 |
| Ruby | 15 | 18 | +3 | 18 | +3 |
| iOS | 16 | 15 | -1 | 21 | +5 |
| Android | 17 | 14 | -3 | 15 | -2 |
| GraphQL | 18 | 17 | -1 | 31 | +13 |
| Kubernetes | 19 | 16 | -3 | 14 | -5 |
| Rails | 20 | 20 | 0 | 16 | -4 |
| Tech | Mentions | Rank | Last Year Mentions | Last Year Rank | Change |
|---|---|---|---|---|---|
| Spring | 8 | 64 | 3 | 133 | +69 |
| Asp | 5 | 73 | 3 | 131 | +58 |
| Oracle | 6 | 69 | 4 | 123 | +54 |
| Haskell | 6 | 67 | 6 | 98 | +31 |
| Express | 9 | 58 | 8 | 87 | +29 |
| REST | 17 | 33 | 17 | 54 | +21 |
| Bitcoin | 5 | 75 | 6 | 96 | +21 |
| Distributed Systems | 16 | 34 | 17 | 55 | +21 |
| Rust | 19 | 31 | 20 | 51 | +20 |
| Apollo | 6 | 68 | 8 | 84 | +16 |
| Tech | Mentions | Rank | Last Year Mentions | Last Year Rank | Change |
|---|---|---|---|---|---|
| webpack | 0 | 204 | 9 | 79 | -125 |
| RDS | 0 | 222 | 6 | 100 | -122 |
| Git | 1 | 168 | 13 | 62 | -106 |
| HTML5 | 0 | 181 | 7 | 88 | -93 |
| Web Services | 1 | 162 | 8 | 85 | -77 |
| Redshift | 1 | 172 | 6 | 101 | -71 |
| S3 | 1 | 129 | 12 | 69 | -60 |
| Apache | 1 | 151 | 6 | 95 | -56 |
| SQL | 5 | 79 | 39 | 27 | -52 |
| Embedded Systems | 1 | 139 | 6 | 97 | -42 |


{% extends "base.html" %}
{% load hash %}
{% load humanize %}
{% block title %}{{building|hash:'Building Name'}} - Michigan Public School Data{% endblock %}
{% block banner %}
{% with building|hash:'2009-10' as year %}
{% with district|hash:'2009-10' as district_year %}
{{building|hash:'District Name'}}
{{building|hash:'Building Name'}}
| Grade | Subject | % Met/exceeded | District | State |
|---|---|---|---|---|
| {{item.grade}} | {{item.subject}} | {{item.value}} | {{item.district}} | {{item.state}} |
| Subject | Score | District | State |
|---|---|---|---|
| Composite | {{act_year.ACT.Composite.Mean}} | {{act_year.ACT.Composite.district}} | {{act_year.ACT.Composite.state}} |
| Math | {{act_year.ACT.Mathematics.Mean}} | {{act_year.ACT.Mathematics.district}} | {{act_year.ACT.Mathematics.state}} |
| Science | {{act_year.ACT.Science.Mean}} | {{act_year.ACT.Science.district}} | {{act_year.ACT.Science.state}} |
| English | {{act_year.ACT.English.Mean}} | {{act_year.ACT.English.district}} | {{act_year.ACT.English.state}} |
| English+Writing | {{english_writing.Mean}} | {{english_writing.district}} | {{english_writing.state}} |
| Writing | {{act_year.ACT.Writing.Mean}} | {{act_year.ACT.Writing.district}} | {{act_year.ACT.Writing.state}} |
| Reading | {{act_year.ACT.Reading.Mean}} | {{act_year.ACT.Reading.district}} | {{act_year.ACT.Reading.state}} |
MEAP data from the Michigan Department of Education Office of Educational Assessment and Accountability. ACT data from the Michigan Department of Education Michigan Merit Examination.
| Group | Count | % | District | State |
|---|---|---|---|---|
| Total | {{year.headcount.tot_all.value|intcomma}} | - | - | - |
| American Indian | {{year.headcount.tot_ai.value|intcomma}} | {{year.headcount.tot_ai.percent}}% | {{year.headcount.tot_ai.district}}% | {{year.headcount.tot_ai.state}}% |
| Asian | {{year.headcount.tot_as.value|intcomma}} | {{year.headcount.tot_as.percent}} | {{year.headcount.tot_as.district}} | {{year.headcount.tot_as.state}} |
| African-American | {{year.headcount.tot_aa.value|intcomma}} | {{year.headcount.tot_aa.percent}} | {{year.headcount.tot_aa.district}} | {{year.headcount.tot_aa.state}} |
| White | {{year.headcount.tot_wh.value|intcomma}} | {{year.headcount.tot_wh.percent}} | {{year.headcount.tot_wh.district}} | {{year.headcount.tot_wh.state}} |
| Hispanic | {{year.headcount.tot_hs.value|intcomma}} | {{year.headcount.tot_hs.percent}} | {{year.headcount.tot_hs.district}} | {{year.headcount.tot_hs.state}} |
| Multiracial | {{year.headcount.tot_mr.value|intcomma}} | {{year.headcount.tot_mr.percent}} | {{year.headcount.tot_mr.district}} | {{year.headcount.tot_mr.state}} |
Demographic information is from the State of Michigan Center for Educational Performance and Information (CEPI)
| Issue | School | District | |
|---|---|---|---|
| Student Bullying: | {{year.school_safety.Student_Bullying.value}} | {{year.school_safety.Student_Bullying.district}} |
?
Incidents of student bullying that have occurred during the past school year on school property or at a school-sponsored activity.
|
| Truancy: | {{year.school_safety.Truancy.value}} | {{year.school_safety.Truancy.district|intcomma}} |
?
Incidents of physical assaults between a student and another person(s) that were reported to law enforcement or that resulted in suspension or expulsion.
|
| Physical Assaults: | {{year.school_safety.Physical_Assaults.value}} | {{year.school_safety.Physical_Assaults.district}} | |
| Gang Activity: | {{year.school_safety.Gang_Activity.value}} | {{year.school_safety.Gang_Activity.district}} | |
| Illegal Possession: | {{year.school_safety.Illegal_Possession.value}} | {{year.school_safety.Illegal_Possession.district}} | |
| Trespassers: | {{year.school_safety.Trespassers.value}} | {{year.school_safety.Trespassers.district}} |
?
The number of incidents when 911 or law enforcement were called as a result of an intruder or trespasser. An intruder or trespasser is defined as one who enters or remains on a public school campus or facility without authorization and with no lawful purpose.
|
| Vandalism: | {{year.school_safety.Vandalism.value}} | {{year.school_safety.Vandalism.district}} | |
| Property Damage: | ${{year.school_safety.Property_Damage.value|intcomma}} | ${{year.school_safety.Property_Damage.district|intcomma}} |
?
An estimate of the funds, rounded to the nearest whole number, needed to repair the vandalism or destruction of school property
|
| Criminal Sexual Conduct: | {{year.school_safety.Criminal_Sexual_Conduct.value}} | {{year.school_safety.Criminal_Sexual_Conduct.district}} | |
| Hostage: | {{year.school_safety.Hostage.value}} | {{year.school_safety.Hostage.district}} | |
| Weapons: | {{year.school_safety.Weapons.value}} | {{year.school_safety.Weapons.district}} |
?
Incidents when a person was in possession of a dangerous weapon anywhere on school property or at a school-sponsored activity, including but not limited to buses, cars, and lockers. The term "dangerous weapon" means a firearm, dirk, dagger, stiletto, iron bar, knife with a blade over three (3) inches in length, pocket knife opened by a mechanical device, and brass knuckles.
|
| Homicide: | {{year.school_safety.Homicide.value}} | {{year.school_safety.Homicide.district}} | |
| Drive By Shooting: | {{year.school_safety.Drive_By_Shooting.value}} | {{year.school_safety.Drive_By_Shooting.district}} | |
| Bomb Threat: | {{year.school_safety.Bomb_Threat.value}} | {{year.school_safety.Bomb_Threat.district}} | |
| Explosion: | {{year.school_safety.Explosion.value}} | {{year.school_safety.Explosion.district}} | |
| Arson: | {{year.school_safety.Arson.value}} | {{year.school_safety.Arson.district}} | |
| Robbery: | {{year.school_safety.Robbery.value}} | {{year.school_safety.Robbery.district}} | |
| Unauthorized Removal: | {{year.school_safety.Unauthorized_Removal.value}} | {{year.school_safety.Unauthorized_Removal.district}} |
?
Incidents over the past school year when a student was removed from school without authorization. Examples may include a teacher, administrator, other staff, other student, or non-legal guardian who removes a student from school property or a school-sponsored activity without prior approval from the appropriate authority.
|
Safety information is from the State of Michigan Center for Educational Performance and Information (CEPI). District and State numbers may have been aggregated.


This utility functions to give a definite width or height size to an element. The size you can use is listed in the variable $fix-sizes
located in the file /sass/_variables.scss
. Please add a new size to the file to be able to use more sizes.
| Utility Class | Description |
|---|---|
| fw-10 / fh-10 | Will produce a width or height size of 10px |
| fw-20 / fh-20 | Will produce a width or height size of 20px |
| fw-30 / fh-30 | Will produce a width or height size of 30px |
| fw-40 / fh-40 | Will produce a width or height size of 40px |
You can also set width or height only for certain breakpoints with the format fw-{breakpoint}-{sizeIndex}
atau fh-{breakpoint}-{sizeIndex}
.
| Utility Class | Description |
|---|---|
| fw-sm-10 / fh-sm-10 | Will produce a width or height size of 10px |
| fw-md-20 / fh-md-20 | Will produce a width or height size of 20px |
| fw-lg-30 / fh-lg-30 | Will produce a width or height size of 30px |
| fw-xl-40 / fh-xl-40 | Will produce a width or height size of 40px |


Often, we may find ourselves wanting to style things differently depending on their context.
Take emphasis as an example. In typical copy, presented in a roman (non-italic) type, we may wish to add emphasis to a word or phrase by using italics.
But what if we want to quote a block of text which also emphasizes something?
This is a quote from some famous person who undoubtedly has something very important to say.
If we want our block quote to be set in italics by default, then the visual style for emphasis needs to be different, but only when inside a blockquote.
This is where nested selectors come in handy.


public class KProbeResistantMatrix
extends java.lang.Object
implements java.io.Serializable
| Constructor and Description |
|---|
KProbeResistantMatrix(byte[][] matrix)
A constructor that sets the given matrix.
|
| Modifier and Type | Method and Description |
|---|---|
int |
getProbeResistantInputSize()
Returns the probe resistant input size (the matrix columns).
|
int[] |
getProbeResistantLabels()
Returns array of size m, when each cell i contains "i".
|
static KProbeResistantMatrix |
loadFromFile(java.lang.String filename)
Loads the matrix from a file.
|
byte[] |
restoreKeys(byte[] receivedKeys)
Restores the original keys using the matrix from the transformed keys.
|
static void |
saveToFile(KProbeResistantMatrix matrix,
java.lang.String filename)
Saves the matrix to a file.
|
CircuitInput |
transformInput(CircuitInput originalInput,
java.security.SecureRandom random)
Gets a original inputs and transform them into inputs that corresponds to the matrix columns.
|
byte[] |
transformKeys(byte[] originalKeys,
MultiKeyEncryptionScheme mes)
Gets a original keys and transform them into keys that corresponds to the matrix.
|
public KProbeResistantMatrix(byte[][] matrix)
public int getProbeResistantInputSize()
public int[] getProbeResistantLabels()
public byte[] transformKeys(byte[] originalKeys, MultiKeyEncryptionScheme mes)
originalKeys
- The keys that matched the rows of the matrix.mes
- used to generate new keys.public CircuitInput transformInput(CircuitInput originalInput, java.security.SecureRandom random)
originalInput
- The inputs that matched the rows of the matrix.random
- used to generate new inputs.public byte[] restoreKeys(byte[] receivedKeys)
receivedKeys
- the transformed keys.public static void saveToFile(KProbeResistantMatrix matrix, java.lang.String filename) throws java.io.IOException
matrix
- The matrix to write to the file.filename
- The name of the file to write the matrix to.java.io.IOException
- In case there was a problem during the writing of the matrix to the file.public static KProbeResistantMatrix loadFromFile(java.lang.String filename) throws java.io.IOException, java.lang.ClassNotFoundException
filename
- The name of the file to read the matrix from.java.io.IOException
- In case there was a problem during the writing of the matrix to the file.java.lang.ClassNotFoundException


MuxPi setup for DUT¶
This manual will teach you how to configure MuxPi to allow interfacing with DUT using UART or Ethernet connection.
First of all, you need to connect to the MuxPi:
$ ssh<EMAIL_ADDRESS>Set up DHCP server on eth1¶
Most embedded Linux distributions are looking for DHCP server thus below settings should be desired for most situations.
Set up eth1 interaface:
# vim /etc/network/interfaces.d/eth1
And populate it with the following:
auto eth1 allow-hotplug eth1 iface eth1 inet static address <IP_ADDRESS> netmask <IP_ADDRESS>
Install isc-dhcp-server:
# apt-get install isc-dhcp-server
Note
You might need to set up a gateway to have internet access on the MuxPi. For Ubuntu see this manual [1].
Then you should set the interface which will be dhcp server:
# vim /etc/default/isc-dhcp-server
Adjust lines at the bottom of the file as below:
INTERFACESv4="eth1" #INTERFACESv6=""
Configure iscp-dhcp-server to always assign the same address:
# vim /etc/dhcp/dhcpd.conf
To always assign the same address:
subnet <IP_ADDRESS> netmask <IP_ADDRESS> { range <IP_ADDRESS> <IP_ADDRESS>; }
Now after booting the device, you should be able to connect to it using a protocol understood by both MuxPi and DUT.
Connect using UART¶
Set terminal options for the DUT serial connection by running
stty
command with appropriate settings:# stty -F /dev/ttyS1 115200 cs8 -cstopb -parenb
Note
You need to adjust setting in the command above to fit your UART connection
Warning
This setting is temporary.
Connect to the device using your tool of choice:
# screen /dev/ttyS1 115200 # minicom -b 115200 -D /dev/ttyUSB0
Note
Adjust the baud rate accordingly.
| [1] | https://help.ubuntu.com/community/Internet/ConnectionSharing#Ubuntu_Internet_Gateway_Method_.28iptables.29 |


Woody Allen's "Celebrity" reminded me a little too much of his soporific "Stardust Memories," which was also filmed in black-and-white and concentrated on the nature of celebrities. This film is superior but suffers from the same lack of comic energy and enthusiasm. For the first time since his overrated comic segment in "New York Stories," I felt Woody's heart was not in the right place for this material.
"Celebrity" stars Kenneth Branagh as celebrity hound and interviewer Lee Simon, who drives an Astor Martin to attract and have sex with all the female celebrities, while getting the scoop on their precious moments of fame and recognition. He gets oral pleasure from a famous actress (Melanie Griffith - less annoying than usual), and he gives a brief moment of orgasmic pleasure to a model (thrillingly played by Charlize Theron). What he really wants to do is write a novel about celebrities, but he lacks the self-confidence to finish it, even with the help of a sexy book editor (Famke Janssen).
Lee is not a happy person, though, and lacks self-control. He regretfully divorced the shrilly Robin (Judy Davis), a schoolteacher who is afraid to deal with life after divorce. She resorts to religious retreats and superstar plastic surgeons, yet the answer may lie with a TV producer, Tony Gardella (Joe Mantegna). Robin decides to work for him at a busy TV station where she meets an assortment of talk show guests, including skinheads, overweight people, Hasidic jews, and a prostitute (Bebe Newirth).  In the process, Robin becomes a TV celebrity host.
There are many good jokes in Woody's latest opus. My favorite is Charlize Theron's sleepy, sexually polymorphous model (a bit cribbed from "Annie Hall") who brings everythingto a halt when she appears- she could be the next Sharon Stone (who appeared in "Stardust Memories"). I also loved the gala movie opening where Lee sees a famous director (Andre Gregory) who makes "arty, pretentious movies in black-and-white". There's also a vivid sequence involving Leonardo DiCaprio as a superstar actor who trashes hotel rooms and beats up his girlfriend (Gretchen Mol) - he makes such a startlingly violent 10-minute entrance that it is a real shame when he exits. And there are several quips about novelists, particularly one moment where Lee sleeps with one of DiCaprio's escorts, who insists that she writes `like Chekov'.
The central figure in "Celebrity" is the nervous chatterer Robin Simon, played with pitch-perfect precision by the indomitable Judy Davis. Her character is a wounded soul searching for meaning in her universe, and she has her reservations about getting married again. Her character is so real, so vivid, so humane that it is a shame Woody didn't invest the same interest in the other characters.
For example, there is the crucial Lee Simon role (played by Kenneth Branagh), who is miscast and obviously uncomfortable with mimicking Woody's famous tics and neurotic stutters. His role is severely underwritten, lacking any of the pathos or charm that Woody would have brought to it. Branagh is better off in Shakespeare country, or when he commands an American accent in his own work, such as "Dead Again." The aforementioned Charlize Theron disappears too soon, as well as the comic fury of DiCaprio.
Still, there's an element of bewitching attitude and class to Winona Ryder as Lee's girlfriend, a promiscuous actress who can't commit to one man. The virtually unrecognizable Bebe Newirth is also exceedingly good as the soft-spoken prostitute. Joe Mantegna brings back the suave coolness that he brought to Allen's thoughtful Alice, which also starred Judy Davis.
"Celebrity" is a good film, but it doesn't have the manic, furious energy of "Deconstructing Harry" or "Husbands and Wives," one of his greatest films. It is surprisingly chaste and unscrupulous in its attack and commentary on modern-day celebrities. With its abrupt ending and uneven characterizations, "Celebrity" is simply filler until the next great Woody Allen film.
For more reviews, check out JERRY AT THE MOVIES at http://buffs.moviething.com/buffs/faust/
E-mail me with questions, concerns or comments at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Component page template is compiled as ES Template. In addition it has lifecycle hooks, events handling, data managment and Virtual DOM data bindings.
It is useful to use Component page when you need page-specific logic.
Events Handling
Page Component Data
Hello! My name is ${name}. I am ${age} years old.
I like to play:
-
${likes.map((item) => $h`
- ${item} `)}
Extended Context
Component page context as Template7 page context is also extended with some additional variables.
$f7route
Contains properties of the current route:
- $f7route.url: ${$f7route.url}
- $f7route.path: ${$f7route.path}
- $f7route.params: ${JSON.stringify($f7route.params)}
- $f7route.hash: ${$f7route.hash}
- $f7route.query: ${JSON.stringify($f7route.query)}
$theme
Currently active theme:
- $theme.ios: ${$theme.ios}
- $theme.md: ${$theme.md}
- $theme.aurora: ${$theme.aurora}


The Bistro, opened by its current owners, Vic and Cynthia Kralj, in January 1994. The space went through a major face change in June of the same year. Formerly known as the Vintage Cellar Wine Shop, The Bistro soon established itself as a major Hop Spot and Music Venue in the East Bay. We proudly serve the community of Hayward with locally roasted coffee, fresh soups & sandwiches, fine wine & handcrafted ales and lagers.
1001 B Street • Hayward, CA 94541
(510) 886-85251
Mon-Thu 10:30 am - 12:00 am
Fri Sat 10:30 am - 1:00 am
Sun 12:00 am - 10:00 pm


Profile
Messages
Alerts
Search
HOANG NGUYEN
Edit
Logout
HOANG NGUYEN
Student
Learn more
8,782 exp
Knowledge
Course
Exam
Q&A
News
Activity
Friends
12
Done Course
3
Unfinished Course
Basic for UX Designer
10 steps to improve your iframe
A Better Way To Request App Ratings
How To Speed Up Your Wordpress Website
Show More
27
Asking Questions
7
Answered Questions
12
How to make a good logo ?
3
What are the best mobile apps for ...
67
What's the difference between UI and ...
0
What logos include hidden messages ...
Show More
19
Following Exams
88
Done Exams
Junior Web Designer
Which is the best way to pass the PMP ...
What are great examples of viral UX/UI ...
Why is consistency important in design?
Show More
Experience gained
Experience per day
Friend Activity
Shawn Peterson
Finished the course:
Basic for UX Designer
9:30PM
Mary V. Robinson
Finished the course:
Basic for UX Designer
9:30PM
Joe Ramos
Finished the course:
Basic for UX Designer
9:30PM
Sean Walker
Finished the course:
Basic for UX Designer
9:30PM
Show More


| DOSE: T+ 0:00 |
|
smoked |
Cannabis |
(plant material) |
| T+ 0:00 |
18 mg |
oral |
2C-I |
(capsule) |
| T+ 2:45 |
|
smoked |
Cannabis |
(plant material) |
Purpose
My previous experiences with 2C-I, at doses ranging from 3mg to 21mg, had left me with the impression that the chemical had very little to offer besides some very nice visuals and a capacity for some introspection. It always seemed that during a 2C-I trip, I could simply let my mind go idle and enjoy the show.
What I've found with tryptamines such as psiloc(yb)in and LSD is that they make my mind work a whole lot harder, and I felt like these drugs had much more depth to the experience than any phenethylamine could offer, including mescaline (which I've only tried once).
This trip report is about the time that I directly challenged 2C-I to impress me. I was seeking confusion, revelation, a difficult trip... anything besides idle-minded eye candy.
Preparation
My friend T (who I ate LSD with a few weeks ago) wanted to eat some 2C-I... so I took an 18mg dose and a 12mg dose and evened out the difference by eye... giving us both doses of approximately 15mg. I know from experience that a dose between 14-17mg is adequate to get 'full effects' from 2C-I, while keeping the adverse physical symptoms to a minimum.
At about 9:15pm we swallowed our gel caps and went to finish watching the Red Sox vs. Yankees playoff game.
I kept with me a water bottle, and took a nice gulp every 20-30 minutes. I've found this is the best way to keep stomach pain away and other digestive side effects to a minimum. Of course this means I have to piss frequently (especially since 2C-I seems to dehydrate me), but it's the only way.
The Trip
Just before eating the gel cap I had smoked a couple of bowls with two friends, so while I was watching the game I noticed my weed high diminish and slowly get replaced by a more psychedelic 'warmth'. By 10:00pm I was already noticing the lamp post next to me wiggling a little bit, and the carpet was shifting just a little.
The game ended around 11:00pm, and the Sox won so I was happy. 'T' is a Yankees fan so that didn't really put him in a good mood. By this time the carpet was patterning and shifting in the geometric/Aztec-looking ways that I am used to seeing on phenethylamines.
Some time, not long after the game, I figured I had peaked/plateaued and I went to use the toilet. The tile floor beneath my feet was in constant motion, swirling around and rising up. The best part was whereever I stepped, Aztec-looking patterns would grow out of my feet. Likewise the walls were constantly changing hue/color and there were patterns suspended in the air and I could easily make stop-motion tracers by waving my hand about. Nice eye candy, I thought, but my thought process was only altered 1/5th as much as it would be on an equally visual dose of any tryptamine. It was at this point, standing in the bathroom, that I taunted the drug: 'Show me your power! Mess with my mind! Challenge me!'
I then went back out to watch Wayne's World with 'T', who was just beginning to feel the effects of the 2C-I at this point, and appeared to be coming up fast. We watched about half of Wayne's World, all the while analysing the subtle layers of hilarity in the movie. At a point we both became too distracted by the walls, tapestries, carpet, etc. and we decided that watching a movie would be a waste.
We went upstairs and I picked up my guitar and played some really trippy music. Sometimes when I'm tripping I can play way beyond my normal ability, sometimes I can't play at all. Well, I played really well, jamming on the clean channel nonstop for about 20 minutes, and that made me happy. 'T' looked at an online art gallery meanwhile. I realized that I had not actually peaked an hour earlier, and I was more likely peaking now.
Around midnight we smoked a couple bowls of beasters and put some tunes on the computer. That kicked us both up a notch. I looked at the art gallery and saw patterns resembling the artwork flowing out of my monitor. The images were in constant motion and I thought it looked really cool, although it lacked the depth and meaning that was in the art last time I looked at it on LSD. I focused on my trip and tried to strengthen it, remembering how before I had earlier asked 2C-I to really impress me.
Then all of a sudden my trip took a turn for the weird. I could barely talk, and whatever I did say didn't make any sense. So I just sat there for a while, but my body started to feel kind of weird. Static-like, I guess. I started to think deeply, and nearly got caught in a paranoid negative thought loop that I was being poisoned by the drug I had taken. My heart was beating fast, but not so fast that it couldn't be attributed to the pot I had just smoked. I narrowly escaped panic. Admittedly, I was surprised that 2C-I was able to almost send me into a bad trip. I felt like 2C-I had lived up to the challenge that I had posed to it. But it wasn't over.
Right after that I started to feel physically weak, so I chugged some water and tried to focus. My visuals kicked up a notch all of a sudden, like the colors of everything were constantly changing and the patterns were becoming pronounced. The morphing seemed to pick up in speed as did the changing colors, and I felt like my environment was suddenly becoming very chaotic. I might have enjoyed this, except remember my body was starting to feel weak...
I was listening to 'While My Guitar Gently Weeps' by Harrison and right away the pitch, volume, and tempo of the sound starting going completely out of whack.  This sounded REALLY weird and it made the music sound spooky. I tried to make it stop by focusing really hard, but there was nothing I could do. In addition to this, my vision seemed to be coming apart like static all around me. Whenever the pitch of the music would swoop low, my vision would also 'slow down'. I felt like I was becoming detached from my senses. On a dissociative, or a tryptamine I might have enjoyed this, but on 2C-I I felt like these were symptoms relating to my physical well-being rather than my mind.
I asked 'T' a few times to turn off the music, and he finally heard me and obliged. I took a few minutes to chill out, and fortunately things did calm down a notch for me. After chilling out I told 'T' I needed a change of scenery. By now it was around 2:00am, and I went downstairs and crawled into bed with my girlfriend. I felt a lot better once I was around her, told her what had happened, etc. Bonus points for her for so well accomodating the tripping boyfriend =)
At this point I started to come down... around 3:00am I fell asleep, no problem. 2C-I's stimulation always leaves me with the option to feel sedated and sleepy or energetic.
 Full audio hallucinations, paranoid thought loops, inability to effectively communicate with others...
Proof that mindset plays a major role in the outcome of a trip.
Also proof that heroic doses of 2C-I are completely unnecessary. In fact I tripped harder from this 15mg dose than my largest dose of 21mg.
This trip renewed my interest in phenethylamines, but I no longer look at them as a more 'recreational' alternative to tryptamines.
peace
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


What channel is Cyprus vs Scotland? Live stream, TV and kick-off details
It's the first game of Scotland's Euro 2020 double header as Steve Clarke's side look to build some momentum.
by Chris Doyle, https://www.dailyrecord.co.uk/authors/chris-doyle/Scotland are in Cyprus for what is essentially a dead rubber yet Steve Clarke needs a result as much as ever.
The national side are in Nicosia for the second last of their Euro 2020 qualifying group fixtures before Tuesday's match with Kazakhstan.
And with the crucial Euro 2020 playoff match in March on the horizon, six points from six is a must if they are to build any momentum after a disappointing spell since Clarke took over.
Scotland ran out 2-1 winners thanks to a late Oliver Burke goal in the first meeting between these two sides, but a trip to Cyprus is a different proposition for Clarke's men after their recent woes away from home.
Here's all the details you need to know ahead of the clash.
When and where will the game take place?
The match will take place on Saturday, November 16 at the GSP Stadium.
Kick-off is at 2pm.
What channel is it on?
You can watch the game live on Sky Sports Football.
Is it being streamed online?
Yes, subscribers can watch on the Sky Go app.
Where else can I follow the game?
You can follow it right here on dailyrecord.co.uk of course! We'll be running a live blog well ahead of the TV coverage, bringing you all the key moments as well as post-match reaction and analysis.
A match report and much, much more will also be available on our website following the final whistle.


I don't just love 90s websites, but also 90s parties. No, I don't want your number, but if you want mine, consider my engineering services available at Applico Engineering
I used to love Ja Rule, but after this Fyre Festival tragedy, I realized that I should get into the party business myself. I have all the ingredients to make a great party:


| TLID |
String (RO) |
Unique identifier of the GenTL Producer like a GUID. |
| TLVendor |
String (RO) |
Name of the GenTL Producer vendor. |
| TLModel |
String (RO) |
Name of the GenTL Producer to distinguish different kinds of GenTL Producer implementations from one vendor. |
| TLVersion |
String (RO) |
Vendor specific version string. |
| TLFile |
String (RO) |
Filename including extension of the GenTL Producer. |
| TLDisplay |
String (RO) |
User readable name of the GenTL Producer. |
| TLPath |
String (RO) |
Full path to the GenTL Producer including filename and extension. |
| TLType |
Enumeration (RO) |
Custom transport layer. The entries for this enumeration node are ‘GigEVision’, ‘CameraLink’, ‘CameraLinkHS’, ‘CoaXPress’, ‘USB3Vision’, ‘Mixed’, and ‘Custom’. |
| GenTLVersionMajor |
Integer (RO) |
Major version number of the GenTL specification the GenTL Producer implementation complies with. |
| GenTLVersionMinor |
Integer (RO) |
Minor version number of the GenTL specification the GenTL Producer implementation complies with. |
| GenTLSFNCVersionMajor |
Integer (RO) |
Major version number of the GenTL Standard Features Naming Convention that was used to create the GenTL Producer`s XML. |
| GenTLSFNCVersionMinor |
Integer (RO) |
Minor version number of the GenTL Standard Features Naming Convention that was used to create the GenTL Producer`s XML. |
| GenTLSFNCVersionSubMinor |
Integer (RO) |
Sub minor version number of the GenTL Standard Features Naming Convention that was used to create the GenTL Producer`s XML. |
| GevVersionMajor |
Integer (RO) |
Major version number of the GigE Vision specification the GenTL Producer implementation complies to. |
| GevVersionMinor |
Integer (RO) |
Minor version number of the GigE Vision specification the GenTL Producer implementation complies to. |
| InterfaceSelector |
Integer (RW) |
Selector for the different GenTL Producer interfaces. This interface list only changes on execution of “InterfaceUpdateList”. The selector is 0-based in order to match the index of the C interface. |
| InterfaceID |
String (RO) |
GenTL Producer wide unique identifier of the selected interface. This interface list only changes on execution of “InterfaceUpdateList”. |
| GevInterfaceMACAddress |
Integer (RO) |
48-bit MAC address of the selected interface. |
| GevInterfaceDefaultIPAddress |
Integer (RO) |
IP address of the first subnet of the selected interface. |
| GevInterfaceDefaultSubnetMask |
Integer (RO) |
Subnet mask of the first subnet of the selected interface. |
| ActionCommandDeviceKey |
Integer (RW) |
User-specified Action Command Device Key. |
| ActionCommandGroupKey |
Integer (RW) |
User-specified Action Command Group Key. |
| ActionCommandGroupMask |
Integer (RW) |
User-specified Action Command Group Mask. |
| ActionCommandTargetIP |
Integer (RW) |
Target IP Address for the action command. |
| ActionCommandExecuteTime |
Integer (RW) |
Time when the device will execute the command. |
| ThreadSelection |
Enumeration (RW) |
Heartbeat Thread. The entries for this enumeration node are ‘GrabThread’, ‘EventThread’, and ‘HeartbeatThread’. |
| ThreadPriority |
Enumeration (RW) |
Critical Priortiy. The entries for this enumeration node are ‘BelowNormal’, ‘Normal’, ‘AboveNormal’, and ‘Critical’. |