About Me
I am a senior software developer/consultant/architect in Victoria, British Columbia, Canada, with over 15 years of experience working with government and private sector clients. I am a full-stack developer with projects covering UI and front end through to the design and development of back-end API's and services utilizing a number of different languages, frameworks, and technologies from Oracle reports to CouchDB to FME, various programming languages, and more tools than I can think of at one sitting.. I have lead teams in large scale projects using both agile and traditional methodologies. I have specialized in spatial technologies and developing GIS solutions throughout my career, from web mapping applications to server side processing of large scale spatial data.
I love all aspects of designing and developing good software that solves a clients real needs. As a "people person", I enjoy working directly with my clients to really get to know them, their business, and understand how software solutions can improve their workflows.
Interests & Hobbies
Cartography
Spatial data, and using maps to tell the data's story
Procedural Generation
Containerization
Improving Automation & Continuous Delivery
Playing guitar
Hockey
Off-roading


Hyundai's Mid-Engine Sports Car Sounds Like It's Going To Happen Even If Hyundai Won't Say So
by Raphael Orlove and JalopnikToday at the LA Auto Show, Hyundai showed the RM19 Racing Midship Sports Car “concept,” and it was an odd debut for a mid-engine test mule that has been in development since 2012. The thing is, it sounds like Hyundai’s actually doing it, in some form or fashion.
Road & Track reports that it’s on the path to production, citing an unnamed Hyundai insider. And Hyundai’s own press release has things to say like:
- “signals future high-performance potential for Hyundai N brand”
- “serves as a development platform for future N brand products, including a potential brand-halo car”
- “Potential for electrified variants in the future”
That’s a lot for just a concept or a dedicated race car. And the photos of it show a lot of the thing on the roads near the company’s development centre next to the Nürburgring.
And Hyundai repeatedly mentions road use of this very much not-a-production-car vehicle:
“RM models underwent extensive road testing to validate newly-developed technologies, observe their effects on performance, and improve them for subsequent application on future N models.”
Lots of road testing. Got it.
“The RM platform is a versatile engineering testbed, allowing effective evaluation of various powertrains and performance levels, all on normal roads and environments,” said Albert Biermann, head of global research and development for Hyundai Motor Company.
The new boss, poached from BMW M, seems to like it. His first N car, the Veloster N, is surprisingly good to drive, so that bodes well for this thing. Whatever it is or might be.
RM19 shares the 2.0-litre turbo engine with TCR racecars from Hyundai N development. However, unlike TCR racecars which are affected by BOP (Balance of Performance) adjustments, Hyundai RM19 offers extra boost of its output without these BOP restrictions. RM19 offers racecar-like levels of performance, balance, braking and grip while retaining daily road-going capability.
Road-going capability is a thing you need for, well, road cars.
Moreover, it appears Hyundai spoke to the press to underline that this is not a future road car in the making, but merely part of a development system designed to get a road car made... in the future.
And yet! Hyundai spokesman Brandon Ramirez told us at the show today that there are no plans for a production model. It’s a technology prototype, he said.
Here’s some lines from Brit autojourno Steve Sutcliffe driving and reviewing the car for AutoExpress:
Let’s get one thing clear straight away: the Hyundai RM19 you see here is not a prototype of a production car that will appear in a year or so’s time. Instead it is, according to the Hyundai engineers who have built it, just a rolling test bed for various systems and technologies that will appear on various Hyundais in years to come.
So that’s the PR side of things out of the way. Because what I can also tell you is that the RM19 is very much the Mk1 prototype of a Hyundai that will enter production in Mk2 form costing a lot less than £100k ($190,000), possibly as soon as 2021.
Sutcliffe goes on to say that the car shows a lot of intent for Hyundai to make a mid-engine road car, though one seemingly aimed more at something like a Porsche Cayman than a 911:
But the RM19’s mid-engined chassis and its all-round double wishbone suspension, and its e-diff, its steering and its vast ventilated brakes are all elements that aren’t that far away from those that will appear on the next prototype: the RM20. And when the RM20 appears “sometime next year” this will be a much closer representation of the so-called “Halo N-car” that Hyundai will eventually put on sale in 2021-ish.
I don’t know that I would be pushing forward a mid-engine sports car if I was an auto executive, but I’m glad Hyundai seems to be. If the Veloster N is anything to go by, this car is gonna rule.


ideas for your videos
you can make every type of videos you like, i suggest you the grounded videos but if you don't know what isa grounded video maybe search on youtube "gets grounded" or something.
Make demos for your lvm clone
if you want to promotize your lvm on youtube you can make a demo for your lvm, make a video!
No UTTP, THTDC, VGCP and KTKK allowed and the type of videos prohibited
for don't be this lvm a criminal version or a troll feeding version no UTTP or THTDC allowed and do not make trolls videos, cyberbulling videos, porn videos and more bad videos.
feel free to speech!
it's avaiable freedom to speech but don't use it too much.
instead of import media....
the import media option on the videomaker it's patched, but you can use instead a videoeditor for inserect your media from your computer. install it.
personalize your video
for personalize i suggest you to download filmora, you can personalize your goanimate videos using filmora with a lot of effects.


| Package | com.threerings.media |
| Class | public class FlvVideoPlayer |
| Inheritance | FlvVideoPlayer flash.events.EventDispatcher |
| Implements | VideoPlayer |
| Property | Defined by | ||
|---|---|---|---|
| _autoPlay : Boolean | FlvVideoPlayer | ||
| _duration : Number = NaN | FlvVideoPlayer | ||
| _gotDurationFromMetadata : Boolean | FlvVideoPlayer | ||
| _metadata : Object | FlvVideoPlayer | ||
| _netCon : NetConnection | FlvVideoPlayer | ||
| _netStream : NetStream | FlvVideoPlayer | ||
| _positionChecker : Timer | FlvVideoPlayer | ||
| _size : Point Our size, null until known.
| FlvVideoPlayer | ||
| _sizeChecker : Timer Checks the video every 100ms to see if the dimensions are now know.
| FlvVideoPlayer | ||
| _state : int = 0 | FlvVideoPlayer | ||
| _vid : Video | FlvVideoPlayer | ||
| _volume : Number = 1 | FlvVideoPlayer |
| Method | Defined by | ||
|---|---|---|---|
|
FlvVideoPlayer(autoPlay:Boolean = true)
| FlvVideoPlayer | ||
|
getDisplay():DisplayObject
| FlvVideoPlayer | ||
|
getDuration():Number
| FlvVideoPlayer | ||
|
getMetadata():Object
| FlvVideoPlayer | ||
|
getPosition():Number
| FlvVideoPlayer | ||
|
getSize():Point
| FlvVideoPlayer | ||
|
getState():int
| FlvVideoPlayer | ||
|
getVolume():Number
| FlvVideoPlayer | ||
|
load(url:String):void
Start playing a video!
| FlvVideoPlayer | ||
|
pause():void
| FlvVideoPlayer | ||
|
play():void
| FlvVideoPlayer | ||
|
seek(position:Number):void
| FlvVideoPlayer | ||
|
setVolume(volume:Number):void
| FlvVideoPlayer | ||
|
unload():void
| FlvVideoPlayer |
| Method | Defined by | ||
|---|---|---|---|
|
handleAsyncError(event:AsyncErrorEvent):void
| FlvVideoPlayer | ||
|
handleIOError(event:IOErrorEvent):void
| FlvVideoPlayer | ||
|
handleMetaData(info:Object):void
Called when metadata (if any) is found in the video stream.
| FlvVideoPlayer | ||
|
handleNetStatus(event:NetStatusEvent):void
| FlvVideoPlayer | ||
|
handlePositionCheck(event:TimerEvent = null):void
| FlvVideoPlayer | ||
|
handleSecurityError(event:SecurityErrorEvent):void
| FlvVideoPlayer | ||
|
handleSizeCheck(event:TimerEvent):void
Check to see if we now know the dimensions of the video.
| FlvVideoPlayer | ||
|
handleStreamNetStatus(event:NetStatusEvent):void
| FlvVideoPlayer | ||
|
redispatchError(event:ErrorEvent):void
Redispatch some error we received to our listeners.
| FlvVideoPlayer | ||
|
updateState(newState:int):void
| FlvVideoPlayer |
| _autoPlay | property |
protected var _autoPlay:Boolean
| _duration | property |
protected var _duration:Number = NaN
| _gotDurationFromMetadata | property |
protected var _gotDurationFromMetadata:Boolean
| _metadata | property |
protected var _metadata:Object
| _netCon | property |
protected var _netCon:NetConnection
| _netStream | property |
protected var _netStream:NetStream
| _positionChecker | property |
protected var _positionChecker:Timer
| _size | property |
protected var _size:Point
Our size, null until known.
| _sizeChecker | property |
protected var _sizeChecker:Timer
Checks the video every 100ms to see if the dimensions are now know. Yes, this is how to do it. We could trigger on ENTER_FRAME, but then we may not know the dimensions unless we're added on the display list, and we want this to work in the general case.
| _state | property |
protected var _state:int = 0
| _vid | property |
protected var _vid:Video
| _volume | property |
protected var _volume:Number = 1
| FlvVideoPlayer | () | constructor |
public function FlvVideoPlayer(autoPlay:Boolean = true)
Parameters
autoPlay:Boolean (default = true )
|
| getDisplay | () | method |
public function getDisplay():DisplayObject
Returns
DisplayObject |
| getDuration | () | method |
public function getDuration():Number
Returns
Number |
| getMetadata | () | method |
public function getMetadata():Object
Returns
Object |
| getPosition | () | method |
public function getPosition():Number
Returns
Number |
| getSize | () | method |
public function getSize():Point
Returns
Point |
| getState | () | method |
public function getState():int
Returns
int |
| getVolume | () | method |
public function getVolume():Number
Returns
Number |
| handleAsyncError | () | method |
protected function handleAsyncError(event:AsyncErrorEvent):void
Parameters
event:AsyncErrorEvent |
| handleIOError | () | method |
protected function handleIOError(event:IOErrorEvent):void
Parameters
event:IOErrorEvent |
| handleMetaData | () | method |
protected function handleMetaData(info:Object):void
Called when metadata (if any) is found in the video stream.
Parametersinfo:Object |
| handleNetStatus | () | method |
protected function handleNetStatus(event:NetStatusEvent):void
Parameters
event:NetStatusEvent |
| handlePositionCheck | () | method |
protected function handlePositionCheck(event:TimerEvent = null):void
Parameters
event:TimerEvent (default = null )
|
| handleSecurityError | () | method |
protected function handleSecurityError(event:SecurityErrorEvent):void
Parameters
event:SecurityErrorEvent |
| handleSizeCheck | () | method |
protected function handleSizeCheck(event:TimerEvent):void
Check to see if we now know the dimensions of the video.
Parametersevent:TimerEvent |
| handleStreamNetStatus | () | method |
protected function handleStreamNetStatus(event:NetStatusEvent):void
Parameters
event:NetStatusEvent |
| load | () | method |
public function load(url:String):void
Start playing a video!
Parametersurl:String |
| pause | () | method |
public function pause():void
| play | () | method |
public function play():void
| redispatchError | () | method |
protected function redispatchError(event:ErrorEvent):void
Redispatch some error we received to our listeners.
Parametersevent:ErrorEvent |
| seek | () | method |
public function seek(position:Number):void
Parameters
position:Number |
| setVolume | () | method |
public function setVolume(volume:Number):void
Parameters
volume:Number |
| unload | () | method |
public function unload():void
| updateState | () | method |
protected function updateState(newState:int):void
Parameters
newState:int |
| log | constant |
protected const log:Log


Ira Glass is Speaking
You are Speaking
Push to speak
#JSGF V1.0; grammar test; public
= this is a demo | of the voice inputs | in two different accents | i speak in indian accent | i speak in brazilian accent | we hope this thing becomes huge | here is to the open web | lets say a few other things | how deep is the atlantic ocean | go forward ten meters ;


--- layout: post title: Winning the game with CQRS/event sourcing and BDD ---
I have been making a few attempts to combine BDD with CQRS/event sourcing, since they seem to make a perfect fit.
After mailing to the DDD/CQRS newsgroup for a few times, I finally managed to make something presentable... this is the BDD part for the domain :
And this is the resulting output after running the console runner
This is the context, notice how setting up the interpreter usually only takes a single line (i.e. register an event, execute a command, or check something)
And this is the implementation of the domain class
And it's domain handler
As wel as a view updater (in reality this view store would be queried be a winform or webform directly)
Please do note that the current Event Store and Aggregate store are not persisted; IRL you would have to persist the event store (forward write-only), and probably some snapshots from your aggregate root as well (maybe using a bigtable); this should be easy to add, I might do this in a later phase....
You can find the full sourcecode in this zip:
I uploaded the sourcecode to github : http://github.com/ToJans/CQRSNode
I also added (currently synchronous) a node.js -like implementation...


Helmet
Chestplate
Platelegs
Greaves
Gauntlets
Accessories
Helmet
Chestplate
Platelegs
Greaves
Gauntlets
Accessories
Helmet
Chestplate
Platelegs
Greaves
Gauntlets
Accessories


PXP Module¶
About¶
Command Guide¶
Module PXP reads the source code of a Pascal program and produces an executable binary module.
API Guide¶
Dependencies¶
Texts Oberon OXS OXB OXG
Constants¶
Types¶
PtrBase = POINTER TO PtrBaseDesc;
PtrBaseDesc = RECORD (*list of names of pointer base types*)
name: OXS.Ident; type: OXB.Type; next: PtrBase
END ;
Variables¶
sym: INTEGER; (*last symbol read*)
dc: LONGINT; (*data counter*)
level, exno, version: INTEGER;
newSF: BOOLEAN; (*option flag*)
ccARCH, ccWordsize, ccStackalign: INTEGER;
expression: PROCEDURE (VAR x: OXG.Item); (*to avoid forward reference*)
Type: PROCEDURE (VAR type: OXB.Type);
FormalType: PROCEDURE (VAR typ: OXB.Type; dim: INTEGER);
modid: OXS.Ident;
pbsList: PtrBase; (*list of names of pointer base types*)
dummy: OXB.Object;
W: Texts.Writer;
Functions and Procedures¶
— Check marks an error if the current symbol does not match the expeted symbol.
PROCEDURE Check(s: INTEGER; msg: ARRAY OF CHAR);
— Qualident generates a reference to a previously defined item if possible otherwise an error is marked.
PROCEDURE qualident(VAR obj: OXB.Object);
— CheckBool marks an error if the item is not a boolean.
PROCEDURE CheckBool(VAR x: OXG.Item);
— CheckInt marks an error if the item is not an Int.
PROCEDURE CheckInt(VAR x: OXG.Item);
— CheckReal marks an error if the item is not a Real.
PROCEDURE CheckReal(VAR x: OXG.Item);
— CheckSet marks an error if the item is not a Set.
PROCEDURE CheckSet(VAR x: OXG.Item);
— CheckSetVal marks an error if the item is not a Set Value.
PROCEDURE CheckSetVal(VAR x: OXG.Item);
— CheckConst marks an error if the value is not a Constant.
PROCEDURE CheckConst(VAR x: OXG.Item);
— CheckReadOnly marks an error if the value is not read-only.
PROCEDURE CheckReadOnly(VAR x: OXG.Item);
— CheckExport checks for an export symbol and marks an error if export not at top level.
PROCEDURE CheckExport(VAR expo: BOOLEAN);
— IsExtension determines if type t1 is an extension of t0.
PROCEDURE IsExtension(t0, t1: OXB.Type): BOOLEAN;
— TypeTest checks for assignment type compatibility.
PROCEDURE TypeTest(VAR x: OXG.Item; T: OXB.Type; guard: BOOLEAN);
— selector generates the array item, procedure, or method dereference on an array or record.
PROCEDURE selector(VAR x: OXG.Item);
— EqualSignatures verifies that a procedure may be assigned to a procedure variable.
PROCEDURE EqualSignatures(t0, t1: OXB.Type): BOOLEAN;
— CompTypes verifies assigment compatibility by type.
PROCEDURE CompTypes(t0, t1: OXB.Type; varpar: BOOLEAN): BOOLEAN;
— Parameter consumes a function call parameter and produces function call proloogue code for the parameter.
PROCEDURE Parameter(par: OXB.Object);
— ParamList consumes the function call parameters, resulting in a function call prologue.
PROCEDURE ParamList(VAR x: OXG.Item);
— StandFunc consumes standard language functions and produces inline code for those functions.
Standard functions include: ABS ODD FLOOR FLT ORD CHR LEN ADC SBC UML BIT REG VAL ADR SIZE COND H PAU PLY
PROCEDURE StandFunc(VAR x: OXG.Item; fct: LONGINT; restyp: OXB.Type);
— element produces a reference to an element in a set.
PROCEDURE element(VAR x: OXG.Item);
— set produces a set from elements.
PROCEDURE set(VAR x: OXG.Item);
— factor generates code that produces a value from identifiers, applications of functions and procedures, etc. for use in a calculation or assignment.
PROCEDURE factor(VAR x: OXG.Item);
— term combines factors via multiplication and division, resulting in a value.
PROCEDURE term(VAR x: OXG.Item);
— SimpleExpression combines terms via addition, subtraction, boolean, and set operations, resulting in a value.
PROCEDURE SimpleExpression(VAR x: OXG.Item);
— expression0 produces code handling arbitrary arithmetic and logical operations, resulting in a value.
expression0 is assigned to the procedure variable expression to allow the forward reference.
- ::
PROCEDURE expression0(VAR x: OXG.Item);
— StandProc handles standard (predefined) procedures.
PROCEDURE StandProc(pno: LONGINT);
— StatSequence matches a statement sequence.
PROCEDURE StatSequence;
TypeCase (interior procedure)
PROCEDURE TypeCase(obj: OXB.Object; VAR x: OXG.Item);
SkipCase (interior procedure)
PROCEDURE SkipCase;
— IdentList matches a comma separated list of identifiers.
PROCEDURE IdentList(class: INTEGER; VAR first: OXB.Object);
— ArrayType matches the definiton of an Array Type or marks an error.
PROCEDURE ArrayType(VAR type: OXB.Type);
— RecordType matches the definition of a Record Type or marks an error.
PROCEDURE RecordType(VAR type: OXB.Type);
— FPSection matches the parameters to a function or marks an error.
PROCEDURE FPSection(VAR adr: LONGINT; VAR nofpar: INTEGER);
— ProcedureType matches a Procedure Type definition or marks an error.
PROCEDURE ProcedureType(ptype: OXB.Type; VAR parblksize: LONGINT);
— FormalType0 matches the definition of a type or marks an error.
PROCEDURE FormalType0(VAR typ: OXB.Type; dim: INTEGER);
— CheckRecLevel ensures that the ptr base is global.
PROCEDURE CheckRecLevel(lev: INTEGER);
— Type0 matches a type definition or marks an error.
PROCEDURE Type0(VAR type: OXB.Type);
— Declarations dispatches the definition of constants, types, and variables.
PROCEDURE Declarations(VAR varsize: LONGINT);
— ProcedureDecl matches the definition of a procedure or marks an error.
PROCEDURE ProcedureDecl;
— Import consumes the names of modules imported by this module and ensures their compatibility or marks an error.
PROCEDURE Import;
— Module begins the recursive descent parsing of the source text and emits an object code file on completion or marks an error.
PROCEDURE Module;
— Option checks if a new symbol file may be generated and which architecture to compile for.
PROCEDURE Option(VAR S: Texts.Scanner);
— Prep locates the source code to a module, initializes the scanner, and begins parsing at ‘Module’.
PROCEDURE Prep;
— Compile locates the source code to a module, initializes the scanner, and begins parsing at ‘Module’.
PROCEDURE Compile*;
— The initialzation code for this module opens a writer to print marked errors and initializes the Oberon parser state.
Development Guide¶
(N. Wirth 1.7.97 / 8.3.2020 Oberon compiler for RISC in Oberon-07, C. Perkins 2020/21 transformed into a Pascal compiler unironically)
PXP implements a one-pass recursive descent parser for the Pascal language.
The structure of the parser is derived from the structure of the language, with constituent parts of the language (e.g. Line, Expression, Term, Instruction) represented by a procedure of that name, invoked from the encompassing construct. Each procedure consumes and validates a part of the program source text while populating the symbol table and execution context and also generating machine code faithfully representing that language construct.
This module (PXP) relies on module OXG for code generation, OXB for the symbol table, execution context tracking and reserved words, and OXS for lexical parsing and built-in type identification.


| Name |
{{completeObj[0].Name}} |
| Type |
{{completeObj[0].attributes.type}} |
| URK |
{{completeObj[0].attributes.url}} |
| Active Investor |
{{completeObj[0].loan__Active_Investor__c}} |
| Disbursal Date |
{{completeObj[0].loan__Disbursal_Date__c}} |
| Loan Disbursal Date |
{{completeObj[0].loan__Expected_Disbursal_Date__c}} |
| Interest Calculating Method |
{{completeObj[0].loan__Interest_Calculation_Method__c}} |
| Loan Interest rate |
{{completeObj[0].loan__Interest_Rate__c}} |
| Loan Interest Waived |
{{completeObj[0].loan__Interest_Waived__c}} |
| Loan Last Payment |
{{completeObj[0].loan__Last_Payment_Date__c}} |
| Loan Status |
{{completeObj[0].loan__Loan_Status__c}} |


dask_sparse_mtx¶
Overview¶
This is a simple demo showing how to use dask delayed and dask arrays to multiply sparse matricies loaded in lazily into memory (here, from an sqlite3 database).
Either approach uses dask.delayed
to wrap reading tiles of the matrix
into tasks, and then either manually (using
dask_sparse_mtx.dask_delayed_mult()
) or using the infrastructure
provided by dask.array
(using dask_sparse_mtx.dask_array_mult()
)
multiplies the two matrices in a tiled manner:
where the multiplication in the second line above is matrix multiplication.
The example can be run as follows (will take a few minutes):
import os
import dask.multiprocessing
import dask_sparse_mtx as dsm
dask.set_options(get=dask.multiprocessing.get)
filename = "test.db"
size = 20000
# create file
dsm.mtxdb_init(filename)
# create matrices and write them; their product
# will be the identity matrix
a = dsm.mtx_permutation(size)
b = dsm.mtx_transpose(a)
dsm.mtxdb_add_matrix_from_dict(filename, 'A', a)
dsm.mtxdb_add_matrix_from_dict(filename, 'B', b)
# smaller tilesize - more parallelism, but more
# overhead from task management
tilesize = 2000
c = dsm.dask_array_mult(filename, 'A', 'B', tilesize)
print c[:10, :10]
if dsm.mtx_is_identity(c):
print "Success!"
os.remove(filename)
And using dask.distributed this computation can be run across several hosts.
Matrix Multiplication¶
Matrix multiplication is performed by either dask_sparse_mtx.dask_delayed_mult()
or dask_sparse_mtx.dask_array_mult()
:
- Multiply two sparse matrices in the database
using dask.delayed and task parallelism.
Pros: high control over tiles size, distribution Cons: larger memory usage in intermediate steps as
tiles can’t be mutated
-
dask_sparse_mtx.dask_delayed_mult.
dask_delayed_mult
(dbname, a, b, tilesize)¶ Multiplies two sparse matrices from the matrix db using dask.delayed and task parallelism
TODO: better reduction over intermediate terms
Parameters: - dbname – Filename of the sparse matrix db
- a – Name of matrix A in the db
- b – Name of matrix B in the db
- tilesize – int - size of the (square) tiles read in to do the multiplication
Return type: dictionary of sparse.COO matrix tiles - eg c[(i,j)] is the i, jth tile of product
- Multiply two sparse matrices in the database
by constructing a dask array from the tiles
- Pros: Makes better use of the scheduler, esp for large numbers of tiles
- Don’t have to think about de-tiling final result
Cons: Less control of tiling in intermediate and final stages
-
dask_sparse_mtx.dask_array_mult.
dask_array_mult
(dbname, a, b, tilesize)¶ Multiplies two sparse matrices from the matrix db using dask.arrays
Parameters: - dbname – Filename of the sparse matrix db
- a – Name of matrix A in the db
- b – Name of matrix B in the db
- tilesize – int - size of the (square) tiles read in to do the multiplication
Return type: sparse.COO - single sparse matrix final result
Sparse Matrix DB¶
These rely on routines for reading/writing the sparse matrices (in COO format) into the sqlite3 db:
- Reads/writes sparse matrices (in COO format) into
- sqlite3 db
-
dask_sparse_mtx.mtxdb.
mtxdb_init
(filename)¶ Initializes an sqlite3 db for writing sparse matrices.
Parameters: filename – name of sqlite3 db file to create
-
dask_sparse_mtx.mtxdb.
mtxdb_add_matrix_from_dict
(filename, mtxname, mtxdict)¶ Writes a matrix in COO format to sqlite3 db ‘filename’.
Parameters: - filename – name of sqlite3 db in which to store the matrix
- mtxname – name of matrix (string)
- mtxdict – dict of form (row, col): value containing matrix coordinates and data
-
dask_sparse_mtx.mtxdb.
mtxdb_read_chunk
(filename, mtxname, rows=None, cols=None)¶ - Reads a whole or partial matrix from a sqlite3 db into
- a mod:sparse COO matrix
Parameters: - filename – name of sqlite3 db from which to read the matrix
- mtxname – name of matrix (string)
- rows – optional tuple containing the slice of rows to read in, eg rows=(100,200) will read in rows 100..199. If None, will read all rows
- cols – as with rows, but for columns
Return type: mod:sparse COO matrix
-
dask_sparse_mtx.mtxdb.
mtxdb_matrix_shape
(filename, mtxname)¶ Returns the shape of a sparse matrix in the db.
Parameters: - filename – name of the sqlite3 db in which the matrix is stored
- mtname – name of the matrix(string)
Return type: (rowmin, rowmax, colmin, colmax): min/max of rows and columns
Sparse Matrix Helper Methods¶
And finally there are helper routines for creating simple permutation matricies useful for tests:
- Routines for simple COO matrices expressed as dicts
- {(row, col): value } for test problems
-
dask_sparse_mtx.mtx.
mtx_permutation
(size)¶ Returns a matrix in COO format as a dictionary describing a permutation matrix.
Parameters: size – size of (necessarily square) permutation matrix Return type: dictionary of (row, col): val matrix entries
-
dask_sparse_mtx.mtx.
mtx_transpose
(dictmtx)¶ Returns transposes of a matrix in COO format (expressed as a dict).
Parameters: dictmtx – dictionary containing COO matrix Return type: dictionary of (row, col): val matrix entries
-
dask_sparse_mtx.mtx.
mtx_is_identity
(mtx)¶ Returns True if matrix (dict or sparse.COO) is the identity matrix False otherwise
Parameters: mtx – sparse.COO or dict matrix Return type: Bool: True if identity


example: POST [project_url]/api/shorturl/new - https://www.google.com
POST [project_url]/api/shorturl/new
https://www.google.com
https://forum.freecodecamp.org/


Are you sure you want to delete the course?
Name: {{course['title']}}
Description: {{course['description']}}


Sample Resume
Horizontal Line 1
Horizontal Line 2
Special Characters
€ Euro
¥ Yen
© Copyright
Horizontal Line 3
This is highlighted in Yellow This is not highlighted - second span.
This is italic title
This is subtitle


These select one of nineteen different ways the audio processing modules can be interconnected. There are four basic topologies, plus four optional special effects, although one of the combinations is meaningless:
| independent | {patch1.png width=450} |
| independent + sync | {patch2.png width=450} |
| independent + ring mod | {patch3.png width=450} |
| independent + multiply | {patch4.png width=450} |
| independent + filter fm | {patch5.png width=450} |
| parallel filters | {patch6.png width=450} |
| parallel filters + sync | {patch7.png width=450} |
| parallel filters + ring mod | {patch8.png width=450} |
| parallel filters + multiply | {patch9.png width=450} |
| parallel filters + filter fm | {patch10.png width=450} |
| series filters | {patch11.png width=450} |
| series filters + sync | {patch12.png width=450} |
| series filters + ring mod | {patch13.png width=450} |
| series filters + multiply | {patch14.png width=450} |
| series filters + filter fm | {patch15.png width=450} |
| vari-mix filters | {patch16.png width=450} |
| vari-mix filters + sync | {patch17.png width=450} |
| vari-mix filters + ring mod | {patch18.png width=450} |
| vari-mix filters + multiply | {patch19.png width=450} |
This is contained in the {Control_patch_cluster patch cluster} within the {Control_section}.
This is contained in the CONTROL section of the right panel, under the following parameter number:
| {sw-1.png height=48} |
This appears in the display as Patch.
This is accessed via {_NRPN} 0,24.
| MIDI | display | ||
| 1 | independent | (default) | |
| 2 | independent + sync | ||
| 3 | independent + ring mod | ||
| 4 | independent + multiply | ||
| 5 | independent + filter fm | ||
| 6 | parallel filters | ||
| 7 | parallel filters + sync | ||
| 8 | parallel filters + ring mod | ||
| 9 | parallel filters + multiply | ||
| 10 | parallel filters + filter fm | ||
| 11 | series filters | ||
| 12 | series filters + sync | ||
| 13 | series filters + ring mod | ||
| 14 | series filters + multiply | ||
| 15 | series filters + filter fm | ||
| 16 | vari-mix filters | ||
| 17 | vari-mix filters + sync | ||
| 18 | vari-mix filters + ring mod | ||
| 19 | vari-mix filters + multiply |


Ashley Colletti
The Difference Engine is a web development agency that builds websites, internal platforms, and other development projects for non-profit and charity organizations on a pro bono basis. I'm on a team that is building a management system to help connect Veteran owned businesses with customers who require their services.
Summary of Role:
• Developing back-end features using Ruby on Rails with PostgreSQL
• Creating and consuming APIs
• Producing engaging front-end designs with AngularJS, React, JavaScript, and CSS
• Writing tests using RSpec
• Acting as a liaison between the development team and operations center to implement process and protocol improvements, increase efficiency, and eliminate redundancies
• Auditing and conducting testing on internal site to identify issues
• Creating wireframes and user stories for new feature proposals
• Managing administration of call center software and email ticketing platform
• Utilizing MySQL database to track trends and identify areas for improvement
• Testing API calls for our web client portal
• Vivid Seats | Chicago, IL | 2014 - 2016
• Generated sales through inbound and outbound calls
• Assisted new agents by being part of the senior mentor program
• Regularly performed in the top 5% of agents
• Managing customer accounts
• Creating and editing our maintenance website
• Graphic design for marketing materials
• Registration and monitoring of government procurement opportunities
• Acquiring federal and state certifications
• Processing sales order and purchase orders
• Assisting with customer service issues
• Assisting with patterning, cutting, and sewing garment samples.
• Creating spreadsheets for garment costing/ fabric samples/ garment inventory/ line sheets.
• Developing our e-commerce store
• Integrating the old website to a new web host as well as updating and maintaining it.
• Material sourcing.
• Help with fashion shows, sales, and boutique displays


HIGH SOCIETY by Kristian Lin
A PERFECT MURDER is supposedly a remake of Alfred Hitchcock's 1954 film DIAL M FOR MURDER. In truth, it only uses the setup and a few details from the original. Wealthy financier Steven Taylor (Michael Douglas) discovers that his beauteous and much younger wife Emily (Gwyneth Paltrow) has a lover, so he decides to have her killed. Rather than blackmailing an outside party into doing the job, as in the original, the businessman hires the lover, a con artist posing as a starving artist named David Shaw (Viggo Mortensen). With cold logic, Steven has designed the murder to look like a routine burglary gone wrong, but his intended victim fouls it up by killing the hit man in self-defense.
The movie is no masterpiece, but it's somewhat better than the lukewarm reviews might lead you to believe. The updating has mostly improved on the original film, which just preceded Hitchcock's amazing run of masterpieces, beginning with REAR WINDOW (1954) and ending with PSYCHO (1960), THE BIRDS (1963), or MARNIE (1964), depending on whom you ask. DIAL M FOR MURDER shackles Hitchcock with Frederick Knott's stagey play and the 400-pound immobile camera he had to use to film in 3-D. With its drab color and stiff acting, the only entertainment value in DIAL M FOR MURDER is watching Ray Milland be what Hitchcock unwisely tried to make out of Cary Grant in SUSPICION (1941) - a genteel charmer with an icy murderous side.
Director Andrew Davis is still struggling to regain his form from 1993's THE FUGITIVE. He's so taken with showing us how fabulously rich these people are that his direction skirts the absurd - the Taylors drink out of martini glasses that look like Jacuzzis. Dariusz Wolski's high-contrast photography looks self-important amid Manhattan's jet-set. By contrast, Michael Chapman's cinematography for THE FUGITIVE combined with that movie's Chicago setting to give it a grim elegance. A PERFECT MURDER moves quickly and efficiently, but that only works with the movie's glossiness to make it seem glib and disposable.
The remake does smooth out many of the original's implausibilities. DIAL M FOR MURDER leaves you wondering why the cuckolded husband doesn't simply off the boyfriend and have done with it. Patrick Smith Kelly's script gives him a reason - his business is in trouble and his wife is worth a ton of money to him dead. Viggo Mortensen is preferable to the stodgy and inept Robert Cummings in the original, and David Suchet's basso profundo homicide cop (a rare positive portrayal of an Arab-American in a Hollywood movie) is much weightier than John Williams's fussy Scotland Yard 'tec. Even the remake's disappointingly conventional (and confusing) grappling-for-the-gun ending is better than the tediously anticlimactic walk-through of the failed hit that concludes Hitchcock's movie. The updating, though, doesn't explain why the Taylors don't have an answering machine, which is why Emily has to get out of her bathtub to answer the phone so she can be attacked.
Michael Douglas spins perhaps the cruellest variation yet on his embattled rich white man act. His power-tripping megalomaniac in WALL STREET isn't a killer, while his dangerously out-of-control cop in BASIC INSTINCT is at least more casual in his brutality. The night Emily is supposed to be killed, she pleads with Steven to stay home and obviously wants to admit everything. He gives her a cold stare with a hint of a smile in it as he says, "It's too late." The tightly controlled Douglas is, as one might expect, good at playing a control freak, but you wish he had relaxed a bit and hit the key moments harder, like at the end where he tells Emily, "The only way you leave me is dead."
It's only appropriate that Paltrow plays the Grace Kelly role, because Paltrow essentially is Grace Kelly - a patrician goddess with a sense of fun - but warmer and more vulnerable. That vulnerability, projected through the very Paltrowvian stare that radiates confusion and pain, probably got her cast in this thriller. Like some other tall actresses, she seems apologetic for her height, and here it gives the effect of a 16-year-old dolled up in designer gowns. She looks callow and out of her depth here, but then the character is out of her depth as well. Had the movie been made in 1990, Julia Roberts would have played this part. Roberts is now mature enough to select interesting material on her own, but Paltrow's getting stuck with the boring damsel-in-distress roles. There's every reason to hope that she, too, will overcome Hollywood's typecasting.
Paltrow's presence is enough to provide a rooting interest, but the movie's real problem isn't unsympathetic characters (as some reviewers have said) but a lack of chemistry between any of the leads. The Taylors don't have a believable marriage. Steven knows about the affair and is set on murder from the beginning, while Emily cringes inwardly whenever her husband touches her. Good for the plot, but what brought these people together in the first place? Since Emily comes from money and doesn't need it to marry it, why would she attach herself to a middle-aged sadist, albeit a handsome and well-connected one? You really don't blame her for having an affair, but Mortensen doesn't have the razzle-dazzle of a professional ladies' man, and somehow doesn't strike me as a guy who's dynamite in the sack. It's the shallowness of the movie's personal relationships that make A PERFECT MURDER less than the sum of its parts.
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


Adding binary numbers
Addition is done using an XOR operation, which requires to invert one of the inputs,
Binary numbers addition is presented using multiplexer graphs
Addition is done using an XOR operation, which requires to invert one of the inputs,


|
1. We are AnonPlus and this is our manifest.
|
2.
Who wants to defend its freedom of information, freedom of the people and the emancipation of the latter from the oppression of the media and of those who govern us, who uses our platforms and our tool to implement its dirty purposes, is already part of AnonPlus. | Every person who has the goodwill to act is welcome.
3. AnonPlus has a space to share ideas open to all: webchat.anonplus.org |
4. AnonPlus spreads ideas without censorship, creates spaces to spread directly through mass defacement, publish news that the media filtered and managed for the consumption of who controls, we do that to restore dignity to the function of the media: media should be free, without censorship and must limit itself to "show what's happening" and don't "say to us what's wrong and what's right" | AnonPlus puts offline sites that actively contribute to the control of the masses from the corrupt, that by manipulating information and opinions create false realities: this is censorship! AnonPlus not act for personal or political causes, has no leaders, moves to the interests of the people and we will fight until the leadership and the powership will lead into the hand of people: unique owner of the free world AnonPlus is ready to support the people's need. And people is supporting Anonplus: that's our alliance, that's our brotherhood, that's our pact.
| 5. The day that these problems will be achieved, AnonPlus will cease to exist. No war - No religions - No politicals - No financial power - for a Better World WE ARE LEGION WE DON'T FORGET WE DON'T FORGIVE EXPECT US! ANONPLUS P.S. no data was stolen or deleted. Only home page was chanced. We are not criminal we are AnonPlus https://twitter.com/AnonPlus_Info https://www.facebook.com/Anonplus-news-and-community-153438545028666 |


Originally posted at itreallymatters.net by Jarmo Pertman.
Usually when a JavaScript dialog pops up at some webpage then there is a highly possibility that it shouldn’t be there in the first place. It adds just more inconvenience to any user when needing to perform an additional click to get rid of some pointless message. If possible then solve the problem by removing those pointless usability mishaps altogether!
If there indeed exists some actual need of having a dialog window - perhaps the user is confirmed about starting a nuclear war and there’s no sufficient possibility to undo that action - then it’s needed to deal with those popups during automated testing. If the testing tool doesn’t support this types of obstacles then I’m recommending to ditch that tool and choosing something else. For Watir there are a number of possibilities to handle these dialogs, one more complex than another.
But there exists a very easy and elegant way to handle the JavaScript dialogs also. For some reason this technique hasn’t been recommended much before in Watir’s community until Alister Scott wrote about it in his blog. The main idea is to override the JavaScript dialog functions.
I’m writing my own blog post on that topic because I don’t agree with everything Alister has written. He’s recommending to override the functions to return true
, but i don’t think that this is a correct way to do. Main reason for my thoughts is that it’s just not simulating the real functions properly. In real scenario, alert returns true
in Firefox and undefined
in IE. It doesn’t matter though since no-one is using return value of an alert for any functionality, right? At least i hope so. But it’s different altogether for prompt and confirm! Check out the following output from JavaScript console:
>>prompt("enter!")
"info"
>>prompt("cancel!")
null
>>confirm("yes!")
true
>>confirm("no!")
false
gist.github.com/663313#file_console.js
As you can see then if user enters anything into the prompt’s text field then that value is returned from the function and if he decides to click on a Cancel
instead then null
is returned. For the confirm, true
was returned when “OK” was clicked and false
otherwise.
Since both of the confirm and prompt might return different values then these values might be used in web pages for different functionality. This means that they should be simulated to work in both ways also in tests. Instead of returning true
all the time, a different values should be returned as needed:
# don't return anything for alert
browser.execute_script("window.alert = function() {}")
# return some string for prompt to simulate user entering it
browser.execute_script("window.prompt = function() {return 'my name'}")
# return null for prompt to simulate clicking Cancel
browser.execute_script("window.prompt = function() {return null}")
# return true for confirm to simulate clicking OK
browser.execute_script("window.confirm = function() {return true}")
# return false for confirm to simulate clicking Cancel
browser.execute_script("window.confirm = function() {return false}")
gist.github.com/663313#file_dialogs.rb
This code works with Watir, but not for FireWatir for some reason. I’m suspecting that FireWatir’s JavaScript execution doesn’t happen in the same scope as the page under test. This same technique might work with any testing tool that allows to execute JavaScript on the page. You’d just have to perform execute_script
right before interacting with an element which triggers the dialog.
Since Watir-Webdriver returns the executed JavaScript back to the Ruby then it allows for even cooler solutions where you can verify that an alert was shown indeed. For the prompt and confirm, the actual behavior of the web page itself should be enough for verification.
Hopefully next time if you happen to see any JavaScript dialog, you remember that it’s possible to get rid of them very easily.


LEGO® MINDSTORMS® Community Partner & Ambassador of Fun, Marc-Andre is also part of the LEGO MINDSTORMS Expert Panel who helped provide design input that led to the creation of the EV3 retail set. Bazmarc, as he is known online, is famous for creating look-alikes of famous pop-culture robots such as R2-D2 and WALL-E. He is also admin and moderator of the MINDSTORMS EV3 Facebook group with over 10,000 members.
Find Out MoreWorld's first 100% LEGO MINDSTORMS R2-D2 fully functional robot incl. 2-3-2 leg config. Also the home of any other cool R2-D2 Look-alike robots Powered by MINDSTORMS!
This page is about 3D printers made using low cost 3D pens and LEGO Technic and MINDSTORMS elements.
Programmed
in EV3 code with help of Thomas Madeya.
Join the EV3 community on Facebook
Group photos taken at key events from 2009 to 2016
ROBOTMAK3Rs
from around the world gather once a year in a virtual hangout
called the International Robot Mak3r Day.
For more information on hosting an IRMD please use the contact
email below.
Awesome
MINDSTORMS creations by ROBOTMAK3R from around the world doing
#MINDSTORMSMAGIC :)
This
page is owned and operated by the Seshan Brothers. This is the
place to get tips and tricks on programming your LEGO
MINDSTORMS EV3 robots.
Meet
Edwin, bazmarc's big brown dog, guardian of his LEGO and the
official Facebook weather dog (yes he's more interested in
squirrels but that's another story)
"I'd love to hear about your next project! Send me a message and I will see if I can help"
514-347-0442
LEGO® and MINDSTORMS® are trademarks of The LEGO Group of companies which does not sponsor, authorize or endorse this site.


(PECL getdns >= 0.11.0)
php_getdns_general_sync — Synchronously perform a DNS query for records of a specified type.
$context
, string $name
, int $reqType
, int $extensions
, int &$response
)This function provides an entry point into the getdns API library to synchronously retrieve any valid responses to a query from the DNS; note that other namespaces in the context are not used. Most typical use cases for applications are probably satisifed via calls to php_getdns_address_sync(), which would replace getaddrinfo().
context
The previously created DNS context that is to be used with this request.
name
The ASCII-based domain name to be looked up as a string. This can also be an IPv4 or IPv6 address for request types that take addresses instead of domain names, such as PTR. The values here follow the rules in section 2.1 of » RFC 4343 to allow non-ASCII octets and special characters in labels.
reqType
The RRtype for the query; the RRtype numbers are listed in the IANA registry. For example, to get the NS records reqType would be 2. This extension has defined constants for most of the RRtypes by name; the definition names all start with "GETDNS_RRTYPE_". For example, to get the NS records you can also set the reqType to GETDNS_RRTYPE_NS.
extensions
The extensions dictionary for this request; NULL or 0 (zero) if no extensions.
response
The dictionary to receive the response. The dictionary always contains at least three names: replies_full (a list containing the DNS response as binary data), replies_tree (a list containing the parsed DNS response data) and status (an int). Note that this argument is passed by reference and any existing value will be overwritten. The response must be freed using php_getdns_dict_destroy().
This function returns an integer response code. GETDNS_RETURN_GOOD indicates successful completion.


This is an experiment from Chrome DevTools exploring simultaneously emulating multiple mobile devices using Chrome's emulation functionality. We'd love to hear your feedback as we want to improve responsive design inside of DevTools.
First, a quick tour…
Add new devices
Enjoy synchronized scroll, click and form input
See styles synchronized


Admin
Home
Posts
Users
Statistical
Message
Input the information of the new post!
Tittle:
Category:
Place to go
Cuisine
Travel news
Path:
Content of the post
Save


{% extends 'base.html' %} {% load staticfiles %} {% block page_head %} {% endblock %} {% block page_content %}
June 9, 2018, at 4:00 pm
Country Club Christian Church
Kansas City, MO
June 8, 2018, at 6:00 pm
Cinder Block Brewery
110 E 18th Ave
North Kansas City, MO 64116


Three chosen for NCPEDP-Mindtree Helen Keller Awards 2019
The awards recognise promotion of employment opportunities for people with disabilities
by Staff ReporterThree of the 12 awardees for the NCPEDP- Mindtree Helen Keller Awards 2019 are from Bengaluru. The awards are given in recognition of exceptional work by corporates and individuals towards promoting employment opportunities for people with disabilities in India.
Alina Alam, founder-CEO, Mitti Café, Bengaluru has got the award in the category of ‘Role Model Supporter of Increased Employment Opportunities for Disabled People’, which is awarded to individuals from within the disability sector or outside who have contributed substantially to the cause of promoting employment opportunities for disabled people over an extended period of time.
The Association of People with Disability (APD), Bengaluru and Infosys Pvt. Limited, Bengaluru have won awards under the category of ‘Role Model Companies/NGOs/Institutions’, which is for organisations from the disability sector or outside who have shown commitment towards promoting equal employment opportunities for people with disabilities.
This is the 20th year of the awards. The awards will be presented on December 2 in New Delhi on the eve of World Disability Day.


NextLevel
is a Swift camera system designed for easy integration, customized media capture, and image streaming in iOS. Integration can optionally leverage AVFoundation
or ARKit
.
| Features | |
|---|---|
| 🎬 | “Vine-like” video clip recording and editing |
| 🖼 | photo capture (raw, jpeg, and video frame) |
| 👆 | customizable gestural interaction and interface |
| 💠 | ARKit integration (beta) |
| 📷 | dual, wide angle, telephoto, & true depth support |
| 🐢 | adjustable frame rate on supported hardware (ie fast/slow motion capture) |
| 🎢 | depth data capture support & portrait effects matte support |
| 🔍 | video zoom |
| ⚖ | white balance, focus, and exposure adjustment |
| 🔦 | flash and torch support |
| 👯 | mirroring support |
| ☀ | low light boost |
| 🕶 | smooth auto-focus |
| ⚙ | configurable encoding and compression settings |
| 🛠 | simple media capture and editing API |
| 🌀 | extensible API for image processing and CV |
| 🐈 | animated GIF creator |
| 😎 | face recognition; qr- and bar-codes recognition |
| 🐦 | Swift 5 |
Need a different version of Swift?
5.0
- Target your Podfile to the latest release or master4.2
- Target your Podfile to theswift4.2
branch
Quick Start
# CocoaPods
pod "NextLevel", "~> 0.16.0"
# Carthage
github "nextlevel/NextLevel" ~> 0.16.0
# Swift PM
let package = Package(
dependencies: [
.Package(url: "https://github.com/nextlevel/NextLevel", majorVersion: 0)
]
)
Alternatively, drop the NextLevel source files or project file into your Xcode project.
Important Configuration Note for ARKit and True Depth
ARKit and the True Depth Camera software features are enabled with the inclusion of the Swift compiler flag USE_ARKIT
and USE_TRUE_DEPTH
respectively.
Apple will reject apps that link against ARKit or the True Depth Camera API and do not use them.
If you use Cocoapods, you can include -D USE_ARKIT
or -D USE_TRUE_DEPTH
with the following Podfile
addition or by adding it to your Xcode build settings.
installer.pods_project.targets.each do |target|
# setup NextLevel for ARKit use
if target.name == 'NextLevel'
target.build_configurations.each do |config|
config.build_settings['OTHER_SWIFT_FLAGS'] = ['$(inherited)', '-DUSE_ARKIT']
end
end
end
Overview
Before starting, ensure that permission keys have been added to your app’s Info.plist
.
<key>NSCameraUsageDescription</key>
<string>Allowing access to the camera lets you take photos and videos.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Allowing access to the microphone lets you record audio.</string>
Recording Video Clips
Import the library.
import NextLevel
Setup the camera preview.
let screenBounds = UIScreen.main.bounds
self.previewView = UIView(frame: screenBounds)
if let previewView = self.previewView {
previewView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
previewView.backgroundColor = UIColor.black
NextLevel.shared.previewLayer.frame = previewView.bounds
previewView.layer.addSublayer(NextLevel.shared.previewLayer)
self.view.addSubview(previewView)
}
Configure the capture session.
override func viewDidLoad() {
NextLevel.shared.delegate = self
NextLevel.shared.deviceDelegate = self
NextLevel.shared.videoDelegate = self
NextLevel.shared.photoDelegate = self
// modify .videoConfiguration, .audioConfiguration, .photoConfiguration properties
// Compression, resolution, and maximum recording time options are available
NextLevel.shared.videoConfiguration.maximumCaptureDuration = CMTimeMakeWithSeconds(5, 600)
NextLevel.shared.audioConfiguration.bitRate = 44000
}
Start/stop the session when appropriate. These methods create a new session
instance for ‘NextLevel.shared.session’ when called.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
NextLevel.shared.start()
// …
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
NextLevel.shared.stop()
// …
}
Video record/pause.
// record
NextLevel.shared.record()
// pause
NextLevel.shared.pause()
Editing Recorded Clips
Editing and finalizing the recorded session.
if let session = NextLevel.shared.session {
//..
// undo
session.removeLastClip()
// various editing operations can be done using the NextLevelSession methods
// export
session.mergeClips(usingPreset: AVAssetExportPresetHighestQuality, completionHandler: { (url: URL?, error: Error?) in
if let _ = url {
//
} else if let _ = error {
//
}
})
//..
}
Videos can also be processed using the NextLevelSessionExporter, a media transcoding library in Swift.
Custom Buffer Rendering
‘NextLevel’ was designed for sample buffer analysis and custom modification in real-time along side a rich set of camera features.
Just to note, modifications performed on a buffer and provided back to NextLevel may potentially effect frame rate.
Enable custom rendering.
NextLevel.shared.isVideoCustomContextRenderingEnabled = true
Optional hook that allows reading sampleBuffer
for analysis.
extension CameraViewController: NextLevelVideoDelegate {
// ...
// video frame processing
public func nextLevel(_ nextLevel: NextLevel, willProcessRawVideoSampleBuffer sampleBuffer: CMSampleBuffer) {
// Use the sampleBuffer parameter in your system for continual analysis
}
Another optional hook for reading buffers for modification, imageBuffer
. This is also the recommended place to provide the buffer back to NextLevel for recording.
extension CameraViewController: NextLevelVideoDelegate {
// ...
// enabled by isCustomContextVideoRenderingEnabled
public func nextLevel(_ nextLevel: NextLevel, renderToCustomContextWithImageBuffer imageBuffer: CVPixelBuffer, onQueue queue: DispatchQueue) {
// provide the frame back to NextLevel for recording
if let frame = self._availableFrameBuffer {
nextLevel.videoCustomContextImageBuffer = frame
}
}
NextLevel will check this property when writing buffers to a destination file. This works for both video and photos with capturePhotoFromVideo
.
nextLevel.videoCustomContextImageBuffer = modifiedFrame
About
NextLevel was initally a weekend project that has now grown into a open community of camera platform enthusists. The software provides foundational components for managing media recording, camera interface customization, gestural interaction customization, and image streaming on iOS. The same capabilities can also be found in apps such as Snapchat, Instagram, and Vine.
The goal is to continue to provide a good foundation for quick integration (enabling projects to be taken to the next level) – allowing focus to placed on functionality that matters most whether it’s realtime image processing, computer vision methods, augmented reality, or computational photography.
ARKit
NextLevel provides components for capturing ARKit video and photo. This enables a variety of new camera features while leveraging the existing recording capabilities and media management of NextLevel.
If you are trying to capture frames from SceneKit for ARKit recording, check out the examples project.
Documentation
You can find the docs here. Documentation is generated with jazzy and hosted on GitHub-Pages.
Stickers
If you found this project to be helpful, check out the Next Level stickers.
Project
NextLevel is a community – contributions and discussions are welcome!
- Feature idea? Open an issue.
- Found a bug? Open an issue.
- Need help? Use Stack Overflow with the tag ’nextlevel’.
- Questions? Use Stack Overflow with the tag ‘nextlevel’.
- Want to contribute? Submit a pull request.
Related Projects
- Player (Swift), video player in Swift
- PBJVideoPlayer (obj-c), video player in obj-c
- NextLevelSessionExporter, media transcoding in Swift
- GPUImage3, image processing library
- SCRecorder, obj-c capture library
- PBJVision, obj-c capture library
Resources
- iOS Device Camera Summary
- AV Foundation Programming Guide
- AV Foundation Framework Reference
- ARKit Framework Reference
- Swift Evolution
- objc.io Camera and Photos
- objc.io Video
- objc.io Core Image and Video
- Cameras, ecommerce and machine learning
- Again, iPhone is the default camera
License
NextLevel is available under the MIT license, see the LICENSE file for more information.


--- layout: post title: it-e-73 Graph plotters date: 2011-08-12 16:55:09.000000000 +01:00 type: post published: true status: publish categories: - "英语" tags: - english - it meta: views: '6' author: login: ig2net email<EMAIL_ADDRESS>display_name: "农夫一号" first_name: '' last_name: '' ---
Graph plotters are used to produce high quality precision graphics usually on large sheets
of paper.
They are slow, but can draw continuous curves often in a variety of colours. They are
especially useful for architectural drawings, building plans and
CAD (Computer Aided Design) applications, where precision
drawing is required.
A mechanical arm holds a pen which can be moved
across the page. The paper is sometimes laid on a flat bed
(flat bed plotter) or on a rotating drum (drum plotter).
drum [drʌm]


Theses
|
|
Neural Network Pruning Through Constrained Reinforcement Learning
Master's Thesis, 2021
Advisor: Murtaza Taj
thesis /
paper
|
Research
|
|
Inverse Constrained Reinforcement Learning
Shehryar Malik*, Usman Anwar*, Alireza Aghasi, Ali Ahmed
ICML, 2021
paper /
code
Automatically infer arbitrary Markovian constraints from data.
|
|
|
Learning To Solve Differential Equations Across Initial Conditions
Shehryar Malik*, Usman Anwar*, Ali Ahmed, Alireza Aghasi
ICLR DeepDiffEq Workshop, 2020
paper
Train neural networks to solve PDEs for multiple initial conditions.
|
|


| Path: | lib/capistrano/recipes/deploy.rb |
| Last Update: | Sat Aug 16 23:07:08 -0700 2008 |
# File lib/capistrano/recipes/deploy.rb, line 5 5: def _cset(name, *args, &block) 6: unless exists?(name) 7: set(name, *args, &block) 8: end 9: end
Auxiliary helper method for the `deploy:check’ task. Lets you set up your own dependencies.
# File lib/capistrano/recipes/deploy.rb, line 75 75: def depend(location, type, *args) 76: deps = fetch(:dependencies, {}) 77: deps[location] ||= {} 78: deps[location][type] ||= [] 79: deps[location][type] << args 80: set :dependencies, deps 81: end
Same as sudo, but tries sudo with :as set to the value of the :runner variable (which defaults to "app").
# File lib/capistrano/recipes/deploy.rb, line 125 125: def try_runner(*args) 126: options = args.last.is_a?(Hash) ? args.pop : {} 127: args << options.merge(:as => fetch(:runner, "app")) 128: try_sudo(*args) 129: end
If a command is given, this will try to execute the given command, as described below. Otherwise, it will return a string for use in embedding in another command, for executing that command as described below.
If :run_method is :sudo (or :use_sudo is true), this executes the given command via sudo. Otherwise is uses run. If :as is given as a key, it will be passed as the user to sudo as, if using sudo. If the :as key is not given, it will default to whatever the value of the :admin_runner variable is, which (by default) is unset.
THUS, if you want to try to run something via sudo, and what to use the root user, you‘d just to try_sudo(‘something’). If you wanted to try_sudo as someone else, you‘d just do try_sudo(‘something’, :as => "bob"). If you always wanted sudo to run as a particular user, you could do set(:admin_runner, "bob").
# File lib/capistrano/recipes/deploy.rb, line 107 107: def try_sudo(*args) 108: options = args.last.is_a?(Hash) ? args.pop : {} 109: command = args.shift 110: raise ArgumentError, "too many arguments" if args.any? 111: 112: as = options.fetch(:as, fetch(:admin_runner, nil)) 113: via = fetch(:run_method, :sudo) 114: if command 115: invoke_command(command, :via => via, :as => as) 116: elsif via == :sudo 117: sudo(:as => as) 118: else 119: "" 120: end 121: end


Avoid loading native libraries in a Bean class.
Loading native libraries in a Bean class should be avoided.
REFERENCE
Enterprise JavaBeans Programming restrictions on EJB by Sanjay Mahapatra -- JavaWorld August 2000


pygritia package¶
Submodules¶
- pygritia.attr module
- pygritia.binary module
- pygritia.call module
- pygritia.cases module
- pygritia.cast module
- pygritia.core module
- pygritia.item module
- pygritia.lazy module
- pygritia.ops module
- pygritia.prop module
- pygritia.rbinary module
- pygritia.symbols module
- pygritia.unary module
- pygritia.util module
Module contents¶
Pygritia: Lazy Evaluation¶
- Build expressions naturally
- Evaluate expression with symbol substitution
- Create property by a expression with special symbol
>>> class Spam:
... egg = [42]
... foo = this.egg[0]
>>> spam = Spam()
>>> print(this.egg * 2)
this.egg * 2
>>> evaluate(this.egg * 2, {this: spam})
[42, 42]
>>> spam.foo
42
>>> spam.foo = 9
>>> spam.egg
[9]
-
pygritia.
evaluate
(expr: _T, namespace: Mapping[Union[str, LazyMixin], Any]) → _T[source]¶ Evaluate lazy expression
Evaluate expression with symbol substitution according to given
namespace
Parameters: - expr –
Lazy expression or evaluated value
If given value is not a lazy expression, this function returns it immediately
- namespace –
Symbol table which will be used in substitution
The key of table can be both of string and symbol expression
Returns: Evaluated value
- expr –
-
pygritia.
lazy_call
(func: _T) → _T[source]¶ Make a function to support lazy expression
>>> from pygritia import this, lazy_call, evaluate >>> @lazy_call ... def hello(obj): ... print(obj) >>> print(hello(this)) hello(this) >>> hello("123") 123 >>> evaluate(hello(this), {this: "123"}) 123
-
pygritia.
lazy_delattr
(obj, name)¶ Deletes the named attribute from the given object.
delattr(x, ‘y’) is equivalent to ``del x.y’‘
-
pygritia.
lazy_delitem
(a, b)¶ Same as del a[b].
-
pygritia.
lazy_getattr
()¶ getattr(object, name[, default]) -> value
Get a named attribute from an object; getattr(x, ‘y’) is equivalent to x.y. When a default argument is given, it is returned when the attribute doesn’t exist; without it, an exception is raised in that case.
-
pygritia.
lazy_getitem
(a, b)¶ Same as a[b].
-
pygritia.
lazy_setattr
(obj, name, value)¶ Sets the named attribute on the given object to the specified value.
setattr(x, ‘y’, v) is equivalent to ``x.y = v’‘
-
pygritia.
lazy_setitem
(a, b, c)¶ Same as a[b] = c.
-
pygritia.
symbol
(name: str) → Any[source]¶ Create symbol for lazy expression
Returns: Newly created symbol expression Return type: Any
-
pygritia.
update
(expr: _T, val: _T, namespace: Mapping[Union[str, LazyMixin], Any]) → None[source]¶ Update the value of lazy expression
Set the value of lazy expression to the given
val
Only assignable expression can be updated. ex)this[3]
,this.spam
Parameters: - expr – Assignable lazy expression
- val – New value
- namespace –
Symbol table which will be used in substitution
The key of table can be both of string and symbol expression
-
pygritia.
this
¶
-
pygritia.
IfThenElse
(cond: bool, true: _T, false: _U) → Union[_T, _U][source]¶ true if cond else false
-
pygritia.
lazy_cast
(target_type: Callable[[_T], _U], expr: _T, expr_type: Optional[Callable[[_U], _T]] = None) → _U[source]¶ Create automatic casting lazy expression
Parameters: - target_type – Converter from expression type to result type
- expr – Target expression
- expr_type –
Converter from result type to expression type
If it is omitted, the constructor of evaluated expr will be used.
Returns: Casting expression


CLEAR MEN CLEAN AND REFRESH ANTIDANDRUFF- pyrithione zinc shampoo
Conopco Inc. d/b/a Unilever
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active Ingredient
Pyrithione Zinc (1.0%)
Uses: helps prevent and control recurrence of
itching and flaking associated with
dandruff
Warnings
For external use only
When using this product: avoid contact with eyes. If contact occurs, rinse eyes thoroughly with water.
Stop use and ask a doctor if: Condition worsens or does not improve after regular use of this product as directed.
Keep this and all drugs out of reach of children. If swallowed, get medical help or contact a Poison Control Center right away.
Directions: Wet hair, massage into scalp, rinse. Repeat if desired. For best results use at least twice a week or as directed by a doctor.
Inactive Ingredients
Water (Aqua)
Sodium Laureth Sulfate
Cocamidopropyl Betaine
Sodium Chloride
Fragrance (Parfum)
Dimethiconol
Carbomer
Dimethicone
Sodium Lauroyl Isethionate
Menthol
Helianthus Annuus (Sunflower) Seed Oil
DMDM Hydantoin
Guar Hydroxypropyltrimonium Chloride
Stearic Acid
Citric Acid
Tallow Acid or Palmitic Acid
Zinc Sulfate
TEA-Dodecylbenzenesulfonate
Sodium Isethionate
Poloxamer 407
Laureth-23
Laureth-4
Tocopheryl Acetate
Prunus Amygdalus Dulcis (Sweet Almond) Oil
PPG-9
Panthenol
Lysine HCl
Hydrogenated Coconut Oil
Glycine Soja (Soybean) Oil
Methylisothiazolinone
PEG-9M
Xanthan Gum
Methylchloroisothiazolinone
Panax Ginseng Root Extract
Mentha Viridis (Spearmint) Leaf Oil
Melaleuca Alternifolia (Tea Tree) Flower/Leaf/Stem Extract
Titanium Dioxide (CI 77891)
Questions, comments?: 1-800-372-6389
Conopco Inc. d/b/a Unilever


--- country: UK date: 2013-06-01 projectUrl: http://testmyfont.com title: TestMyFont.com company: Understanding Limited companyUrl: http://understandinglimited.com ---
Funded by Google and Understanding Limited, TestMyFont.com is a browser-based tool that helps authors visually compare typefaces. Ankur built the entire application from scratch with design and workflow inputs from Dave Crossland and the team behind the Metapolator project.


The publishing process
Once your request is received by Keith or Tom you'll get a response. The response may:
- ask you for more information
- agree your request
- give you a reason why your request won't be done
If you don't agree with a decision then you should discuss this with Keith or Tom directly.
If your request is agreed
A request for the work will be made with either GDS or DWP digital publishing, depending on the type of content.
If the request involves creating a new page or section on GOV.UK you may have to join a call for further discussion. This may include colleagues from GDS.
You may ask for one person to be added to a GDS request.
Once a request is made
The work will be done in order of importance among all the requests the team currently has - not necessarily in the order it's received.
You should be aware that GDS receives requests from all government departments, not just DWP.
GDS or the publishing team will draft the content to meet the GOV.UK style guide and send the draft page to check for factual accuracy.
If you've been added to a GDS request you'll receive emails if the content designer has any questions. Don't send or forward these messages to anybody else. Discuss with your colleagues if you need to and send a single response.
Fact checking
You'll be sent a link to a draft of the content.
After looking at the content, reply with either:
- agreement the content is factually accurate
- comments on where the content is inaccurate and why
Don't suggest style changes. The content will have been designed to the GDS style guide.
If corrections are needed you may get another fact check request once they're made.
Once you agree the content is accurate it will be published. You'll be told when this is done.
{% include "includes/otherLinks.html" %}


What do you want to do?
Encrypt a file
Decrypt a file
Encrypt :
Browse
1 Hour
1 Day
1 Week
Decrypt :
URL:
Key String :
Encryption:


...a software development discipline where you build software in such a way that the software can be released to production at any time.
Continuous delivery is about putting the release schedule in the hands of the business,
not in the hands of IT.
|
Utvikling Drift Forvaltning |
→
|
Produktutvikling
|
Enkelhet og automatisering
uten at det skal gå ut over
tilgjengelighet, stabilitet, og sikkerhet
We decided we needed to buy innovation
resource "aws_vpc" "vpc" {
cidr_block = "${var.vpc_cidr}"
enable_dns_hostnames = true
tags { Name = "${var.vpc_name}" }
}
resource "aws_route" "internet_access_route" {
route_table_id = "${aws_vpc.vpc.main_route_table_id}"
destination_cidr_block = "<IP_ADDRESS>/0"
gateway_id = "${aws_internet_gateway.ig.id}"
}
resource "aws_subnet" "subnet" {
vpc_id = "${var.vpc_id}"
count = "${var.number_of_subnets}"
cidr_block = "${lookup(var.cidr_blocks, "zone_${count.index}")}"
availability_zone = "${lookup(var.zones, "zone_${count.index}")}"
map_public_ip_on_launch = "${var.map_public_ip_on_launch}"
tags { Name = "${var.name}_subnet_${lookup(var.zones, "zone_${count.index}")}" }
}
resource "aws_instance" "instance" {
ami = "${var.ami}"
instance_type = "t2.micro"
key_name = "${var.key_pair_id}"
subnet_id = "${var.subnet_id}"
associate_public_ip_address = true
source_dest_check = false
vpc_security_group_ids = [ "${var.security_group_ids} ]
tags { Name = "${var.instance_name}" }
}
Easy to begin, Impossible to outgrow
The primary value of cloud is to generate competitive advantage
Cost savings is a side effect
Slides:
http://steinim.github.io/slides/frokostseminar-skyrigg-for-kontinuerlige-leveranser/


Shetland Pony Photos
Shetland Pony Photos
Home
About Us
Photos
Videos
Poems
Jokes
Games
Shetland Pony Photos!


API for integration with debuggers of custom languages/frameworks
{@link com.intellij.xdebugger.XDebugProcess} is the main class which need to be extended to support debugging
Implement {@link com.intellij.xdebugger.breakpoints.XLineBreakpointType} to support new type of breakpoints
Use {@link com.intellij.xdebugger.settings.XDebuggerSettings} to provide settings


黒の手番です。22 はどう動かしますか？


Augur¶
-
class
ghtorrent.
GHTorrent
(user, password, host, port, dbname)[source]¶ Uses GHTorrent and other GitHub data sources and returns dataframes with interesting GitHub indicators
-
classify_contributors
(owner, repo=None)[source]¶ - Classify everyone who has interacted with a repo into
- user
- tester
- rejected_contributor
- contributor
- major_contributor
- maintainer
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with the login and role of contributors
-
closed_issue_resolution_duration
(owner, repo=None)[source]¶ Subgroup: Issue Resolution Endpoint: issues_with_close chaoss-metric: closed-issue-resolution-duration
How long on average each week it takes to close an issue
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with issues/day
-
closed_issues
(owner, repo=None)[source]¶ Subgroup: Issue Resolution Endpoint: issues/closed chaoss-metric: closed-issues
-
code_commits
(owner, repo=None, group_by='week')[source]¶ Subgroup: Code Development Endpoint: commits chaoss-metric: code-commits
Timeseries of all the commits on a repo
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with commits/day
-
code_review_iteration
(owner, repo=None)[source]¶ Number of iterations (being closed and reopened) that a merge request (code review) goes through until it is finally merged
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a merge request’s date of creation
-
commit_comments
(owner, repo=None, group_by='week')[source]¶ augur-metric: commit-comments
Timeseries of commit comments
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with new by week
-
commits100
(owner, repo=None, group_by='week')[source]¶ Timeseries of all the commits on a repo
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with commits/day
-
committer_locations
(owner, repo=None)[source]¶ Return committers and their locations
@todo: Group by country code instead of users, needs the new schema
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table.
- repo – The name of the repo.
Returns: DataFrame with users and locations sorted by commtis
-
community_age
(owner, repo=None)[source]¶ Information helpful to determining a community’s age
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with the first event of each type (commits, fork, …)
-
community_engagement
(owner, repo)[source]¶ Lots of information about issues and pull requests
TODO: More documentation
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a week
-
contributing_github_organizations
(owner, repo=None)[source]¶ All the contributing organizations to a project and the counts of each organization’s contributions
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being an outside contributing organization
-
contribution_acceptance
(owner, repo=None)[source]¶ Rolling ratio between merged pull requests : unmerged pull requests
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a week
-
contributions
(owner, repo=None, userid=None)[source]¶ augur metric: contributions Timeseries of all the contributions to a project, optionally limited to a specific user
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table
- repo – The name of the repo. Unneeded if repository id was passed as owner.
- userid – The id of user if you want to limit the contributions to a specific user.
Returns: DataFrame with all of the contributions seperated by day.
-
contributors
(owner, repo=None)[source]¶ augur-metric: contributors
All the contributors to a project and the counts of their contributions
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with users id, users login, and their contributions by type
-
first_response_to_issue_duration
(owner, repo)[source]¶ Subgroup: Issue Resolution Endpoint: issues/response_time chaoss-metric: first-response-to-issue-duration
Time to comment by issue
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being am issue
-
forks
(owner, repo=None, group_by='week')[source]¶ Subgroup: Code Development chaoss-metric: forks Timeseries of when a repo’s forks were created :param owner: The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this. :param repo: The name of the repo. Unneeded if repository id was passed as owner. :return: DataFrame with forks/day
-
issue_comments
(owner, repo=None)[source]¶ Timeseries of issue comments
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with new by week
-
maintainer_response_to_merge_request_duration
(owner, repo=None)[source]¶ Duration of time between a merge request being created and a maintainer commenting on that request
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a week
-
new_contributing_github_organizations
(owner, repo=None)[source]¶ Number of new contributing organizations on a certain date
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a week
-
open_issues
(owner, repo=None, group_by='week')[source]¶ Subgroup: Individual Diversity Endpoint: issues chaoss-metric: open-issues
Timeseries of issues opened per day
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with issues/day
-
pull_request_acceptance_rate
(owner, repo=None)[source]¶ augur-metric: pull-request-acceptance-rate
Timeseries of pull request acceptance rate (Number of pull requests merged on a date over Number of pull requests opened on a date)
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with the pull acceptance rate and the dates
-
pull_request_comments
(owner, repo=None)[source]¶ Subgroup: Code Development chaoss-metric: pull-request-comments
Timeseries of pull request comments
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with new by week
-
pull_requests_open
(owner, repo=None)[source]¶ Subgroup: Code Development Endpoint: pulls chaoss-metric: pull-requests-open
Timeseries of pull requests creation, also gives their associated activity
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with pull requests by day
-
repoid
(owner_or_repoid, repo=None)[source]¶ Returns a repository’s ID as it appears in the GHTorrent projects table github.com/[owner]/[project]
Parameters: - owner – The username of a project’s owner
- repo – The name of the repository
Returns: The repository’s ID as it appears in the GHTorrent projects table
-
total_committers
(owner, repo=None)[source]¶ augur-metric: total-committers
Number of total committers as of each week
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being a week
-
userid
(username)[source]¶ Returns the userid given a username
Parameters: username – GitHub username to be matched against the login table in GHTorrent Returns: The id from the users table in GHTorrent
-
watchers
(owner, repo=None, group_by='week')[source]¶ Timeseries of when people starred a repo
Parameters: - owner – The name of the project owner or the id of the project in the projects table of the project in the projects table. Use repoid() to get this.
- repo – The name of the repo. Unneeded if repository id was passed as owner.
Returns: DataFrame with stargazers/day
-
-
class
ghtorrentplus.
GHTorrentPlus
(user, password, host, port, dbname, ghtorrent, buildMode='auto')[source]¶ Manages the custom schema for GHTorrent to improve performance of slow queries
-
class
githubapi.
GitHubAPI
(api_key)[source]¶ GitHubAPI is a class for getting metrics from the GitHub API
-
bus_factor
(owner, repo, filename=None, start=None, end=None, threshold=50)[source]¶ augur-metric: bus-factor
Calculates bus factor by adding up percentages from highest to lowest until they exceed threshold
Parameters: - owner – repo owner username
- repo – repo name
- filename – optional; file or directory for function to run on
- start – optional; start time for analysis
- end – optional; end time for analysis
- threshold – Default 50;
-
lines_of_code_changed
(owner, repo=None)[source]¶ chaoss-metric: lines-of-code-changed Additions and deletions each week
Parameters: - owner – The name of the project owner
- repo – The name of the repo
Returns: DataFrame with each row being am issue
Returns dates and names of major version (according to semver) tags. May return blank if no major versions
Parameters: - owner – repo owner username
- repo – repo name
Returns dates and names of tags
Parameters: - owner – repo owner username
- repo – repo name
- raw – Default False; Returns list of dicts
-


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
This delicious blend of mussels, sweetcorn and cream creates a wonderfully warming soup. Perfect topped with a focaccia and tomato garnish.
Discard any broken mussels, and any that don't close tightly when you tap them.
Heat a large saucepan over a medium-high heat. Add the mussels, thyme and wine and place a lid on. Cook for 3-4 minutes, or until the mussels have opened. Drain, reserving the cooking liquor, and discard any mussels that remain closed. Pick the mussels from their shells. Set aside the liquor and the mussels.
Heat a large frying pan and add the butter and oil. Add the shallot and garlic and cook for two minutes. Add the leeks and fennel and cook for a further 2-3 minutes. Stir in the sweetcorn, then add the stock, retained liquor and three-quarters of the mussel meat. Cook for 2-3 minutes.
Place the soup in a blender and blend until smooth. Pour back into the pan and stir in the cream. Toast the bread.
Drop the tomatoes into a bowl of boiling water for two minutes. Lift out with a slotted spoon and refresh in iced water. Peel and de-seed the tomatoes, then dice the flesh. Transfer it to a small bowl and mix in the dill, olive oil and remaining mussels.
Serve the soup with the toast and tomato mixture.


You can reach this dialog via the menu entry Analysis \ Hash \ Attack on the Hash Value of the digital Signature.
The attack based on the birthday paradox is a generic attack on the hash value of the digital signature, i.e. it can be applied on all hash functions. The attacker‚s objective is to find two different messages that translate into the same hash value.
He designs a harmless message which will be digitally signed by his victim, and a dangerous message which would never be signed due to its malicious content. Afterwards, the attacker generates a great number of modifications of the two messages whose contents are equivalent to those of the original messages and only differ from some extra blanks or unprintable characters.
If the attacker finds a pair of a harmless and a dangerous message with the same hash value he asks his victim to sign the harmless message digitally and subsequently exchanges the two messages.
In the categories Choose "harmless" file and Choose "dangerous" file two messages are determined which are to be used for the attack.
The attack can be configured in the dialog Options for the attack on the hash value of the digital signature.
To start the attack push Start search.
Remark 1:
If you choose two identical files, then CrypTool also tries to generate two different files having the same hash value by adding different patterns.
Remark 2 (CrypTool included example files):
The CrypTool package contains the example files "original.txt" and "fake.txt" as an example of a harmless message and a dangerous message. In order to restore the default paths of these examples you can delete the rows
SignatureAttackHarmlessFile
SignatureAttackDangerousFile
within the CrypTool registry file. Afterwards the paths of these examples will be shown.


Register an Account
{% include 'includes/_messages.html' %} {% from "includes/_formhelpers.html" import render_field %}
Full Name
Username
Email address
Password
Confirm Password
Register
Already have an account? Login now.
Home Page


application
/
net.corda.v5.application.identity
/
CordaX500Name
/
x500Principal
x500Principal
val
x500Principal
:
X500Principal
Return the
X500Principal
equivalent of this name.


For SideChef I designed and implemented an agile end-to-end business intelligence data workflow based on Tableau Software that now supports all product decisions, growth activities and became core to User intelligence conducted by the team. The app is available on iOS and Android.
View company websiteI work with the World Health Organisation on their health behaviour in shool-ages children study for the production and release of the 2014 Growing up unequal: gender and socioeconomic differences in young people’s health and well-being report. This project lead to the release of intereactive data visualisation, team training and support.
View project sample View HBSC visualisation workThe data blog team works extensively on data visualisation and became leader in the UK for economicss and financial interactive visualisation. This data visualisation was produced and published following the release of a report by the 2013 Intergovernmental Panel on Climate Change.
View Finantial Times visualisation
The Guardian data blog pionnered the UK media landscape with the use of interactive data visualisation. I worked with teams of journalists to produce numbers of visualisations between 2012 and 2014 on various topics, ranging from British politics and economics to health care and social issues. I also trained their teams on information communication best practices and Tableau software.
View The Guardian visualisation