-
44 Apps That Turn Your Smartphone Into a Productivity Powerhouse ...
www.entrepreneur.com
Among our favorites? A task manger that gamifies your accomplishments and a background music player that incorporates neuroscience.
-
A Crash Course on Licenses, Joint Ventures and Partnerships
www.entrepreneur.com
Here are some common terms and features that you might see in your next business agreement.
-
5 Things to Do Before Saying 'I Do' to a Business Partner
www.entrepreneur.com
When you meet a potential partner your personalities may click and your goals may be identical, but to have a successful relationship, clarity is key.
-
What Companies Can Expect When They Hire Gen Z
www.entrepreneur.com
A new study about the next generational cohort reveals some surprising trends about the future of young workers.
-
Being an Entrepreneur Means That Sometimes, You Just Have to Say No
www.entrepreneur.com
It can be hard. But it’s a necessary evil.
-
Why Your Sales Team Can't Close
www.entrepreneur.com
How often have you heard the line, 'My salespeople can’t close.' Here is how to fix this issue.
-
Why This Man Traded in His Job as CEO For a Job as DAD
www.entrepreneur.com
Former PIMCO chief Mohamed El-Erian, who reportedly earned $100 million in 2011 alone, said he prioritized the wrong things, so he quit his job to ...
-
To Build Your Strongest Team, Don't Hire Your Clones
www.entrepreneur.com
Successful teams comprise people as varied as the challenges facing your business.
-
When to Kiss Your Startup Goodbye
www.entrepreneur.com
Conventional wisdom says entrepreneurs should never give up. But after much reflection, I realized this was wrong.
-
Spacious Secures £500,000 Seed Round To Match London Startups To Office ...
techcrunch.com
Spacious, the London property tech startup founded by Entrepreneur First alumni Tushar Agarwal and Tom Watson, together with ex-advisor to the ...
-
What We Want in the iPhone 7
www.entrepreneur.com
Sure, the iPhone 6 just came out. But let's be honest. It's far from perfect.
-
Shoutout Aims To Be The Simplest Way To Share Photos With Friends | ...
techcrunch.com
Shoutout is a new iOS app offering what co-founder and CEO Philip Golbraikh calls "visual texting." The idea, basically, is to create an environment ...
-
With Plans of Investing $100M Next Year, Israel’s OurCrowd Forges Its Own ...
techcrunch.com
In the fast-emerging space of equity crowdfunding, Silicon Valley insiders are pretty familiar with players like AngelList. But there's actually a ...
-
The 7 WordPress Plugins Your Site Needs to Succeed
www.entrepreneur.com
With so many websites powered by WordPress, supercharge yours with these powerful plugins.
-
What to Do If Someone Uses Your Trademark
www.entrepreneur.com
The saying, 'Imitation is the sincerest form of flattery' just doesn't fly when dealing with trademarks.
-
Led By Pixar Alums, ToyTalk Launches Its First Paid Kids App, Begins To ...
techcrunch.com
ToyTalk, the makers of kids entertainment applications for iPad, has just released its first paid application with the launch of a character-driven ...
-
K-12 Curriculum Needs a Major Overhaul to Develop Entrepreneurship Skills
www.entrepreneur.com
We need to rethink how we teach children if we are to graduate adults who can fill the available jobs and grow the economy larger.
-
Moving Beyond Same-Day Bookings, HotelTonight Launches Its 7-Day ...
techcrunch.com
HotelTonight is moving beyond the same-day hotel bookings that it's known for. TechCrunch's Jordan Crook reported earlier this week that this move ...
-
Hostel Rocket Arrives On Mobile, Making It Easy To Book Hostel Stays ...
techcrunch.com
A Durham, North Carolina-based startup called Hostel Rocket wants to make it easier for travelers who prefer the low-cost accommodations provided by ...
-
This Week in Berlin: Funding, IPOs, Welcomes
venturevillage.eu
Happy Friday, dear readers. Here is what happened this week in Berlin.
-
How to Select a Tax Professional for Your Small Business
www.entrepreneur.com
If you're an entrepreneur, it's critical to find a tax preparer who understands the tax implications of owning a small business as well as your ...
-
There's Now a Crowdfunding Campaign for a Permanent Cat Café in NYC
www.entrepreneur.com
Good news for cat lovers: a cat sanctuary and tea house is trying to open in NYC, if it can raise $65,000 in startup funds.
-
With RogerVoice, Deaf People Can Make Their First Phone Calls | TechCrunch
techcrunch.com
This is where technology shines -- RogerVoice is not yet another Uber for X. It will potentially help millions of hard-of-hearing people by letting ...
-
Rocket Internet Starts New Venture Shopwings
venturevillage.eu
Rocket Internet wants to launch its new venture Shopwings this year: The Berliner incubator revealed through its stock exchange prospectus that the ...
-
MasteryConnect Collects $15.2 Million So Teachers Can Teach To Students ...
techcrunch.com
MasteryConnect has raised $15.2 million to further market its software that it hopes will help enable educators to teach to their students, and not ...
-
Y Combinator-Backed Clara Labs Getting Funding From Sequoia Capital | ...
techcrunch.com
Y Combinator-backed virtual assistant startup Clara Labs might be getting an infusion of cash, rumored to be in the $3-4 million range from Sequoia ...
-
Today in Berlin: Layoffs at Pizza.de, Blockbuster books at Inkitt, ABURY ...
venturevillage.eu
Rocketwood, Layoffs, Crowdfunding campaigns and other news of what happened today in Berlin's startups.
-
SurveyMonkey Makes Its First Investment, Leads Mobile App CRM Solution ...
techcrunch.com
Apptentive, a company offering in-app feedback tools that allow developers to engage an app's users, communicate directly, request reviews and more, ...
-
Hootsuite Raises Another $60 Million on Its Way to IPO
www.entrepreneur.com
New fundraising round reportedly values the popular social-media management tool at $1 billion.
-
Buck Mason, The American-Made Basics Brand, Sews Up $300K Seed Round | ...
techcrunch.com
Remember the "startup guy" uniform promoted by Banana Republic earlier this year? Well the guys at Buck Mason are looking to build an actual uniform, ...


Sorry, you must use at least IE 10 to add images to the map.
No GPS info was found in the image metadata. Click on the map below to set where this image was taken.


Create a Debian Squeeze Jail (GNU/kFreeBSD)¶
This section shows the process to set up a Debian (GNU/kFreeBSD) jail. GNU/kFreeBSD is a Debian userland tailored for the FreeBSD kernel.
The examples in this section use a jail with the custom name debjail. Remember to replace debjail with your jail’s UUID or NAME!
Warning
This is not recommended for production use. The intention is to show iocage can do almost anything with jails.
Create an empty jail with Linux specifics:
# iocage create -e -n debjail exec_start="/etc/init.d/rc 3" exec_stop="/etc/init.d/rc 0"
Install debootstrap on the host:
# pkg install debootstrap
Grab the mountpoint for the empty jail, append /root/ to it, and run `debootstrap <https://www.freebsd.org/cgi/man.cgi?query=debootstrap>`_:
# iocage get mountpoint debjail
# debootstrap squeeze /iocage/jails/debjail/root/
Replace squeeze with wheezy, if needed.
Add lines to the jail fstab
file:
Use iocage fstab -e [UUID | NAME] to edit the fstab
file of debjail directly. Add these lines to the file:
linsys /iocage/jails/debjail/root/sys linsysfs rw 0 0
linproc /iocage/jails/debjail/root/proc linprocfs rw 0 0
tmpfs /iocage/jails/debjail/root/lib/init/rw tmpfs rw,mode=777 0 0
Start the jail and attach to it:
# iocage start debjail
# iocage console debjail
The result is a 64bit Debian Linux userland.
To install a Linux only Debian jail, follow this tutorial: debian-linux-freebsd-jail-zfs


Refunds
Each time a charge is refunded a refund is created.
No refunds have been created yet.
ID
Amount
Charge


src/components/keyboard-container/keyboard-container.component.ts
Internal component that wraps user-provided keyboard content.
BasePortalHost
| selector | md-keyboard-container |
| styleUrls | keyboard-container.component.scss |
| templateUrl | ./keyboard-container.component.html |
Properties |
Methods |
Inputs |
HostBindings |
HostListeners |
constructor(_ngZone: NgZone, _changeDetectorRef: ChangeDetectorRef)
|
||||||||||||
|
Parameters :
|
darkTheme
|
Type: |
| @state |
@state:
|
Type : KeyboardState
|
|
The state of the keyboard animations. |
| attr.role |
attr.role:
|
Default value : alert
|
| @state.done |
Arguments : '$event'
|
@state.done(event: AnimationEvent)
|
| _onEnter |
_onEnter()
|
|
Returns an observable resolving when the enter animation completes.
Returns :
Observable<void>
|
| _onExit |
_onExit()
|
|
Returns an observable that completes after the closing animation is done.
Returns :
Observable<void>
|
| attachTemplatePortal |
attachTemplatePortal()
|
|
Attach a template portal as content to this keyboard container.
Returns :
EmbeddedViewRef<any>
|
| enter |
enter()
|
|
Begin animation of keyboard entrance into view.
Returns :
void
|
| exit |
exit()
|
|
Begin animation of the keyboard exiting from view.
Returns :
Observable<void>
|
| _portalHost |
_portalHost:
|
Type : PortalHostDirective
|
Decorators : ViewChild
|
|
The portal host inside of this container into which the keyboard content will be loaded. |
| keyboardConfig |
keyboardConfig:
|
Type : MdKeyboardConfig
|
|
The keyboard configuration. |
import { animate, state, style, transition, trigger } from '@angular/animations';
import { AnimationEvent } from '@angular/animations/src/animation_event';
import { first } from '@angular/cdk/rxjs';
import { ChangeDetectorRef, Component, ComponentRef, EmbeddedViewRef, HostBinding, HostListener, Input, NgZone, OnDestroy, ViewChild } from '@angular/core';
import { BasePortalHost, ComponentPortal, PortalHostDirective } from '@angular/cdk/portal';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import { KeyboardState } from '../../enums/keyboard-state.enum';
import { throwContentAlreadyAttached } from '../../utils/keyboard-errors';
import { MdKeyboardConfig } from '../../configs/keyboard.config';
// TODO(jelbourn): we can't use constants from animation.ts here because you can't use
// a text interpolation in anything that is analyzed statically with ngc (for AoT compile).
export const SHOW_ANIMATION = '225ms cubic-bezier(0.4,0.0,1,1)';
export const HIDE_ANIMATION = '195ms cubic-bezier(0.0,0.0,0.2,1)';
/**
* Internal component that wraps user-provided keyboard content.
* @docs-private
*/
@Component({
selector: 'md-keyboard-container',
templateUrl: './keyboard-container.component.html',
styleUrls: ['./keyboard-container.component.scss'],
animations: [
trigger('state', [
state(`${KeyboardState.Visible}`, style({ transform: 'translateY(0%)' })),
state(`${KeyboardState.Hidden}`, style({ transform: 'translateY(100%)' })),
transition(`${KeyboardState.Visible} => ${KeyboardState.Hidden}`, animate(HIDE_ANIMATION)),
transition(`${KeyboardState.Void} => ${KeyboardState.Visible}`, animate(SHOW_ANIMATION))
])
]
})
export class MdKeyboardContainerComponent extends BasePortalHost implements OnDestroy {
@HostBinding('attr.role') attrRole = 'alert';
@HostBinding('class.dark-theme')
@Input() darkTheme: boolean;
/** The portal host inside of this container into which the keyboard content will be loaded. */
@ViewChild(PortalHostDirective) _portalHost: PortalHostDirective;
/** The keyboard configuration. */
keyboardConfig: MdKeyboardConfig;
/** Subject for notifying that the keyboard has exited from view. */
private onExit: Subject<any> = new Subject();
/** Subject for notifying that the keyboard has finished entering the view. */
private onEnter: Subject<any> = new Subject();
/** The state of the keyboard animations. */
@HostBinding('@state')
private _animationState: KeyboardState = KeyboardState.Visible;
/** Whether the component has been destroyed. */
private _destroyed = false;
constructor(private _ngZone: NgZone,
private _changeDetectorRef: ChangeDetectorRef) {
super();
}
/** Attach a component portal as content to this keyboard container. */
attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {
if (this._portalHost.hasAttached()) {
throwContentAlreadyAttached();
}
return this._portalHost.attachComponentPortal(portal);
}
/** Attach a template portal as content to this keyboard container. */
attachTemplatePortal(): EmbeddedViewRef<any> {
throw Error('Not yet implemented');
}
/** Handle end of animations, updating the state of the keyboard. */
<EMAIL_ADDRESS>['$event'])
onAnimationEnd(event: AnimationEvent) {
if (event.toState === `${KeyboardState.Hidden}` || event.toState === `${KeyboardState.Hidden}`) {
this._completeExit();
}
if (event.toState === `${KeyboardState.Visible}`) {
// Note: we shouldn't use `this` inside the zone callback,
// because it can cause a memory leak.
const onEnter = this.onEnter;
this._ngZone.run(() => {
onEnter.next();
onEnter.complete();
});
}
}
/** Begin animation of keyboard entrance into view. */
enter(): void {
if (!this._destroyed) {
this._animationState = KeyboardState.Visible;
this._changeDetectorRef.detectChanges();
}
}
/** Returns an observable resolving when the enter animation completes. */
_onEnter(): Observable<void> {
this._animationState = KeyboardState.Visible;
return this.onEnter.asObservable();
}
/** Begin animation of the keyboard exiting from view. */
exit(): Observable<void> {
this._animationState = KeyboardState.Hidden;
return this._onExit();
}
/** Returns an observable that completes after the closing animation is done. */
_onExit(): Observable<void> {
return this.onExit.asObservable();
}
/**
* Makes sure the exit callbacks have been invoked when the element is destroyed.
*/
ngOnDestroy() {
this._destroyed = true;
this._completeExit();
}
/**
* Waits for the zone to settle before removing the element. Helps prevent
* errors where we end up removing an element which is in the middle of an animation.
*/
private _completeExit() {
// Note: we shouldn't use `this` inside the zone callback,
// because it can cause a memory leak.
const onExit = this.onExit;
first.call(this._ngZone.onMicrotaskEmpty.asObservable()).subscribe(() => {
onExit.next();
onExit.complete();
});
}
}
<ng-template cdkPortalHost></ng-template>


JEAN DE FLORETTE A film review by Jeff Meyer Copyright 1987 Jeff Meyer
Seen at the Seattle Film Festival: JEAN de FLORETTE (French, 1986) Director: Claude Berri Screenwriters: Claude Berri, Gerard Brach; based on a novel by Marcel Pagnol Cast: Yves Montand, Gerard Depardieu, Daniel Auteuil, Elisabeth Depardieu Subtitled
This is the first half of what is being described as a "French Epic"; it is an adaptation of a fairly well-known French novel about the efforts of two bachelor farmers, an older man and his rat-faced nephew, who covet the spring on the land of their neighbor. After the neigbor is killed by the older farmer in an angry confrontation that is made to look like an accident, the two farmers' plans are thwarted by Jean de Florette, the last heir of their neighbor and a hunch-backed tax-collector who has moved to the farm with his wife and young daughter to "return to nature" and start a farm. Unfortunately for them, the two farmers have hidden the spring on their land, and are working behind the scenes to make their moves a difficult one.
This film had several features of interest for me. It is about men and women who work the land, and thus needs a director and a cameraman who can communicate the beauty and hardships associated with farming. In that they have succeeded admirably, using color to its full potential and employing wide shots of the land. It is also a reminder of how cruelty can be generated by lack of actions as well as actions, and how villainy is frequent among the petty, and for petty reasons. The two farmers are not sadists or vice lords; they remind us more of the comic foils one finds in a mild English comedy. They are absurd and sympathetic--they are even worried about the neighbors they are attempting to force out. Yet the consequences of their meddling are no less tragic.
This is not a complex story, and it is somewhat long; but the concentration on the land made it interesting to me for the majority of the film. I also want to see the sequel, MANON DES SOURCES, when it is released in the United States. An elderly French woman who sat next to me in the audience said she had read the book when she was a child, and felt that the filmmakers had been very faithful, so those of you who liked the book have a recommendation other than mine.
For those who didn't read the book (like moi), C+ ($3.50 movie).
Moriarty, aka Jeff Meyer INTERNET<EMAIL_ADDRESS>Manual UUCP: {uw-beaver, sun, allegra, hplsla, lbl-csam}!fluke!moriarty
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Screen Orientation Lock Demo
Lock
Unlock
Device lock state:
Unlocked
Portrait Primary
Portrait Secondary
Landscape Primary
Landscape Secondary
Any
Natural


A Better Way to Buy HP Displays
We have made it easier for your business to save time and money buying HP displays from your existing IT Partners. You can now buy our entire range of cutting-edge HP Displays, while benefitting from real-time volume discounting, lower prices, and automated transaction management.
Get Exclusive Access
Success! A member of our team will be in contact shortly


We monetize services!
- innovate 24/7 channels
- disintermediate efficient ROI
- orchestrate customized platforms
- seize open-source e-markets
- maximize enterprise eyeballs
- aggregate granular schemas
- incentivize B2C vortals
- mesh 24/365 mindshare
- cultivate sticky experiences
- e-enable wireless niches
- utilize customized systems
- evolve efficient ROI
- aggregate revolutionary content
- productize ubiquitous systems


Who is Alex Trimpe?
Indiana University Alum
I am a spring 2018 graduate of Indiana University's School of Informatics, Computing, and Design. Why do I mention that? Not because I am tied closely with the school, they are going to do fine without my funding, but because it was my start into deeper tech world.
Young Professional
I have recently started my first real job in the information technology field and I am really enjoying being out in the professional world.
Urban Explorer
After graduation, I knew that I wanted to live in a city. During my years in college, I had the opportunity to hold internships in both Milwaukee and Boston, two vastly different cities. Knowing I loved cities and loving the winter, what better city than Detroit, MI to explore?
About Me
If those three bullet points above with that weird photo of me in a Google Pixel 3 were not enough to satisfy you, strap in because you are about to read much more about me. I am years old and recently became a new resident in Detroit, MI. I am loving this city and having my first start of true adulthood in it. Currently, I work for Ford Motor Company in their Information Technology Ford College Graduate Program and am doing my first rotation as a developer. While I would not primarily think of myself as a developer, I am enjoying this opportunity and learning a lot as well.
Even though I would not always think of myself as a developer, I do love to experiment with different technologies and give myself a new challege. That is part of the reason for this website. I actually just wanted to see if I could host a website on a Raspberry Pi successfully and this site if proof that you can indeed accomplish that. Enough nerdy stuff, this section is about me.
During my time in college I studied Informatics at the School or Informatics Computing and Design at Indiana University and achieved minors in entrepreneurship and cybersecurity. While I really enjoyed what I studied, the absolute highlight for my collegiate experience and the memories I look back on the fondest, are those memories that I have in my fraternity Beta Sigma Psi. The leadership experience, worldly opportunities, and genuine friendships are what I miss most from those days. During my time there I was able to be the recruitment chair, social chair, and even president. I loved every minute of it and I try to continue to support my chapter and national fraternity to this day.
Currently, I serve on my fraternity's national board at the recuritment director and am working on modernizing the branding on a historic and culturally rich fraternity. Now that I am getting settled into my new environment, I hope to expand my involvement into the local community, aquire my MBA and explore this beautiful planet.


Flight 29:
Return-to-flight mission after the loss of Amos-6 in September 2016. Iridium NEXT will replace the original Iridium constellation, launched in the late 1990s. Each Falcon mission will carry 10 satellites, with a goal to complete deployment of the 66 plus 9 spare satellite constellation by mid-2018. The first two Iridium qualification units were supposed to ride a Dnepr rocket in April 2016, but were delayed, so Iridium decided to qualify the first batch of 10 satellites instead. Total payload mass was 9,600 kg (21,200 lb): 10 satellites weighing 860 kg each, plus the 1,000-kg dispenser. The target orbit has 780 kilometers (480 mi) altitude. -wiki


Package social-distancing-net
SocialDistancingNet
This program helps the fight against recent pandemic caused by the corona virus. To prevent the spread of the virus its important that all of us follow the social distancing guidelines proposed by the World Health Organization. This program is capable of identifying violations of social distancing using a CCTV camera footage and helps the shop owners for better design better shop layouts and goverments to place space dividers in public areas.
Installation
First you need install the required packages using the requirements.txt:
$pip3 install -r requirements.txt
Then download a pretrained yolo network from the offical website. Use Tiny YOLO for faster or YOLOv3-416 for more precise processing. The cfg and weights files must be placed in the root folder of the project.
Usage:
$python3 reading_script.py [VideoStream] [Model]
[VideoStream]
It can be either path of a prerecorded video or '0' for webcamera live stream.
[Model]
Select wich yolo model to use, options:
"yolov3"
: High accuracy, but real-time processing is resource intensive"yolov3-tiny"
/"yolov2-tiny"
: Lower accuracy but near real-time processing on medium hardware resources
The program looks for the corresponding cfg and weights files.
camera_conf.json
Contains information for camera calibration. It contains the pixel coordinates of a square on the ground
factorToMeter
: side length of the square in meterscameraCallibrationArray
: pixel coordinates of the square ```
Examples
The program displays the detected violations:
- Each detected person is surrounded with its boundingbox
- The unique identifier of the detected person is displayed below the boundingbox
- Dark blue/red lines display social distancing violations between strangers
- Light blue/yellow lines display social distancing violations within groups/families (this violations can be ignored)
Detected couples:
Social distancing violation between couples:
Multiple detected social distancing violations:
Different video footage:
Expand source code
"""
# SocialDistancingNet
This program helps the fight against recent pandemic caused by the corona virus.
To prevent the spread of the virus its important that all of us follow the social distancing guidelines proposed by the World Health Organization.
This program is capable of identifying violations of social distancing using a CCTV camera footage and helps the shop owners for better design better shop layouts and goverments to place space dividers in public areas.
## Installation
First you need install the required packages using the requirements.txt:
```console
$pip3 install -r requirements.txt
```
Then download a pretrained yolo network from the [offical website](https://pjreddie.com/darknet/yolo/). Use Tiny YOLO for faster or YOLOv3-416 for more precise processing.
The cfg and weights files must be placed in the root folder of the project.
## Usage:
```console
$python3 reading_script.py [VideoStream] [Model]
```
### [VideoStream]
It can be either path of a prerecorded video or '0' for webcamera live stream.
### [Model]
Select wich [yolo](https://pjreddie.com/darknet/yolo/) model to use, options:
* `"yolov3"` : High accuracy, but real-time processing is resource intensive
* `"yolov3-tiny"`/`"yolov2-tiny"`: Lower accuracy but near real-time processing on medium hardware resources
The program looks for the corresponding cfg and weights files.
### camera_conf.json
Contains information for camera calibration. It contains the pixel coordinates of a square on the ground
* `factorToMeter`: side length of the square in meters
* `cameraCallibrationArray`: pixel coordinates of the square
```
## Examples
The program displays the detected violations:
* Each detected person is surrounded with its boundingbox
* The unique identifier of the detected person is displayed below the boundingbox
* Dark blue/red lines display social distancing violations between strangers
* Light blue/yellow lines display social distancing violations within groups/families (this violations can be ignored)

<video width="640" height="480" controls>
<source src="https://bmeedu-my.sharepoint.com/personal/pallagj_edu_bme_hu/Documents/Asztal/HF%20videos/Socail1.mp4" type="video/mp4">
</video>
Detected couples:

Social distancing violation between couples:

Multiple detected social distancing violations:

Different video footage:
<video width="640" height="480" controls>
<source src="Socia2.mp4" type="video/mp4">
</video>
"""
__pdoc__ = {}
__pdoc__['venv'] = False
__pdoc__['yolo3_one_file_to_detect_them_all'] = False
__pdoc__['people_detection'] = False
Sub-modules
social-distancing-net.CalculateDistanceViolations
social-distancing-net.analyzer
social-distancing-net.bounding_box
social-distancing-net.people_detection_2
social-distancing-net.person
social-distancing-net.reading_script
social-distancing-net.sort
-
SORT: A Simple, Online and Realtime Tracker Copyright (C) 2016-2020 Alex Bewley<EMAIL_ADDRESS>…
social-distancing-net.tracker
social-distancing-net.transformation
social-distancing-net.video_frame
social-distancing-net.violation


A computer science major with various experience and knowledge of software engineering, programming, web development and it's tool and concepts.
Graduated on December 2019
Beside my love for all things technology, I also love watching sports, and playing soccer in particular. I am a big fan of the soccer club FC Barcelona and the Baltimore Ravens. In addition, I love being out in the nature, just simply being outdoor and hiking whenever there's a chance.


/**
* !!! Default methods of this interface used to validate provided parameters !!!
*
* @see {@link https://www.epochta.ru/products/sms/v3.php}
*
* @interface APIMethods
*
* @description Inrerface for methods provided by ePochta SMS service API.

* All arguments are positional! To provide not first optional argument, omitting previous optional arguments use null as stub.
* @example
 Use null as stub

* // Ways to get first ten address books:
* correct: client.getAddressbook(null, null, 10).then...
* wrong: client.getAddressbook(10).then...
*/
const APIMethods = {
/**
* Creates new address book with provided name and description[optional].
* @instance
* @param {string} name - Name of the address book
* @param {?string} [description] - Description of the address book
* @return {Promise<number|Error>} - Unique identifier of the created address book or throws Error
*/
addAddressbook(name, description=null) {
return {
args: {name, description},
returns: ['addressbook_id'],
};
},
/**
* Deletes an address book by id.
* @instance
* @param {number} id - id of the address book to delete
* @return {Promise<boolean|Error>} - In case of success returns true, otherwise throws Error
*/
delAddressbook(id) {
return {
args: {id},
returns: ['successful'],
};
},
/**
* Returns address book data.
* @instance
* @param {?number} [idAddressBook] - id of the address book to get data. If not provided, returns all address books data
* @param {?number} [from] - return address books starting at 'from'
* @param {?number} [offset] - number of address books to return
* @return {Promise<APIResponseObjects.AddressBook|Array<APIResponseObjects.AddressBook>|Error>} address book/books data
*/
getAddressbook(idAddressBook=null, from=null, offset=null) {
return {idAddressBook};
},
};
module.exports = APIMethods;


Comments
-
Greg Hurrell
Fixed. Turns out that the
to_json
stuff used in the dynamic JavaScript templates was getting escaped, and needed to be marked with eitherraw
orhtml_safe
. -
Greg Hurrell
Status changed:
- From: new
- To: closed
-
Greg Hurrell
Gonna re-open. The fields look like they work, but when you check, you see that no actual modifications are made to the model.
-
Greg Hurrell
Status changed:
- From: closed
- To: open
-
Greg Hurrell
Talking about the
issues#show
action here.The AJAX stuff actually looks fine. In the logs I am seeing the changes get made, but then I see a "ROLLBACK". For some reason the transaction is being aborted, although no exceptions or anything else get logged.
Trying at least the in-place textfield editor on other pages seems to work fine.
Interestingly, trying to update an issue via
issues#edit
also fails, so it looks to be not related to AJAX at all. -
Greg Hurrell
Both of these issues now fixed. Will mark as closed.
-
Greg Hurrell
Status changed:
- From: open
- To: closed
Add a comment
Comments are now closed for this issue.


JRR Tolkien
Bilbo is a hobbit, “a short, human-like person.” who ives a quiet life in a hole at Bag End. Bilbo possesses a great deal of inner strength, which he displays throughout the story. His find the adventures to be very uncomfortable but they reveal his courage.
VisitGandalf is a wise wizard who helps the dwarves with their quest. He keeps to himself and does not reveal his true thoughts. His command of magic is vast and unmatched and he svaes the dwarves from danger may times.
VisitThe leader of the dwarves, Throin is a brave and courageous person who seeks for the treasure that once belonged to his father, Thror, the King Under The Mountain. His greed eventually takes over and he starts to rely on Bilbo to take his decisions for him.
Visit


stylish can be used to create keyframes for animation.
this is done in a two step process.
the first call to stylish declares your keyframes animation object. the generated name can then be applied to any classes you wish.
const animation = stylish({
'@keyframes': {
'0%': { transform: "scale(0.5)" },
'100%': { transform: "scale(1.5)" }
}
});
const box = stylish({
width: '20px',
height: '20px',
backgroundColor: 'red',
animation: `${animation} 1s infinite`
});


Biostatistics in R
Sahir Rai Bhatnagar
2016-04-14
Chapter 1 Prerequisites
1.1 Install R and RStudio
All examples in this book are run in an R environment. You also need a recent version of RStudio, which is a software application that facilitates how you interact with R
. It is developed by data enthusiasts who consider statistics to be more than just simulations, formulas and proofs. RStudio emphasizes the following:
Version control: Why I should use version control especially for the solo data analyst.
Reproducible research: seamless integration with RMarkdown for creating dynamic documents and presentations
Creating R Packages: seamless integration with the devtools package for creating software that implements your statistical method or analysis.
1.2 R Packages
The following packages will be called upon at some point, so please install them before getting started with the tutorials. Enter the following command in R
:
install.packages(c("knitr","data.table", "rmarkdown", "dplyr", "purrr",
"tidyr", "ggplot2", "pwr", "glmnet"))
1.3 Background Reading
The greatest thing about R
is that there are so many people out there willing to help you. R
users are constantly writing tutorials and creating packages to make your analysis tasks easier. Here is a very targeted list that I suggest reading prior to starting the tutorials


2 June 2004
The Ministry of Health, Niger has reported a total of 137 cases including 5 deaths of cholera between 3 May 2004 and 17 May 2004 in the region of Tillabery (Ayorou city).
Vibrio cholerae O1 El Tor Ogawa has been laboratory confirmed. This outbreak is linked to heavy rainfalls in the area, and to population movements along the Niger River for trade purposes, between Gao and Timbuctu Provinces in Mali and Tillabery district in Niger.
The Ministry of Health, with the support of WHO is implementing control measures in the area, including the restriction of market places and health education activities around safe drinking water.


Lowlevel Channel Commands
In newer Midica versions, lowlevel commands are not needed any more.
If you are not interested how to use them, you can skip this section.
The channel commands from the last chapter are compact channel commands.
Compact means, you can play several notes, chords or rests in a single line.
There is also another kind of command called lowlevel channel command, allowing only one note or chord or rest per line.
In earlier Midica versions there were some things you could not express with compact commands.
But since version 1.5.4 the compact commands support everything that lowlevel commands support.
Still it is useful to know that lowlevel commands exist, and how they look - at least for one reason:
If you forget the :
after the channel number of a compact command, Midica may think that you tried to use an illegal
lowlevel command. And then the resulting error message could be confusing.
A lowlevel channel command consists of at least 3 columns, separated by whitespaces:
- Channel column
- Note column
- Length column
-
(Optional) After the 3rd column one or more options may follow. Details will be described later in this chapter.
The following example shows "Happy birthday to you" on channel 0 again, but this time written with lowlevel commands.
{{> src-example src-examples.happy-birthday-lowlevel }}
Channel column
This column contains the chanel number but (unlike compact commands) without a trailing :
.
Valid values are the numbers 0
- 15
and the symbol p
.
Again, p
is an alias for 9
(percussion channel).
Note column
This column can contain a note name, a percussion ID, a chord (inline or predefined)
or a rest (-
). Alternatively you can also use the MIDI note number(s).
Length column
This column contians a length definition. E.g. a full, a half, a quarter or eighth note and so on
can be defined like 1
, 2
, 4
, 8
and so on.
More details about length definitions will follow later in this chapter.
Mixing Compact and lowlevel commands
Both channel command types can be mixed, like the following example demonstrates:
{{> src-example src-examples.happy-birthday-mixed }}
The note length definition of a lowlevel command does NOT change the default note length of a compact command!
So in the last line the default is still a 16th note, and we have to switch to a 4th explicitly. Even if there have been other
4th notes in the lowlevel commands in line 2 and 3.
Channel Options
Channel commands can have options. This applies for compact commands as well as for lowlevel commands.
However the syntax is different, and also the available options.
In a compact command an option is embedded between parenthesis (
and )
.
In a lowlevel command, they are written into the 4th column. Everything after the length column is regarded as options.
Each option has a name, and most options also have a value. Name and value are separated with =
.
If a channel command has more than one option, the options are separated by ,
.
Most options have a long name and an abbreviation, which can be used instead of the long name. But enough theory,
the Channel Options table shows the options:
Channel Options
| Long Name |
Short Name |
Value Type |
Value Range |
Cmd type |
Impact |
| velocity |
v |
integer |
1 - 127 |
both |
permanent |
| duration |
d |
float or % |
>0.0 - ∞ (>0% - ∞%) |
both |
permanent |
| quantity |
q |
integer |
1 - ∞ |
both |
once |
| multiple |
m |
- |
- |
both |
once |
| lyrics |
l |
text |
- |
both |
once |
| tremolo |
tr |
length |
- |
both |
once |
| shift |
s |
integer |
-127 - 127 |
lowlevel |
once |
| length |
- |
length |
- |
compact |
permanent |
Velocity
The velocity is the force with which a note is played. The more velocity, the louder the note. The option name is velocity
.
The short form is v
.
The value can be between 1 and 127. The default is 100. If the velocity option is used in a channel command, the following commands in the same
channel will also use this velocity value. Until the option is used in the same channel again, with a different value.
The following example shows how to use velocity, first with compact and then with lowlevel commands.
{{> src-example src-examples.velocity }}
The example shows different ways to use the long or short form of the option.
It also shows that whitespaces and the =
is optional in lowlevel commands. But compact commands are stricter.
Here you cannot use any whitespaces between the parenthesis, and the =
is mandatory.
Duration
The duration option describes after which percentage of the note length, the pressed key is released.
The option name is duration
. The short form is d
.
The values can be either floating point numbers or percentage values ending with %
.
Low values result in "staccato", high values result in "legato".
If two notes are played after each other, and the duration value is 1.0 (or 100%) then the first note is released in the same
moment when the second one is pressed. A value of 0.9 (or 90%) means that the first note is released after 90% of its
official length. So the note is 10% shorter than its theoretical length.
The default value is 0.95 (or 95%), meaning that the key is released 5% before its theoretical end.
Values higher than 1.0 are also allowed. Then the notes overlap: The former note is released after the following one begins.
If the duration option is used in a channel command, the following commands in the same channel will use the same duration value.
The following example shows a compact and a lowlevel version of the same sequence with duration changes:
{{> src-example src-examples.duration-ratio }}
The last two notes have a change of duration as well as a change of velocity. Two options can be changed together.
But in the compact version no whitespaces are allowed.
Quantity
The quantity option repeats a command any number of times. The option name is quantity
.
The short form is q
.
In compact syntax, the command affects the next compact note or chord or rest after the option in the same channel.
The following example shows the beginning of "The Four Seasons: Summer", 3rd movement, by "Antonio Vivaldi".
It uses a violin in channel 0 and a harpsichord in channel 6. (Please update your INSTRUMENTS
block accordingly.)
The first example is a compact version, the second one is a lowlevel version of the sequence.
{{> src-example src-examples.quantity }}
Here is another example of the same sequence in compact syntax:
{{> src-example src-examples.quantity-2 }}
The (q=11)
in the first line is not yet consumed by any note in the same line.
In the second line it's not consumed as well because this is for another channel.
In the third line, this option is still open, so it's consumed by the note g-
.
Multiple
The multiple option is used to play different voices in the same channel.
It allows to play different notes with different lengths and/or different velocity or duration options in
the same time and channel.
The option name is multiple
. The short form is m
. It does not have any value.
In compact syntax, the command affects the next compact note or chord or rest after the option in the same channel.
As we already know, each note (or chord or rest) is added to the end of a channel. To be more precise,
it's added to a marker that is usually at the end of the channel.
After adding the note, this marker is moved from the old end of the channel to the new end of the channel.
But if we use the multiple option, the marker is not moved.
So the next note that is added to the channel, begins at the same time as the note with the multiple option.
The following example demonstrates this, first with compact and then with lowlevel syntax, producing the same sequence:
{{> src-example src-examples.multiple }}
This example shows some possibilities to use the multiple option. The first bar uses 2 voices, shown as blue and black.
The full note (c
) and the first quarter note (g
) begin in the same time because of the multiple option.
In the second example we have 2 voices again (blue and black). But they don't begin in the same time, so we need to add
a rest in the black voice. The blue voice sounds longer than the black one, so we need another rest at the end of the
second bar.
In the third bar we have three voices: blue, green and black. They all begin at different times but end in the same time.
Lyrics
The lyrics option can be used to add a syllable. This way you can make your song ready for karaoke.
The option name is lyrics
. The short form is l
.
If you need whitespaces or commas inside of the syllabe, you must use the following symbols:
_
for a space
\r
for a new line
\n
for a new paragraph
\c
for a comma ,
The following example shows how to create a karaoke version of "Happy Birthday" - first with lowlevel commands,
and then the same sequence with compact commands.
{{> src-example src-examples.lyrics }}
The last screenshot shows how the result looks inside of the player in karaoke mode.
Tremolo
The tremolo option is an alternative notation for note (or chord) repetitions.
The option name is tremolo
. The short form is tr
.
In compact syntax, the command affects the next compact note or chord after the option in the same channel.
The note length of a tremolo'ed note defines the overall length over all repetitions.
The length of each repeated note is provided as the option value.
The next three examples are equivalent. The first two use the tremolo option (compact first, lowlevel second),
while the third one uses the quantity option.
{{> src-example src-examples.tremolo }}
As you can see in the last line, the tremolo option can also be used to express drum rolls.
(A detailed explanation about percussion will follow later in this chapter.)
Shift
This section describes a lowlevel form of transposing. Probably you will never need it.
You can find a more usable form for transpositions in the chapters 3 and 4.
The shift option is only available for lowlevel commands. It transposes the given note or chord an
arbitrary number of half tone steps into one direction.
The option name is shift
. The short form is s
.
The value is the number of half tone steps for the transposition. It can be negative for a lower transposition
or positive for a higher transposition.
The next two examples are equivalent. The first one uses the shift option, while the second one just uses normal notes.
{{> src-example src-examples.shift }}
Length
The length option is only available for compact commands. It can be used to switch the current note length without playing a note or rest.
The following two examples of "Happy Birthday" are equivalent. The first one uses the length option while the second one
switches note lengths the normal way.
{{> src-example src-examples.length }}
Length Definitions
So far we learned where we can define note lengths:
- In compact commands: after the note name, separated by a colon (
:
)
- In a lowlevel command: in the 3rd column
- In compact commands: as the value of a
length
option
- In any command: as the value of a
tremolo
option
And we know how to define the most frequently used note lengths. Now let's see how to compose all possibilities of lengths.
The easiest length is an atomic length. It can be modified by one or more modifiers to create a modified length.
And last but not least you can combine two or more atomic or modified lengths to form a sum of lengths.
Atomic Lengths
You can just use an integer number as a note length. The resulting length corresponds
to a full note's length divided by that number. This is one kind of atomic length.
Apart from this, there are also the following predefined atomic lengths:
/1
(full),
/2
(half),
/4
(quarter),
/8
(eighth),
/16
(sixteenth),
/32
(thirty-second)
*1
(full),
*2
(double),
*4
(four wholes),
*8
(eight wholes),
*16
(sixteen wholes),
*32
(thirty-two wholes)
This makes atomic note lengths available that are longer than a full note - those beginning with *
.
The shorter notes (beginning with /
) are not really needed as they can be replaced by just the number
without the prefixed /
. However they can make lowlevel commands a bit more readable.
But in compact commands they look quite cumbersome, so you probably don't want to use them there.
From now on we will use predefined notes in lowlevel commands and (if possible) just numbers in compact commands.
{{> src-example src-examples.atomic }}
The first example uses compact commands and only numbers, if possible. In channel 0 only a predefined length is possible.
The second example uses lowlevel commands and only predefined lengths, if possible. For the last two notes only numbers are possible
because a 64th note is so rare that it has no predefined version.
Modified Lengths
Dot Modifiers
An atomic length can be modified. You already know the modifier .
. It makes the atomic length one half longer, so that it's 3/2
of the atomic length.
You can add as many dots as you want. Two dots (..
) make it longer by three quarters, resulting in 7/4 of it's atomic length.
Three dots result in 15/8 of the atomic length. And so on.
Here is a compact and a lowlevel example showing how dots can be used:
{{> src-example src-examples.dot }}
Channel 1 is only added for comparison reasons.
Triplet Modifiers
This section describes a lowlevel form of defining triplets. An easier to write (highlevel) form will follow in chapter 4.
A triplet modifier shortens the atomic length by one third, resulting in 2/3 of the atomic length.
The triplet modifier is a t
.
Just like a dot, a triplet can be applied as often as you want, resulting in nested triplets.
Two triplet modifiers result in a length of 4/9 (2/3 * 2/3). Three such symbols result in 8/27 (2/3 * 2/3 * 2/3). And so on.
Here is a compact and a lowlevel example showing how triplets can be used:
{{> src-example src-examples.triplet }}
Channel 1 is added for comparison reasons again.
The first triplet consists of 3 shortened eighths taking the time of a quarter.
The second triplet is only slightly more complicated. It also contains a dotted eighth and a sixteenth.
The third triplet contains a dotted note again. But this time the dot is placed before the t
symbol.
This demonstrates that the order
of modifiers does not matter. The triplet also contains a rest that needs to have a modified length as well.
The fourth triplet contains a nested triplet, marked in blue. So the notes of the inner triplet need to be modified by two
t
symbols.
The last triplet consists of three half notes having the length of one full note. It also contains a chord.
Tuplet Modifiers
This section describes a lowlevel form of defining tuplets. An easier to write (highlevel) form will follow in chapter 4.
A triplet is only one special type of tuplet. Generally a tuplet is used to change the length of a sequence of notes in a way that
has to be defined in the tuplet definition. A Tuplet modifier is defined by the symbol t
, followed by two numbers that
are separated by :
. So a triplet could also be defined as t3:2
meaning something like "3 for 2" or "3 notes
have the length of 2".
Mathematically you can say: tX:Y means that the length is multiplied with Y/X. So a note inside of a quadruplet would be modified with
t4:3
. And something inside a quintuplet with t5:4
.
Here is a compact and a lowlevel example showing how tuplets can be used:
{{> src-example src-examples.tuplet }}
Again, channel 1 is only added for comparison reasons.
The first tuplet is a 5:2 tuplet that could contain 5 notes (or rests) with the length of 2. So the length of each note or rest
is modified by 2/5.
The second tuplet is a 3:4 tuplet modifying all lengths by 4/3. So you see that a tuplet can also be defined to make notes longer
instead of shorter. This tuplet contains a nested triplet (marked in blue) that has been explicitly defined as t3:2
instead of t
. Because of the nesting, both tuplet modifiers have to be attached to each other.
The last tuplet contains different note lengths and a chord.
Sums of Lengths
Sometimes a note length cannot be described easily with an atomic or modified length. But it can easily be described as a sum of two lengths.
In sheet music such notes are typically printed as 2 notes with a tie between them.
In MidicaPL such a note length can be described as two atomic or modified lenghts, separated by a +
symbol.
The following example shows the first few notes of "Hey Jude" by the "Beatles" with compact commands.
{{> src-example src-examples.hey-jude }}
A half and an eighth note are tied together. This is described as 2+8
.
More complicated expressions are also possible like /2.+/1+/2t
. Here is a lowlevel example:
{{> src-example src-examples.length-plus }}
Zero-Length
There is one special length symbol: -
. It means "no length at all".
Of cause this does not make sense for any normal note, chord or rest. However it can be is useful to change
a channel option in a lowlevel command without playing a note or chord.
In compact commands it does not make any sense at all, however.
The zero-length is only allowed in combination with a rest but not with a note or chord.
So the second and third column both have the symbol -
.
The following examples are equivalent:
{{> src-example src-examples.zero-length }}
The first example uses zero-length rests to change the velocity and duration of the following notes.
The second example uses real rests, but with m
as additional option. This is an alternative for zero-length rests.
The third example doesn't use rests at all but applies the channel parameters directly to a note.
Percussion Instruments
In order to produce sounds, we learned how to configure a certain instrument for a channel. Then we used notes to play
different pitches in that channel. With Percussion instruments this is different.
A percussion instrument has only one pitch. It's somthing like a drum, a hand clap, a cow bell or a triangle.
Using notes for such instruments is not very useful.
Percussion instruments are usually played in channel 9, the special percussion channel. In the INSTRUMENTS
block
this channel cannot be associated with an instrument but with a drumkit.
When playing something later in this channel, this is not a note but a certain percussion instrument.
Instead of the note name you write a percussion ID. Each percussion instrument has a long ID and a short ID.
The valid IDs can be seen in the info window under Configuration / Percussion IDs.
The next two examples are equivalent. They play the intro for "We Will Rock You" by "Queen".
{{> src-example src-examples.we-will-rock-you }}
The first example uses lowlevel commands and long percussion IDs. The second one uses compact commands and short IDs.
Like a chord of notes, you can also play two percussion sounds in the same time. Just separate the IDs with a ,
.
The following example shows the beginning of "Billie Jean" by "Michael Jackson".
{{> src-example src-examples.billie-jean }}
The short percussion IDs from this example are equivalent to the following long IDs:
hhc
equals hi_hat_closed
sd1
equals snare_drum_1
bd1
equals bass_drum_1
The first result score is easier to read for non-drummers. The second one is more compact and more what a drummer is used to read.
Using Soundbanks
Include Soundbank File
In the preparation section you learned how to load a Soundbank manually in the main window of
the Midica application.
But there are a lot of different soundbanks out there, specialized for different kinds of music. So maybe you want to use different
soundbanks for different songs. And maybe you don't want to choose the soundbank file manually each time you switch to another
MidicaPL file containing another song.
In this case you can use the SOUNDBANK
command. Its only argument is the path or URL to a soundbank file in the
.sf2
or .dls
format. The path can be either absolute or relative to the source file containing the command.
{{> src-example src-examples.soundbank-path }}
Of cause a local file path does not work on someone else's computer because he will probably not have the same
soundbank in the same directory inside of his file system. Therefore you can reference the file by URL.
But URLs contain a double slash //
, that is also the comment symbol in MidicaPL.
For this reason the two slashes in the URL must be separated by a space.
{{> src-example src-examples.soundbank-url }}
Referencing a soundbank by URL like this works on other computers as well.
However it will still not work in an exported MIDI file because soundbank information cannot be stored in a MIDI sequence.
Bank Descriptions
In chapter 1 you already learned the simplest form of defining instruments for each channel.
Remember: In the second column of each line we used an instrument ID or a drumkit ID or a
MIDI program number.
Each ID is mapped to a program number internally. And program numbers can only have values from 0 to 127.
But comprehensive soundbanks can contain much more than 128 different instruments. In this case the instruments
are selected by a combination of a program number and a bank description.
In the second column of an instrument line the bank description can be attached to the ID or program number separated by a
,
symbol. So VIOLIN,5
or 40,5
would select a violin with the bank description "5".
A Bank description can consist of an MSB (0-127) and an
LSB (0-127), separated by a /
symbol.
E.g. VIOLIN,5/3
would use a violin (program number 40) with a bank MSB of 5 and an LSB of 3.
For most soundbanks you only need the MSB, like in the first example. In this case the LSB is 0.
So VIOLIN,5
is the same as VIOLIN,5/0
.
And if MSB and LSB are both zero, you can omit both and only use the ID or program number. That was the case in the examples from
chapter 1. So the following instrument definitions are all equal:
VIOLIN
VIOLIN,0
VIOLIN,0/0
40
40,0
40,0/0
Alternatively a bank description can also be a full bank number. This can be calculated the following way:
Bank Number = MSB * 128 + LSB
That means that the following instrument definitions are equal:
VIOLIN,5/3
VIOLIN,643
(5 * 128 + 3 = 643)
Some soundbanks support multi-channel drumkits. That is a drumkit that can also be used in channels other than 9.
Often such drumkits are located on bank 15360 (MSB 120, LSB 0).
The following example assumes that you use such a soundbank.
{{> src-example src-examples.instruments-2 }}
Instrument Switch
Sometimes you may need to switch the instrument of one or more channels.
Then you have to reconfigure these channels accordingly. This can be done in a block or a single line.
Instruments Block
One way to switch instruments is to use the same kind of INSTRUMENTS
block that you already know. However this block can only contain channels that you have already initialized inside
of the very first INSTRUMENTS
block of your source code.
If your first INSTRUMENTS
block was the one from the Bank Descriptions section above, you can later
define a second INSTRUMENTS
block that redefines all channels except 6, 7 and 8.
Or you can redefine only channel 0, 5, 9 and 15. Then the channels 1-4 and 10-14 would continue using their already
defined instruments. This would look like the following example:
{{> src-example src-examples.instruments-3 }}
Single Instrument Switch
Alternatively you can reconfigure a channel in one single line. Therefore the INSTRUMENT
command is used.
(Pay attention to the singular form.)
The INSTRUMENT
command is followed by the channel number, the instrument definition and the channel description.
The rules for channel number, instrument definition and channel details are the same as the rules
inside of an INSTRUMENTS
block. The only difference is that the channel description is optional.
If it's ommitted, Midica re-uses the old channel description.
The following example switches the instruments of the channels 0 and 1:
{{> src-example src-examples.instrument }}
With the first command, we simulate a switch of the viola from arco to pizzicato mode.
Therefore we need a new MIDI instrument in channel 0 but not necessarily a new channel description.
So we skip that.
In channel 1 we switch to a completely different instrument, using a non-standard bank number.
The program number is the one of a steel guitar but in the current soundbank it's mapped to a mandolin.
So we use an appropriate channel description to avoid confusion.
Another reason to use the single line instrument switch is that it also works inside of a function or block.
In the next two chapters you will learn what that is.
Bar Lines
In compact syntax you can simulate a bar line using the pipe symbol: |
.
Using bar lines is optional. But if they are used, they must be in the correct place. Whenever you use a bar line,
Midica will check if the channel's current position is at the border of a measure. Otherwise it will show an error message.
The check works like this:
-
It searches the last global command with a time signature and calculates how long each following measure must be.
If no such command has ever been used, it pretends that a time signature of 4/4 has been set at the very beginning of the sequence.
(Like with the command
* time 4/4
)
-
It measures the length from the position of the last time signature (or the very beginning, if none is found) until the current position.
-
It checks if the result can be divided by a measure length.
This is a convenient way to check if everything is correct. The following example shows Happy Birthday with time signatures and bar lines:
{{> src-example src-examples.happy-birthday-barlines }}
This time we used the time signature twice: once for the upbeat and then again when the regular measure starts.
If we would omit the first two bar lines, then we could also omit the time signature for the upbeat in line 1.
But it's still important to set the 3/4
time signature directly after the upbeat - and not at the beginning.
Otherwise the bar lines in the last line would fail.
Bar Line Tolerances
Most of the time you will not need anything more to know about bar lines. But there are special cases, mostly when you
use complicated tuplets. Then a note length may be not really exact, due to rounding errors. And this results in bar lines
that are set correctly but fail anyway. The following example shows a score with a nested triplet and the intended result:
{{> src-example src-examples.barlines-nested-triplets }}
However the second bar line (marked in red) fails with an error message. Why?
A MIDI timeline consists of very small atomic units called ticks. Midica uses a resolution of 480 ticks per quarter note.
A quarter note in a nested triplet would have 480 * 2/3 * 2/3 ticks. That's 213 + 1/3.
But broken ticks are not possible. So this is rounded to 213.
The three nested quarter notes together have a length of 213 * 3 = 639 instead of their theoretically correct value of 640.
To circumvent this problem you can set a tolerance value for a barline. This is a number that you just attach to the barline directly, without any
whitespace. To set a tolerance of 3 ticks, you would use: |3
.
For our example, a tolerance of 1 tick is sufficient, as the following, now working example shows:
{{> src-example src-examples.barlines-nested-triplets-2 }}
The first bar line has the default tolerance, which is 0. In the second bar line (marked in blue) we set the tolerance to 1.
The third bar line succeeds as well - even if we would probably expect it to fail.
The reason is that |1
sets the tolerance not only for the second bar line but also for all following bar lines in the same channel.
That's a very convenient way to reduce the need to set tolerances. Mostly we can just write |
.
Global Change of Bar Line Tolerances
If we use several channels, we want to synchronize them with *
from time to time.
In this case we may need to apply a tolerance to all channels.
The following example shows a score with a septuplet and the intended result.
The second bar line in channel 0 needs a tolerance of 2, marked in blue.
In line 3, we syncronize (*
) the channels to avoid the need to write an explicit rest in channel 1.
However in channel 1 the barline marked in red fails:
{{> src-example src-examples.barlines-74 }}
The reason is that after the sync *
in line 3, the bar lines in channel 1 also need a tolerance.
One possible solution is to change the bar line marked in red from |
to |2
.
But that's unconvenient and ugly, especially if we have more channels than 2.
A better solution is to modify the sync command to set a tolerance globally.
Therefore we add two columns to the sync command, each one separated by whitespace(s).
The first one ist the bar line symbol |
, the second one is the new global tolerance value.
In this case, we want to set a tolerance of 2 for all channels, so we write * | 2
, as the following example demonstrates:
{{> src-example src-examples.barlines-74-2 }}
This time we don't get an error message any more.


Connecting with Beacon couldn't be easier. Drop us an email or give us a call and we would be happy to discuss your initial requirements and arrange a face to face meeting at your convenience.
We have a number of email addresses you can reach us at. Drop us a line and we'll get back to you as soon as possible.
If you would prefer to speak to us on the phone, please feel free to call us between 8am to 6pm GMT.
We are based in Chesham, a satellite of London, in the beautiful Chilterns.
Copyright Beacon 2015. All rights reserved.


Single Show Example
Show
Hide
This div is now showing because of the select.
Multiple Show Example
Show 1
Show 2
Hide
This div is now showing because of the select.
Checkbox Example
Show
This div is now showing because of the checkbox.


DOGWOOD is a dependency-free (not even jQuery!) SVG-based tree UI. In this demo, the navigation menu at the top is a DOGWOOD.MenuTree. Nodes with children have blue circles. Click on the blue circle or text of a non-link node to toggle its childrens' visibility.
Below is an example of a TODOListTree, a subclass of an EditableTree, which can be populated and edited by the user. Click on the text of a node to edit it and show the dialog for deleting the node; click the plus circles beneath the nodes to add new ones.


I currently work as a full-stack software developer a project in the Justice sector. I've been involved with many phases of the project life-cycle including design, development and integration, and testing. Since starting on the project I have taken ownership of several areas of a complex system and constantly strive to learn more and take my skills further.
I worked on system modernization with a team to assist in the specification and development of the client's security. This role is mainly focused on technical architecture and development. My main responsibilities center around the development and maintenance of tools to support event analysis and alerting functions such as reporting and log parsing. Other duties include liaising with the requirements team to discuss new business rules that have been agreed on for integration.
I worked as a test analyst on a modernization project for a complex solution targeted at the companies internal asset delivery system. I worked closely with the testing and development team to effectively execute and edit test scripts based on the solution requirements specification. I used the HP Quality Center to handle and report system defects.
Graduated with a degree in Computer Science with experience in the following modules:
My dissertation was on how technology can impact the effectiveness on treatment for mental illnesses such as anxiety and depression. Talk about it a bit more......


点击有惊喜~
Life
is a colorful picture
The Smile
is a
beautiful color
11th June, 2015, 2:30PM
Beautiful thing
don't
ask
for attention
11th June, 2015, 2:47PM
We're all traveling through time together
every day of our
lives.
All we can do is do our best,
to relish this remarkable ride.
11th June, 2015, 3:15PM
Life is a mirror
When you
smile in front of it
it will also smile and so will it when you cry
to it
11th June, 2015, 3:28PM
A smile
is the language
has multiple meanings
11th June, 2015, 4:01PM
With smile, failure ,
with strong
to create
happiness!
11th June, 2015, 4:17PM
Life was like
a box of chocolates
you never
know
what you're gonna get
11th June, 2015, 4:35PM
The higher I got
the more amazed
I was by the view.
11th June, 2015, 4:42PM
I love waking up
in the morning
and not
knowing
what's going to happen
or who
I'm going to
meet
where I'm going to
wind up
11th June, 2015, 4:55PM
Better by far you should forget
and smile
than
that you shouldremember and be sad
11th June, 2015, 5:17PM
To be continued...
11th June, 2015, 5:33PM


--- template: example.html title: Canvas tiles example shortdesc: Renders tiles with coordinates for debugging. docs: > The black grid tiles are generated on the client with an HTML5 canvas. In this example, the `ol.source.TileDebug` source uses the tile grid of the `ol.source.OSM` source, so the displayed tile coordinates are the same as those for OSM tile requests. tags: "layers, openstreetmap, canvas" ---


Isko to promote qualified workers
by Itchie G. Cabayan‘I DON’T want demoralization. Employees who have served longer and are qualified will be prioritized in terms of promotion.’
This assurance was made by Manila Mayor Isko Moreno, as he stressed that he does not want demoralization prevailing among the ranks of city employees.
Speaking before employees, Moreno also urged those who have been serving for the longest time to take the opportunity to apply for promotion and take the civil service examinations, which will pave the way for their better chances at promotion.
‘Ayoko ng demoralization. Mas matagal, mas dapat ma-promote. Kung hindi qualified, eh di ‘yung susunod na mas matagal. Kung di pa rin ulit qualified, ‘yung susunod ulit na mas matagal na sa trabaho,’ he said.
Moreno assured that the basis for promotion will be the length of service and qualification and not the closeness to the boss.
‘Hindi porke’t taga-bitbit ng bag or kasa-kasamang namamasyal diyan sa SM ‘yun ang ipo-promote kahit hindi kwalipikado,’ he said.
Moreno added that it also does not matter if the employee concerned campaigned for or is associated with his political rivals, as long as they are qualified for the position they are applying for.
‘Marami na nga akong napirmahan na appointment ni hindi ko kilala o nakita eh. Di naman importante na makita ko pa. Ang importante eh tumutupad sa tungkulin,’ he said.


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Technical documents that define the Individualised Learner Record (ILR) data that publicly funded providers must collect and return.
PDF , 2MB , 197 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 1020KB , 1 page
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
ZIP , 8.47KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
ZIP , 191KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 1.65MB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 56.5KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 33.4KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 88KB , 3 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 65.5KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 61.2KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 62.9KB , 3 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 59.3KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 50KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 43.5KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 36KB , 1 page
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 43.7KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 305KB , 16 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 75.5KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 32.4KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 41.4KB , 2 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 35.7KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
ILR specification 2014 to 2015 trailblazer apprenticeship standard (TBS) codes are available in the LARS database: Learning Aims Search .
These documents set out the details of the data about further education (FE) learners and their learning that must be collected by colleges, training organisations, local authorities and employers (FE providers).
They provide a technical specification of ILR data collection requirements, for those who make data returns, implement data specifications and design information systems; including management information (MI) managers, software writers and suppliers.
The data collected is used to calculate funding due to FE providers, for performance monitoring, future planning and to ensure that public money is being spent in-line with government targets.
Click on the Individualised Learner Record (ILR) collections link below for more ILR topics.
Published: 25 February 2014
Updated: 9 September 2015
From: Skills Funding Agency


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
Hollowman900013-Jul-19 02:41 AM
Just needs to work
And not be upstream raped
@hyperDEX im with you on heat, I think they missed the boat
Then got steamrolled by regulations while waving goodbye from the dock
Chain scaling blew their 1000tps dream away
And barterdex X.0 invalidated their proxy exchange
Waves had their proxy dex beaten usage-wise
Day late and a dollar short
hyperDEX13-Jul-19 02:55 AM
For anyone not on heat discord, i asked their devs if they would want to use their frontend/GUI skills to help KMD and basically work together to fulfill KMDs vision (obviously need to align incentives etc and lots to work out) but working together would be better for everyone.
Need to somehow get heat holders on board but considering most came from NXT and SuperNET holding over 5%, dont think it would be too hard.
 I thought this was something new?
Or maybe it was made more clear that proxy dex would require money transmitter licenses
polycryptoblog13-Jul-19 03:01 AM
That
hyperDEX13-Jul-19 03:02 AM
But essentially all the proxy dexs out there is dead once enforcement actions start get taken (think there was one with a eth dex already)
polycryptoblog13-Jul-19 03:02 AM
Yep, Etherdelta
1
hyperDEX13-Jul-19 03:02 AM
If heat does not take action, basically they will run out of money and heat will become a community coin where it will die
I wonder if wrapped BTC would fall under this too
and the tron USDT etc
polycryptoblog13-Jul-19 03:07 AM
Most likely, being a proxy of a proxy . I don’t know much about heat , but if they are willing to shift focus a bit , I’m sure we can figure out a project that is mutually beneficial. Definitely need a GUI interface for tokens in KMD ecosystem that’s for sure
hyperDEX13-Jul-19 03:08 AM
Yes, it comes down to pride maybe
If they can think it over and figure out working together is +EV for everyone and they are humble enough to pivot and help Komodo, i am sure it will be a good outcome
only 10BTC thought, lets wait till we get the 100BTC walls
Alecandro13-Jul-19 03:10 AM
yea buddddyyyyyy
NutellaLicka13-Jul-19 03:15 AM
Somebody is hungry for some KMD
p.13-Jul-19 03:16 AM
Marry me
actionslacks13-Jul-19 03:17 AM
should be an interesting weekend(edited)
hyperDEX13-Jul-19 03:22 AM
whalebro bailed
Alecandro13-Jul-19 03:22 AM
Anddddd hes gone lol
hyperDEX13-Jul-19 03:24 AM
Massive walls between 14-16k
jl777c13-Jul-19 03:27 AM
@Hollowman9000 are you sure the rewards didnt go to a change address?
grewalsatinder13-Jul-19 04:46 AM
@hyperDEX it'd be sad day seeing James on Twitter to my opinion. Twitter is a time eater, and total unproductive platform for productive people.
1
Hollowman900013-Jul-19 04:58 AM
@jl777c
Yes
I tried dumping the privkey for that address before I looked it up and saw it was controlled by others
*dumping privkey via cli
It wasn’t shown in the GUI, and that was my last ditch way of verifying it wasn’t mine (I had an issue with verus last year where some of the addresses had balances but weren’t listed in the GUI, retrieved them via cli)
jl777c13-Jul-19 05:02 AM
can this be reproduced? if so, make sure to let miketoutjr know
Hollowman900013-Jul-19 05:02 AM
I need to upgrade to their latest release, I’m using 0.5.6a-beta
I don’t see anything in notable changes on the later releases though
Gimme a minute to deploy the latest and ill report back, I have another .13kmd reward generated to play with
jl777c13-Jul-19 05:13 AM
it just seems very strange (unlikely) that change outputs are being sent to random addresses
Hollowman900013-Jul-19 05:13 AM
Wasn’t random, guess it was a miner or notary
jl777c13-Jul-19 05:14 AM
still, this is the first time i hear of change being sent to a non-wallet address. is it a watch only address?
Hollowman900013-Jul-19 05:15 AM
No, the receiving address was sweeping funds to an address @SHossain Identified as something notary related
Coins are moving through it, I guess mine weren’t expected so they’re still sitting there
53kmd
Hollowman900013-Jul-19 05:31 AM
Alright
0.5.7-3 is booting up
Mark8113-Jul-19 05:33 AM
Anyone had issues with digitalprice verus withdrawals? I get econrefused error
jl777c13-Jul-19 05:37 AM
hollowmans issue is simple a case of not claiming rewards (that is the issue) and the miner of that block collects it, happend to be a notary
Hollowman900013-Jul-19 05:38 AM
Wasn’t it the case before that simply transacting automatically claimed the interest as well?
In the old KMD agama
Or did you always need to claim first
Can’t remember
jl777c13-Jul-19 05:41 AM
using native mode that is all that is needed. using lite mode, it is up to the GUI
Hollowman900013-Jul-19 05:44 AM
Haven’t used lite mode since KMD agama
Only native with verus agama
jl777c13-Jul-19 05:45 AM
native claims the rewards to change address, but your tx had no change address. very strange
Hollowman900013-Jul-19 05:46 AM
Once it’s back up I’ll test again
Shouldn’t be much longer
Tx out
𝙊𝙊𝙊𝙊13-Jul-19 05:51 AM
@SHossain I'll investigate if I can replicate the interest claim issue as described by @Hollowman9000.
Hollowman900013-Jul-19 05:52 AM
Awaiting confirmation
𝙊𝙊𝙊𝙊13-Jul-19 05:53 AM
@Mark81 I've seen a report about withdrawal issues in Verus discord some hours ago too.
Hollowman900013-Jul-19 05:54 AM
@𝙊𝙊𝙊𝙊 same result
Mark8113-Jul-19 05:56 AM
@𝙊𝙊𝙊𝙊 thanks for reply!
𝙊𝙊𝙊𝙊13-Jul-19 05:56 AM
Hollowman, On the withdrawal Mark mentioned or on your the interest issue?
Godballz Yesterday at 19:32 (GMT+2)
Anyone ever get the message- "Error: connect ECONNREFUSED" (followed by what looks like ip address) on Digital Price under the withdraw address box in red letters?
@Mark81 did you get a similar error message?
Mark8113-Jul-19 05:59 AM
Yes.
𝙊𝙊𝙊𝙊13-Jul-19 06:00 AM
OK, I think it's time to connect to DP discord for me (damn, another Discord channel...)
jl777c13-Jul-19 06:07 AM
hollowman problem was due to gui using z_sendmany (which doesnt collect rewards) vs. using sendtoaddress (which does)
𝙊𝙊𝙊𝙊13-Jul-19 06:08 AM
Hollowman just posted your findings in our discord. I trust this will be resolved in the next update,
Alexfrog13-Jul-19 06:58 AM
glad you were able to figure it out. hopefully we'll eventually have a decent KMD wallet
jl777c13-Jul-19 06:58 AM
it only happened if using native mode and selecting a specific address to fund it, that made it use z_sendmany
a bit of an edge case, but clearly needs to be fixed
Federal Reserve @federalreserve chairman Jerome Powell testifies before Senate, says about Bitcoin:
"Almost no one uses Bitcoin for payment, they use it more as an alternative to gold, is a store of value, its a speculative store of value, like gold." https://t.co/nsU2JL4...
Likes
200
what is the national banking era he talked about?
jorian13-Jul-19 08:29 AM
"a speculative store of value, like gold" wtf
downplaying the role of gold, meanwhile all the big countries are hoarding it and the US is not selling any gold either
blackjok3r13-Jul-19 08:32 AM
Put all my super in gold stocks early 2017, its up 100% as of a few weeks ago. Gold is important
jorian13-Jul-19 08:34 AM
smart move
fed hints at lowering interest rates > stocks go up & gold goes up
Alexfrog13-Jul-19 08:35 AM
gold is just bitcoin version 0.1, we have invented better technology for storing value than shiny rocks now
jorian13-Jul-19 08:36 AM
i really liked the debate between peter schiff and that guy from the bitcoin standard book
gold vs bitcoin
old vs new
siu - Chainmakers13-Jul-19 10:46 AM
Speculative store of value like all the gold vaults the federal reserve has?


Module typecheck
Gradual type checking for Lua functions.
The behaviour of the functions in this module are controlled by the value
of the global _DEBUG
. Not setting _DEBUG
prior to loading this module
is equivalent to having _DEBUG = true
.
The first line of Lua code in production quality applications that value execution speed over rigorous function type checking should be:
_DEBUG = false
Alternatively, if your project also uses Lua stdlib, this modules still
respects the std.debug_init
_DEBUG
table:
require "std.debug_init"._DEBUG = false
or:
require "std.debug_init"._DEBUG = { argcheck = false }
This mitigates almost all of the overhead of type checking with the functions from this module.
Functions
| argcheck (name, i, expected, actual[, level=2]) | Check the type of an argument against expected types. |
| argerror (name, i[, extramsg[, level=1]]) | Raise a bad argument error. |
| argscheck (decl, inner) | Wrap a function definition with argument type and arity checking. |
| check (expected, actual) | Checks the type of actual against the expected typespec |
| extramsg_mismatch (expected, actual[, index]) | Format a type mismatch error. |
| extramsg_toomany (bad, expected, actual) | Format a too many things error. |
| parsetypes (types) | Compact permutation list into a list of valid types at each argument. |
| resulterror (name, i[, extramsg[, level=1]]) | Raise a bad result error. |
| typesplit (either) | Split a typespec string into a table of normalized type names. |
Metamethods
| __index (name) | Lazy loading of typecheck modules. |
Functions
- argcheck (name, i, expected, actual[, level=2])
-
Check the type of an argument against expected types.
Equivalent to luaL_argcheck in the Lua C API.
Call
argerror
if there is a type mismatch.Argument
actual
must match one of the types from inexpected
, each of which can be the name of a primitive Lua type, a stdlib object type, or one of the special options below:#table accept any non-empty table any accept any non-nil argument type callable accept a function or a functor file accept an open file object func accept a function function accept a function functor accept an object with a __call metamethod int accept an integer valued number list accept a table where all keys are a contiguous 1-based integer range #list accept any non-empty list object accept any std.Object derived type :foo accept only the exact string ":foo", works for any :-prefixed string
The
:foo
format allows for type-checking of self-documenting boolean-like constant string parameters predicated onnil
versus:option
instead offalse
versustrue
. Or you could support both:argcheck ("table.copy", 2, "boolean|:nometa|nil", nometa)
A very common pattern is to have a list of possible types including "nil" when the argument is optional. Rather than writing long-hand as above, prepend a question mark to the list of types and omit the explicit "nil" entry:
argcheck ("table.copy", 2, "?boolean|:nometa", predicate)
Normally, you should not need to use the
level
parameter, as the default is to blame the caller of the function usingargcheck
in error messages; which is almost certainly what you want.Parameters:
- name string function to blame in error message
- i int argument number to blame in error message
- expected string specification for acceptable argument types
- actual argument passed
- level int call stack level to blame for the error (default 2)
Usage:
local function case (with, branches) argcheck ("std.functional.case", 2, "#table", branches) ...
- argerror (name, i[, extramsg[, level=1]])
-
Raise a bad argument error.
Equivalent to luaL_argerror in the Lua C API. This function does not
return. The
level
argument behaves just like the coreerror
function.Parameters:
- name string function to callout in error message
- i int argument number
- extramsg string additional text to append to message inside parentheses (optional)
- level int call stack level to blame for the error (default 1)
See also:
Usage:
local function slurp (file) local h, err = input_handle (file) if h == nil then argerror ("std.io.slurp", 1, err, 2) end ...
- argscheck (decl, inner)
-
Wrap a function definition with argument type and arity checking. In addition to checking that each argument type matches the corresponding element in the types table with
argcheck
, if the final element of types ends with an ellipsis, remaining unchecked arguments are checked against that type:format = argscheck ("string.format (string, ?any...)", string.format)
A colon in the function name indicates that the argument type list does not have a type for
self
:format = argscheck ("string:format (?any...)", string.format)
If an argument can be omitted entirely, then put its type specification in square brackets:
insert = argscheck ("table.insert (table, [int], ?any)", table.insert)
Similarly return types can be checked with the same list syntax as arguments:
len = argscheck ("string.len (string) => int", string.len)
Additionally, variant return type lists can be listed like this:
open = argscheck ("io.open (string, ?string) => file or nil, string", io.open)
Parameters:
- decl string function type declaration string
- inner func function to wrap with argument checking
Usage:
local case = argscheck ("std.functional.case (?any, #table) => [any...]", function (with, branches) ... end) -- Alternatively, as an annotation: local case = argscheck "std.functional.case (?any, #table) => [any...]" .. function (with, branches) ... end
- check (expected, actual)
-
Checks the type of actual against the expected typespec
Parameters:
- expected string expected typespec
- actual object being typechecked
Returns:
-
bool
true
, if actual matches expectedOr
-
nil
- string an extramsg_mismatch format error message, otherwise
Usage:
--> stdin:2: string or number expected, got empty table assert (check ("string|number", {}))
- extramsg_mismatch (expected, actual[, index])
-
Format a type mismatch error.
Parameters:
- expected string a pipe delimited list of matchable types
- actual the actual argument to match with
- index number erroring container element index (optional)
Returns:
See also:
Usage:
if fmt ~= nil and type (fmt) ~= "string" then argerror ("format", 1, extramsg_mismatch ("?string", fmt)) end
- extramsg_toomany (bad, expected, actual)
-
Format a too many things error.
Parameters:
- bad string the thing there are too many of
- expected int maximum number of bad things expected
- actual int actual number of bad things that triggered the error
See also:
Usage:
if select ("#", ...) > 7 then argerror ("sevenses", 8, extramsg_toomany ("argument", 7, select ("#", ...))) end
- parsetypes (types)
-
Compact permutation list into a list of valid types at each argument.
Eliminate bracketed types by combining all valid types at each position
for all permutations of typelist.
Parameters:
- types list a normalized list of type names
Returns:
-
list
valid types for each positional parameter
- resulterror (name, i[, extramsg[, level=1]])
-
Raise a bad result error.
Like argerror for bad results. This function does not
return. The
level
argument behaves just like the coreerror
function.Parameters:
- name string function to callout in error message
- i int result number
- extramsg string additional text to append to message inside parentheses (optional)
- level int call stack level to blame for the error (default 1)
Usage:
local function slurp (file) ... if type (result) ~= "string" then resulterror ("std.io.slurp", 1, err, 2) end
- typesplit (either)
-
Split a typespec string into a table of normalized type names.
Parameters:
Returns:
-
table
a new list with duplicates removed and leading "?"s
replaced by a "nil" element
Metamethods
- __index (name)
-
Lazy loading of typecheck modules.
Don't load everything on initial startup, wait until first attempt
to access a submodule, and then load it on demand.
Parameters:
- name string submodule name
Returns:
-
table or nil
the submodule that was loaded to satisfy the missing
name
, otherwisenil
if nothing was foundUsage:
local version = require 'typecheck'.version


Nothing Has Been Searched For
Building Information:
Building Name:
Building Name
No Building Selected
Rooms:
No Building Selected


---
layout: post
title: Skimming/rereading Refactoring[Fowler]. Why didn't this stuff sink in earlier? Also
feeling a bit dumb - i could do OO better.
published: true
date: 2008-12-28
categories: []
posterous_url: http://verdammelt.posterous.com/skimmingrereading-refactoringf
posterous_slug: skimmingrereading-refactoringf
---
Looking at what was written i see plenty of TDD (or at least plenty of
unit testing) which leverages the ability to refactor; and leverages the
ability to make changes quickly and thus be quicker to deliver those
changes.


Dear , I know this letter will come to you as surprise. I managed to get your contact line from the Cote Divoire Chamber of Commerce, hence I did not waste time to contact you on a business proposal. Firstly, I deem is important to introduce myself. I am MRS SARA KABILA the third WIFE of late Democratic Republic of Congo President Luarent Kabila, who was assassinated on Tuesday 16th Jan . 2001, by his bodyguard. After the death of my husband, I and my son williams Kabila were not well treated in the family. His first wife(Madam Maman Kabila and her son(Joseph Kabila)who succeeds my late husband as the next President of Democratic Republic of Congo dominated my entire husband assets and property. Fortunately for me, on the day of the incident, I was in my husband’s private house at LUMUBASHI, Firstly I wept over his assassination and then I thought of my future. I then started searching for important documents and valuables, because I know that my husband used to exchange minerals to buy arms from foreign companies. Eventualy I ran into one of these important documents. As God has planned for me, it happened that my husband deposited a Diplomatic Box in my name with a security and Finance Company in Abidjan Cote Divoire. I could not believe when I picked up the document Referred to here as the “DEED OF LODGE” My late husband secured (US$12million) TWELVE MILLION UNITED STATE DOLLARS, which was acquired from the sales of minerals. On discovering this document I came to Abidjan Cote Divoire where I am presently residing with my only son williams. Right now I want you to assist me to transfer this money into your account in your country, where I will invest it in any lucrative business as you may advice me. For your assistance I will offer you 25% of the total amount and 10% will be set aside for expenses we may incure in the process of this transaction. Should this letter receive your honor please do not hesitate to contact me or my son, and try to maintain the confidentialty of this transaction. I'm waiting anxiously to hear your favourable reply. NB: Please furnish me with your private number for easy communication. Please note that this Transaction is 100% risk free and you should up hold the secrecy involved. Best regards, MRS SARA LAURENT KABILA.


In this project, I automated weekly analytics reports from SQL databases and displayed them with Dashing.io and Google Visualization.


{% extends "base_analyze.html" %} {% set active_page = 'hierarchy' %} {% block head %} {% endblock %} {% block title %}analyzer{% endblock %} {% block options %}
{% endblock %} {% block results %}A silhouette score is a measure of fit for your clusters. It gives a general indication of how well individual objects lie within their cluster. A score of 1 indicates tight, distinct clusters. Values near 0 indicate overlapping clusters. Negative values generally indicate that a sample has been assigned to the wrong cluster, as a different cluster is more similar.


FGF was founded by Jazmin Reyes in July 2020 as an undergraduate at Stanford University. Throughout her childhood, Jazmin saw her family and her community suffer through poverty, racism, and an unjust education system as a first-generation and low-income student herself. Our goal is to help other FGLI students in similar situations get better access to higher education. From the very early stages of daydreaming about college to getting accepted, FGF aims to ensure that no FGLI student is ever alone.
First Generation First started as an idea between two friends who had both seen the inequities of being a first-generation and low-income college student at an elite university like Stanford. Jazmin and Caroline met in their freshman year of college and soon came to realize that they shared very similar experiences despite coming from different cultures and states. They came to appreciate and rely on each other and realized they never wanted other first-generation students to struggle as much as they had. Their matching desire to help students and care for education led them to launch FGF, where we put first-generation and/or low-income students first.
Our organization aims to provide the information that many first-generation and/or low-income students struggle to obtain or understand. Through scholarships, resume templates, explaining new terminology, and much more, FGF plans to increase students' confidence by preparing them throughout high school and before they enter college. We are also working towards aiding our students' parents, many of which are undocumented immigrants, refugees, or did not have the opportunity to enter postsecondary education. Our plan is to make the high school to college transition as easy as possible for everyone involved.


Money Play. How should Red play 32?
pips Red=101 White=161
(CorrectAnswer= 0/0, ErrorScore= 0)
The beginner’s move is 7/2. How will Red get home safely from there??
Very clear is 18/13. If one of the blots is hit there will very likely be lots of return shots from the bar, any of which could win a gammon for Red.
If you chose 7/2 here then your model of the game requires some updating. Knowing when to take risks, either real or imagined, is fundamental to successful backgammon.
Very clear is 18/13. If one of the blots is hit there will very likely be lots of return shots from the bar, any of which could win a gammon for Red.
If you chose 7/2 here then your model of the game requires some updating. Knowing when to take risks, either real or imagined, is fundamental to successful backgammon.
1. Cubeful 2-ply 18/13 Eq.: +0.022 0.551 0.172 0.002 - 0.449 0.097 0.002 2. Cubeful 2-ply 18/16 7/4 Eq.: -0.135 (-0.157) 0.498 0.167 0.002 - 0.502 0.122 0.004 3. Cubeful 2-ply 13/11 7/4 Eq.: -0.156 (-0.178) 0.494 0.156 0.001 - 0.506 0.125 0.005 4. Cubeful 2-ply 18/16 18/15 Eq.: -0.170 (-0.192) 0.492 0.160 0.002 - 0.508 0.132 0.005 5. Cubeful 2-ply 13/8 Eq.: -0.202 (-0.224) 0.485 0.146 0.002 - 0.515 0.139 0.005