| GEOS SDK TechDocs
|
| 2 Typical Development Session
| 4 Esp
You may be curious to know what sorts of files you'll be working with. If you have to work with someone else's code, then being able to find your away around their files (knowing which are sources, which are objects, and which are chaff) can be very useful.
-
*.goc
- These are Goc source files. You will write these files. They contain both standard C code and GEOS constructs (such as objects and messages).
-
*.goh
- These are Goc header files. You will write these files and include others. They provide definitions used by your .goc files (in the same relation as between standard C source and header files). Unlike standard C header files, these are included using the @include Goc keyword.
-
*.poh
,
*.ph
- These are files generated to optimize the @inclusion of .goh files. Goc will automatically generate these when they don't already exist.
-
*.doh
,
*.dh
- These are files generated to optimize the @inclusion of .goh files. They contain dependency information.
-
*.c
- These are standard C source files. You may write these as source files, using only standard ANSI C constructions. The Goc preprocessor will create .c files from .goc files. Thus, if you see two files with the same prefix, but one has the .c suffix and the other has the .goc suffix, then you know that the first was created from the second.
-
- Note that Goc will create the generated .c file in the directory where it is invoked. Thus if your development tree contains files PROG\DIR1\CODE.GOC and PROG\DIR2\CODE.GOC, then if you convert these using Goc from the PROG directory, then one of the generated .c files will overwrite the other. Thus, you should never give .goc files the same prefix, even if they are in different directories.
-
*.h
- These are standard C header files. You may write these and include them using the ANSI C #include directive.
-
*.asm
- These are standard GEOS assembly source files, which may be assembled with the Esp assembler, if you have it. They may contain both standard assembly and Esp constructs.
-
*.def
- These are standard GEOS assembly header files, which you may write or include if you have access to the Esp assembler.
-
*.mk, makefile
-
These are "makefiles," files which contain scripts which the
pmake
tool will interpret and use to automatically compile and link your geode. In a source directory there will be a file called MAKEFILE (created with the
mkmf
tool) and probably a file called DEPENDS.MK (created by calling
pmake
depend
). If you wish to customize how your geode is made, you will probably write a file called LOCAL.MK, containing your custom makefile script. The INCLUDE directory contains several .mk files, which will be #included by other makefiles.
-
*.gp
-
These are "Glue parameter" or "geode parameter" files, which will give the Glue linker information necessary when linking a geode. You will write this file. The
pmake
program assumes that a geode's .gp file will have name geode.GP, where geode is taken from the name of the directory containing the geode's source (e.g. in the example above,
pmake
would expect the .gp file to be named PROG.GP).
-
*.ldf
-
These are library definition files. Glue uses these files when linking your geode; they determine how your calls to a GEOS library will be encoded. If you are writing a library, then you will create one of these files by means of a
pmake lib
. The
pmake
program looks for .ldf files in the INCLUDE\LDF directory.
-
*.rev
-
This is a revision file, used to keep track of a program's revision and protocol levels (useful for tracking compatibility). The
pmake
tool will look for a file with name
geode
.REV, where geode is taken from the name of the directory containing the geode's source (e.g. in the example above,
pmake
would expect the .rev file to be named PROG.REV). The
pmake
program uses
grev
to create and maintain the .rev file; you should use grev yourself when you need to signal a major revision.
-
*.rsc
- Localization resource file. This file contains information which will be used by the ResEdit localization tool.
-
*.obj
- These are object files. These are files created by a C compiler or Esp which may be linked to form an executable. The
pmake
program uses Glue to link the object files.
-
*.ebj
- These are error-checking object files. GEOS supports the notion of "error-checking code." When you write your programs, you can mark some commands as "error checking commands." These commands might make sure that a routine is passed valid arguments or perhaps purposefully destroy some information which was not guaranteed preserved by a routine. Such commands may prove time-consuming but are useful for making sure that an application is robust. The
pmake
program will create two versions of your application--one which includes the EC (Error Checking) code, and one which doesn't. Run the EC program to check for correctness, but use the non-EC version when the program should be fast (i.e. this is the version you should give to your customers).
The .obj files will be linked to form a non-EC executable; .ebj files to form an EC executable.
-
*.geo
- This is a Geode, a GEOS executable (either an application, library, or driver), the end result of your efforts. These are the files containing the code for GEOS programs which the user will interact with. They are created by linking together a number of .obj files, with additional information provided by a .gp file. You will place these files in your GEOS testing directory on your target machine (along with *ec.geo files, described below).
-
*ec.geo
- This is an error checking geode. (See above for quick descriptions of error checking code and geodes.) They are created by linking together a number of .obj and .ebj files, with additional information provided by a .gp file.
-
*.sym
- This is a symbol file, containing symbolic debugging information which the Swat debugger can use to access the geode's data structures.
-
*ec.sym
- This is the symbol file of the error checking version of a geode.
-
tmp*.*
- These are temporary files which
pmake
will create and destroy while making your executable. The
pmake
program uses these files to pass arguments to the other tools. Thus, if you see a file of this name in your directory and you didn't create it, you can assume that
pmake
was interrupted in a recent make and was unable to erase the file (and thus it is safe for you to erase it).
-
.tcl
,
.tlc
- These are Tcl files, files containing Tool Command Language source code, used by the Swat debugging tool. The
.tcl
files contain Tcl source code, the
.tlc
files contain compiled Tcl code. The source code may be edited by any text editor and Swat will interpret it; compiled code runs more quickly, but can only be changed by editing the source code and re-compiling.
If you are writing a GEOS C application, you will write the following types of files:
-
Source files: .goc files, optional .c files.
-
Glue parameters file: geode.GP.
-
Optional header files: .goh files, .h files.
-
Optional custom make file: LOCAL.MK.
After you have made your geode the first time (creating a makefile with
mkmf
, a dependencies file with
pmake depend
, and the geode itself with
pmake
), your directory should contain the following additional file types:
-
Intermediary C files: .c files (made by transforming .goc files).
-
Makefile: MAKEFILE
-
Dependencies file: DEPEND.MK
-
Revision file: geode.REV.
-
Object files: .obj and .ebj files.
-
Symbol files: .sym files
-
Geodes: .geo files.
| GEOS SDK TechDocs
|
| 2 Typical Development Session
| 4 Esp


HighTechU
An Initiative of UVic Engineering and Computer Science
Empowering Future Innovators
HighTechU is an innovative learning community for high-school-aged youth in British Columbia to make connections, build professional skills, and explore diverse education and career pathways related to technology.


{ "firstName" : "Gaurav","lastName" : "Gupta"}
class User {String firstName; String lastName;}
CREATE TABLE User (first_name VARCHAR(255), last_name VARCHAR(255))
Approach 1: Parse the JSON string and manually create Objects
Too much work
Approach 2: Use a library - such as Jackson (much faster) or GSON
Ah much better
Approach 1: Interact with SQLITE directly
INSERT INTO TABLE USERS VALUES ("GAURAV", "GUPTA");
Approach 2: Use an ORM library such as ORMLITE
User user = new User(“Gaurav”, “Gupta”); user.save();
Consider a blog where a user can create posts and each post can have many comments. The comments are made by a logged in user. In addition user has some settings.
One-to-One relationship
User and Settings
One-to-Many Relationships
Blog and Posts
Blog and Comments
Many-to-Many Relationship
Blog and Users
class Blog{
private List<Post> posts;
private List<User> users;
}
class Post {
private List<Comment> comments;
}
class User {
private List<Blog> blogs;
private Setting settings;
}
class Comment {
private Post post;
}


SARS-CoV- protein domain Nsp OpenUrl macro ADP-ribose structure CrossRef binding Crystallogr colored nsp RNA loop Fig. coronavirus Biol shown SARS bind Acta data similar unliganded β-α Macro Science amino proteins sequence ADP bound using Web model new protein. rep ribose. structures (lanes ADP-ribose, Abstract FREE Text [[#xB]]-[[#xB]] ribose seen used viral ADP-ribose-bound SARS-CoV-, alpha cells column determined purified (A) -), Download Egloff Evans ITC Protein RMSD [[#xBC]]M [[#xB]] beta binds differ domains macrodomains pale plasmid region respiratory BL(DE) Canard Open Structure Table Virol acids antiviral compounds coronaviruses data-hide-link-title=""> data-icon-position="" different figure gradient high large like loops main nonstructural potential protease step structural tab virus (B) (C) (lane (transparent ;<;div ADP-ribose. C), Chem Coutard Crystal Data FIGURE Hilgenfeld N-terminal Ni-NTA Piotrowski SARS-CoV-. Sci Struct Structural Wang Zhang according acute aligned atoms binding. blue bright conserved coronavirus. domain. eluted encoded fractions functional green grew harboring helices identical) molecules panel polymerase purple, reading red red, refinement regions residues respectively. severe soluble studied syndrome water xmlns=";http://www.w.org//xhtml";>;<;span yellow


Status: Passed, Jan 89 X3J13
Forum: Cleanup
Issue: ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS
References: Data types and Type specifiers: CLtL p. 11; Sect. 4.5, p.45
Functions: TYPEP and SUBTYPEP; CLtL Sect. 6.2.1, p.72
ARRAY-ELEMENT-TYPE, CLtL p. 291
The type-specifiers:
ARRAY, SIMPLE-ARRAY, VECTOR, SIMPLE-VECTOR
Related Issues: SUBTYPEP-TOO-VAGUE, LIST-TYPE-SPECIFIER
Category: CHANGE
Edit history: Version 1, 13-May-88, JonL
Version 2, 23-May-88, JonL
(typo fixes, comments from moon, rearrange some discussion)
Version 3, 02-Jun-88, JonL
(flush alternate proposal ["flush-upgrading"]; consequently,
move more of discussion back to discussion section.
Version 4, 01-Oct-88, Jan Pedersen & JonL
(reduce discussion, and "cleanup" wordings)
(Version 5 edit history missing)
Version 6, 6-Oct-88, Moon
(fix typos, cover subtypep explicitly, add complex,
change name of UPGRADE-ARRAY-ELEMENT-TYPE)
Version 7, 7-Oct-88, JonL (more name and wording changes)
Version 8, 8-Oct-88, Masinter (wording, discussion)
Version 9, 31-Oct-88, JonL (major re-wording to accommodate
recent discussion; esp. re-introduce and clarify "upgrading")
Problem description:
CLtL occasionally draws a distinction between type-specifiers "for
declaration" and "for discrimination"; see CLtL, section 4.5 "Type
Specifiers That Specialize" (p.45 and following) The phrase
"for declaration" encompasses type-specifiers passed in as the
:element-type argument to MAKE-ARRAY, passed in as the <result-type>
argument to COERCE, and used in THE and DECLARE type declarations. The
phrase "for discrimination" refers to the type-specifiers passed in as
the <type> argument(s) to TYPEP and SUBTYPEP.
One consequence of this distinction is that a variable declared to be of
type <certain-type>, and all of whose assigned objects are created in
accordance with that type, may still have none of its values ever satisfy
the TYPEP predicate with that type-specifier. One type-specifier with
this property is
(ARRAY <element-type>)
for various implementation dependent values of <element-type>. For
example, in most implementations of CL, an array X created with an
element-type of (SIGNED-BYTE 5) will, depending on the vendor, either
satisfy
(TYPEP X '(ARRAY (SIGNED-BYTE 8))), or
but (almost) never will it satisfy
(TYPEP X '(ARRAY (SIGNED-BYTE 5))).
This is entirely permissible within the scope of standardization on
MAKE-ARRAY, where an implementation is required only to construct up the
result out of "the most specialized [element] type that can nevertheless
accommodate elements of the given type [the :element-type argument]"
(see CLtL, p287). That is, an implementation may in fact only provide a
very small number of equivalence classes of element-types for storing
arrays, corresponding to its repertoire of specialized storage techniques;
and it is explicitly permitted to "upgrade" any element-type request into
one of its built-in repertoire (see also CLtL, p45, second and third
paragraphs under Section 4.5.)
As a practical matter, almost every existing implementation does some
serious upgrading of the :element-type argument given to MAKE-ARRAY.
Yet the difference between "for declaration" and "for discrimination"
has been very confusing to many people. Similarly, portability is
hindered when users do not know just how a given implementation does
upgrading.
The type specifier (COMPLEX <part-type>) also falls in the domain of CLtL
Section 4.5. Currently, only one implementation actually provides any kind
of specialized storage for complex parts; and in this case, the practical
matter is less urgent, since the kind of upgrading happening is so obvious
as to cause little or no confusion.
Proposal: (ARRAY-TYPE-ELEMENT-TYPE-SEMANTICS:UNIFY-UPGRADING)
Short Summary:
** Eliminate the distinction between type-specifiers "for declaration" and
"for discrimination". In short, change the meaning of array and
complex type specifiers in favor of the "for declaration" meaning.
** Change the meaning of TYPEP to be in accord with "for declaration"
meaning of type-specifiers.
** Add an implementation-dependent function that reveals how a given
type-specifier for array element-types is upgraded. Add another such
function that reveals how a given type-specifier for complex parts is
upgraded.
** Clarify that "upgrading" implies a movement upwards in the type-
hierarchy lattice; i.e., if <type> upgrades to <Type>, then
<Type> must be a super-type of <type>.
** Clarify that upgrading an array element-type is independent of any
other property of arrays, such as rank, adjustability, fill-pointers,
etc.
** Clarify how SUBTYPEP thus behaves on array type-specifiers.
** Define how SUBTYPEP behaves on complex type-specifiers.
Note that despite this issue's name, the detailed specifications herein
apply to the type system -- not to the behavior of MAKE-ARRAY, nor to how
arrays are actually implemented.
Details:
First, some definitions: Two type-specifiers <type1> and <type2> are said
to be "type-equivalent" if and only if each one specifies a subtype of the
other one. For example, (UNSIGNED-BYTE 5) and (MOD 32) are two different
type- specifiers that always refer to the same sets of things; hence they
are type-equivalent. But (UNSIGNED-BYTE 5) and (SIGNED-BYTE 8) are not
type- equivalent since the former refers to a proper subset of the latter.
Two type-specifiers <type1> and <type2> are said to be "type-disjoint"
if their specified intersection is null. For example, INTEGER and FLOAT
are type disjoint by definition (see CLtL p.33), and (INTEGER 3 5) and
(INTEGER 7 10) are type-disjoint because the specified ranges have no
elements in common.
*. Eliminate the distinction between types "for declaration" and "for
discrimination". In particular, elminate any such reference in the
discussion of array and complex type-specifiers; this would include
documentation patterned after the discussion in section 4.5, pp. 45-7,
especially the example on p.46 that says "See ARRAY-ELEMENT-TYPE".
Change the meaning of (ARRAY <element-type>), as well as any of the
subtypes of ARRAY (such as SIMPLE-ARRAY, VECTOR, etc.) in favor of the
"for declaration" meaning. Make the similar simplification for the
<part-type> specifiers in the COMPLEX type-specifier.
*. Change the meaning of (TYPEP <x> '(ARRAY <type>)), where <type> is not
*, to be true if and only if <x> is an array that could be the result
of giving <type> as the :element-type argument to MAKE-ARRAY. While
(ARRAY *) refers to all arrays regardless of element type, (ARRAY <type>)
refers only to those arrays that can result from giving <type> as the
:element-type argument to the function MAKE-ARRAY. Change the meanings
for (SIMPLE-ARRAY <type>) and (VECTOR <type>) in the same way.
Change the meaning of (TYPEP <x> '(COMPLEX <type>)) similarly. Thus,
(COMPLEX <type>) refers to all complex numbers that can result from
giving numbers of type <type> to the function COMPLEX, plus all other
complex numbers of the same specialized representation. Remember that
both the real and the imaginary parts of any such complex number must
satisfy:
(TYPEP <real-or-imag-part> '<type>).
*. Add the function UPGRADED-ARRAY-ELEMENT-TYPE of one argument, which
returns the element type of the most specialized array representation
capable of holding items of the given argument type. Note that except
for storage allocation consequences, it could be defined as:
(DEFUN UPGRADED-ARRAY-ELEMENT-TYPE (TYPE)
(ARRAY-ELEMENT-TYPE (MAKE-ARRAY 0 :ELEMENT-TYPE TYPE)))
Since element-type upgrading is a fundamental operation implicit in
almost every existing implementation of MAKE-ARRAY, the purpose of this
added function is primarily to reveal how an implementation does its
upgrading.
Add the function UPGRADED-COMPLEX-PART-TYPE of one argument that
returns the part type of the most specialized complex number
representation that can hold parts of the given argument type.
*. Clarify that "upgrading" implies a movement upwards in the type-
hierarchy lattice. Specifically, the type-specifier <type> must be
a subtype of (UPGRADED-ARRAY-ELEMENT-TYPE '<type>). Furthermore, if
<type1> is a subtype of <type2>, then:
(UPGRADED-ARRAY-ELEMENT-TYPE '<type1>)
must also be a subtype of:
(UPGRADED-ARRAY-ELEMENT-TYPE '<type2>).
Note however, that two type-disjoint types can in fact be upgraded into
the same thing.
Clarify that ARRAY-ELEMENT-TYPE returns the upgraded element type
for the array; in particular, any documentation patterned after
the sentence on p. 291 begining "This set may be larger than the
set requested when the array was created; for example . . ." should
be embellished with this clarification.
Similarly, the type-specifier <type> must be a subtype of
(UPGRADED-COMPLEX-PART-TYPE <type>).
*. Clarify that upgrading an array element-type is independent of any
other property of arrays, such as rank, adjustability, fill-pointers,
displacement etc. For all such properties other than rank this should
be obvious (since they are not expressible in the language of
type-specifiers); but note that unless it is also independent of rank,
it would not be consistently possible to displace arrays to those of
differing rank.
*. Clarify that SUBTYPEP on ARRAY type-specifiers is as follows:
For all type-specifiers <type1> and <type2> other than *, require
(ARRAY <type1>) and (ARRAY <type2>) to be type-equivalent if and only
if they refer to arrays of exactly the same specialized representation;
and require them to be type-disjoint if and only if they refer to arrays
of different, distinct specialized representations. This definition
follows that implicitly prescribed in CLtL.
As a consequence of the preceding change to TYPEP and of the definition
of UPGRADED-ARRAY-ELEMENT-TYPE, the two type specifiers
(ARRAY <type1>) and
(ARRAY <type2>)
are type-equivalent if and only if
(UPGRADED-ARRAY-ELEMENT-TYPE '<type1>) and
(UPGRADED-ARRAY-ELEMENT-TYPE '<type2>)
are type-equivalent. This is another way of saying that `(ARRAY <type>)
and `(ARRAY ,(UPGRADED-ARRAY-ELEMENT-TYPE '<type>)) refer to the same
set of specialized array representations.
This defines the behavior of SUBTYPEP on array type-specifiers; namely:
(SUBTYPEP '(ARRAY <type1>) '(ARRAY <type2>))
is true if and only if
(UPGRADED-ARRAY-ELEMENT-TYPE '<type1>) and
(UPGRADED-ARRAY-ELEMENT-TYPE '<type2>)
are type-equivalent.
*. Define SUBTYPEP on COMPLEX type-specifiers as follows:
For all type-specifiers <type1> and <type2> other than *,
(SUBTYPEP '(COMPLEX <type1>) '(COMPLEX <type2>))
is T T if:
1. <type1> is a subtype of <type2>, or
2. (UPGRADED-COMPLEX-PART-TYPE '<type1>) is type-equivalent
to (UPGRADED-COMPLEX-PART-TYPE '<type2>); in this case,
(COMPLEX <type1>) and (COMPLEX <type2>) both refer to the
same specialized representation.
The result is NIL T otherwise.
The small differences between the SUBTYPEP specification for ARRAY and
for COMPLEX are necessary because there is no creation function for
complexes which allows one to specify the resultant part type independently
of the actual types of the parts. Thus in the case of COMPLEX, we must
refer to the actual type of the parts, although a number can be a member
of more than one type; e.g., 17 is of type (MOD 18) as well as of type
(MOD 256); and 2.3f5 is of type SINGLE-FLOAT was well as FLOAT.
The form:
(SUBTYPEP '(COMPLEX SINGLE-FLOAT) '(COMPLEX FLOAT))
must be true in all implementations; but:
(SUBTYPEP '(ARRAY SINGLE-FLOAT) '(ARRAY FLOAT))
is true only in implementations that do not have a specialized array
representation for single-floats distinct from that for other floats.
Examples:
Let <aet-x> and <aet-y> be two distinct type specifiers that are
definitely not type-equivalent in a given implementation, but for which
make-array will return an object of the same array type. This will be
an implementation dependent search, but in every implementation that
the proposer has tested, there will be some such types; often,
(SIGNED-BYTE 5) and (SIGNED-BYTE 8) will work.
Thus, in each case, both of the following forms return T T:
(subtypep (array-element-type (make-array 0 :element-type '<aet-x>))
(array-element-type (make-array 0 :element-type '<aet-y>)))
(subtypep (array-element-type (make-array 0 :element-type '<aet-y>))
(array-element-type (make-array 0 :element-type '<aet-x>)))
To eliminate the distinction between "for declaration" and "for
discrimination" both of the following should be true:
[A]
(typep (make-array 0 :element-type '<aet-x>)
'(array <aet-x>))
(typep (make-array 0 :element-type '<aet-y>)
'(array <aet-y>))
Since (array <aet-x>) and (array <aet-y>) are different names for
exactly the same set of objects, these names should be type-equivalent.
That implies that the following set of tests should also be true:
[B]
(subtypep '(array <aet-x>) '(array <aet-y>))
(subtypep '(array <aet-y>) '(array <aet-x>))
Additionally, to show that un-equivalent type-specifiers that use the
same specialized array type should be equivalent as element-type
specifiers, the following type tests should be true:
[C]
(typep (make-array 0 :element-type '<aet-y>)
'(array <aet-x>))
(typep (make-array 0 :element-type '<aet-x>)
'(array <aet-y>))
Rationale:
This proposal legitimizes current practice, and removes the obscure and
un-useful distinction between type-specifiers "for declaration" and
"for discrimination". The suggested changes to the interpretation of
array and complex type-specifiers follow from defining type-specifiers
as names for collections of objects, on TYPEP being a set membership
test, and SUBTYPEP a subset test on collections of objects.
Current Practice:
Every vendor's implementation that the proposer has queried has a finite
set of specialized array representations, such that two non-equivalent
element types can be found that use the same specialized array
representation; this includes Lucid, Vaxlisp, Symbolics, TI, Franz,
and Xerox. Most implementations fail tests [A] and [C] part 1, but pass
tests [A] and [C] part 2; this is a consequence of implementing the
distinction between "for declaration" and "for discrimination". Lucid
and Xerox both pass test [B], and the other implementations fail it.
The Explorer returns NIL for all six tests in [A], [B], and [C].
Allegedly, the PCLS implementation does no "upgrading"; each array
"remembers" exactly the type-specifier handed to the MAKE-ARRAY call
that created it. Thus the test cases are not applicable to PCLS,
since the precondition cannot be met (i.e., find two non-type-equivalent
type-specifiers that are non-trivially upgraded by make-array).
The TI Explorer offers specialized representation for complexes;
part types of SINGLE-FLOAT and DOUBLE-FLOAT are specialized.
Cost to Implementors:
This proposal is an incompatible change to the current language
specification, but only a small amount of work should be required in
each vendor's implementation of TYPEP and SUBTYPEP.
Cost to Users:
Because of the prevalence of confusion in this area, it seems unlikely
that any user code will have to be changed. In fact, it is more likely
that some of the vendors will cease to get bug reports about MAKE-ARRAY
returning a result that isn't of "the obvious type". Since the change
is incompatible, some user code might have to be changed.
Cost of non-adoption:
Continuing confusion in the user community.
Benefits:
It will greatly reduce confusion in the user community. The fact that
(MAKE-ARRAY <n> :ELEMENT-TYPE '<type>) frequently is not of type
(ARRAY <type>) has been very confusing to almost everyone.
Portability of applications will be increased slightly, since
the behavior of
(TYPEP (MAKE-ARRAY <n> :ELEMENT-TYPE <type>) '(ARRAY <type>))
will no longer be implementation-dependent.
Esthetics:
Reducing the confusing distinction between type-specifiers "for
declaration" and "for discrimination" is a simplifying step -- it is a
much simpler rule to state that the type-specifiers actually describe
the collections of data they purport to name. Thus this is a step
towards increased elegance.
Discussion:
This issue was prompted by a lengthy discussion on the Common Lisp
mailing list. See for example a series of exchanges started on Thu,
17 Dec 87 10:48:05 PST by Jeff Barnett<EMAIL_ADDRESS>under the subject line of "Types in CL". See also the exchange started
Wed, 6 Jan 88 23:21:16 PST by Jon L White<EMAIL_ADDRESS>under the subject line of "TYPEP warp implications"
Although the types STRING, BIT-VECTOR, SIMPLE-STRING, and
SIMPLE-BIT-VECTOR are subtypes of the ARRAY type, they are not
specifically discussed in this proposal. The reason is that
they are not type-specifiers "that specialize", but are merely
abbreviations as follows:
STRING == (VECTOR STRING-CHAR)
SIMPLE-STRING == (SIMPLE-ARRAY STRING-CHAR (*))
BIT-VECTOR == (VECTOR BIT)
SIMPLE-BIT-VECTOR == (SIMPLE-ARRAY BIT (*))
Thus their semantics could be affected only in an implementation that
doesn't support a specific "specialized storage" type for arrays of
bits and vectors of string-chars. But in fact, every CL implementation
must appear to support "specialized storage" for bit-arrays and strings,
even if it means nothing more than remembering the fact that such an
array was created with that element-type. This is required in order
for strings, bit-vectors, and bit-arrays to be disjoint datatypes
(see CLtL p.34; see also the definitions of BIT-ARRAY and STRING found
in CLtL p.293, Section 17.4, and in CLtL p.299.)
We considered the possibility of flushing the permission to "upgrade";
for example, it could be made a requirement that:
(ARRAY-ELEMENT-TYPE (MAKE-ARRAY <n> :ELEMENT-TYPE <type>))
always be equal to <type> (or, at least type-equivalent to <type>)
for all valid type specifiers <type>. This has several problems: it
increases the storage requirement for many kinds of arrays, and hides
a relevant part of the underlying implementation for no apparently
good reason. However, it would increase portability, since it would be
much more difficult, for example, to write a program that created an
array with one element-type, say, (UNSIGNED-BYTE 5), but operated on it
assuming a non-trivial upgraded element-type, say, (UNSIGNED-BYTE 8).
Under this proposal, it is valid for an implementation of MAKE-ARRAY
to have arrays "remember" the type-equivalence class of the original
:element-type argument; such an implementation would satisfy all of
the constraints listed above.
We considered a suggestion to restrict the set of "known" array element
types; this would gain portability at the expense of limiting the
language.
We considered leaving out of the proposal the addition of the two
functions UPGRADED-ARRAY-ELEMENT-TYPE and UPGRADED-COMPLEX-PART-TYPE.
But it was noted that every implementation of CL supports exactly
that functionality somewhere in its implementation of MAKE-ARRAY; and
exposing this to the user would be a good thing. Furthermore, the
existence of at least UPGRADED-ARRAY-ELEMENT-TYPE makes the clarifications
on "upgrading" and SUBTYPEP implications easier. Finally, there would
be no other way at all to pinpoint just how complex parts are upgraded,
since there is no type information available except for the actual
types of the parts.
Since this proposal contains the implication:
(ARRAY <type1>) is-type-equivalent-to (ARRAY <type2>)
==>
<type1> is-type-equivalent-to <type2>
then the question naturally arises "Does the reverse implication hold?"
That is, should two non-EQ but type-equivalent type-specifiers <type1>
and <type2> always give rise to the same array types? For example,
consider SHORT-FLOAT and SINGLE-FLOAT in an implementation where these
are type-equivalent (see CLtL section 2.1.3). One may desire to implement
(ARRAY SHORT-FLOAT) and (ARRAY SINGLE-FLOAT) differently. Say, for example
that the former is packed into 16-bit half-words, whereas the latter is
packed into 32-bit words; but for either kind of packing, the result of
AREF is an ordinary "single-float". The whole point of the type-specifier
to make-array is merely to specify a packing technique for "packed float"
arrays. This "krinkle", however, will not be addressed by the proposal
herein; it should simply be remembered that the implication above goes
only one way, and is not an "if-and-only-if" link.


Upload an impact estimate data set You are uploading impact estimates for scenario "HPV, No vaccination" (hpv-hpv-novaccination) Browse Upload


Version: 1.0
Author: Shyam "Doggan" Guthikonda
Email<EMAIL_ADDRESS>Personal Website: http://shy.am
Project Website: http://sourceforge.net/projects/ecookbook
E-Cookbook is an electronic cookbook, or recipe organizer, with a principle design goal of ease-of-use. It allows the user to create and maintain recipes that can be searched and sorted through. All recipes are saved out to a single file, which allows the user to easily backup their recipe collection.
Ideally, this application can replace the old tattered cookbook in your kitchen.
Here are some of the features of E-Cookbook:
This software was written in Python. The user interface is written in wxPython. The database backend utilizes PySqlite. It has been tested primarily on Windows 98/2000/XP and Mac OS X, although it should work on all platforms that provide a Python interpreter.
E-Cookbook is free software released under the GPL. A copy has been provided (see: 'COPYING').
If you find a bug (or 'feature'), please report it to the Sourceforge project page (link at top).
If you find this software useful, please let me know! (email at top). Or if you really find it useful, donations are accepted through the Sourceforge project page.
Remember to save your work often. You can save your cookbook at any time by going to the menu and selecting File > Save Cookbook.
Cookbooks are stored in a single file with a .cb extension. You can make copies of these files to back up your data. You can open an already created cookbook at a later time through the menu: File > Open Cookbook.
When you first open E-Cookbook, you are presented with a blank slate. The first thing you must do is create a cookbook to store your recipes in. Go to the menu. Select File > New Cookbook.
Now that a cookbook has been created, you can add new recipes. Click "Add Recipe". This opens the "Add New Recipe" dialog:
This dialog is split into 4 different tabs, which can be navigated to by clicking the tabs at the top of the window. The tab names are self explanatory.
On the "Description" tab, you can fill in all your recipes' fields. For the Category and Cuisine fields, default values are provided in a drop-down list. If you want to enter your own custom value, simply type it into the text field and press enter. This will make that value available in the drop-down list for any future item.
The next tab is "Ingredients". Again, the fields are self explanatory. For the Amount value, there are three boxes. These correspond to, from left to right, the whole number, numerator, and denominator of a mixed fraction of the form: 3 5/8. The following image shows how to enter a non-fractional value:
Once your ingredient properties are set, click Ok. You can add as many ingredients as you want. After an ingredient has been added, it will appear in the list view (shown below). List views are seen throughout this application to display information. They all behave in the same manner. To sort the items in the list view, click the column header (i.e. Name, Amt., Units, etc.).
You are now free to modify or delete ingredients. To modify, simply click an ingredient so that it is highlighted in the list view, and then click "Modify Ingredient". This will bring up the same dialog as seen earlier, but with the fields already filled in with the existing values.
Ingredients can also be deleted. Select all the ingredients to be deleted, and click "Delete Ingredient". You will be prompted with a confirmation box asking if you are sure you want to continue with the deletion process.
The "Instructions" and "Extra Notes" tabs are just text fields. Add whatever information you see fit here.
Click Ok to keep this newly added recipe. The recipe will now display in the main list view. You can now add/modify/delete recipes using the buttons on the left. They behave in exactly the same way as adding/modifying/deleting ingredients.
Once a recipe has been added, you can view it. Select the recipe you want to view, and Click "View Recipe". This opens the "View Recipe" dialog. This dialog shows all the information you have already entered in a read-only fashion (i.e. you can't edit anything from here).
There is one thing you can edit, though: Servings. If the number of servings was entered in the "Add/Modify Recipe" dialog, you can now scale that number of servings here. By changing the number of servings, the ingredient amounts will also be multiplied. You can click the "Reset Servings" button to reset the servings # to the original value. If you never entered the amount of servings for the given recipe (i.e. Servings = 0), this field will be grayed out.
Lastly on this dialog, you can Print or Print Preview the recipe by clicking on the buttons at the bottom of the dialog. Printing the recipe formats it in a nice manner, giving you a paper copy to be used as a quick reference.
Searching can be performed in the main dialog. Simply enter a keyword (filter) and select the field you wish to apply this filter to. As you type, the matching entries will be displayed in the list view. Perhaps the most useful category is search by "Ingredient Name". If you have some chicken you need to use up, enter "chicken" in the text field and "Ingredient Name" in the drop-down category field. All recipes that use chicken as an ingredient will be displayed.
Clear the searching criteria with the "Clear Search" button. Perform a "Case Sensitive" search by checking the check-box (off by default).
Lead Developer: Shyam "Doggan" Guthikonda
Email<EMAIL_ADDRESS>Website: http://shy.am
E-Cookbook was written for two reason: 1). I wanted to learn Python. 2). My mom mentioned how she wished she could organize her recipes better. As I worked on it, I realized that some people might find it useful, so I released it under the GPL through Sourceforge, and voila.


But I can't give you this case, it don't belong to me.  You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man.  But I can't give you this case, it don't belong to me.  Now that there is the Tec-9, a crappy spray gun from South Miami. This gun is advertised as the most popular gun in American crime. Do you believe that shit? It actually says that in the little book that comes with it: the most popular gun in American crime.  Twitter: @hackference, Facebook: hackference, Github: Hackference |


| 1 | /* | |
| 2 | * Copyright (C) 2017 ahuotala | |
| 3 | * | |
| 4 | * This program is free software; you can redistribute it and/or | |
| 5 | * modify it under the terms of the GNU General Public License | |
| 6 | * as published by the Free Software Foundation; either version 2 | |
| 7 | * of the License, or (at your option) any later version. | |
| 8 | * | |
| 9 | * This program is distributed in the hope that it will be useful, | |
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 12 | * GNU General Public License for more details. | |
| 13 | * | |
| 14 | * You should have received a copy of the GNU General Public License | |
| 15 | * along with this program; if not, write to the Free Software | |
| 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
| 17 | */ | |
| 18 | package com.ahuotala.platformgame.entity; | |
| 19 | ||
| 20 | import java.awt.Color; | |
| 21 | import java.awt.Graphics; | |
| 22 | import java.util.Random; | |
| 23 | ||
| 24 | /** | |
| 25 | * Kolikko. | |
| 26 | * | |
| 27 | * @author ahuotala | |
| 28 | */ | |
| 29 | public class Coin extends Entity { | |
| 30 | ||
| 31 | private int yModifier = 0; | |
| 32 | private int index = 0; | |
| 33 | private boolean visible = true; | |
| 34 | ||
| 35 | public Coin(int x, int y) { | |
| 36 | super(x, y); | |
| 37 | //Kolikko on 24x24 kokoinen (leveys x korkeus) | |
| 38 |
1
1. |
super.setWidth(24); |
| 39 |
1
1. |
super.setHeight(24); |
| 40 | } | |
| 41 | ||
| 42 | public Coin() { | |
| 43 | super(0, 0); | |
| 44 |
1
1. |
super.setWidth(24); |
| 45 |
1
1. |
super.setHeight(24); |
| 46 | } | |
| 47 | ||
| 48 | @Override | |
| 49 | public void render(Graphics g) { | |
| 50 | if (isVisible()) { | |
| 51 | g.setColor(Color.YELLOW); | |
| 52 | g.fillOval(getX() - Player.offsetX, getY() + yModifier, getWidth(), getHeight()); | |
| 53 | // drawBounds(g); | |
| 54 | } | |
| 55 | } | |
| 56 | ||
| 57 | @Override | |
| 58 | public void tick() { | |
| 59 | Random r = new Random(); | |
| 60 | yModifier = (int) Math.ceil(3 * Math.sin(Math.toRadians(index))); | |
| 61 | if (index == 360) { | |
| 62 | index = 0; | |
| 63 | } else if (index % (r.nextInt(5) + 1) == 0) { | |
| 64 | index += 5; | |
| 65 | } | |
| 66 | getBounds().setBounds(getX() - Player.offsetX, getY() + yModifier, getWidth(), getHeight()); | |
| 67 | } | |
| 68 | ||
| 69 | } | |
Mutations | ||
| 38 |
1.1 |
|
| 39 |
1.1 |
|
| 44 |
1.1 |
|
| 45 |
1.1 |


I specialize in Project Management and behind the scenes of related fields. In the past few years I had the pleasure to work with many key people from many countries in engineering and technology fields like Dr.Jetter, Dr.Sperry, Dr.Freiling, Dr.Khormaei, Mr.Shmueli, Mr.Busch, and many others.
Working on developer skills
Using basic html to develop webpage for a Cupcake Shop
Developing CSS by using Class
Class "column" can help styling and fast editing
Class can be designed to very specific tag
Bootstrap can be used for improving styling
Would like to know
Currently, I am interested in programming classes such as HTML, Java, Java Script, and R. These set of skills will help me develop my own research fuzzy front-end mapping webpage for collecting data and analysing mapping in statistical data.
Landscape Photography Bicycle Builder Metal Engraving
Copyright (c) 2016 Inthrayuth M.


I recently participated in a new event at MIT called the "Solve-A-Thon". Our team brainstormed a heart rate variability monitoring device to help reduce the number of cardiac events.
Check out our website and presentation slides.


This is really cool!
This is really cool! I don't have the time to read it thoroughly right now but I've bookmarked it so that I will later... This includes a lot of the feature extraction techniques I considered in my college capstone project. It was an automated guitar effects triggering platform that would track the progress of a live performance and use an algorithm called dynamic time warping to determine when it was the appropriate time in the song to change the effects/settings. This repo is not optimized for readability but I'll link it incase you have any interest. https://github.com/bgoonz/Revamped-Automatic-Guitar-Effect-Triggering


Home
Hotel
Flight
Register/Login
Profile
Home
Services
Events
About Us
Contact
My Profile
personal information
First Name:
Last Name:
Login Name:
" "
Login password:
Email Adress:
School:


Hello! I'm Kathlynn Lui. UI/UX Designer at
Conversion Digital
.
View my portfolio
GET IN TOUCH
kathlynn@kathlynnlui.com


Gibson and the paradigm of consensus
If one examines the modern paradigm of discourse, one is faced with a choice: either accept neocapitalist nationalism or conclude that the purpose of the poet is significant form.
Go somewhereMany narratives concerning the failure of dialectic culture may be revealed.
If one examines the modern paradigm of discourse, one is faced with a choice: either accept neocapitalist nationalism or conclude that the purpose of the poet is significant form.
Go somewhereIn a sense, Baudrillard’s model of subcapitalist desituationism holds that truth is fundamentally dead. Bataille suggests the use of neocapitalist nationalism to deconstruct class.
Go somewhereIt could be said that Sontag promotes the use of the prepatriarchialist paradigm of consensus to challenge elitist perceptions of consciousness.
Go somewhere


Accordion examples
This is a demonstration of the
Accordion
pattern.
Section title
Section content
Section title
Section content


May 23rd, 2020
Github Pages is a beatiful thing for static website hosting. If you have a github account with username myname
and create a repo called myname.github.io
, you officially have a static website that you can access by just going to https://myname.github.io
! I used it for about 2-3 years now. A man has to grow up and finally have his own domain. This is a quick post about how to make it happen.
Let’s say you bought your domain myname.com
. First thing to do, go to your domain dashboard and set the following in your domain’s custom records,
| Name | Type | TTL | Data |
|---|---|---|---|
@ |
A |
1h |
<IP_ADDRESS> |
<IP_ADDRESS> | |||
<IP_ADDRESS> | |||
<IP_ADDRESS> | |||
www |
CNAME |
1h |
myname.github.io. |
After that, go to your myname.github.io
repo’s settings and in the section Github Pages, fill in your custom domain and tick the Enforce HTTPS option. Now, just wait. You might get bad redirects, bad certificates, etc. Give it couple of minutes up to an hour to start working properly.
Voila, you’re done! ◼


#include <string>
Include dependency graph for sxcommon.h:
This graph shows which files directly or indirectly include this file:
Namespaces | |
| namespace | sx360 |
Classes | |
| struct | sx360::ByteMap |
| struct | sx360::FileSetup |
Defines | |
| #define | DLLDATA |
Enumerations | |
| enum | sx360::OPEN_MODE { sx360::READ_ONLY, sx360::READ_WRITE, sx360::CREATE } |
Variables | |
| char const *const | sx360::FILE_OPEN_MODE [] = {"rb", "r+b", "w+b"} |
| #define DLLDATA |


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.circuits.circuit | |
|---|---|
| CircuitFileFormatException
|
|
| InvalidInputException
|
|
| NoSuchPartyException
|
|
| NotAllInputsSetException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.circuits.encryption | |
|---|---|
| CiphertextTooLongException
|
|
| InvalidKeySizeException
|
|
| KeyNotSetException
|
|
| PlaintextTooLongException
|
|
| TweakNotSetException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.circuits.garbledCircuit | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CiphertextTooLongException
|
|
| NoSuchPartyException
|
|
| NotAllInputsSetException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.comm | |
|---|---|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.coinTossing | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.elGamal | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.elGamalHash | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.equivocal | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.pedersen | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.pedersenHash | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.pedersenTrapdoor | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.simpleHash | |
|---|---|
| CommitValueException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.commitmentScheme.statisticalHash | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.fullSimulation | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.fullSimulationROM | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.oneSidedSimulation | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.otBatch | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.otBatch.semiHonest | |
|---|---|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.privacyOnly | |
|---|---|
| InvalidDlogGroupException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.semiHonest | |
|---|---|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.ot.uc | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.and | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.cramerShoupEncryptedValue | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.damgardJurikEncryptedValue | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.damgardJurikEncryptedZero | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.damgardJurikProduct | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.dh | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.dhExtended | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.dlog | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.elGamalCmtKnowledge | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.elGamalCommittedValue | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.elGamalEncryptedValue | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.elGamalPrivateKey | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.orMultiple | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.orTwo | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.pedersenCmtKnowledge | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.sigmaProtocol.pedersenCommittedValue | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| InvalidDlogGroupException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.interactiveMidProtocols.zeroKnowledge | |
|---|---|
| CheatAttemptException
This exception is thrown whenever a protocol discovorede a cheat attempt. |
|
| CommitValueException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.midLayer.asymmetricCrypto.digitalSignature | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.midLayer.asymmetricCrypto.encryption | |
|---|---|
| FactoriesException
|
|
| NoMaxException
|
|
| SecurityLevelException
This exception is usually thrown whenever an object that does not comply with the required Security Level is used. |
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.midLayer.symmetricCrypto.encryption | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.midLayer.symmetricCrypto.mac | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.kdf | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.kdf.bc | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.prf | |
|---|---|
| FactoriesException
|
|
| NoMaxException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.prf.bc | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.prf.openSSL | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.prg | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.randomOracle | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.primitives.universalHash | |
|---|---|
| FactoriesException
|
| Classes in edu.biu.scapi.exceptions used by edu.biu.scapi.tools.Factories | |
|---|---|
| FactoriesException
|
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Copying larger files and large file sets¶
cp command is a single threaded process and it does not take advantage of the distributed file systems like GPFS. If you have a lot of files to copy, or you have very large files, you may want to use one of the large data set copy fasciliities supporte4d by Satori. The two methods are:
- msrsync (https://github.com/jbd/msrsync) whichis a python wrapper around rsync.
- Aspera (https://www.ibm.com/products/aspera) which is a high speed data transfer service offered by IBM
Using mrsync¶
https://github.com/jbd/msrsync
To install
wget https://raw.githubusercontent.com/jbd/msrsync/master/msrsync && chmod +x msrsync
To use
$ msrsync --help
usage: msrsync [options] [--rsync "rsync-options-string"] SRCDIR [SRCDIR2...] DESTDIR
or: msrsync --selftest
msrsync options:
-p, --processes ... number of rsync processes to use [1]
-f, --files ... limit buckets to <files> files number [1000]
-s, --size ... limit partitions to BYTES size (1024 suffixes: K, M, G, T, P, E, Z, Y) [1G]
-b, --buckets ... where to put the buckets files (default: auto temporary directory)
-k, --keep do not remove buckets directory at the end
-j, --show show bucket directory
-P, --progress show progress
--stats show additional stats
-d, --dry-run do not run rsync processes
-v, --version print version
rsync options:
-r, --rsync ... MUST be last option. rsync options as a quoted string ["-aS --numeric-ids"]. The "--from0 --files-from=... --quiet --verbose --stats --log-file=..." options will ALWAYS be added, no
matter what. Be aware that this will affect all rsync *from/filter files if you want to use them. See rsync(1) manpage for details.
self-test options:
-t, --selftest run the integrated unit and functional tests
-e, --bench run benchmarks
-g, --benchshm run benchmarks in /dev/shm or the directory in $SHM environment variable
Example:
[root@service0001 kvtran-test]# ./msrsync -p 24 --stats --rsync "-a --inplace" /data/ImageNet/ILSVRC2012 ILSVRC2012-service0001
Status: SUCCESS
Working directory: /nobackup/projects/kvtran-test
Command line: ./msrsync -p 24 --stats --rsync -a --inplace /data/ImageNet/ILSVRC2012 ILSVRC2012-service0001
Total size: 143.1 G
Total entries: 1331169
Buckets number: 1332
Mean entries per bucket: 999
Mean size per bucket: 110.0 M
Entries per second: 3136
Speed: 345.2 M/s
Rsync workers: 24
Total rsync's processes (1332) cumulative runtime: 10116.8s
Crawl time: 212.5s (50.1% of total runtime)
Total time: 424.5s
Note: –inplace: rsync writes updated data directly to a file, instead of making a copy and moving it into place.
We used 24 workers in this example because I found out that gave me the best time when I tested with the GPFS filesystem in POK environment.
The copy time is 424.5s using msrsync versus 27m34.417s with cp command.
For remove the directory,weI used rsync and it took 8 minutes to remove a directory with 1000 subdirectories and total of 1281167 files on POK env.
We created an empty directory and used it with rsync –delete as the example below:
-bash-4.2$ time rsync -a --delete empty-dir/ train2-24/
real 8m25.144s
user 0m2.756s
sys 0m35.559s
Using Aspera for remote file transfer to Satori cluster¶
Note: Aspera server is enabled on either satori-login-001.mit.edu or satori-login-002.mit.edu login nodes.
- Install Aspera client or connect on your local machine
- For Mac, Windows or Linux-x86, please download and install Aspera connect from https://downloads.asperasoft.com/en/downloads/8?list
- To install on Mac or Windows, please following the software installation step to complete the installation. For Linux as non-root user, untar the gz file and run the install script file. After the installation is complete, it will be located at your home directory .aspera/connect
- For PowerPC (ppc64le) system, please download and install Aspera desktop client from https://downloads.asperasoft.com/en/downloadsArchive/2
- To install desktop client on Power system after download deb or rpm file:
- on an Ubuntu system
sudo apt-get install ibm-aspera-desktopclient-<IP_ADDRESS>567-linux-ppc64le.deb
- RHEL|CentOS
sudo yum install ibm-aspera-desktopclient-<IP_ADDRESS>567-linux-ppc64le.rpm
2. Transfer files using Aspera connect or client Note: <asperauser> is your userid on Satori
- on Windows
ascp.exe –P 22 –mode=send|recv \path\to\file.txt <asperauser>@satori-login-002.mit.edu:/path/to/file.txt
- on Mac or Linux
ascp –P 22 –mode=send|recv /path/to/file.txt <asperauser>@satori-login-002.mit.edu:/path/to/file.txt
The path to ascp command is located at $HOME/.aspera/connect/bin
Here's an estimator for Aspera transfer times https://www.ibm.com/aspera/file-transfer-calculator/
For technical support, Support <satori-support@techsquare.com>


Selects property names that match a given regular expression and returns them in a delimited list
| Attribute | Description | Required |
|---|---|---|
| property | The name of the property you wish to set. | Yes. |
| override | If the property is already set, should we change it's value.
Can be true or false |
No. Defaults to false |
| match | The regular expression which is used to select property names for inclusion in the list. This follows the standard regular expression syntax accepted by ant's regular expression tasks. | Yes. |
| select | A pattern which indicates what selection pattern you want in the returned list. This used the substitution pattern syntax to indicate where to insert groupings created as a result of the regular expression match. | No. default is "\0". |
| casesensitive | Should the match be case sensitive | No. default is "true". |
| delimiter | The delimiter used to seperate entries in the resulting property | No. default is ",". |
| distinct | Should the returned entries be a distinct set (no duplicate entries) | No. default is "false". |
\0
indicates the entire property name (default).
\1
indicates the first grouping
\2
indicates the second grouping
<property name="package.ABC.name" value="abc pack name" />
<property name="package.DEF.name" value="def pack name" />
<property name="package.GHI.name" value="ghi pack name" />
<property name="package.JKL.name" value="jkl pack name" />
<propertyselector property="pack.list"
delimiter=","
match="package\.([^\.]*)\.name"
select="\1"
casesensitive="false" />
would yield the results
ABC,DEF,GHI,JKL
You could then iterate through this list using the ForEach Task as follows:
<foreach list="${pack.list}"
delimiter=","
target="print.name"
param="pack.id" />
<target name="print.name" >
<propertycopy name="pack.name" value="package.${pack.id}.name" />
<echo message="${pack.name}" />
</target>
Would print
[echo] abc pack name
[echo] def pack name
[echo] ghi pack name
[echo] jkl pack name
Copyright © 2003 Ant-Contrib Project. All rights Reserved.


How to invert the colors of any image in Photoshop in 3 simple steps
by Ross James, Business Insider US- You can invert colors in Photoshop to create a “negative” of an image.
- Inverting colors on a picture in Photoshop sets all the image’s color values to their opposite value on a color wheel – white becomes black, green becomes purple, and more.
- To invert colors, you just need to go to Photoshop’s Adjustments menu.
- Visit Business Insider’s homepage for more stories.
 With the invert colors tool in Photoshop, it can be whichever you want.
The inverted colors tool creates a “negative” of the image, which can be useful for making hidden details stand out, or to shift colors into a different spectrum for colorblind users. It can also be fun to see the colors in your photo change wildly.
Or you can just do it because it looks cool.
Here’s how.
Check out the products mentioned in this article:
Adobe Photoshop (From $129.99 at Best Buy)
MacBook Pro (From $1,299.99 at Best Buy)
Lenovo IdeaPad 130 (From $299.99 at Best Buy)
How to invert colors in Photoshop
1. Open Photoshop, and load in the image that you want to invert.
2. In the menu bar at the top, click on “Image.” In the drop-down menu, hover your mouse over “Adjustments” to create a new sub-menu.
3. From the “Adjustments” sub-menu, select “Invert.”
Your photo will immediately become inverted.
You can invert it again to restore it to its original colors.
That’s not the only way to invert your picture. If you want to do it quickly, by default, the hotkey shortcut for inverting colors is Ctrl + I on Windows, or Command + I on Apple computers.
You can also select a specific portion of the image, to only invert the selected section. Select the section using the marquee, lasso, or selection tool, and press the hotkey to invert the selected area.
Related coverage from How To Do Everything: Tech:
-
How to sharpen an image in Photoshop automatically, to reduce blurriness in your images
-
How to add text over an image in Photoshop, and adjust the font or color
-
How to outline text in Photoshop to make your text stand out on a custom image
-
How to remove the background of an image in Photoshop using 2 different methods


User Login System
Sign Up
Email
Password
Accept terms and conditions
Sign up
Have an account?
Log in


Event Location:
Doubletree Hotel Westshore
4500 West Cypress Stree
Tampa, Florida
Abstract:
Determinate functions (also called characteristic functions) were originally used before SQL introduced the case statement. They allow you to make decisions mathematically, rather than with logic, which can make code dramatically faster. This session is not for people afraid of simple algebra.
Speaker(s): Jeffrey Garbus,
Abstract:
The key to long term success of SSIS based systems is a planned approach to configuration management and deployment. A carefully architected approach can simplify the management of the many variables within an organization that affect the functioning of these packages. These variables include server name, database names and file system, among others. In this session on management and deployment of SSIS, we will identify most of these variables that support our packages. Later, strategies for man
Speaker(s): Rushabh Mehta,
Abstract:
You have optimized and tuned your SQL Server Database and now you need to access the data from your application. Learn and explore the variety of ways you can access the data using ADO.NET, the Data Access Application Block, LINQ To SQL, ADO.NET Entity Framework, ADO.NET Data Services, and the ASP.NET 3.5 Dynamic Data Framework. In this session we will walk-thru and build several examples for each technique as well as discuss tips, strengths, and weaknesses. Come with your questions and explore the wonderful world of data access to SQL Server!
Speaker(s): David Hayden,
Abstract:
This session will show methods to make your reports both easier to create and more flexible. We will cover data driven layouts and formatting. We will see how templates make it easier to have more consistent report formats and how to setup data sources that are more portable. We will review emailing reports and how this can be integrated into your current application.
Speaker(s): Pam Shaw,
Abstract:
This is an updated version of a popular presentation given at the Tampa SQL Server Users Group in mid-2005. It now includes SSAS 2005 enhancements and UDM architecture. Topics covered include: What is Analysis Services? Why do you need it? Basic Cube Concepts: Hierarchies, Measures, Tuples Multidimensional Expressions (MDX) Capabilities Security Architecture Resources
Speaker(s): Mark Landry,
Abstract:
While CTEs and Analytic functions were new features in SS2005, this talk will rather focus on the utility of these features focusing on uses gleaned from the speaker's experience. We will cover performance enhancements, clarity of code, and problems to which the recursive capabilities of WITH can be applied as well as some ways to apply analytic functions to better performance.
Speaker(s): Terry Bomberger,
Abstract:
Upgrading to SQL Server 2005 can be a major challenge for companies, but migrating your DTS packages to SSIS packages doesn't have to be. This session will walk you through the steps needed to migrate your packages, including using the Upgrade Advisor and the Package Migration Wizard. We will discuss the items that the Wizard can handle, how to adjust for items that the Wizard can handle, and when it is best to throw the Wizard out the window.
Speaker(s): Jessica Moss,
Abstract:
Designing an Analysis Services cube is a completely different undertaking than designing a relational database. This presentation will cover the steps needed to design a cube, as well as the fundamental concepts needed for a good design.
Speaker(s): Robert Hatton,
Abstract:
SQL Management Objects (SMO) for SQL Server 2005 represent a .Net managed API for controlling almost all of SQL Server's functions. Find out how to manage everything from the Job Scheduler to database schemas with ease in a .Net world. Demos will include live samples that can be used with Northwind or AdventureWorks that each attendee can take home with them.
Speaker(s): Brandon Kelly,
Abstract:
I present everything you wanted to know about index selection, but didn't know who to ask. Questions are welcome. Covered: Index types, how the optimizer selects indexes, forcing indexes.
Speaker(s): Jeffrey Garbus,
Abstract:
This session will provide an overview of the Master Data Management and also introduce the business value of MDM.In addition, we will look at Microsoft's master data management software.
Speaker(s): Rushabh Mehta,
Abstract:
In this session, you'll learn the basics of SQL Server Integration Services (SSIS) by example with a real world ETL example. By the end of the session, you'll know how to use SSIS to load dozens of files quickly in a loop and process them with some basic rules. No previous SSIS experience is needed for this session.
 Frustrated with trying to come up with consistent, “meaningful” test data to test your applications? Wish you could unit test your database? Ever forget to make a backup copy of your stored procedure before you made that one line change (that happens to crash the system)? Tired of feeling like you’re not part of the team? Come see how you can take control of your database development with Team System.
Speaker(s): Jim Blizzard,
Abstract:
In this talk we will talk about all the things that the CLR can do in SQL Server (Stored Procedures, Triggers, Functions, etc.).
Speaker(s): Shawn Weisfeld,
Abstract:
Logging events and information about an SSIS package is an essential part of package management. SSIS comes with many options to allow you to view the run-time information of your packages. This session will discuss the different log providers available to you and an explanation of the data that is stored. We will show queries to retrieve relevant data and custom logging options.
Speaker(s): Jessica Moss,
Abstract:
This session will discuss how DBAs can use scripting languages like Python, IronPython, and PowerShell to automate repetitive tasks across multiple database servers.
Speaker(s): Ronald Dameron,
Abstract:
SqlServer plays an important role for out-of-the-box tracking and persisting workflows. Without persistence, workflows could not handle processes that run over long periods of time. Without tracking information about a workflow as it runs, they can sometimes become black boxes while they run. This session will focus on getting DBA's up to speed with what is happening under the hood and what is required to wire up these services within SQLServer.
Speaker(s): Bayer White,
Abstract:
Transactional replication is an amazing product that is often ignored because it looks complicated. In this session we'll show you that you can set up replication in as little as 10 minutes, talk about some of the basic configuration options, and then field as many questions as time permits.
Speaker(s): Andy Warren,
Abstract:
In this session you'll learn how to performance tune SSIS' data flow. Brian will show you a number of SSIS patterns and how to correct common mistakes. In this session, it is assumed you know the basics of SSIS already.
Speaker(s): Brian Knight,
Abstract:
Discuss normalization and issues related to keys and identification as they apply to SQL and object oriented systems.
Speaker(s): Patrick Thompson,
Abstract:
In this session we are going to discuss how to create reports with parameters and the different ways to setup report parameters, including multivalued parameters. Then we'll look at how to create a Mailing Label report using SQL 2005 Report Server.
 THIS WILL BE VERY BEGINNER and DEVELOPER ORIENTED. If approved, i will provide a better and more complete session description.
Speaker(s): AJ Warnock,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Mark Landry has over thirty years of experience in software development. He has been an independent software consultant for fifteen years specializing in object-oriented design and programming, relational and multidimensional database design, and data warehousing. He is considered a regional expert in Analysis Services. Mr. Landry holds Bachelors and Masters Degrees in Computer Science.
A long time ago (1982) in a place far away (Summit, NJ), Mr. Bomberger was a Facility Engineer in dire need of a CMMS for a pharmaceutical site. A database consultant was hired, a career change was made, and the rest is history. As a consultant, Mr. Bomberger has worked extensively in a wide range of technologies, roles, business application areas, and industries with a focus on databases. He is currently employed as an Architect by Tallan, Inc.
Contact: http://www.humanworkflow.net
Bayer White has been developing enterprise solutions for the past 11years using .Net Technologies. Since the first beta of the .Net Framework 3.0, his focus has been mastering Business Process Management (BPM) using Windows Workflow Foundation (WF). He is known within the Florida developer community by speaking at Florida Code Camps, blogging(http://www.humanworkflow.net) and writing articles focused on WF. He has also spoken at various conferences such as PASS, DevConnections, VSLive and MDC, a
LinkedIn: https://www.linkedin.com/profile/view?id=176471amp;trk=nav_responsive_tab_profile
Contact: http://mssqlperformance.blogspot.com/
Jeff has been consulting on and performing technical training for MS SQL Server since 1989, Version 4, on OS/2. Since then, he has worked extensively with each release of the product, specializing in performance and tuning, from concept through legacy system, on systems of all sizes, from small start-up company applications to multi-terabyte data warehouses. In addition to hands-on consulting, he speaks at SQLSaturdays several times/year, has a youtube channel with free training, and has written 20 books on database management systems. His latest book is "Transact SQL the Definitive Guide."
LinkedIn: https://www.linkedin.com/in/rushabhbmehta
Contact: http://blogs.solidq.com/RushabhMehta
Rushabh Mehta is a Business Intelligence Mentor with SolidQ and the Managing Director for Solid Quality India Pvt. Ltd. He served as PASS President for 2010/2011 term. Rushabh has worked with MS Data Platform since 1998 and has designed and developed BI systems since 2001. He has been the lead architect for many large-scale and complex BI solutions for clients such as Publix, Raymond James, Jackson Hewitt, US Dept. of Defense, and Microsoft. He is an MVP with Microsoft, Damp;B amp; Melissa Data
Contact: http://snowstormlife.com/blogs/bliz
Jim Blizzard is the Developer Technical Specialist for Microsoft in Florida, Alabama, and Mississippi, and is based out of Tampa, Florida. Jim worked previously for Microsoft Consulting Services in the application development space, focusing on web development, and was a Developer Evangelist for Microsoft, spreading the good news of .NET to the masses in the Pacific Northwest.
LinkedIn: https://www.linkedin.com/in/shawnweisfeld
Contact: http://www.usergroup.tv
Shawn (http://www.shawnweisfeld.com<EMAIL_ADDRESS>is passionate about building awesome applications and websites with .NET technologies and Azure. He is currently a Technical Evangelist for Microsoft based in Austin TX and founder of http://UserGroup.tv. Read his full bio at http://about.me/shawnweisfeld
Contact: http://blogs.estatic.org/users/avatar.aspx?userid=2102
Mr. Kelly is a technical professional with over 10 years experience in developing and leading teams that write "killer apps". Mr. Kelly owned and operated a private micro-consultancy (estatic.org / BusinessRx) for over 4 years, where he built a technical platform that allowed software developers around the world to create high-impact web applications with ease. In January, 2008 Mr. Kelly re-joined his colleagues at Tribridge. Tribridge's success in the Microsoft consulting industry is represente
Contact: http://www.jessicammoss.com
Jessica M. Moss is a well-known architect, speaker, author, and Microsoft MVP of SQL Server Business Intelligence. Jessica#39;s expertise includes data warehouse modeling, Integration Services ETL, Analysis Services semantic modeling, Reporting Services report design, and helping customers across industries successfully implement and enhance their BI solutions. She enjoys sharing her knowledge with the SQL community and has co-authored numerous technical books.
LinkedIn: http://www.linkedin.com/in/rdameron
Contact: http://RonaldDameron.com
Ronald Dameron is The Only DBA at a small software company building planet-scale mobile resource management software. He has over 20 years IT experience on a variety of platforms. His current interests are Azure, PowerShell, SQL Server 2016 and Linux. He was a PASS Summit 2015 Speaker Idol contestant and has spoken at SQLSaturday Tampa, Orlando, South Florida, and the Tampa and Orlando SQL User groups. He has recently earned the Competent Communicator Award from Toastmasters International. He is most active on Twitter as @RonDBA.
Contact: http://www.bidn.com/people/brianknight
Brian Knight, a SQL Server MVP, MCSE, and MCDBA, is the owner and founder of Pragmatic Works. He is also the co-founder of SQLServerCentral.com, BIDN.com, and SQLShare.com. Brian runs the local SQL Server users group in Jacksonville (JSSUG), is a contributing columnist at several technical magazines, and does regular webcasts at PragmaticWorks.com. He is the author of 15 SQL Server books and a frequent speaker at conferences such as PASS Summit, SQL Connections, TechEd, and many Code Camps.
Contact: http://www.jessicammoss.com
Jessica M. Moss is a well-known architect, speaker, author, and Microsoft MVP of SQL Server Business Intelligence. Jessica#39;s expertise includes data warehouse modeling, Integration Services ETL, Analysis Services semantic modeling, Reporting Services report design, and helping customers across industries successfully implement and enhance their BI solutions. She enjoys sharing her knowledge with the SQL community and has co-authored numerous technical books.
LinkedIn: https://www.linkedin.com/in/rob-hatton-3ab4b845
Contact: http://www.RobertJHatton.com
Rob Hatton is the author of the Business Intelligence Team Handbook. Rob is also a past president of the PASS Business Intelligence User Group here in Tampa. He is a veteran B.I. developer with more than 30 years of database experience and dozens of successful B.I. project deployments.
Contact: http://www.bidn.com/people/brianknight
Brian Knight, a SQL Server MVP, MCSE, and MCDBA, is the owner and founder of Pragmatic Works. He is also the co-founder of SQLServerCentral.com, BIDN.com, and SQLShare.com. Brian runs the local SQL Server users group in Jacksonville (JSSUG), is a contributing columnist at several technical magazines, and does regular webcasts at PragmaticWorks.com. He is the author of 15 SQL Server books and a frequent speaker at conferences such as PASS Summit, SQL Connections, TechEd, and many Code Camps.
Contact: http://www.standingwaiting.com/Resume/WebResume.htm
http://www.standingwaiting.com/Resume/WebResume.htm
Microsoft Certified Database Administrator (MCDBA) Highest Education: Masters' Degree in Computer System Engineering Has nearly ten year experience in IT, has been working with SQL server from version 6.5. Worked as both database/application developer and DBA.
Contact: http://www.davidhayden.com/
TBA
Pam has been a developer for over 25 years. For the last 20 years she has been developing for software vendors. For the last 5 years she has been actively involved with SQL Server. She has bee the President of the Tampa Bay SQL Server Group for the past year.
Will complete if session approved
LinkedIn: https://www.linkedin.com/profile/view?id=176471amp;trk=nav_responsive_tab_profile
Contact: http://mssqlperformance.blogspot.com/
Jeff has been consulting on and performing technical training for MS SQL Server since 1989, Version 4, on OS/2. Since then, he has worked extensively with each release of the product, specializing in performance and tuning, from concept through legacy system, on systems of all sizes, from small start-up company applications to multi-terabyte data warehouses. In addition to hands-on consulting, he speaks at SQLSaturdays several times/year, has a youtube channel with free training, and has written 20 books on database management systems. His latest book is "Transact SQL the Definitive Guide."
LinkedIn: https://www.linkedin.com/in/rushabhbmehta
Contact: http://blogs.solidq.com/RushabhMehta
Rushabh Mehta is a Business Intelligence Mentor with SolidQ and the Managing Director for Solid Quality India Pvt. Ltd. He served as PASS President for 2010/2011 term. Rushabh has worked with MS Data Platform since 1998 and has designed and developed BI systems since 2001. He has been the lead architect for many large-scale and complex BI solutions for clients such as Publix, Raymond James, Jackson Hewitt, US Dept. of Defense, and Microsoft. He is an MVP with Microsoft, Damp;B amp; Melissa Data
Contact: https://sqlandy.com
Andy Warren is a SQL Server consultant and trainer based in Orlando, FL. Focusing on administration, performance tuning, and SQL Server patterns and practices, he’s been a SQL Server MVP since 2008. Andy served two terms on the PASS Board of Directors, was a founding principal in SQLServerCentral, and created both the SQLSaturday and SQLRally event models.
The following is a list of sponsors that helped fund the event.


Alonso believes "There is no better driver in Formula 1" than Max Verstappen
by Tom MasonTwo-time Formula One world champion Fernando Alonso believes that there is currently no better driver in the sport than Max Verstappen. The Dutchman made his F1 debut in 2015, going on to win seven races since.
The 22-year-old is enjoying a strong season for Aston Martin Red Bull Racing and is currently fourth in the drivers' standings, 14 points behind Charles Leclerc of Ferrari.
"There is no better driver in Formula 1, it is not possible to analyze every aspect," Alonso told Formula Passion.
"You have to see who is the best within a few years.
"Today I like to follow Max Verstappen because he is always in attack mode and this is good for the spectators."
Whilst Verstappen is still some way off becoming a Formula One champion, he's certainly got the backing of the experienced Spaniard.


Hello
Enter your best bet (value):
Choose the size of your bet (points):
50
Your browser is sooooo old ! Download a modern one now !


9.Masson-Delmotte, V. et al. Information from Paleoclimate Archives. In
Climate Change 2013: The Physical Science Basis, Contribution of Working Group I to
the Fifth Assessment Report of the Intergovernmental Panel of Climate Change (ed. Stocker, T. F. et al.) 383–464 (Cambridge University Press, Cambridge, New York,
2013).


Disallows the use of require statements except in import statements.
In other words, the use of forms such as var module = require("module")
are banned.
Instead use ES6 style imports or import foo = require('foo')
imports.
Not configurable.
"no-var-requires": true
{}


Presentation at the OpenGov Chicago meetup
by Derek Eder
Aug 19, 2011 – Ryan Briones and Chad Pry gave a presentation to the OpenGov Chicago meetup on the origin and future of ChicagoLobbyists.org. Below are the meeting notes:
Origins
Started with an existing Obtiva/Webitects relationship. Paul, Ryan, Chad and Derek were all interested in doing an opendata project. The Google Hack-a-thon presented an opportunity and put on pressure for us to really build something. The lobbyist data was just released the week before and knowing about lobbyist activity is considered to be a ‘juicy’ topic.
How did we do it?
Each of the main contributors spent ~5 hours the week before the hack-a-thon cleaning up data with Google Refine, eyeballing obvious relationships in the data, doing some base HTML layouts and setting up a host for the application (Ruby/Sinatra). At the Google Open Data Hack-a-thon 6 people worked on the project: the 4 originators plus Ruthie and Chirag. By the end of the day we had a basic structure and database set up. The following weeks, we worked in our spare time and now have a minimum viable product.
What is in the future?
Add more meaningful data to inform you about lobbyists, clients and agencies. We have started a relationship working with Brett Goldstein (Chicago’s Chief Data Officer) and the Ethics department to fill in the gaps. Once we have Chicago down, we will generalize our model for use with other cities to visualize their lobbyist data.
All the code is open source and can be checked out on Github.
Origin Story - Chicago Open Data Hackathon
by Derek Eder
July 17, 2011 – Chicago Lobbyists started as an existing relationship between civic-minded members of Obtiva and Webitects. In early July 2011, when Google announced it would be hosting a hackathon focused on Chicago civic data, it was a perfect excuse to bring our group together for the first time to build something great.
Paul pointed out that the lobbyist data was particularly interesting. It was always a hot topic in the media and the City had just released it a few weeks prior and we all quickly agreed to focus on that for our hackathon project. The question then was, what could we do with it?
The week before the hackathon, we brainstormed over this very question and came up with the idea that it could be a ‘Facebook for lobbyists’. Each lobbyist would have a page, which would show various details about their firms, the money they were paid, and the actions they sought in front of city agencies (City Council, Department of Buildings, etc). From there, other page layouts emerged, and going in to the Saturday hackathon, the team had developed HTML templates for those very pages.
The day of the hackathon, our group worked for 8 hours straight parsing the data, building out the Ruby/Sinatra app and developing additional pages. Along the way, they got some help from Chirag Patel on the database setup and Ruthie BenDor on the front-end development. By the end of the day, we had a partially working home page, which we presented to the other hackathon attendees (see photos below) to great fanfare.
Running with that momentum, we continued to develop the site over the next few weeks. By August 3rd, we had a MVP (minimum viable product).
Slideshow from the Chicago Open Data Hackathon on July 17th 2011 courtesy of Chicago CTO John Tolva.
An open process
In the spirit of openness, the goal of this blog is to share our milestones, setbacks and thoughts as we continue to develop and expand this project.
Who are we?
We are Open City, a group of developers and designers based in Chicago that build civic-minded apps using open data.
- Paul Baker
- President and co-founder of Webitects
- Derek Eder
- Developer at Webitects and organizer for OpenGov Chicago
- Chad W Pry
- Engineer at Groupon, Code Academy mentor, and all around charming fellow
- Nick Rougeux
- Designer and CSS wiz at Webitects


{% if admin %}
Attention {{ agency_name }} Administrators,
{{ name }} has been added to this request, {{ request_id }}.
{% else %}Attention {{ name }},
You have been added to request {{ request_id }}.
{% endif %} {% if added_permissions %}Permissions:


issle (Integrating Standards for Students Learning Engineering) is an application created to help teachers emphasize STEM in the classroom. By incorporating necessary standards into engineering tasks, students can learn engineering concepts while following State Common Core Standards.
Discover standards that can be related to STEM activities in the classroom.
Utilize state standards in your engineering projects by referencing applicable objectives.
Feel free to review existing projects made by other teachers and explore new ways to apply STEM in the classroom.


Welcome! This is a beginner-friendly page devoted to walking you through making your very own Pull Request. We assume you have some clue what a Pull Request is or what it’s used for, or else you wouldn’t have found this page. Still, let’s review a bit.
Pull Requests are a way to submit changes to (code) repositories. Repositories are collectons of files hosted on sites like GitHub, most often associated with software development. Software developers use repositories and Pull Requests to track changes to code bases over time.
In this tutorial, we’ll walk through creating a Pull Request against the followng code repository: https://github.com/MakeAPullRequest/makeapullrequest.github.io
By the time you’re finished, you’ll have submitted a real change to a real codebase and be able to see your username listed among others getting started.
The use case we’re walking through is submitting code to an exisiting repository - this is exactly what you might do to contribute to an Open Source project.
So, let’s get to it!
Step 0: Make a GitHub account
We’re going to be contributing to a codebase hosted on GitHub. In order to do so, you’ll need a GitHub account. If you have one, login - if you do not, you’ll need to sign up.
Step 1: Fork the repository
The first step in your journey to making a Pull Request against an existing repository is to create a copy of that repository. The purpose of doing so is that we can work on that copy without any fear of messing up the original.
AThere are many ways to copy a repository - the method we’ll use is called [forking]
To fork a repository, head to its webpage and select the Fork button.
For this tutorial, we’ll be forking the following repository: https://github.com/MakeAPullRequest/makeapullrequest.github.io
(Note: If you are a part of any Organizations, you will be prompted to pick where to Fork the repository to - either an Organization or your own personal account. For this tutorial, select your own account)
Step 2: Make changes to the forked repository
Next, we’ll make changes to the repository we forked. There are many ways to modify the content of a repository. For this tutorial, we’ll be using the GitHub web interface to make our changes.
We will be updating a file called contributors.yml and adding our own GitHub username to it.
To begin - locate the file you’d like to modify. For this tutorial, the file we want to modify is found at _data/contributors.yml
Locate the Edit icon (a pencil) and select it. You’ll now be able to modify that file directly via the webpage.
Again, don’t worry about making mistakes! We’re in our own copy (a.k.a. fork) of the repository, so it doesn’t matter if we mess up.
Add your username to the list of contributors - to do so, add text similar to the following to the end of the file:
- username: @YOUR-USERNAME-HERE
Step 3: Commit the changes to the forked repository
After your modifications are complete, you need to save them. Scroll down to the area entitled Commit changes
There, add a short message describing your changes (e.g. “Added username”) and select Commit changes
Step 4: Create the Pull Request!
It’s finally time to create our Pull Request - this will notifiy the owners of the original repository that we have changes for them to review.
Select the Pull requests tab, then New pull request
GitHub will automatically understand that you want to introduce the changes in your forked repository into the original repository. You may see the word base and head, but they don’t matter much in terms of this tutorial. Each term simply represents the original and forked repository respectively.
On the Comparing changes page, you can see exactly what the suggested differences are (this set of changes is called a “diff”).
To finish off creating the Pull Request, select Create pull request then fill out the form entitled Open a pull request. You’ll need to add a title - and optionally a description – to explain the changes you’re making.
Lastly, select Create pull request
Step 5: Await your Pull Request being merged
You did it! You submitted a request to change a code repository. Your Pull Request should look something like this:
What happens next is in control of the maintainers of the original repository. They now have the ability to see exactly what changes you’d like to make to their repository - and, if they’re satisfied, they will merge your work into the original repository. Merging your work means it becomes a part of the original repository. Here’s what a merged Pull Request looks like:
If you’ve been following this tutorial, once your Pull Request is merged you’ll see your name appear on this webpage: http://localhost:4000/contributors
Congrats! You’ve joined a worldwide community of developers contributing to code online.
Further Reading
- GitHub’s “Creating a pull request from a fork”
- A Survivor’s Guide to Git - A beginner-friendly tutorial for understanding how to start using Git


How to snag the Bottom Dweller pickaxe in the Fortnite Fishing Frenzy competition
by Harry ShepherdThe Fortnite Fishing Frenzy event is here, and it gives you the chance to win some lovely new submarine loot. It's only around for the weekend, so make sure you free up some time skimming the tranquil battle royale seas in the hope of catching a massive trophy fish.
The limited-time competition gives you the chance to win the Fortnite Bottom Dweller pickaxe for free and win trophies, but you can get another cosmetic just for taking part. The big prize is a harvesting tool that looks like a big anchor with an even heavier chain on it, so don't lean it overboard unless you fancy sleeping with, rather than catching, the fishies. Now with that warning out of the way, here's how to get the Fortnite Bottom Dweller pickaxe in the Fishing Frenzy competition.
When is the Fortnite Fishing Frenzy competition?
The angling event starts today (at time of writing) and last for pretty much the whole weekend up to November 24. Here's when you'll have to stop racking up your fishy prizes:
- GMT: 1am (November 25)
- PT: 5pm
- ET: 8pm
How to get the Fortnite Bottom Dweller pickaxe
First things first, you need to get a fishing rod before you can even think about competing; frankly, you're going to be pretty stuck without one. If you're a newbie when it comes to battle royale angling, you can find rods near most large bodies of water.
Now, as I've already mentioned, you can get a reward just by participating in the competition: just using a fishing rod during a match will net you the Fortnite Play to Win spray. But, if you catch a Fortnite Mythic Goldfish you can get your hands on the Bottom Dweller pickaxe.
Note: you cannot use the Harpoon Gun to catch fish. If you attempt to, it won't count. But, if you catch them the traditional way, here are the prize categories you can go for, and what you can win:
Top Angler: Awarded an engraved Llama Trophy
- Catch the most fish in a single match during the competition
- One champion per regional server
Small Fry Champion: Awarded an engraved Llama Trophy
- Catch the most Small Fry during the competition
- One champion per regional server
Flopper Champion: Awarded an engraved Llama Trophy
- Catch the most Floppers during the competition
- One champion per regional server
Slurpfish Champion: Awarded an engraved Llama Trophy
- Catch the most Slurpfish during the competition
- One champion per regional server


OLAT2Moodle
Documentation
Welcome to OLAT2Moodle, please upload your OLAT export .zip file below.
File:
Turn pages into books?
Chapter numbering?
None
Numbers
Bullets
Indented


Flat White
₱125.00
A flat white is an espresso-based drink that contains steamed milk. That much is probably already obvious. It is a no-nonsense option for those looking for a dairy beverage with a strong taste of coffee and is made with a small amount of steamed milk and a thin layer of microfoam. If you want a coffee that allows you to strongly taste the espresso but with the creamy mouthfeel of steamed milk, it’s a great choice.