How To Release LLVM To The Public¶
Introduction¶
This document contains information about successfully releasing LLVM —
including sub-projects: e.g., clang
and compiler-rt
— to the public.
It is the Release Manager’s responsibility to ensure that a high quality build
of LLVM is released.
If you’re looking for the document on how to test the release candidates and create the binary packages, please refer to the How To Validate a New Release instead.
Release Timeline¶
LLVM is released on a time based schedule — with major releases roughly every 6 months. In between major releases there may be dot releases. The release manager will determine if and when to make a dot release based on feedback from the community. Typically, dot releases should be made if there are large number of bug-fixes in the stable branch or a critical bug has been discovered that affects a large number of users.
Unless otherwise stated, dot releases will follow the same procedure as major releases.
The release process is roughly as follows:
- Set code freeze and branch creation date for 6 months after last code freeze date. Announce release schedule to the LLVM community and update the website.
- Create release branch and begin release process.
- Send out release candidate sources for first round of testing. Testing lasts 7-10 days. During the first round of testing, any regressions found should be fixed. Patches are merged from mainline into the release branch. Also, all features need to be completed during this time. Any features not completed at the end of the first round of testing will be removed or disabled for the release.
- Generate and send out the second release candidate sources. Only critical bugs found during this testing phase will be fixed. Any bugs introduced by merged patches will be fixed. If so a third round of testing is needed.
- The release notes are updated.
- Finally, release!
The release process will be accelerated for dot releases. If the first round of testing finds no critical bugs and no regressions since the last major release, then additional rounds of testing will not be required.
Release Process¶
Release Administrative Tasks¶
This section describes a few administrative tasks that need to be done for the release process to begin. Specifically, it involves:
- Creating the release branch,
- Setting version numbers, and
- Tagging release candidates for the release team to begin testing.
Create Release Branch¶
Branch the Subversion trunk using the following procedure:
Remind developers that the release branching is imminent and to refrain from committing patches that might break the build. E.g., new features, large patches for works in progress, an overhaul of the type system, an exciting new TableGen feature, etc.
Verify that the current Subversion trunk is in decent shape by examining nightly tester and buildbot results.
Create the release branch for
llvm
,clang
, and other sub-projects, from the last known good revision. The branch’s name isrelease_XY
, whereX
is the major andY
the minor release numbers. Useutils/release/tag.sh
to tag the release.Advise developers that they may now check their patches into the Subversion tree again.
The Release Manager should switch to the release branch, because all changes to the release will now be done in the branch. The easiest way to do this is to grab a working copy using the following commands:
$ svn co https://llvm.org/svn/llvm-project/llvm/branches/release_XY llvm-X.Y $ svn co https://llvm.org/svn/llvm-project/cfe/branches/release_XY clang-X.Y $ svn co https://llvm.org/svn/llvm-project/test-suite/branches/release_XY test-suite-X.Y
Update LLVM Version¶
After creating the LLVM release branch, update the release branches’
autoconf
and configure.ac
versions from ‘X.Ysvn
’ to ‘X.Y
’.
Update it on mainline as well to be the next version (‘X.Y+1svn
’).
Regenerate the configure scripts for both llvm
and the test-suite
.
In addition, the version numbers of all the Bugzilla components must be updated for the next release.
Tagging the LLVM Release Candidates¶
Tag release candidates using the tag.sh script in utils/release.
$ ./tag.sh -release X.Y.Z -rc $RC
The Release Manager may supply pre-packaged source tarballs for users. This can be done with the export.sh script in utils/release.
$ ./export.sh -release X.Y.Z -rc $RC
This will generate source tarballs for each LLVM project being validated, which can be uploaded to the website for further testing.
Build Clang Binary Distribution¶
Creating the clang
binary distribution requires following the instructions
here.
That process will perform both Release+Asserts and Release builds but only
pack the Release build for upload. You should use the Release+Asserts sysroot,
normally under final/Phase3/Release+Asserts/llvmCore-3.8.1-RCn.install/
,
for test-suite and run-time benchmarks, to make sure nothing serious has
passed through the net. For compile-time benchmarks, use the Release version.
The minimum required version of the tools you’ll need are here
Release Qualification Criteria¶
A release is qualified when it has no regressions from the previous release (or baseline). Regressions are related to correctness first and performance second. (We may tolerate some minor performance regressions if they are deemed necessary for the general quality of the compiler.)
More specifically, Clang/LLVM is qualified when it has a clean test with all
supported sub-projects included (make check-all
), per target, and it has no
regressions with the test-suite
in relation to the previous release.
Regressions are new failures in the set of tests that are used to qualify each product and only include things on the list. Every release will have some bugs in it. It is the reality of developing a complex piece of software. We need a very concrete and definitive release criteria that ensures we have monotonically improving quality on some metric. The metric we use is described below. This doesn’t mean that we don’t care about other criteria, but these are the criteria which we found to be most important and which must be satisfied before a release can go out.
Official Testing¶
A few developers in the community have dedicated time to validate the release candidates and volunteered to be the official release testers for each architecture.
These will be the ones testing, generating and uploading the official binaries to the server, and will be the minimum tests necessary for the release to proceed.
This will obviously not cover all OSs and distributions, so additional community validation is important. However, if community input is not reached before the release is out, all bugs reported will have to go on the next stable release.
The official release managers are:
- Major releases (X.0): Hans Wennborg
- Stable releases (X.n): Tom Stellard
The official release testers are volunteered from the community and have
consistently validated and released binaries for their targets/OSs. To contact
them, you should email the<EMAIL_ADDRESS>mailing list.
The official testers list is in the file RELEASE_TESTERS.TXT
, in the LLVM
repository.
Community Testing¶
Once all testing has been completed and appropriate bugs filed, the release candidate tarballs are put on the website and the LLVM community is notified.
We ask that all LLVM developers test the release in any the following ways:
- Download
llvm-X.Y
,llvm-test-X.Y
, and the appropriateclang
binary. Build LLVM. Runmake check
and the full LLVM test suite (make TEST=nightly report
). - Download
llvm-X.Y
,llvm-test-X.Y
, and theclang
sources. Compile everything. Runmake check
and the full LLVM test suite (make TEST=nightly report
). - Download
llvm-X.Y
,llvm-test-X.Y
, and the appropriateclang
binary. Build whole programs with it (ex. Chromium, Firefox, Apache) for your platform. - Download
llvm-X.Y
,llvm-test-X.Y
, and the appropriateclang
binary. Build your programs with it and check for conformance and performance regressions. - Run the release process, if your platform is different than that which is officially supported, and report back errors only if they were not reported by the official release tester for that architecture.
We also ask that the OS distribution release managers test their packages with the first candidate of every release, and report any new errors in Bugzilla. If the bug can be reproduced with an unpatched upstream version of the release candidate (as opposed to the distribution’s own build), the priority should be release blocker.
During the first round of testing, all regressions must be fixed before the second release candidate is tagged.
In the subsequent stages, the testing is only to ensure that bug fixes previously merged in have not created new major problems. This is not the time to solve additional and unrelated bugs! If no patches are merged in, the release is determined to be ready and the release manager may move onto the next stage.
Reporting Regressions¶
Every regression that is found during the tests (as per the criteria above), should be filled in a bug in Bugzilla with the priority release blocker and blocking a specific release.
To help manage all the bugs reported and which ones are blockers or not, a new “[meta]” bug should be created and all regressions blocking that Meta. Once all blockers are done, the Meta can be closed.
If a bug can’t be reproduced, or stops being a blocker, it should be removed from the Meta and its priority decreased to normal. Debugging can continue, but on trunk.
Merge Requests¶
You can use any of the following methods to request that a revision from trunk be merged into a release branch:
- Use the
utils/release/merge-request.sh
script which will automatically file a bug requesting that the patch be merged. e.g. To request revision 12345 be merged into the branch for the 5.0.1 release:llvm.src/utils/release/merge-request.sh -stable-version 5.0 -r 12345 -user<EMAIL_ADDRESS>- Manually file a bug with the subject: “Merge r12345 into the X.Y branch”, enter the commit(s) that you want merged in the “Fixed by Commit(s)” and mark it as a blocker of the current release bug. Release bugs are given aliases in the form of release-x.y.z, so to mark a bug as a blocker for the 5.0.1 release, just enter release-5.0.1 in the “Blocks” field.
- Reply to the commit email on llvm-commits for the revision to merge and cc the release manager.
Release Patch Rules¶
Below are the rules regarding patching the release branch:
- Patches applied to the release branch may only be applied by the release manager, the official release testers or the code owners with approval from the release manager.
- During the first round of testing, patches that fix regressions or that are small and relatively risk free (verified by the appropriate code owner) are applied to the branch. Code owners are asked to be very conservative in approving patches for the branch. We reserve the right to reject any patch that does not fix a regression as previously defined.
- During the remaining rounds of testing, only patches that fix critical regressions may be applied.
- For dot releases all patches must maintain both API and ABI compatibility with the previous major release. Only bug-fixes will be accepted.
Merging Patches¶
The utils/release/merge.sh
script can be used to merge individual revisions
into any one of the llvm projects. To merge revision $N
into project
$PROJ
, do:
svn co https://llvm.org/svn/llvm-project/$PROJ/branches/release_XX $PROJ.src
$PROJ.src/utils/release/merge.sh --proj $PROJ --rev $N
- Run regression tests.
cd $PROJ.src
. Run thesvn commit
command printed out bymerge.sh
in step 2.
Release Final Tasks¶
The final stages of the release process involves tagging the “final” release branch, updating documentation that refers to the release, and updating the demo page.
Update Documentation¶
Review the documentation and ensure that it is up to date. The “Release Notes” must be updated to reflect new features, bug fixes, new known issues, and changes in the list of supported platforms. The “Getting Started Guide” should be updated to reflect the new release version number tag available from Subversion and changes in basic system requirements. Merge both changes from mainline into the release branch.
Tag the LLVM Final Release¶
Tag the final release sources using the tag.sh script in utils/release.
$ ./tag.sh -release X.Y.Z -final
Update the LLVM Demo Page¶
The LLVM demo page must be updated to use the new release. This consists of
using the new clang
binary and building LLVM.
Update the LLVM Website¶
The website must be updated before the release announcement is sent out. Here is what to do:
- Check out the
www
module from Subversion. - Create a new sub-directory
X.Y
in the releases directory. - Commit the
llvm
,test-suite
,clang
source and binaries in this new directory. - Copy and commit the
llvm/docs
andLICENSE.txt
files into this new directory. The docs should be built withBUILD_FOR_WEBSITE=1
. - Commit the
index.html
to therelease/X.Y
directory to redirect (use from previous release). - Update the
releases/download.html
file with the new release. - Update the
releases/index.html
with the new release and link to release documentation. - Finally, update the main page (
index.html
and sidebar) to point to the new release and release announcement. Make sure this all gets committed back into Subversion.
Announce the Release¶
Send an email to the list announcing the release, pointing people to all the relevant documentation, download pages and bugs fixed.


We've learned this week how useful enumerable methods can be, in particular, with iterating. Meaning they go through a collection of elements and "do" something to each of those elements.
I'll be further explaining a couple examples here. Enumerable method "Count", which is to safe to assume, will count the number of things in the given collection. Here's a bit more complex enumerable method: "each_slice", which will iterate through and "slice" every requested number of elements, where you can pass in a block to "do" something at every slice. Below is an example of how you can "slice" a group into groups of 3 and return them as an array.def groups_of_3(argument) array = [] argument.each_slice(3) { |x| array.push(x) } array end


这个题比赛的时候题意没读懂，导致WA，还在半涂更换测试数据什么的，恶心了。。。。。
Rolling Hongshu
Time
Limit: 2000/1000 MS
(Java/Others)
Limit: 65768/65768 K (Java/Others)
Total Submission(s):
789
Submission(s): 234
mountains. What make things worse, many bitter potatoes lives in
these mountains. They hate sweet potato because they don’t have
girl friends.
In the world of potatoes, friction force does not exist. So the way
potatoes travel is very simple: they start with an initial speed,
rolling forward and waiting to get to the
destination.
Bitter potatoes lived in different places. When sweet potato rolls
passing their home, they begin to chase him (surely by rolling with
an initial speed). If sweet potato is caught by a bitter potato,
his date with girl friend has to be canceled.
Now sweet potato wants to know the minimum initial speed necessary
to see his girl friend.
cases.
At the beginning of each case is three integers, N, M and w,
indicate the number of peaks in the mountains, the number of bitter
potatoes and the weight of sweet potato separately.
2 ≤ N ≤ 1000, 0 ≤ M ≤ 1000, 0 < w <
100000.
The next N lines each contain a pair of integers. Each pair of
integers xi, hi describe a peak. xi is the horizontal distant
between sweet potato’s home and the peak. hi is the height of the
peak. All xi are different. 0 = x1 < x2
< … < xn ≤ 100000000, -100000000 ≤ hi
≤ 100000000. Between adjacent peaks is a smooth slope. The bitter
potatoes are on these slopes.
The following M lines each contain 3 integers. Each triple of
integers pi, vi, mi describe a bitter potato. pi is the horizontal
distant between his home and sweet potato’s home. vi is his initial
speed. mi is his weight. 0 < pi < xn,
0 ≤ vi ≤ 100000000, 0 < mi <
100000
The gravitational constant in potatoes’ world is 20.
Sweet potato’s home is at point (x1, h1). His
girl friend lives at point (xn, hn).
number, the lower bound of sweet potato’s initial speed rounded to
two decimal places.
1: 20.62
“<<NCASE<<“:
“;
cin>>N>>M>>w;
cin>>P[i].x>>P[i].y;
cin>>x>>speed>>w;
y=P[tmp].y+(x-P[tmp].x)*(P[tmp-1].y-P[tmp].y)/(P[tmp-1].x-P[tmp].x);


Section 6 Data exploration
6.1 Listing unique values in a column
The List Unique values algorithm, from the Processing Toolbox, generates a table and a HTLM report of the unique values of a given layer’s field.
To illustrate the use of the List Unique values algorithm, we will import the grandparcs.kml
file. The field Generique2 stores the type of parks located in Montreal, and we would like to know the unique values without having to open the attribute table.
Launch the List Unique values algorithm from the Processing Toolbox. It will identify the available layer in the current project.
Click on … from the Target Field(s) and select Generique2. Click on Run to generate a temporary layer and a HTLM report.
6.2 Loading BaseMaps
When we import layers into QGIS, sometimes it is difficult to identify what the points, lines or polygons of a layer correspond to. In these situations, it is very helpful to add a base map to give some spatial context.
One plugging that comes in hand to add spatial context is QuickMapServices. If it is not already available in your QGIS Desktop, navigate to Plugins, then to Manage and Install Plugins. In the window that has been displayed search QuickMapServices and click on Install Plugin.
To illustrate the use of QuickMapServices, load the stations_rsqa_12_31_2013.shp
. Navigate to Web from the menu bar, select QuickMapServices, go to OSM, and select OSM_Standard. You will see the following set of air quality monitoring stations located in Montreal.


mixed readline_info ([ string $varname [, string $newvalue ]] )
Gets or sets various internal readline variables.
If called with no parameters, this function returns an array of values for all the setting readline uses. The elements will be indexed by the following values: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, and terminal_name. If called with one or two parameters, the old value is returned.


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 4
In a large bowl whip the cream with an electric whisk until thick. Fold in the walnuts and honey, and place in the fridge.
Preheat the oven to 200C/400F/Gas 6.

Cut out four rectangles sized 10cm/4in by 20cm/8in.
Place the rectangles onto a non-stick greased baking tray.
Lightly brush the edges of the tarts with a little of the melted butter and spread the quince jelly on the middle.
Layer on the apple slices.
Drizzle the top with most of the remaining melted butter and sprinkle with the sugar.
Place in the oven for 5-6 minutes until golden brown.
Remove the slices from the oven and glaze with a little of the remaining butter.
Place on the plates and serve with a spoonful of the honey and walnut cream.


Multiple States -> ex#3¶
In this example, we are going to approximate the 5th order Taylor series polynomial for sin() and cos() expanded about x=0.
- where:
- \[sin(x) ≈ P_5(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!}\]\[cos(x) ≈ P_5(x) = 1 - \frac{x^2}{2!} + \frac{x^4}{4!}\]
and:
t0 = Float64(0); tf = Float64(2);


...
According to GitHub documentation. For requests using Basic Authentication or OAuth (including access token), you can make up to 5,000 requests per hour. For unauthenticated requests, the rate limit allows you to make up to 60 requests per hour. Unauthenticated requests are associated with your IP address, and not the user making requests. Awesome stars can only works properly with an access token.
Get an access token at GitHub settings page. Please DO NOT select any scopes!


DEVOTION A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 5.7
Canada, 1994 U.S. Availability: varies (limited) Running Length: 2:03 MPAA Classification: No MPAA Rating (Sex, profanity, nudity) Theatrical Aspect Ratio: 1.85:1
Cast: Jan Derbyshire, Kate Twa, Cindy Girling, Eileen Barrett, Steve Adams Director: Mindy Kaplan Producer: Arlene Battishill Screenplay: Mindy Kaplan based on a story by Arlene Battishill Cinematography: Mario Araya Music: Arlene Battishill U.S. Distributor: Northern Arts Entertainment
In discussing DEVOTION, a story about a lesbian love triangle, writer/director Mindy Kaplan has stated that she wanted to "create characters and situations that people could recognize and identify with." She has succeeded, albeit perhaps *too* well. All the elements of this story are achingly familiar, having formed the plot core of everything from TV soap operas to Harlequin romances. The only difference here is that all three participants are women -- but just because something is "gay" doesn't make it inherently better or more interesting than its "straight" counterpart.
DEVOTION centers around Sheila Caston (Jan Derbyshire), an up-and- coming standup comic whose outrageous show has attracted the attention of a husband-and-wife TV sitcom production team, Lynn and Bill Matthews (Cindy Girling and Steve Adams). However, all is not smooth sailing en route to signing Sheila to the lead role of this cutting edge lesbian program. The first face-to-face meeting between Shelia and Lynn is strained, and we soon learn that they know each other from years ago. Now, with a bright future ahead, Shelia finds herself haunted by past memories, and caught between her current lover, Julie (Kate Twa) and unexpected repercussions from her unrequited first love.
The first half-hour of DEVOTION, while lively and energetic, has a glib tone that displays little sympathy for its characters. Everyone is constantly smiling, but the happiness seems forced and unnatural. There's a jaded feel which threatens to alienate the audience. Eventually, DEVOTION softens its approach, devolving into a fairly routine melodramatic style with all the expected love triangle elements: passion, love, jealousy, and self-doubt. As the film moves along, it becomes possible to feel for the characters, even though the screenplay holds few epiphanies.
DEVOTION is graced by the strong performances of Jan Derbyshire and Kate Twa. Together, they have effective chemistry; separately, each is capable of standing on her own. It's a credit to the actresses that they're able to do something with such limited material. Both throw themselves into the work with an earnestness that gets translated to the audience. On those rare occasions when DEVOTION sparkles, it has little to do with the script and everything to do with its stars.
Regurgitated story and tone variations aside, one of the primary reasons why DEVOTION represents such a dubious entertainment value is that it's far too long. There's not enough real psychological or emotional drama to sustain this story for two hours, and the average viewer will find herself or himself fidgeting through the last quarter. Bits of DEVOTION will strike a responsive chord with some audience members, but the movie as a whole doesn't reach the level of achievement it's striving for. Ultimately, the strengths of the presentation don't adequately compensate for the banality of the content.
- James Berardinelli<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


---
layout: default
title: Stats - Mail
---
-
All-Star Cheerleader 2
-
Animal Crossing: City Folk/Let's Go to the City
Exchange: Pictures and messages
-
Band Hero
-
Big Brain Academy: Wii Degree
Exchange: Records
-
Blast Works: Build, Trade, Destroy
-
Boom Blox
Exchange: Levels
-
Bonsai Barber
Exchange: Pictures (ones sent to the Wii Message Board)
-
Cake Mania: In the Mix!
-
Calling
Exchange: Pictures (ones sent to the Wii Message Board)
-
Chess Challenge!
Exchange: Chess moves
-
Conduit 2
-
Crazy Machines
-
Dewy's Adventure
-
Dr. Mario Online Rx/& Germ Buster
Exchange: Friend Battle Demo
Note: The friend battle is useless.
-
Elebits
-
Excitebike: World Rally
Exchange: Courses
-
Guitar Hero 5
-
Happy Holidays: Christmas
Exchange: Letters
-
Happy Holidays: Halloween
Exchange: Letters
-
Horse Life Adventures/2
-
Internet Channel
Exchange: Internet addresses
-
Kirby's Epic Yarn
Exchange: Pictures (ones sent to the Wii Message Board)
-
Liight
Exchange: Levels
-
MaBoShi's Arcade/The Three Shape Arcade
Exchange: Replays
-
Marble Saga: Kororinpa/Marbles! Balance Challenge
-
Mario & Sonic at the Olympic Winter Games
-
Mario Kart Wii
Exchange: Ghost data and friend requests
-
Metroid Prime 3: Corruption
Exchange: Friend Vouchers
-
Metroid Prime Trilogy
Exchange: Friend Vouchers
-
Mii Channel
Exchange: Miis, and receive Miis in the Mii Parade
-
Mix Superstar
-
My Aquarium
Exchange: Aquariums
-
My Aquarium 2
Exchange: Aquariums
-
My Pokémon Ranch
Exchange: Pictures, and ranch invitations
-
Our House Party!
-
Photo Channel
Exchange: Pictures
-
Pro Evolution Soccer 2008
-
Pro Evolution Soccer 2009
-
Rabbids Go Home
Exchange: Pictures (ones sent to the Wii Message Board)
-
Rock Revolution
-
Strong Bad Episode 1: Homestar Ruiner
Exchange: Letters
-
Strong Bad Episode 2: Strong Badia - The Free
Exchange: Letters
-
Strong Bad Episode 3: Baddest of the Bands
Exchange: Letters
-
Strong Bad Episode 4: Dangeresque 3
Exchange: Letters
-
Strong Bad Episode 5: 8-bit is Enough
Exchange: Letters
-
Super Mario Galaxy
Exchange: Pictures (ones sent to the Wii Message Board)
-
Super Mario Galaxy 2
Exchange: Pictures (ones sent to the Wii Message Board)
-
Super Smash Bros. Brawl
Exchange: Snapshots, stages, replays
Note: You need to be registered with a friend on Wiimmfi to send data.
-
The Conduit
-
UFC Personal Trainer: The Ultimate Fitness System
-
WarioWare: D.I.Y. Showcase
Exchange: Survey data, microgames
Note: The game must be patched for Wiimmfi for this to work. Also, check out DoujinSoft.
-
Wii Music
Exchange: Video clips
Note: The game must be launched from the disc with this copy of BrainSlug to work.


Compliance Report
Compliance Report
S.1. The extension agenda is in consonance of local, regional and national development thrusts and priorities.
S.2. The College/Academic Unit of Hotel and Restaurant Management/TM/HM/TrM has a benchmark survey of the problems, needs priorities and resources of the community.
S.3. The extension program reflects the VMGO.
S.4. There is a pool of consultants/experts from various disciplines to serve in extension projects and activities.
S.5. The institution has an approved and copyrighted Extension Manual.
I.1. The extension projects and activities implemented are based on the results of the benchmark survey.
I.2. The extension projects and activities complement the curriculum of the Hotel and Restaurant Management/TM/HM/TrM program under review.
I.3. A mutual exchange of resources and services between the College/Academic Unit and the community is evident.
I.4. Linkages with local, national, foreign, and non-governmental agencies are institutionalized.
O.1. Priority and relevant extension projects and activities are conducted.
S.1. There is a distinct office that manages the Extension Program.
S.2. Instrument for monitoring and evaluation are available.
I.1. The administration, faculty, students and other stakeholders of the College/Academic Unit of Hotel and Restaurant Management/TM/HM/TrM participate in the planning and organization of Extension Program.
I.2. The administration, faculty and students are involved in the implementation and dissemination of extension programs.
I.3. The extension projects and activities serve varied clientele.
I.4. The conduct of extension projects and activities is sustainable.
I.5. Technologies/new knowledge are disseminated to the target clientele through appropriate extension delivery systems.
I.6. The extension activities are documented in the form of:
I.6.1. pamphlets;
I.6.2. flyers;
I.6.3. bulletins;
I.6.4. newsletters; and
I.6.5. electronic resources.
I.7. Periodic monitory and evaluation of extension projects and activities are conducted.
I.8. Results of monitoring and evaluation are disseminated and discussed with concerned stakeholders.
I.9. Re-planning of activities based on feedback is conducted.
I.10. Accomplishment and terminal reports are filed and submitted on time.
O.1. The Extension Program is well-planned, implemented, monitored, evaluated and disseminated.
O.2. The Extension Program has contributed to the improvement on the quality of life of the target clientele/ beneficiaries.
S.1. There is an approved and adequate budget for extension.
S.2. There is a provision of:
S.2.1. facilities and equipment such as internet and other ICT resources;
S.2.2. extension staff;
S.2.3. supplies and materials; and
S.2.4. workplace.
I.1. The budget for the extension program is utilized as planned.
I.2. Honoraria and other incentives (deloading, credit unit equivalent, etc.) to faculty involved in extension work are granted.
I.3. The College/Academic Unit of Hotel and Restaurant Management/TM/HM/TrM sources out the following from other agencies:
I.3.1. additional funding; and
I.3.2. technical assistance and service inputs.
O.1. The Extension Program is adequately funded.
S.1. There is a strategy for involving the community, government and private agencies in the Extension Program.
I.1. The College/Academic Unit is committed to the service and development of the community, and
I.1.1. initiates and maintains community development projects;
I.1.2. involves the students, faculty, staff administrators in the projects; and
I.1.3. coordinates its community programs and services with the target clientele.
I.2. There is community participation and involvement in extension activities in the following:
I.2.1. planning;
I.2.2. implementation and dissemination;
I.2.3. monitoring and evaluation;
I.2.4. out-sourcing of funds, materials and other service inputs; and
I.2.5. utilization of technology, knowledge learned, skills acquired from the extension projects and activities.
O.1. There is wholesome coordination between the Extension Program implementers and the target clientele/beneficiaries.


If you instantiate Tag-it on an INPUT element, it will default to being singleField, with that INPUT element as the singleFieldNode. This is the simplest way to have a gracefully-degrading tag widget.


Created by Brian Jimenez / @irrati0nal
Python is an interpreted, interactive, object-oriented programming language and it is portable and extensible in C or C++
Development started by Guido van Rossum (BDFL, Benevolent Dictator for Life) during the 1989 Christimas holiday.
February 1991: first public version posted to USENET.
Monty Python's Flying Circus and the name of the language is not just a coincidence.
PEP is a Python Enhancement Proposal
Try this:
$ python
>>> import this
Idioms: What you know from other programming languages may not be always useful, natural or appropiate in Python.
C syntax:
for (i=0; i < mylist_length; i++) {
do_something(mylist[i]);
}
Pythonic way:
for element in mylist:
do_something(element)
Small core, large standard library "batteries included".
PyPI is the official Python repository for third-party software. It is the correct place to share your python packages with other python users. Same as CPAN in Perl community.
It is maintained by the Python Software Foundation and referenced by the pip command.
CPython is the reference implementation, but not the only one:
If it's your lucky day:
sudo apt-get install python-numpy
*Note this is a system-wide installation. Bad idea? Maybe.
You download a python packaged file (python egg) which contains a README.txt and a setup.py files:
$ python setup.py build
$ python setup.py install
Highly recommended: specify an installation directory via prefix:
python setup.py install --prefix=/home/brian/python
easy_install was released in 2004, downloads and installs automatically packages (and dependencies) from PyPI. But easy_install does not support the new Wheel binary package format while pip does.
Furthermore, pip (released in 2008) supports uninstalling packages. You should definetely use pip.
$ pip search bio
biotools - A bunch of bioinformatics utilities.
moa - Moa - command-line workflows (in bioinformatics)
...
A tool to create isolated Python environments
It elegantly solves the problem of installing two version of the same python extension in order to use them at the same time.
$ virtualenv ENV
New python executable in ENV/bin/python
Installing setuptools, pip...done.
$ cd ENV
$ ls
bin include lib local
$ source bin/activate
(ENV)brian@daibutsu /home/brian/python/ENV $ pip install spam
Downloading/unpacking spam
Downloading spam-4.0.1.tar.gz
Running setup.py (path:/var/www/python/ENV/build/spam/setup.py) egg_info
for package spam
Installing collected packages: spam
Running setup.py install for spam
Successfully installed spam
Cleaning up...
(ENV)brian@daibutsu /home/brian/ENV $ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import spam
>>> dir(spam)
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'__path__']
Deactivate the virtualenv:
(ENV)brian@daibutsu /home/brian/ENV $ deactivate
brian@daibutsu /home/brian/ENV $ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import spam
Traceback (most recent call last):
File "stdin", line 1, in module
ImportError: No module named spam
$ python
>>> print 'Hello world'
Hello world
Explicit
leap_year = year % 4 == 0 and year % 100 != 0 \
or year % 400 == 0
Implicit
month_names = ['Januari', 'Februari', 'Maart', # These are the
'April', 'Mei', 'Juni', # Dutch names
'Juli', 'Augustus', 'September', # for the months
'Oktober', 'November', 'December'] # of the year
int_var = sys.maxint
float_var = int_var / 2.0
long_var = int_var + 1
complex_var = 1.5 + 3j
# Some operations
f = float(int_var)
i = int(float_var)
round(f)
x = 2 ** 5
math.floor(f)
string_literal = 'Python course'
unicode_literal = u'España'
planets = ['Mercury', 'Venus', 'Earth', 'Mars',
'Jupiter', 'Saturn', 'Uranus', 'Neptune']
prime_numbers = [2, 3, 5, 7]
country_codes = {34: 'Spain', 376: 'Andorra', 41: 'Switzerland', 424: None}
birth_year = ('Stephen Hawking', 1942)
>>> print string_literal + ' is cool'
Python course is cool
planets.append('Mercury')
>>> print planets
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter',
'Saturn', 'Uranus', 'Neptune', 'Pluto']
>>> planets[-1]
'Pluto'
>>> planets[:4]
['Mercury', 'Venus', 'Earth', 'Mars']
>>> planets[0:4]
['Mercury', 'Venus', 'Earth', 'Mars']
>>> planets[-1] = 'Pluto is not a planet'
>>> planets
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn',
'Uranus', 'Neptune', 'Pluto']
>>> planets.remove('Pluto')
>>> planets
['Mercury', 'Venus', 'Earth', 'Mars',
'Jupiter', 'Saturn', 'Uranus', 'Neptune']
>>> del planets[5]
>>> planets
['Mercury', 'Venus', 'Earth', 'Mars',
'Jupiter', 'Uranus', 'Neptune']
>>> del planets[5:7]
>>> planets
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter']
birth_year = 'Stephen Hawking', 1942 # ',' constructor
>>> birth_year[1] = 1943 # Error!
# Swap values
b, a = a, b
# Unpacking
atom_name, atom_number, residue_name, chain_id = ['CA', 1, 'ALA', 'A']
zeroes = [0] * 100
spaces = 100 * " "
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xrange(10)
xrange(10)
>>> for i in xrange(10):
... print i,
0 1 2 3 4 5 6 7 8 9
# Non-idiomatic
results = []
for i in range(20):
if i % 2 == 0:
results.append(i)
# Pythonista style
results = [x for x in xrange(20) if x % 2 == 0]
Over a list
monsters = ['Kraken', 'Leviathan', 'Uroborus', 'Hydra']
# Method 1
for monster in monsters:
print monster
# Get the index in the array
for i, monster in enumerate(monsters):
print i, monster
Over a dictionary
country_codes = {34: 'Spain', 376: 'Andorra', 41: 'Switzerland', 424: None}
# By key
for country_code in country_codes.keys():
print country_code
# By value
for country in country_codes.values():
print country
# By both
for country_code, country in country_codes.iteritems():
print country_code, country
>>> my_list = ['k', 'o', 'n', 'n', 'i', 'c', 'h', 'i', 'w', 'a']
# Method 1
s = ''
for c in my_list:
s += c
# Method 2
s = ''
for c in my_list:
s = "%s%s" % (s, c)
# Idiomatic
''.join(my_list)
import sys
def say(message):
"""Says something"""
print message
if __name__ == "__main__":
say(sys.argv[1])
To execute it (example_1.py):
$ python example_1.py 'Hello World'
Hello World
(example_2.py):
import sys
def usage():
print 'usage: %s message' % sys.argv[0]
def say(message):
"""Says something"""
print message
if __name__ == "__main__":
if len(sys.argv[1:]) != 1:
usage()
raise SystemExit('Wrong command line')
say(sys.argv[1])
def attacked (monster, survivors=0):
print 'A %s attacked our village!' % monster
if survivors:
print 'Luckily, %d people survive' % survivors
>>> attacked('Kraken', 42)
A Kraken attacked our village!
Luckily, 42 people survive
>>> attacked('Cthulhu')
A Cthulhu attacked our village!
# Method 1
f = open('a_file.txt')
for line in f:
print line,
f.close()
# Method 2
f = open('a_file.txt')
lines = f.readlines()
for line in f:
print line,
f.close()
# Method 3
with open('a_file.txt') as f:
for line in f:
print line,
import os
out = open('a_file.txt', 'w')
for i in xrange(10):
out.write("%d%s" % (i, os.linesep))
>>> eggs = 10
>>> print eggs.__add__
<method-wrapper '__add__' of int object at 0x184d080>
>>> print dir(eggs)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real']
Mutable and immutable objects
def f(a, L=[]):
L.append(a)
return L
>>> print f(1)
[1]
>>> print f(2)
[1, 2]
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
>>> print f(1)
[1]
>>> print f(2)
[2]
Write a program which will find all numbers which are divisible by 7, but are not a multiple of 5, or by 13 in the range [42..1200].
Print the numbers in reverse order and comma separated.
A module is any python source file on your python library path. A file called triceratops.py corresponds to a module named triceratops.
import triceratops
print triceratops.NUMBER_OF_HORNS
A package is a regular folder where a __init__.py file has been created. A package is used for the organization of modules. A package can contain any sub-folder.
We move our triceratops.py module to a folder called dinosaur.
import dinosaur.triceratops
import dinosaur.apatosaurus
print dinosaur.triceratops.NUMBER_OF_HORNS
print dinosaur.apatosaurus.NUMBER_OF_HORNS
Using names as dinosaur.triceratops.NUMBER_OF_HORNS is not convenient
Instead, we import certain parts in our scope.
from dinosaur.triceratops import NUMBER_OF_HORNS
from dinosaur.apatosaurus import NUMBER_OF_HORNS as APATOSAURUS_HORNS
print NUMBER_OF_HORNS, APATOSAURUS_HORNS
from module import *
However, it is okay to use it to save typing in interactive sessions.
If you allow your client to import *, you can define the modules to be imported automatically by defining an __all__ variable in __init__.py file:
dinosaurs/
__init__.py
sauropod/
__init__.py
apatosaurus.py
diplodocus.py
camarasaurus.py
# sauropod.__init__.py file
__all__ = ['apatosaurus', 'diplodocus', 'camarasaurus']
>>> from dinosaurs.sauropod import *
print apatosaurus.NECK_LENGTH
A module can contain executable statements as well as function definitions. These statements are intended to initialize the module.
They are executed only the first time the module name is encountered in an import statement
if __name__ == "__main__":
print 'Only executed when calling it as a script'
The order for searching for a given module is:
Notice that path can be modified in run-time:
import sys
sys.path.append('/home/brian/python/dinosaurs')
“Functional programming is like describing your problem to a mathematician.
Imperative programming is like giving instructions to an idiot.”
def add(x, y):
return x + y
# Functions are only run when they're called
# with parenthesis
def apply_function(f, x, y):
return f(x,y)
>>> z = apply_function(add, 1, 2)
3
They are created using the lambda statement. Commonly used when passing a simple function as an argument to another functions.
def call_function(f, *args):
return f(*args)
call_function(lambda x, y: x + y, 4, 5)
>>> lst = ["1", "2", "3", "4", "5"]
map(string.atoi, lst)
[1, 2, 3, 4, 5]
def add(x, y):
return x + y
>>> lst = [1, 2, 3, 4, 5]
>>> sum_lst = reduce(add, lst)
15
def is_odd(x):
return x % 2 == 1
>>> odd_nums = filter(is_odd, range(0,101))
[1, 3, 5, ... 99]
"A closure is a function object that remembers values in enclosing scopes regardless of whether those scopes are still present in memory."
def generate_power_func(n):
def nth_power(x):
return x**n
return nth_power
>>> raised_to_4 = generate_power_func(4)
>>> raised_to_4
<function nth_power at 0x7fe5a83737d0>
>>> raised_to_4(2)
16
>>> del generate_power_func
>>> raised_to_4(2)
16
>>> print raised_to_4.__closure__
(<cell at 0x7fe5a8377788: int object at 0x263f110>,)
It is possible to wrap or "decorate" functions or classes:
def by_two(original_function):
def new_function(x, y):
return original_function(x, y) * 2
return new_function
@by_two
def add(x, y):
return x + y
It is possible to stack multiple decorators :)
An object is an abstract data type with the addition of polymorphism and inheritance.
The goal is to design modular and reusable software.
- Encapsulation and information hiding.
Avoid Spaghetti code.
A class is a binding of methods and variables in a single unit.
An object is an instance of a class.
A class is a template which defines the methods (behavior) and variables (state) to be included in a particular object.
If a class is an instance of a class too, then this class is called metaclass.
class Monster(object):
"""Represents a mythological creature"""
pass
>>> kraken = Monster()
>>> type(kraken)
<class '__main__.Monster'>
>>> isinstance(kraken, Monster)
True
>>> leviathan = Monster()
>>> type(leviathan) == type(kraken)
True
class Monster(object):
"""Represents a mythological creature"""
def __init__(self, origin):
self.origin = origin
>>> kraken = Monster('Scandinavia')
>>> kraken.origin
'Scandinavia'
>>> kraken.roar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Monster' object has no attribute 'roar'
class Monster(object):
latin_name = 'monstrum'
def __init__(self, origin):
self.origin = origin
@classmethod
def get_latin(cls):
return cls.latin_name
>>> kraken = Monster('Scandinavia')
>>> print Monster.get_latin()
monstrum
>>> kraken.get_latin()
monstrum
>>> kraken.get_latin
<bound method type.get_latin of <class '__main__.Monster'>>
class Monster(object):
def __init__(self, origin):
self.origin = origin
@staticmethod
def battle(monster1, monster2):
print 'A monster from %s is fighting a \
second monster from %s' % (monster1.origin, monster2.origin)
>>> kraken = Monster('Scandinavia')
>>> leviathan = Monster('Ancient Middle East')
>>> Monster.battle(kraken, leviathan)
A monster from Scandinavia is fighting a second monster from
Ancient Middle East
Full example in example_3.py
"We're all consenting adults"
class Example(object):
open_to_change = 1
_this_could_change = 2
__implementation_detail = 3
class Dinosaur(object):
def __init__(self, name, era='Cretaceous'):
self.name = name
self.era = era
def eat(self):
pass
class TyrannosaurusRex(Dinosaur):
def __init__(self):
Dinosaur.__init__(self, 'Tyrannosaurus Rex')
def eat(self):
print 'I am carnivore'
Full example in example_4.py
Write a program to create water
We're just back from the famous Jurassic Park. Nevertheless, there were only two kinds of dinosaurs: Tyrannosaurus Rex and Triceratops, we enjoyed those dinosaurs battles a lot...Write a program to simulate those battles and take into account:
Exceptions are errors detected during execution.
Exceptions can be handled:
while True:
try:
x = int(raw_input("Please enter a number: "))
break
except ValueError:
print "Oops! That was no valid number. Try again..."
"Easier to ask forgiveness than permission"
# Non-idiomatic
i = raw_input()
if type(i) == type(1):
#do wathever
else:
print 'Error'
# Pythonic
try:
i = int(raw_input())
except ValueError:
print 'Error'
Testing code is very important.
It helps you finding bugs and have a more decoupled architecture.
A test should focus on an specific tiny part of functionality and prove it correct.
Each unit test should be independent: setUp() and tearDown() methods.
It's the batteries-included module in the Python standard library.
Based on Java Junit.
Full example in example_5.py
import unittest
def my_add_function(x, y):
return x + y
class MyAddFunctionTest(unittest.TestCase):
def test(self):
self.assertEqual(7, my_add_function(3,4))
This module searches for pieces of text that look like interactive sessions in docstrings (">>>").
They are useful as documentation of the main use cases.
Full example in example_6.py
def my_add(x, y):
"""Adds x and y.
>>> my_add(2,3)
5
>>> my_add(5,-5)
0
"""
return x + y
if __name__ == "__main__":
import doctest
doctest.testmod()
Extends unittest to make testing easier.
Automatic test discovery.
Plugins community.
Official documentation: nose 1.3.3
Looks for files with 'test' in the name and executes everything on the module which matches (?:^|[\\b_\\.-])[Tt]est
Example in test_example_7.py
def test():
assert True
$ nosetests-2.7
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
Circle class
import math
class Circle(object):
def __init__(self, x, y, r):
self.x = x
self.y = y
self.r = r
def area(self):
return math.pi * self.r * self.r
Testing a Circle class
class TestCircle:
def setUp(self):
self.c = Circle(0., 0., 3.)
def tearDown(self):
pass
def test_area(self):
assert_almost_equals(28.27433388, self.c.area())
Example in test_example_8.py
It is possible to test exceptions using @raises decorator
@raises(TypeError, ValueError)
def test_raises_type_error():
raise TypeError("This test passes")
@raises(Exception)
def test_that_fails_by_passing():
pass
Timed tests
@timed(.1)
def test_that_fails():
time.sleep(.2)
It is a Python to C source code translator which integrates with the CPython interpreter at low level.
Cython generates CPython extension modules using a superset of the Python language.
# hello.pyx
def say_hello():
print "Hello World!"
# a python file
import hello
hello.say_hello()
# setup.py
from distutils.core import setup
from Cython.Build import cythonize
setup(name = 'Hello world app',
ext_modules = cythonize("*.pyx"))
This extension has to be compiled:
$ python setup.py build_ext --inplace
# Pure python version. t1.py
def test(value):
for i in xrange(value):
i**2
if(i==1000000):
print i
test(10000001)
# Cython version. ct1.pyx
def test(long value):
cdef long i
cdef long z
for i in xrange(value):
z = i**2
if(i==1000000):
print i
if z < i:
print "yes"
$ time python t1.py
1000000
real 0m0.819s
user 0m0.809s
sys 0m0.008s
$ time python ct1.py
1000000
real 0m0.034s
user 0m0.025s
sys 0m0.008s
24x performance
#cython: boundscheck=False
#cython: wraparound=False
from libc.math cimport sin, cos
cdef my_function(double x, double y):
cdef double f;
f = sin(x) + cos(y)
return f
Write a program to calculate the Fibonacci series up to n=2000.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
$ time python test_fib.py
1 1 2 3 5 8 13 21 34 55 89 144 233 377<PHONE_NUMBER>
real 0m0.016s
user 0m0.010s
sys 0m0.006s
Methods to redefine default object behavior.
__new__(cls, [...)
__init__(self, [...)
__del__(self)
# Returns negative if self < other, zero if self == other,
# positive otherwise
__cmp__(self, other)
__eq__(self, other)
__ne__(self, other)
__lt__(self, other)
__le__(self, other)
__gt__(self, other)
__ge__(self, other)
# self + other
__add__(self, other)
__sub__(self, other)
__mul__(self, other)
# other + self
__radd__(self, other)
__rsub__(self, other)
__rmul__(self, other)
# self += other
__iadd__(self, other)
__isub__(self, other)
__imul__(self, other)
# Called when str(object)
__str__(self)
# Called when repr(object)
__repr__(self)
# Called when len(object)
__len__(self)
# Called when self[key]
__getitem__(self, key)
# Called when x(args)
__call__(self, [args...])
An iterator is an object adhering to the iterator protocol, which means that it has a next method and raise StopIteration exception if error.
The iterator allows to loop just once and holds the state, it's possible to have several iterators over the same sequence.
nums = [1, 2, 3]
>>> it = iter(nums)
>>> next(it)
1
>>> it.next()
2
>>> next(it)
3
>>> next(it)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
in for..in loop we require the __iter__() method.
Very similar in concept to iterators, the basis for list comprehensions.
The special word yield marks a function as a generator. yield stops the execution of the function:
>>> def f():
... yield 1
... yield 2
>>> gen = f()
>>> gen.next()
1
>>> gen.next()
2
>>> gen.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration


Spinners will be spun by this spinning facility. It’s easy to see why instructor led indoor cycling has taken-off in Philly. We got in on the action, and, in true #TTS form, optimized it, creating Philly’s most unique class atmosphere. Our cycling studio is outfitted with the gold standard of indoor cycles — Schwinn’s AC Performance Plus with Carbon Blue. With just eight people, a killer light show, and brand new sound system, this is an intense one. Perfect for beginners to serious cyclists.
Reserve Now!Ever been to a really crowded Yoga class and not understand how to do a pose? It’s the worst. Ever been to an empty Yoga class and have all your poses corrected by the instructor? It’s the best. Small group Yoga at #TTS allows the instructor to assess the room, and use a hands-on approach with each student. Instructors will also be able to introduce new, rare poses to your yoga lexicon — if the room allows for it. Many of us have Yoga’ed at this point — but you haven’t Yoga’ed like this. Beginners to advanced.
Reserve Now!The Training Station Boot Camp is designed by #TTS owner Phil Clark. Phil’s a Yale graduate who has studied health and fitness immensely making him a fitness/coaching guru. Phil based each workout in this class on the best principles of conditioning. Wanna look toned and strong, but not bulky? This is the place! You’ll also learn how to do a variety of strength exercises. The workouts will incorporate plyometrics, TRX, kettle bells, tubes, barbells, dumbbells, jump ropes, medicine balls, stability balls, battle ropes, monkey bars… and a lot more! It’s a total body workout that includes every muscle. The average woman will burn about 300 calories, about 320 for the average man. This is the Boot Camp of all Boot Camps.
Reserve Now!Men, women, dancers, athletes, models, and CEO’s alike have swooned for Barre. With classes designed to burn fat and sculpt long, lean muscles effectively through a combination of exercises using just yourself and the barre (handrail) you may recognize from dancer studios. With its new popularity in the US as both women and men clamor for dancers’ physique and strength, this small group atmosphere at #TTS will fill up fast. Why? We set the barre high around here. It’s a good class.
Reserve Now!


{% extends "base-front.html" %} {% load force_extras %} {% block leadtitle %}Catami Apps{% endblock %} {% block content %}
CATAMI is bringing together Australia's marine imagery and marine researchers
No Images found. You're seeing this error because there are no available images in the database to display. Please contact catami@ivec.org.


| Test Case EP-28: Sasha Fabizhevskyi [Version : 1] | |||
|---|---|---|---|
| Author: | economists - 01/18/2017 14:40:51 | ||
| Summary: Testing "email" data type column. | |||
| Preconditions: Create new table on https://mydev.ginstr.com/ with "email" data type column. | |||
| #: | Step actions: | Expected Results: | |
| 1 | Click add record button. Input "enter name" field "Jonny", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 2 | Click add record button. Input "enter name" field "123", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 3 | Click add record button. Input "enter name" field "123Jonny", "enter e-mail" field "123 @gmail.com" | New record wasn't added (error - email is not valid) | |
| 4 | Click add record button. Input "enter name" field "123Jonny", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 5 | Click add record button. Input "enter name" field "123Jonny", "enter e-mail" field "123" | New record wasn't added (error - email is not valid) | |
| 6 | Click add record button. Input "enter name" field "null", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 7 | Click add record button. Input "enter name" field "space", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 8 | Click add record button. Input "enter name" field "space, "enter e-mail" field "space" | New record wasn't added. | |
| 9 | Click add record button. Input "enter name" field |] ~!@/*$%^&C)?<>'=+", "enter e-mail" field<EMAIL_ADDRESS>| New record was added. | |
| 10 | Click add record button. Input "enter name" field "123Jonny". Input "enter e-mail" field with some unacceptable symbol - (US), like |] ~!@/*$%^&C)?<>'=+" .Example<EMAIL_ADDRESS>Repeat this step with each of this symbols |
New record wasn't added (error - email is not valid) | |
| Execution type: | Manual | ||
| Estimated exec. duration (min): | |||
| Importance: | Medium | ||
| Requirements | None | ||
| Keywords: | None |


The Art of Good Questions
Searching, Asking, Learning
I am a firm believer that to get the best answers in life one must ask the right questions. I read a couple of questions in stack overflow and noticed that the ones that get the best answers and most replies are the ones that are specific and have all the necessary details of information. The information that was supplied was the language version, platform version, operating system, framework, detailed information of the problem and what the user wants to accomplish.
The good thing about posting questions on the web is that before your post you can proof read to make sure all the necessary information is included. One of the things I learned while reading the article about writing the perfect question was that before posting the question to read it like if you saw it for the first time and to try to answer it yourself. There are times when I just need to organize my thoughts in order to understand a concept or why something seems to not be working. Another concept I learned while reading this article is that it is good practice to explain the attempts because the error could have come from another line of the code. The most important part of asking a question is to be concise when making a title and I liked that they said to have a mindset that you are asking a very busy person and that every word counts.
-Richard Santin


"The nourishment of the body food, while the nourishment of the soul is feeding others."
OUR MISSION
"Make India hunger free"
We are India's 100% transparent online donation platform for charities, where people can directly donate food needed instead of money. Our vision is to bring more transparency to online crowdfunding so that we provide an opportunity for every Indian & NRI to give back to society confidently.


La boum / The Party
La boum is a movie starring Claude Brasseur, Brigitte Fossey, and Sophie Marceau. This is the story about the first love experiences of a teenage-girl.


Earliest Known Dino-Bird With Tail Feathers Found in Japan Fossil Site
by MARTIN MACIAS JR(CN) – Archaeologists combing through dinosaur fossil sites in Japan have discovered a previously unknown bird species that soared through the skies over 120 million years ago. The pigeon-sized bird holds clues to the evolution of modern birds, according to a study released Thursday.
Scientists consider the archaeopteryx, or bird-like dinosaur, to be the first known bird on the planet.
The archaeopteryx, whose fossils were found in Germany, lived during the Late Jurassic period between 160 to 140 million years ago.
But the archaeopteryx did not develop the fundamental flight mechanism that modern birds have.
Birds flying over us today have a skeletal structure containing a pygostyle, a triangular plate located near the backbone that supports tail feathers, a key adaptation for flight.
The earliest known birds with pygostyle skeletal structures appeared in the Cretaceous period about 120 million years ago.
Cretaceous era bird fossils have been found only in northeastern China, Spain and Brazil, until now.
While digging at a fossil site in central Japan in 2013, Takuya Imai of Fukui Prefectural University discovered a three-dimensionally preserved fossil of what has since been named fukuipteryx prima. The light brown-colored bird had a wide wingspan and a short tail feather.
The primitive bird’s fossils are the first from the Cretaceous period to be found outside of China, according to the study published in Communications Biology.
Imai observed that the fukuipteryx prima had a fully formed pygostyle and shared several features with the archaeopteryx, including a wide wishbone, an unfused pelvis, and forelimbs.
But researchers advance the theory that fukuipteryx prima’s pygostyle is simply a byproduct of tail reduction during evolution and is unrelated to flight.
An early Cretaceous bird called the jeholorniformes lacked the pygostyle, for example, according to the study.
Copyright © 2019 courthousenews.com


Introducing Gasket
Framework Maker for JavaScript Applications
Get StartedFramework Maker for JavaScript Applications
Get StartedGasket helps teams and communities compose frameworks to deliver apps of various shapes and sizes. While scaffolding is important, Gasket offers functionality beyond simple boilerplate generation. Gasket also provides the essential elements for libraries and layers of apps to integrate together during runtime.
These are the essential elements of Gasket, which are used to assemble robust frameworks and work together to power apps. Browse the docs to learn more about these elements and how they can be used.
The entry point to creating and interacting with apps. The CLI provides the frame and engine upon which apps are built.
Logical groups of plugins to build apps. Tech choices for teams, integrations for communities. Effectively, the framework you want to build apps within.
The building blocks of an app framework - plugins provide the scaffolding and circuitry to integrate libraries and have them communicate together.
Build and start your app. Analyze it, or read the docs. Just a few commands you can execute with available plugins, or create your own.
The nervous system to transmit signals between parts of apps. Not your typical events; lifecycles can be handled in order and executed in sync.
Receptors to handle lifecycle events and perform the actual work of integrating libraries and implementing application code.
Libraries and features are made available for use in your frameworks in the form of plugins. We have plugins for several well known libraries and essential features to get started with much more to come.
See the full list and also how you can contribute!


| Home | Trees | Indices | Help |
|
|---|
|
|
AMF0 implementation.
AMF0
supports the basic data types used for the
NetConnection, NetStream, LocalConnection, SharedObjects and other
classes in the Adobe Flash Player.
Since: 0.1
|
|||
|
Context I hold the AMF0 context for en/decoding streams. |
|||
|
Decoder Decodes an AMF0 stream. |
|||
|
Encoder Encodes an AMF0 stream. |
|||
|
RecordSet I represent the RecordSet class used in Adobe Flash
Remoting to hold (amongst other things) SQL records.
|
|
|||
|
|||
StringIO
|
|
||
|
|||
|
|
|||
TYPE_NUMBER =
Represented as 9 bytes: 1 byte for 0×00 and 8 bytes a
double representing the value of the number.
|
|||
TYPE_BOOL =
Represented as 2 bytes: 1 byte for 0×01 and a second,
0×00 for False , 0×01 for
True .
|
|||
TYPE_STRING =
Represented as 3 bytes + len(String): 1 byte 0×02 , then
a UTF8 string, including the top two bytes representing string length
as a int .
|
|||
TYPE_OBJECT =
Represented as 1 byte, 0×03 , then pairs of UTF8 string,
the key, and an AMF element, ended by three bytes, 0×00
0×00 0×09 .
|
|||
TYPE_MOVIECLIP =
MovieClip does not seem to be supported by Remoting. |
|||
TYPE_NULL =
1 single byte, 0×05 indicates null.
|
|||
TYPE_UNDEFINED =
1 single byte, 0×06 indicates null.
|
|||
TYPE_REFERENCE =
When an ActionScript object refers to itself, such this.self =
this , or when objects are repeated within the same scope (for
example, as the two parameters of the same function called), a code
of 0×07 and an int , the reference number,
are written.
|
|||
TYPE_MIXEDARRAY =
A MixedArray is indicated by code 0×08 , then a Long
representing the highest numeric index in the array, or 0 if there
are none or they are all negative.
|
|||
TYPE_OBJECTTERM =
|
|||
TYPE_ARRAY =
An array is indicated by 0x0A , then a Long for array
length, then the array elements themselves.
|
|||
TYPE_DATE =
Date is represented as 00x0B , then a double, then an
int .
|
|||
TYPE_LONGSTRING =
LongString is reserved for strings larger then 2^16 characters long. |
|||
TYPE_UNSUPPORTED =
Trying to send values which don’t make sense, such as prototypes, functions, built-in objects, etc. |
|||
TYPE_RECORDSET =
Remoting Server -> Client only. |
|||
TYPE_XML =
The XML element is indicated by 00x0F and followed by a
LongUTF containing the string representation of the XML object.
|
|||
TYPE_TYPEDOBJECT =
A typed object is indicated by 0×10 , then a UTF string
indicating class name, and then the same structure as a normal
0×03 Object.
|
|||
TYPE_AMF3 =
An AMF message sent from an AVM+ client such as the Flash Player 9 may break out into AMF3 mode. |
Imports: datetime, types, copy, pyamf, util
|
A helper function to encode an element into the AMF0 format.
|
|
TYPE_MOVIECLIPMovieClip does not seem to be supported by Remoting. It may be used by other AMF clients such as SharedObjects.
|
TYPE_MIXEDARRAYA MixedArray is indicated by code
|
TYPE_OBJECTTERMSee Also: TYPE_OBJECT
|
TYPE_ARRAYAn array is indicated by
|
TYPE_DATEDate is represented as
|
TYPE_LONGSTRINGLongString is reserved for strings larger then 2^16 characters long. It is represented as
|
TYPE_UNSUPPORTEDTrying to send values which don’t make sense, such as prototypes,
functions, built-in objects, etc. will be indicated by a single
|
TYPE_RECORDSETRemoting Server -> Client only.
|
TYPE_XMLThe XML element is indicated by
|
TYPE_TYPEDOBJECTA typed object is indicated by
|
TYPE_AMF3An AMF message sent from an AVM+ client such as the Flash Player 9 may break out into AMF3 mode. In this case the next byte will be the AMF3 type code and the data will be in AMF3 format until the decoded object reaches it’s logical conclusion (for example, an object has no more keys).
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Mon Sep 7 23:17:40 2009 | http://epydoc.sourceforge.net |


Back to Tips
Title Insurance Requirements for Insuring Trusts
In today’s world of busy probate courts and exorbitant death taxes, the
living trust has become a common manner of holding title to real
property. The following may help you understand a few of the
requirements of the title insurance industry if title to property is
conveyed to the trustee of a living trust.
What is a trust?
An agreement between a trustor and trustee for the trustee to hold title
to and administer designated assets of the trustor for the use and
benefit of one or more beneficiaries.
Can a trust itself acquire and convey interests in real property?
No. The trust is an arrangement between a trustee and the trustor. Only
the trustee, on behalf of the trust, may own and convey any interest in
real property. The trustee may only exercise the powers granted in the
trust.
What will the title company require if a trustee holds the title to the
property which is part of the trust?
A certification of trust containing the following information:
- Date of execution of the trust instrument,
- Identity of the trustor and trustee,
- Powers of the trustee,
- Identity of person with power to revoke trust, if any,
- Signature authority of the trustees,
- Manner in which title to the trust assets should be taken,
- Legal description of any interest in the property held by the trust, and
- A statement that the trust has not been revoked, modified, or amended in
any manner which would cause the certification to be incorrect and that
the certification is being signed by all currently acting trustees of
the trust
My trust contains certain amounts of money to be given to various
charities which is none of your business. Can I omit these pages?
Because many different provisions may be on the same page, the answer
must be no -- but if the title company requires a copy of the trust, it
may accept a copy with those amounts blacked out.
If there is more than one trustee, can just one sign?
Maybe. The trust must specifically provide for less than all to sign.
Can the trustee give someone a power-of-attorney?
Only if the trust specifically provides for the appointment of an
attorney-in-fact.
What will the title company require if all the trustees have died or are
unwilling to act?
If the trustor is not able to do so, or the trust provisions prohibit
the trustor from appointing a new trustee, the court may do so.
How does a notary acknowledge the signature of the trustee?
Title is vested in the trustee. Hence, if the trustee is an individual
or a corporation, then the new general form of acknowledgment will be
prepared to reflect the intrinsic nature of the trustee.
How would the deed to the trustee ordinarily be worded to transfer title
to the trustee?
“John Doe and Mary Doe, as trustees of the Doe family trust, under
declaration of trust dated January 1,1992.”
Are there any limitations on what a trustee may do?
Yes, the trustee is limited principally and most importantly by the
provisions of the trust and, thus, may only act within the terms of the
trust. The probate code contains general powers which, unless limited by
the trust agreement, are sufficient for title insurers to rely on for
sale, conveyance, and refinance purposes.
Article by CLTA
Back to Tips


Package Frames contains type definitions and functions to transform rotational frame quantities. The basic idea is to hide the actual definition of an orientation in this package by providing essentially type Orientation together with functions operating on instances of this type.
In the table below an example is given for every function definition. The used variables have the following declaration:
Frames.Orientation R, R1, R2, R_rel, R_inv; Real[3,3] T, T_inv; Real[3] v1, v2, w1, w2, n_x, n_y, n_z, e, e_x, res_ori, phi; Real[6] res_equal; Real L, angle;
| Function/type | Description |
|---|---|
| Orientation R; | New type defining an orientation object that describes the rotation of frame 1 into frame 2. |
| res_ori = orientationConstraint(R); | Return the constraints between the variables of an orientation
object (shall be zero). |
| w1 = angularVelocity1(R); | Return angular velocity resolved in frame 1 from orientation object R. |
| w2 = angularVelocity2(R); | Return angular velocity resolved in frame 2 from orientation object R. |
| v1 = resolve1(R,v2); | Transform vector v2 from frame 2 to frame 1. |
| v2 = resolve2(R,v1); | Transform vector v1 from frame 1 to frame 2. |
| v2 = resolveRelative(v1,R1,R2); | Transform vector v1 from frame 1 to frame 2 using absolute orientation objects R1 of frame 1 and R2 of frame 2. |
| D1 = resolveDyade1(R,D2); | Transform second order tensor D2 from frame 2 to frame 1. |
| D2 = resolveDyade2(R,D1); | Transform second order tensor D1 from frame 1 to frame 2. |
| R = nullRotation() | Return orientation object R that does not rotate a frame. |
| R_inv = inverseRotation(R); | Return inverse orientation object. |
| R_rel = relativeRotation(R1,R2); | Return relative orientation object from two absolute orientation objects. |
| R2 = absoluteRotation(R1,R_rel); | Return absolute orientation object from another absolute and a relative orientation object. |
| R = planarRotation(e, angle, der_angle); | Return orientation object of a planar rotation. |
| angle = planarRotationAngle(e, v1, v2); | Return angle of a planar rotation, given the rotation
axis and the representations of a vector in frame 1 and frame 2. |
| R = axisRotation(axis, angle, der_angle); | Return orientation object R to rotate around angle along axis of frame 1. |
| R = axesRotations(sequence, angles, der_angles); | Return rotation object to rotate in sequence around 3 axes.
Example: R = axesRotations({1,2,3},{pi/2,pi/4,-pi}, zeros(3)); |
| angles = axesRotationsAngles(R, sequence); | Return the 3 angles to rotate in sequence around 3 axes
to construct the given orientation object. |
| phi = smallRotation(R); | Return rotation angles phi valid for a small rotation R. |
| R = from_nxy(n_x, n_y); | Return orientation object from n_x and n_y vectors. |
| R = from_nxz(n_x, n_z); | Return orientation object from n_x and n_z vectors. |
| R = from_T(T,w); | Return orientation object R from transformation matrix T and its angular velocity w. |
| R = from_T2(T,der(T)); | Return orientation object R from transformation matrix T and its derivative der(T). |
| R = from_T_inv(T_inv,w); | Return orientation object R from inverse transformation matrix T_inv and its angular velocity w. |
| R = from_Q(Q,w); | Return orientation object R from quaternion orientation object Q and its angular velocity w. |
| T = to_T(R); | Return transformation matrix T from orientation object R. |
| T_inv = to_T_inv(R); | Return inverse transformation matrix T_inv from orientation object R. |
| Q = to_Q(R); | Return quaternion orientation object Q from orientation object R. |
| exy = to_exy(R); | Return [e_x, e_y] matrix of an orientation object R, with e_x and e_y vectors of frame 2, resolved in frame 1. |
| L = length(n_x); | Return length L of a vector n_x. |
| e_x = normalize(n_x); | Return normalized vector e_x of n_x such that length of e_x is one. |
| e = axis(i); | Return unit vector e directed along axis i |
| Quaternions | Package with functions to transform rotational frame quantities based on quaternions (also called Euler parameters). |
| TransformationMatrices | Package with functions to transform rotational frame quantities based on transformation matrices. |
| Name | Description |
|---|---|
| Orientation | Orientation object defining rotation from a frame 1 into a frame 2 |
| orientationConstraint | Return residues of orientation constraints (shall be zero) |
| angularVelocity1 | Return angular velocity resolved in frame 1 from orientation object |
| angularVelocity2 | Return angular velocity resolved in frame 2 from orientation object |
| resolve1 | Transform vector from frame 2 to frame 1 |
| resolve2 | Transform vector from frame 1 to frame 2 |
| resolveRelative | Transform vector from frame 1 to frame 2 using absolute orientation objects of frame 1 and of frame 2 |
| resolveDyade1 | Transform second order tensor from frame 2 to frame 1 |
| resolveDyade2 | Transform second order tensor from frame 1 to frame 2 |
| nullRotation | Return orientation object that does not rotate a frame |
| inverseRotation | Return inverse orientation object |
| relativeRotation | Return relative orientation object |
| absoluteRotation | Return absolute orientation object from another absolute and a relative orientation object |
| planarRotation | Return orientation object of a planar rotation |
| planarRotationAngle | Return angle of a planar rotation, given the rotation axis and the representations of a vector in frame 1 and frame 2 |
| axisRotation | Return rotation object to rotate around an angle along one frame axis |
| axesRotations | Return fixed rotation object to rotate in sequence around fixed angles along 3 axes |
| axesRotationsAngles | Return the 3 angles to rotate in sequence around 3 axes to construct the given orientation object |
| smallRotation | Return rotation angles valid for a small rotation and optionally residues that should be zero |
| from_nxy | Return fixed orientation object from n_x and n_y vectors |
| from_nxz | Return fixed orientation object from n_x and n_z vectors |
| from_T | Return orientation object R from transformation matrix T |
| from_T2 | Return orientation object R from transformation matrix T and its derivative der(T) |
| from_T_inv | Return orientation object R from inverse transformation matrix T_inv |
| from_Q | Return orientation object R from quaternion orientation object Q |
| to_T | Return transformation matrix T from orientation object R |
| to_T_inv | Return inverse transformation matrix T_inv from orientation object R |
| to_Q | Return quaternion orientation object Q from orientation object R |
| to_vector | Map rotation object into vector |
| to_exy | Map rotation object into e_x and e_y vectors of frame 2, resolved in frame 1 |
| axis | Return unit vector for x-, y-, or z-axis |
| Quaternions | Functions to transform rotational frame quantities based on quaternions (also called Euler parameters) |
| TransformationMatrices | Functions for transformation matrices |
| Internal | Internal definitions that may be removed or changed (do not use) |


|
|
Demonstrates:
**open the browser console**
- Handling and logging to console the names and arguments of grid events as they happen.
- Click around in the grid to see what events fire.
- onScroll and some other common events were muted so they don't clog the display, but you can easily turn logging for those back on.
|


When distinguishing breed from type, the rule of thumb is that a breed always "breeds true". Dogs are the most variable mammal on earth, with artificial selection producing around 450 globally recognized dog breeds. These breeds possess distinct traits related to morphology, which include body size, skull shape, tail phenotype, fur type, and coat colour. Their behavioural traits include guarding, herding, and hunting, and personality traits such as hypersocial behavior, boldness, and aggression. Most breeds were derived from small numbers of founders within the last 200 years. As a result, today dogs are the most abundant carnivore species and are dispersed around the world.


Bed Requests
Request received during COVID19
{% include "covid-19/partials/recentBedRequest.html" %}
{% include "covid-19/partials/RecentPlasmaRequests.html" %}
{% include "covid-19/partials/otherRequestFood.html" %}
{% include "covid-19/partials/otherRequestOxygen.html" %}
{% include "covid-19/partials/otherRequestCremation.html" %}
{% include "covid-19/partials/otherQuarantineRequest.html" %}
{% include "covid-19/partials/otherRequestOther.html" %}


CommentsEnabling this option allows users to leave comments on items that have been upvoted. To make this work, you must have the Community Wall feature installed
Allow Status UpdateSpecify who has permission to mark items as completed
Allow New Item Push NotificationSpecify who should receive push notifications whenever a new item is created
Default Item Sorting
Hide Completed ItemsSet the time interval for removing completed items from the list.
In-App PurchaseIf you intend to charge users for voting, please select a product to enable In-App Purchases. The PWA version is not supported, and voting will be disabled on the PWA.


Time Series Simulation View¶
The Simulation View is a line plot, where each line represents an ensemble member. The X axis is the shared range of temporal values between simulations, and the Y axis is the time series variable value. The lines are color-coded by using the value of a selected scalar variable (see Color-Coding Lines) to potentially reveal correlations between inputs and groups of similar output plots, as demonstrated by the examples of the previous section.
Line visibility in the Simulation View is controlled by selecting nodes and subtrees within the dendrogram (see Dendrogram View). Moving the mouse over the line plots, Slycat™ interactively provides feedback showing which line is being pointed at through a combination of highlighting the focus line and dimming all the other lines. Left-clicking on the line selects the simulation in all views, highlighting the sparkline next to the associated subtree in the dendrogram, highlighting the line in the line plot, and highlighting the associated row in the table. Multiple lines can be selected using control-click to toggle the selection state of lines (i.e. holding the control key while clicking adds unselected lines to the selection set, or removes previously selected lines from the set). Control-click selection is available in all three views, operating on sparklines, line plots, or table rows. To clear the current set of selections, click in the background of the Simulation View in any area away from the lines.
Color-Coding Lines¶
The first time a model is rendered, the lines are colored by their index number. There are two mechanisms for changing the variable selected for the color-coding: clicking on the column header in the Variable Table or selecting a variable from the Line Color dropdown list. Irrespective of the interface used, changing the color-mapping variable will lead to changes in all three views and the legend, including: recoloring the line plot using the new variable’s values, coloring the cell backgrounds in that variable’s table column, returning the cell backgrounds of the previously selected variable’s column to the default color (green, lavender, or white depending on whether the variable is an input, output, or neither), recoloring any sparklines that are leaf nodes in the dendrogram, and relabeling and redefining the value range in the Legend (see below).
Legend¶
To the right of the line plot is the Legend. The Legend is in its own view, which can be resized or closed altogether. The Legend displays information about the current color-coding variable, including its name, range of values, and the mapping between values and colors. The color palette is defined by the current theme (see Color Themes).


Next: The Version part of a Logical Pathname Namestring, Previous: The Directory part of a Logical Pathname Namestring, Up: Syntax of Logical Pathname Namestrings
The type of a logical pathname for a source file is "LISP". This should be translated into whatever type is appropriate in a physical pathname.


int
long
Example: Long l = (long)42;
Long l = (long)42;
After the quick-fix is applied, the result looks like this:
Long l = 42L;


Just recently I aquired for the first time half a gram of 2,5-dimethoxy-4-ethyl-phenethylamine. I decided to go with a not too high dosage for my first trial, to make sure that I could handle it. Just to make this brief, this was one of the most visually exciting substances that i've ever taken. I took it at night, and the most profound visual effect was of being outside, and it looking like there were shooting stars everywhere! The colors were magnificent, with reds and yellows flowing everywhere. I did not have much *cosmic* insight, but just a wonderful time. It was an amazing experience. I had no body load, and just felt fantastic the whole time.
It lasted a total of around 10 hours, and I came off of the peak very gradually. No nausea was experienced, but that might have been because I ingested 25mg of Dramamine II right after ingesting the drug. Also, I believe that a great aspect of this substance was the total lack of any negative side effects. All I experienced was pure dream world ecstacy. Music was also amazing, especially trance. All in all, this was a fantastic experience that I definately do intend to repeat, and at a bit higher dosage! Safe and happy voyages to all you psychonauts:)
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


May 2019 - February 2020
{{ partial "badges/elixir.html"}} {{ partial "badges/docker.html"}} {{ partial "badges/ruby.html"}} {{ partial "badges/ansible.html"}} {{ partial "badges/go.html"}} {{ partial "badges/postgresql.html"}} {{ partial "badges/rabbitmq.html"}}
After being working for a tiny startup for almost three years I wanted to try some kind of bigger company and continue working with Elixir. That's why I decided to join Derivco which is the company that with more that 4.000 workers around the world is Software provider for Betway, one of the bigger sportbook around the world.
At Derivco I was part of the Core team in charge of develop and mantain serveral service in Ruby, Elixir and Golang.


Toggle navigation
Medical Collaboration
Dashboard
Patients
Staff
About
Contact
Patient
Add
Username
Settings
Profile
Logout
<< Prev
Today
Next >>
View Demo
Year
Month
Week
Day
2013
To see example with events navigate to march 2013
×
Create a new event


About Hidden Gems
We are developing Hidden Gems Travel App to help you find off-the-beaten-path tourist destinations that fit your needs and location.
We here at QuaraTeam find that when traveling we desire to see the lesser known parts of the world.
Hidden Gems searches for sights and experiences that fit your needs.
Our filtering based on activity type, age/family friendliness, accessibility and cost filters.
You can also befriend other users on the platform to stay on top of their latest and greatest adventures.
Be sure you will find the best and most relevant travel activities every time you log in to our app.


{% extends 'post_office/base_email.html' %} {% block subject %} Please activate your account {% endblock %} {% block body %}
Hi {{ user.username }},
Please click on the link below to confirm your registration


You will need the following sofwares to customize this template.
If you are able to read this documentation locally, which means you have successfully downloaded the package and extracted the zip. The file structure as follows :
Transport/ ├── documentation/ ├── template/ │ ├── components/ │ ├── css/ │ ├── images/ │ ├── js/
The folder you have to customize is the HTML folder. Copy Template folder from the package and paste it in your Project Folder. (This helps you to prevent overwriting in original files. so if you messed up something, you will get the original here.)
The next step is to choose your prefereed layout. We have created many versions of Homepages and subpages. You don't need these 100+ HTML for production. You can only use the pages you really need for your website. Once you finalized the homepage, don't forget to rename it as index.html. Same way you can rename other subpages like services, about etc.. But make sure its also changed inside the Menu in the HTML file.
Transport uses a Bootstrap 3 Grid System with 12 columns. Here's an example of how to use columns to easity create & edit sections. A section will contain a container, row and multiple col-* classes. Please see official Bootstrap Docs to learn more.

 YOUR CONTENT GOES HERE

or, you can use the grid system with 2 columns.


#{extends 'main.html' /}
#{set title:'Home' /}
This is text for anyone.
#{security.roleRequired roles: ['ADMIN']}
This is secured content for admin
#{/security.roleRequired}
#{security.anyRole}
This is content for logged user
#{/security.anyRole}
#{security.access contextObject: new model.Document(), accessTypes: [security.annotation.Access.AccessType.WRITE]}
Link to add document
#{/security.access}
#{security.roleRequired roles: ['ADMIN', 'USER']}
This is shared content for admin and user
#{/security.roleRequired}


My name is Ryan Culton, I am a web developer from Los Angeles, California, and am currently working in React, MongoDB, Express, Node.js, HTML, CSS, Javascript, Git, Github and JQuery. I used to be tech support for a small party business which specialized in multimedia experiences. Being the main tech support employee for that business taught me to communicate effectively with non-technical people about their needs, and communicating those needs to other non-technical people. I am currently working on a React app to act as an assistant for a video game. The game's objective is to find some specific items, and the app itself will be used to track what items have been found, along with keep a record of item sources based on the game's seed, as provided by the player.


with two .csv files, get the rows from file B where the value from the first column matches those in file A
you can upload two files: the first (file A) is the short (and possibly outdated) list of products that you created. the second file (file B) is the larger price sheet with all the products and possibly new prices. this script will collect all the values from the first column in file A and then go through all the rows in file B and check if the value in the first column is the same as a value from the first column in file A; and if they are the same, will return the row. so you will end up with the rows in file B that have the same value in the first column (the assumption is that's the UNF identifier, so any two files you upload you need to make sure the value in the first column can match).
\ ゜ o ゜)ノ


Inner Center
Inner West
Inner East
Inner North
Inner South
Middle West
Middle East
Outer West
Outer East
Outer North
Outer South


**MarkEdit Basic Demo** [Lorem Ipsum][1] is simply dummy text of the printing and typesetting industry. // MarkEdit for the win! $('textarea').markedit(); [1]: http://www.lipsum.com/


"An ever growing source of microclimate data"
Community Collaborative Temperature (CoCo Temp) project is the collaboration of volunteers who
aim to map and record microclimate data. Our mission is to provide meaningful insight of the
environment around homes and cities, for the purpose of education and research. This is
accomplished through the use of simple and inexpensive tools, in conjunction with public, interactive
sources of data.
If you are interested in joining the CoCo Temp team, the only requirement to participate is zest
for climatology. In turn, you will be able to help us learn the impacts of weather on our daily lives.
To get started, create an account then follow the getting started
guide.


jQuery File Upload Plugin
Demo
Demo File Upload
Description
File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery.
Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
Setup
Features
- Multiple file upload:
Allows to select multiple files at once and upload them simultaneously.
- Drag & Drop support:
Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.
- Upload progress bar:
Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
- Cancelable uploads:
Individual file uploads can be canceled to stop the upload progress.
- Resumable uploads:
Aborted uploads can be resumed with browsers supporting the Blob API.
- Chunked uploads:
Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
- Client-side image resizing:
Images can be automatically resized on client-side with browsers supporting the required JS APIs.
- Preview images, audio and video:
A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
- No browser plugins (e.g. Adobe Flash) required:
The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
- Graceful fallback for legacy browsers:
Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
- HTML file upload form fallback:
Allows progressive enhancement by using a standard HTML file upload form as widget element.
- Cross-site file uploads:
Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
- Multiple plugin instances:
Allows to use multiple plugin instances on the same webpage.
- Customizable and extensible:
Provides an API to set individual options and define callBack methods for various upload events.
- Multipart and file contents stream uploads:
Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload).
- Compatible with any server-side application platform:
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
Requirements
Mandatory requirements
Optional requirements
The user interface of all versions except the jQuery UI version is built with Bootstrap and icons from Glyphicons.
Cross-domain requirements
Cross-domain File Uploads using the Iframe Transport plugin require a redirect back to the origin server to retrieve the upload results. The example implementation makes use of result.html as a static redirect page for the origin server.
The repository also includes the jQuery XDomainRequest Transport plugin, which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).
The XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the Demo to delete uploaded files from the cross-domain demo file upload service.
Custom Backends
You can add support for various backends by adhering to the specification outlined here.
Browsers
Desktop browsers
The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:
- Google Chrome
- Apple Safari 4.0+
- Mozilla Firefox 3.0+
- Opera 11.0+
- Microsoft Internet Explorer 6.0+
Mobile browsers
The File Upload plugin has been tested with and supports the following mobile browsers:
- Apple Safari on iOS 6.0+
- Google Chrome on iOS 6.0+
- Google Chrome on Android 4.0+
- Default Browser on Android 2.3+
- Opera Mobile 12.0+
Supported features
For a detailed overview of the features supported by each browser version, please have a look at the Extended browser support information.
Contributing
Bug fixes and new features can be proposed using pull requests.
Please read the contribution guidelines before submitting a pull request.
Support
This project is actively maintained, but there is no official support channel.
If you have a question that another developer might help you with, please post to Stack Overflow and tag your question with blueimp jquery file upload
.
License
Released under the MIT license.


{% extends "base.html" %} {% block page %}
{{ e }}
Forgot your password? Click here to reset it.
New user? Click here to sign-up.


GVK-Excelra GOSTAR
These Terms govern your use of any Excelra Gostar data on reframedb.org. Any other use of the data without the express written permission of Excelra Gostar is strictly prohibited.
- Ownership.
- The Excelra Gostar data you are accessing contains proprietary copyright material owned by Excelra Knowledge Solutions Pvt. Ltd. and its affiliates (“we”, “us”, “our” or “Excelra”) or our third party licensors. Together with our
licensors, we
maintain all ownership, tangible or intangible, of our products, services, and data.
- 'Excelra Gostar' and the product name are trade or service marks of Excelra or its affiliated companies. All other product and service names cited are trademarks of their respective owners.
- Rights of Use
- You may view and use our data for non-commercial academic and nonprofit use only. Further, if you have registered with Calibr you may also download and print our data provided you may not store content that you print or download for
longer than
12 months
- If the data is from third parties, you must also comply with any additional terms we are required to pass through to you. Please refer to our third party terms available at https://gostardb.com/gostar/subscription/eval/TermsConditions.jsp#terms.
- Display, performance, reproduction, distribution of, or creation of derivative works or improvements from the content in any form or manner is expressly prohibited, except to the extent expressly permitted by these Terms, with the
prior written
permission of Excelra. If you have questions on your use rights you should contact our Global Customer Support Center.
- Privacy. By accessing and using our data you are consenting to our receiving and using your personally identifiable information in accordance with our privacy policies. Please refer to our Privacy Statement available at https://gostardb.com/gostar/subscription/eval/TermsConditions.jsp#terms
- Warranty and Liability
- YOUR ACCESS TO AND USE OF THE EXCELRA CONTENT IS ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT ANY REPRESENTATION OR WARRANTY, INCLUDING OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS AND
CURRENTNESS.

- TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAWS, IN NO EVENT WILL EXCELRA OR ITS THIRD PARTY LICENSORS BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION DIRECT OR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
LOSSES OR EXPENSES
ARISING OUT OF ANY PROVISION OF THESE TERMS, OR THE USE OF OR INABILITY TO USE THE EXCELRA DATA, EVEN IF EXCELRA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Clarivate Integrity
These Terms govern your use of any Clarivate Analytics data on reframedb.org. Any other use of the data without the express written permission of Clarivate Analytics is strictly prohibited.
- Ownership.
- The Clarivate Analytics data you are accessing contains proprietary copyright material owned by Clarivate Analytics (US) LLC and its affiliates (“we”, “us”, “our” or “Clarivate”) or our third party licensors. Together with our
licensors, we
maintain all ownership, tangible or intangible, of our products, services, and data.
- 'Clarivate Analytics' and the product name are trade or service marks of Clarivate or its affiliated companies. All other product and service names cited are trademarks of their respective owners.
- Rights of Use
- You may view and use our data for non-commercial academic and nonprofit use only. Further, if you have registered with Calibr you may also download and print our data provided you may not store content that you print or download for
longer than
12 months
- If the data is from third parties, you must also comply with any additional terms we are required to pass through to you. Please refer to our third party terms available at http://terms.clarivate.com.
- Display, performance, reproduction, distribution of, or creation of derivative works or improvements from the content in any form or manner is expressly prohibited, except to the extent expressly permitted by these Terms, with the
prior written
permission of Clarivate. If you have questions on your use rights you should contact our Global Customer Support Center.
- Privacy. By accessing and using our data you are consenting to our receiving and using your personally identifiable information in accordance with our privacy policies. Please refer to our Privacy Statement available at http://terms.clarivate.com
- Warranty and Liability
- YOUR ACCESS TO AND USE OF THE CLARIVATE CONTENT IS ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT ANY REPRESENTATION OR WARRANTY, INCLUDING OF PERFORMANCE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS AND
CURRENTNESS.

- TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAWS, IN NO EVENT WILL CLARIVATE OR ITS THIRD PARTY LICENSORS BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION DIRECT OR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
LOSSES OR
EXPENSES ARISING OUT OF ANY PROVISION OF THESE TERMS, OR THE USE OF OR INABILITY TO USE THE CLARIVATE DATA, EVEN IF CLARIVATE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.


The Nexus IQ Chrome Extension by Sonatype is now deprecated. Please install our new Sonatype Platform Browser Extension instead. Users who rely on Sonatype OSS Index should remain on this Extension.


addNewItem
Model
Using the definition of a list stored in a model, create a new list item in SharePoint.
addNewItem(entity, [options]);
| Param | Type | Details |
|---|---|---|
| entity | object | An object that will be converted into key/value pairs based on the field definitions defined in the model. |
| [options] | object |
|
| object | A promise which when resolved will returned the newly created list item from there server. This allows us to update the view with a valid new object that contains a unique list item id. |
<file name="app/modules/project/projectsModel.js"> projectModel.addNewItem({ title: 'A Project', customer: {lookupValue: 'My Customer', lookupId: 123}, description: 'This is the project description' }).then(function(newEntityFromServer) { //The local query cache is automatically updated but //any other dependent logic can go here }; </file>