This EDMA3 Low Level Driver Release is targeted to the users (device drivers and applications) for submitting and synchronizing with EDMA3 based DMA transfers. This release supports DA830,C6748,TCI6498,TI816X,C6472,TCI6486,TI814X,TI816X,TI811X,TCI6608,TCI6616,TCI6614,C6670,C6678,TCI6638K2K,TDA2xx,TDA3xx, DRA72x, platforms, on SYS/BIOS 6 side & OMAPL138 on SYS/BIOS and ARM side. Porting instructions are also provided to use the package for different platforms and Operating Systems.
Introduction, Documentation, What's New, Upgrade Info, Device Support, Compatibility Information, Validation Info, Known Issues, Examples, Version Information, Technical Support
EDMA3 LLD is a single product package containing the following stand-alone software components:
EDMA3 Resource Manager can be used independently whereas the EDMA3 Driver requires the Resource Manager services internally.
EDMA3 LLD (both Resource Manager and the Driver) is a platform independent package. Hence it can be used across multiple platforms. Porting instructions are provided for both the components to do the same.
It is also an OS-agnostic package and thus can be used across multiple operating systems. OS-adaptation layer needs to be provided by the user (in case it is needed) for OS customization. Instructions to do the same are also provided along with the package.
The Low Level Driver has already been ported (SYS/BIOS Operating Systems) and tested on various platforms mentioned below. Sample initialization libraries, which configure the EDMA3 hardware and provide the necessary OS abstraction layer, are also a part of the package. These libraries are available both for the EDMA3 Resource Manager and EDMA3 Driver. These could be used for proper initialization of the software component(s) along with the OS adaptation layer for the same.
The Low Level Driver consists of the following packages:
Note:
The following documentation is available:
The following changes have been made since <IP_ADDRESS>:
The EDMA3 LLD packages are available in the "packages/" subdirectory of the product. If you have a previous release of the EDMA3 LLD product, you can install this release next to it, and modify your application and/or server builds to use this newer release.
This release supports and has been tested on the following devices:
Compatibility keys are intentionally independent of Marketing product numbers and are intended to:
Compatibility keys are composed of 3 comma-delimited numbers - M, S, R - where:
This release was built and validated against using the following components:
This release was validated in the following configurations:
The following are known issues with the current EDMA3 LLD release:
Pre-built instrumented EDMA3 libraries for DA830 will not be provided initially. XDC does not support the same and hence the limitation. See IR# SDOCM00036738 for more details.
Very few peripherals support EDMA3 FIFO mode. EMIF controller doesn't support the same. So EDMA3 CANNOT be used in FIFO mode for doing a memory-to-memory data transfers, EDMA3 being configured in the FIFO mode. Applications trying to use EDMA3 in FIFO mode should first check their respective peripheral-controller document for this mode support.
The PingPong example in the package fails for certain EDMA Instances for some DSP cores in Release mode only. It passes for Debug mode. See IR# SDOCM00064758 for more details.
EDMA3 LLD sample initialization libraries / OS abstraction layers (for different platforms) are located in:
EDMA3 LLD stand-alone applications (for different platforms) are located in:
This product's version follows a version format, M.mm.pp.bb, where M is a 2 digit major number, mm is 2 digit minor number, pp is a 2 digit patch number, and b is an unrestricted set of digits used as an incrementing build counter.
To support multiple side-by-side installations of the product, the product version is encoded in the top level directory, ex. edma3_lld_02_12_00_XX.
Subsequent releases of patch upgrades will be identified by the patch number, ex. EDMA3 LLD 02.11.14 with directory edma3_lld_02_12_00_YY. Typically, these patches only include critical bug fixes.
For technical support, Please post at TI E2E forum http://e2e.ti.com/support/embedded/f/355.aspx
Last updated: November 23, 2018


General support queries. User Guides: https://support.komodoplatform.com/ Support staff: Angelina#6231 gcharang#6833. If you want to ask JL777 a question, use the #ask-jl777 channel.
100 messages
Before 05-Dec-19 12:00 AM
SHossain15-May-19 07:01 PM
what is your address?
SergeF15-May-19 07:03 PM
Old or new?
SHossain15-May-19 07:03 PM
if possible both
SergeF15-May-19 07:05 PM
One moment. An by the way at web wsllet the same situation
*wallet
SHossain15-May-19 07:05 PM
the point is, do you have HUSH3 in your R address that you have. please post the address or check by yourself in explorer
SergeF15-May-19 07:12 PM
In explorer at new address zero balance. Now checking old address in explorer
So at old wallet explorer say "no mayching records found!" WTF?!
SHossain15-May-19 07:22 PM
seek support in HUSH discord. invite link above
SergeF15-May-19 07:22 PM
And what for this support?
SHossain15-May-19 07:25 PM
this is not HUSH discord. you have issues with HUSH, better to use their discord as their team member can help you better on this situation
SergeF15-May-19 07:45 PM
In that chat where you send me where are no team members. I repear my question - what forvthis chat?
SHossain15-May-19 08:03 PM
First you need help with migration which they can provide. then, if you need help using Agama you can get help here. They are already answering your question in their discord.
SergeF15-May-19 08:10 PM
Already answering that they are used condoms? I download wallet from OFFICIAL site at 23.04.19. And it generate me old address. So what i must do now? Lost 3 weeks mining?
SHossain15-May-19 08:15 PM
HUSH is a different project who has their own discord and support. You have issues with HUSH > HUSH3 migration. Why don't you use HUSH discord to get support rather than using bad language there?
SergeF16-May-19 07:40 AM
Cause they are not answer. And bad words at same reason too.
I tried running komodod & from terminal, but it fails with an error related to Zcash
Error: Cannot find the Zcash network parameters in the following directory:
/home/<home-dir>/.zcash-params
Do I need to install Zcash before I'll be able to run komodod?
CHMEX16-May-19 01:13 PM
run
./zcutil/fetch-params.sh
That will download the params files ( a few gigs of data )(edited)
dukeleto16-May-19 01:14 PM
@SHossain@Cryptoon thanks for sending Hush users to the right place, much obliged
2
krtk616016-May-19 01:18 PM
@CHMEX But there's no zcutil directory. The docs say I just need 2 files, komodod and komodo-cli
CHMEX16-May-19 01:21 PM
hmm ok which docs?
you need it to run a local node
github.com/jl777/komodo/blob/master/zcutil/fetch-params.sh
Maybe download above chmod +x fetch-params.sh and run it
@Bryan_Beus ^^ please add that devs/users need to download zcash params before they can use komodod if they prefer to download pre-built binaries.(edited)
[6:41 PM] krtk6160: I tried running komodod & from terminal, but it fails with an error related to Zcash Error: Cannot find the Zcash network parameters in the following directory: /home//....
Bryan_Beus16-May-19 04:36 PM
@SHossain
Happy to do so.
Can you please show me where specifically the error in the docs is found, and give me a general idea of what needs to change?
For example, do we need to say that users should download the Zcash params separately? Or will the pre-built binaries invite the user to download the params, and they must click 'yes'? etc.(edited)
Yep, I could see them. They were great. Thank you.
I changed a few formatting things, like adding some headers etc. Nothing big.
Pushed to master already. I think we're good. Thanks!
2
SHossain16-May-19 08:17 PM
thanks
wookie16-May-19 10:48 PM
I'm installing komodod on a vps, it's been a few hours and I'm not sure if it's close to done. If I interrupt my ssh connection for 20 minutes from my laptop while I commute home, will the installation on the vps be interrupted?
SHossain16-May-19 10:51 PM
maybe interrupted. use screen. so you can detach the session
and re-attach when you are at home
wookie16-May-19 10:52 PM
how do I do that? It's in the middle of installation
nm
I just not got this error:
cp "bin.v2/libs/test/build/gcc-gnu-5.4.0/release/link-static/threadapi-pthread/threading-multi/libboost_prg_exec_monitor.a" "stage/lib/libboost_prg_exec_monitor.a"
packet_write_wait: Connection to <IP_ADDRESS> port 4343: Broken pipe
it was stuck on copying the above file for a loooong time
SHossain16-May-19 10:57 PM
your ssh connection broken
Pixelised17-May-19 09:40 AM
Apologies to bring this up. I'm just a fellow member of the Hush community.
@SergeF, I don't know how you can claim to download an old version of the Hush wallet on the 23/4/19. I made the suggestion to the Hush team to remove all links to all old Hush files on the 20th so as not to confuse those that are newbies.
If you check the Hush github repository, the website had been updated almost straight away.
You also failed to read the "News" page on the Myhush website that was very clear what was going to happen regarding Hush > Hush3 upgrade. This was posted months prior to the upgrade.
As for your claims that nothing was on the "main" page of the Hush website. Please scroll to the section on their website labelled "News" or click on the red "News" link at the top menu.

It was clear that the Sapling upgrade will mean public Hush addresses will start with an R.
If you somehow incorrectly downloaded an old version of the Hush swing wallet and generated a t1 address and mined to it using the old Hush blockchain after all the information provided, then that mistake was on your part unfortunately.
 Instead of place tnis information ON TOP OF MAIN PAGE!!!(edited)
And i'm by they words is guilty that they give me they hushitcoin wallet from they official site(edited)
Pixelised17-May-19 09:55 AM
They didn't give it to you. You downloaded the old version. Like I said before, there's a nice red link "News" at the top of the myhush page.
Cheers,
Bye.
SergeF17-May-19 09:58 AM
Yeah. I'm gilty that i download hushitcoin wallet from they OFFICIAL SITE.
By this hushitcoin. They are best!
smk762 - dracocanis ominator17-May-19 10:01 AM
@SergeF This is not an appropriate place to be speaking the way you are.
SergeF17-May-19 10:02 AM
From 18$ to 0.08$. Best choice!
I'm sorry dudes. But they angered me so much!
CHMEX17-May-19 10:05 AM
I did not read the whole conversation but if you bought at 18 and stored it on a address you have the seed to then they are on the new chain
Pixelised17-May-19 10:07 AM
Mined to a public t1 address for three weeks, after the snapshot at 500,000.
smk762 - dracocanis ominator17-May-19 10:07 AM
which pool is still running old HUSH?
SergeF17-May-19 10:08 AM
I don't buy this shitcoin. Read my messages higher. 18 to 0.08 is a marker of coin quality
List of known Hush pools (HUSH) Equihash PoW algorithm. Live hashrate distribution, pool fees & minimum payment comparison. Mining Pools & Block Explorer
SergeF17-May-19 10:10 AM
@smk762 - dracocanis ominator at what here pool? I download fake wallet from they official site. Do you reat that i wrote higher?
If i download normal wallet i can't mine to wrong address.
smk762 - dracocanis ominator17-May-19 10:12 AM
if you mine on updated pool, cant mine to wrong address either. I'd like to try and make sure the pools not updated dont let other people make the same mistake
Hush wallet issues need to be dealt with in HUSH discord or #hush
but realisitcally, if you were mining a depracted fork vs mining the updated chain, your block reward count would be significantly lower because deprecated chain would have minimal hashrate(edited)
SergeF17-May-19 10:15 AM
Did you read that i wrote?
Did you read that i wrote?
I can repeat if you can't understand at first time.

Yeah. I'm gilty that i download hushitcoin wallet from they OFFICIAL SITE.
smk762 - dracocanis ominator17-May-19 10:20 AM
I read what you wrote yesterday, and after some support was given you were referred to HUSH discord. I understand you are upset, but I'm not sure what you think we can do about it or why this is the place to post
SergeF17-May-19 10:22 AM
If you can see not i renew this talk, realy?
smk762 - dracocanis ominator17-May-19 10:23 AM
this is the Komodo support channel. HUSH is a third party project using DPoW. We do not control HUSH. We can not offer any support.
SergeF17-May-19 10:24 AM
I just warn anybody to use this hushitcoin
smk762 - dracocanis ominator17-May-19 10:25 AM
I think you have made your point. Please restrain yourself from flooding this channel.
SergeF17-May-19 10:27 AM
So you are strange... Did you read that i wrote?
Or you cant understand at first time?
Ok. I repeat. If you can see not i renew this talk.
Isn't it?
So why you claim to me?
But i see that you protect hushitcoin. It seems that you cover this scam. Ok. Good luck
krtk616017-May-19 11:08 AM
Is there a proper way to close the komodod daemon? Everytime I close it by pressing Ctrl+C /Ctrl+Z/typing exit etc I can't restart it. It fails saying a lock over the .komodo directory cannot be acquired.
After that if I delete the .lock file, it fails with a different error.
I have to delete the entire .komodo directory, and that causes me to re-download the entirety of the chain again.
SHossain17-May-19 11:09 AM
for KMD ./komodo-cli stop
for assetchains ./komodo-cli -ac_name=COIN stop
krtk616017-May-19 11:10 AM
Okay, thanks
SHossain17-May-19 11:12 AM
if you don't close komodod properly, it will corrupt database. then, you either need to reindex or resync
krtk616017-May-19 11:14 AM
also, is there no way to test an assetchain on a single node (something like ganache for ethereum). I know the docs say we need 2 nodes, but was wondering if there's still a way
SHossain17-May-19 11:20 AM
-testnode=1 will allow you to run a network with a single node for testing.(edited)
krtk616017-May-19 11:25 AM
Okay I'll try that, thanks
RunningMantheCoin17-May-19 12:04 PM
Had to kick that Serge guy from our channel. We tried to help him but he continued to be extremely rude. My apologies, I didn’t realize he’d come here to complain as well


Types of Sorghum
Pearled sorghum grain is any sorghum that has been through a milling process to remove the pericarp. It can be used in place of rice and pasta and is excellent in salads.
Sorghum bran is a delicious, easy way to add fiber to your diet. Available in burgundy, black or sumac, sorghum bran is rich in antioxidants and has a high ORAC value.
White pearled grain sorghum flour is made from decorticated sorghum. Light in color and neutral in flavor, white sorghum flour works exceptionally well when baking pastries.
Whole grain sorghum flour is ground from tan/white sorghum. It is an ideal, gluten-free option for baked food products including breads, muffins, pizzas, pastas, cookies, cakes and more. It’s neutral, sometimes sweet, flavor and light color make it easily adaptable to a variety of dishes.
Sorghum syrup has been used as a sweetener in the U.S. since the 1850’s. It is a great addition to your breakfast table.
Popped sorghum looks like miniature kernels of popped corn without the hull. It’s a simple snack the kids will love.
Flaked sorghum makes an excellent addition to breakfast cereals, energy bars, cookies and granola snacks.


Graphic Designer based in London, UK. Interested in communication and change. Get in touch for potential projects and collaborations. Email.
For archived visual oddities check the BLOG and follow the INSTAGRAM.
Work featured on I_D and ItsNiceThat.


Hangman Game
Guess one Character:
Correct guess so far:
System feedback
System:
Console output:
Draw Hangman


Total number of results: {{complexSearch.totalNumberOfResults}}
No Complex Portal results found
We're sorry but we couldn't find anything that matched your search for: {{query}}
Please consider refining your terms:
- Make sure all words are spelled correctly
- Try different keywords
- Be more precise: use gene or protein IDs, e.g. Ndc80 or Q04571
- Remove quotes around phrases to search for each word individually. bike shed will often show more results than
"bike shed"


--- post_id: /p2p-seminar-kudk date: 2007-10-14 17:58 return_url: '2007-10-12-p2p-seminar-kudk.html' name: 'monki' email<EMAIL_ADDRESS>comment: '
Also worth noting is that Bauwens concept of p2p production refers to planned, framed, projects with formalised rules, defined structures of authority and strong social ties. Most empirical examples of the p2p dynamic will probably be more "dirty" and spontaneous, entangled with other forms of organization and hierarchies.
' ---


Using TextKit output of just the verbs (plus some cleanup in a local stopwords file) and Jason Davies' D3 wordcloud d3.layout.cloud.js. Draws simple bars with dimple.js.


|
|
VTL referencePlain keywords represent actual names of properties or methods, while keywords in italic stand for user variables and indicate their type. The r and w tags mean that an attribute is readable and/or writable (in the sense of the Velocity template language, i.e. an attribute is read by referencing it, and modified using the #set directive). All methods that take a 1. Database attributes and methods$db.entity_name r : entity.
$db.root_attribute_name r : root attribute or root action. The value of an action is the number of affected rows.
$db.error r : last error message encountered. We generally know that an error has occured when one of the methods returns null or false.
2. Entity attributes and methods$entity.fetch(values_list) : returns the instance defined by the values of its primary key columns, or null otherwise.
$entity.fetch(value) : returns the instance defined by the value of its unique primary key, or null otherwise.
#foreach
($instance in $entity) : loop on all
(or a subset of - if refined) instances of this
entity.
$entity.refine("sql-condition") : use this method to specify an additionnal SQL condition before issuing a #foreach directive on this entity. Can be called several times. Reseted in every context.
$entity.clearRefinement( ) :
clear any refinement clauses for this entity $entity.update(values_map) : update a row in this entity's table. Velosurf will ensure all key columns are specified, to avoid an accidental massive update.
$entity.delete(values_map) : delete a row from this entity's table. Velosurf will ensure all key columns are specified, to avoid an accidental massive delete.
$entity.insert(values_map) : insert a new row in this entity's table.
$entity.lastInsertID :
last inserted ID, for entities with only one primary key column,
autoincremented. 3. Attribute attributes and methodsOnly multivalued attributes can be referenced from
templates. Others are directly evaluated when
referenced. 4. Action attributes and methodsAn action has no attribute and no method. It is executed when referenced, and returns the number of affected rows. 5. Instance attributes and methods$instance.entity r
: the name of this instance's entity, or null if it's a generic
instance.
The writable form of the previous attribute, as long as the following methods, are not advised in a MVC architecture. $instance.update(values_map)
: update the row of this instance, from passed values. Velosurf
will ensure all key columns are specified, to avoid an accidental
massive update. |


Used Car Price Prediction
When did you buy this car?
What is the Current Showroom Price of the Car?(In Lakhs)
Maximum Power of the car(In BHP)?
Engine Capacity of the car(in CC)?
How Many Kilometers have you driven with this car?
What is Mileage of the car(in KMpl)?
How many seats are there, in the car?
How many gear ratio are in the car?
Are You the First Owner?
First Owner
Second Owner
Third Owner
Forth Owner & Above
What Is the Fuel type?
Petrol
Diesel
CNG
Electric
Are you A Dealer or Individual?
Dealer
Individual
Transmission type
Manual
Automatic
Calculate the Selling Price
{{ prediction_text }}


#include <networking.h>
Definition at line 13 of file networking.h.
◆ Networking()
| Networking::Networking |
( |
String |
config_path | ) |
|
◆ check_connection()
| void Networking::check_connection |
( |
| ) |
|
|
protected |
◆ get_config_schema()
| String Networking::get_config_schema |
( |
| ) |
|
|
overridevirtual |
◆ get_configuration()
| JsonObject & Networking::get_configuration |
( |
JsonBuffer & |
buf | ) |
|
|
finaloverridevirtual |
Returns the current configuration data as a JsonObject. In general, the current state of local member variables are saved to a new object created with JsonBuffer::createObject() and returned.
Reimplemented from Configurable.
Definition at line 91 of file networking.cpp.
◆ get_hostname()
◆ reset_settings()
| void Networking::reset_settings |
( |
| ) |
|
◆ set_configuration()
| bool Networking::set_configuration |
( |
const JsonObject & |
config | ) |
|
|
finaloverridevirtual |
Sets the current state of local member variables using the data stored in config.
Reimplemented from Configurable.
Definition at line 97 of file networking.cpp.
◆ set_hostname()
| void Networking::set_hostname |
( |
String |
hostname | ) |
|
◆ setup()
| void Networking::setup |
( |
std::function< void(bool)> |
connection_cb | ) |
|
The documentation for this class was generated from the following files:


Username is required, min length 5, max length 15
Email is required, max length 20
First name is required, min length 2, max length 20
Last name is required, min length 2, max length 20
Password required, min length 6, max length 20
Passwords do not match


Arcle One
Machine Deep Learning in a Nutshell
Modern machine learning methods help to make decisions and predicons from data. These covered
areas from physical science, management to ﬁnancial science and other applicaons.
Similar to CAD, Computer-Aided Design, human, uses computer for CADM, Computer-Aided Decision
Making. Modern machine learning methods are important to human endeavor by advancing human
knowledge to broader and deeper levels. Similar techniques can be applied to engineering problems, product
pricing problems, or stock trading strategy decision-making problems.
Here we go through the basics and some advanced topics in the following sequences:
1)
Predict from component factors (linear regression) as a simple ranking method.
2)
Make classiﬁcaon decisions by extending linear regression to logiscal regression.
3)
Paerns classiﬁcaon and decision makings.
4)
Common pialls. From social or physical phenomenon, digized informaon to data analysis.
For a session with the ‘challenge’ icon below, you can connually skip it without the loss of reading connually,
but it will help you understand the topic deeper for future real-life applicaons.


Legend
First Name
Last Name
E-Mail
City
State
AL
CA
IL
MD
NY
I've read the terms and conditions
Submit


Hey guys, please don't share that article too agressively, it got few inaccuraties that we want to straighten up, such as:
So, could we do anything with this blockchain? Sadly not. While we created a blockchain, to turn it into something usable, like fixing the Irish border, you need to set up your own nodes.


|
|
@@ -72,6 +72,9 @@ extension NSString : ExpressibleByStringLiteral { |
|
}
|
|
}
|
|
|
|
|
|
extension NSString : _HasCustomAnyHashableRepresentation {
|
|
extension NSString : _HasCustomAnyHashableRepresentation {
|
|
|
|
+ // Must be @nonobjc to prevent infinite recursion trying to bridge
|
|
|
|
+ // AnyHashable to NSObject.
|
|
|
|
+ @nonobjc
|
|
public func _toCustomAnyHashable() -> AnyHashable? {
|
|
public func _toCustomAnyHashable() -> AnyHashable? {
|
|
// Consistently use Swift equality and hashing semantics for all strings.
|
|
// Consistently use Swift equality and hashing semantics for all strings.
|
|
return AnyHashable(self as String)
|
|
return AnyHashable(self as String)
|
|
|
@@ -429,6 +432,9 @@ extension NSNumber |
|
}
|
|
}
|
|
|
|
|
|
extension NSNumber : _HasCustomAnyHashableRepresentation {
|
|
extension NSNumber : _HasCustomAnyHashableRepresentation {
|
|
|
|
+ // Must be @nonobjc to prevent infinite recursion trying to bridge
|
|
|
|
+ // AnyHashable to NSObject.
|
|
|
|
+ @nonobjc
|
|
public func _toCustomAnyHashable() -> AnyHashable? {
|
|
public func _toCustomAnyHashable() -> AnyHashable? {
|
|
guard let kind = _SwiftTypePreservingNSNumberTag(
|
|
guard let kind = _SwiftTypePreservingNSNumberTag(
|
|
rawValue: Int(_swift_Foundation_TypePreservingNSNumberGetKind(self))
|
|
rawValue: Int(_swift_Foundation_TypePreservingNSNumberGetKind(self))
|
|
|
@@ -1231,7 +1237,8 @@ extension NSSet { |
|
/// receiver.
|
|
/// receiver.
|
|
@objc(_swiftInitWithSet_NSSet:)
|
|
@objc(_swiftInitWithSet_NSSet:)
|
|
public convenience init(set anSet: NSSet) {
|
|
public convenience init(set anSet: NSSet) {
|
|
- self.init(set: anSet as Set)
|
|
+ // FIXME: This is a bit weird. Maybe there's a better way?
|
|
|
|
+ self.init(set: anSet as Set<NSObject> as Set<AnyHashable>)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1244,7 +1251,9 @@ extension NSDictionary { |
|
/// found in `otherDictionary`.
|
|
/// found in `otherDictionary`.
|
|
@objc(_swiftInitWithDictionary_NSDictionary:)
|
|
@objc(_swiftInitWithDictionary_NSDictionary:)
|
|
public convenience init(dictionary otherDictionary: NSDictionary) {
|
|
public convenience init(dictionary otherDictionary: NSDictionary) {
|
|
- self.init(dictionary: otherDictionary as Dictionary)
|
|
+ // FIXME: This is a bit weird.


|
I am Arghya Guha, currently I am pursuing my B.Tech in Information Technology from RCC Institute of Information and Technology. I love to code and I am also interested in Cyber Security and Ethical Hacking.


Escola Sem Muros is a program that aims to create a new model of teaching based on praxis and living social reality, and through this, build with the communities spaces of encounter, exchange, learning and local empowerment, empowering the actors involved.
Through a participative, educative and social methodology, we seek to unite the academic and empirical knowledge of the community itself to solve local problems, enabling students to create, design and build, applying their educational values as citizens in the transformation of the city.


I recently graduated from Rochester Institute of Technology with a Master of Science degree in Game Design and Development with a minor in Music and Technology.
I am passionate about creating engaging gameplay that immerses the player. I believe that strong communication is the backbone of any successful project and I love being able to work with a others to craft compelling experiences.
In my non-industry life I love playing piano, play volleyball, and juggle as I was the President of the RIT Juggling Club for three years. I also enjoy creating in general through woodworking as well as sound design!
Feel free to look at the various projects on my portfolio and let me know what you think at the email below!
johnmosserv@gmail.com


This is the kind of thing the Orlando Gunman listened to just this month.
From their spokesman, ISIS has a message to its soldiers in Europe and America. About 4 weeks ago. It’s interesting to listen to them in their own words. Not spin, not speculation, not politics. Just listen.
To be perfectly clear, I should state explicitly that I do not endorse this video. I only link to it because sunlight is the best disinfectant.


Using DI/1
This is the upcoming (3.5 – clojure) documentation – for the current stable release, read the 3.0 master documentation.
DI/1 – a.k.a Inject One – is a simple, convention-based Dependency Injection framework.
DI/1 searches specified directories for CFCs and treats them as singletons or non-singletons (transients) based on naming conventions for the CFCs themselves, or the folders in which they are found. You can override the conventions by configuration if needed.
Getting Started with DI/1
Create an instance of the DI/1 bean factory and specify the folder(s) you want it to search for beans (CFCs):
var beanFactory = new ioc("/model");
// or multiple folders:
var beanFactory = new ioc("/model,/common/model");
// or an array:
var beanFactory = new ioc(["/model","/common/model"]);
CFCs found in a folder called beans are assumed to be transients; otherwise CFCs are assumed to be singletons. If CFC names are unique, you can use that name to get the bean out of the factory:
var userManager = beanFactory.getBean("userManager");
All beans are also given an alias which is the name of the CFC followed by (the singular form of) the folder name in which it was found, e.g., /model/beans/product.cfc would get the alias “productBean”. If no other CFC is called product.cfc in the folders that you asked DI/1 to search, you can use “product” or “productBean” to reference that bean. By default, DI/1 assumes all beans are singletons unless they are found in a folder called beans (in which case DI/1 assumes those are transients). A singleton has just a single instance and DI/1 will cache that instance. A transient is created afresh every time you ask DI/1 for an instance.
If a CFC has a constructor (a method called init()), DI/1 will use the argument names to look up beans and call the constructor with those beans. If a CFC has setter methods, DI/1 will use their names to look up beans and call the setters with those beans. If a CFC has property declarations and implicit setters are enabled, DI/1 will use their names to look up beans and call the implicit setters with those beans. This is called autowiring. By the time you get a bean back from DI/1, it should be fully populated. You can also specify an “init-method” function name that DI/1 should call after a bean has had its dependencies injected – see Configuration below.
If DI/1 cannot find a matching bean for a constructor argument, it will throw an exception. If DI/1 cannot find a matching bean for a setter method or property, it will log the failure and ignore it (by default), and the corresponding variable will not be populated. You can configure DI/1 to be strict about matching bean names – see the configuration section below – in which case it will throw an exception.
Note that DI/1 will only inject singletons via setters or properties. Injecting transients in those situations often leads to unexpected results (consider a transient invoice bean that has a setCustomer() method when you also have a transient customer bean – you almost certainly don’t want DI/1 to automatically create a customer instance and inject it every time you ask DI/1 for a new invoice bean!). If a constructor argument matches a transient bean, DI/1 will still create an instance since it has to finish constructing the original bean.
Acceptable Folder Paths
In general, you should use webroot-relative folders – starting with / – or mappings – also starting with / – as the constructor arguments to ioc. If you pass a full file system path, DI/1 will only be able to deduce the dotted-name of CFCs found there if it points into the webroot tree. Similarly, if you pass a relative folder path, it must point into the webroot tree. If DI/1 cannot deduce the dotted name of a CFC, it will throw an exception.
More Advanced Usage
This section covers the rest of the public API, how to specify additional folders as containing transients, parent bean factories and bean factory injection.
Other Public Methods
Given a struct of values (such as form scope or URL scope), you can ask DI/1 to inject those values as properties into a given bean:
1 2 |
|
The first call will loop over the form scope and, for each key in that scope, call a setter on myBeanInstance. The second call asks DI/1 to create a user bean and populate it by calling a setter for each element of the struct userAttributes. You may also use a dotted-path to a CFC as the first argument in which case DI/1 will use createObject to instantiate it and will not call the constructor. Caution: DI/1 assumes you know what you’re doing and will call a setter for every member of the struct passed in!
You can programmatically add new bean instances – or named values:
1 2 |
|
After these calls, getBean(“magicvalue”) will return the value 42 and getBean(“logger”) will return the CFC instance you provided. That means that any properties, setter methods or constructor arguments that refer to magicvalue or logger will get those values injected.
You can also programmatically declare new beans to be managed by DI/1:
beanFactory.declareBean("navigation", "site.utils.navigation", true);
That will tell DI/1 that /site/utils/navigation.cfc should be managed as a singleton with name navigation. You can declare transients by specifying false as the third argument. true is the default so it can be omitted for singletons.
When declaring a bean, you can also optionally provide a set of overrides for named beans, so that constructor arguments or properties will take on specified values, rather than what is managed by the bean factory. This is useful for creating variants of a single bean:
beanFactory.declareBean("datasource", "util.DataSource", true, { dsn = "main" } );
beanFactory.declareBean("admindata", "util.DataSource", true, { dsn = "admindb" } );
You can declare a factory bean – like Spring/ColdSpring – as follow:
beanFactory.factoryBean("generated", factory, "method", [ ..args.. ], { ... } );
This tells DI/1 that when you call getBean("generated")
, instead of trying to create the bean itself, it should call factory.method(..args..)
to get the bean instance. args
can be omitted (and defaults to an empty list of arguments). The last argument provides overrides for bean values, as shown above, and is optional.
You can add an alias for a bean:
beanFactory.addAlias("alsoKnownAs", "navigation");
That will tell DI/1 that alsoKnownAs is an alias for the bean identified by navigation so getBean(“alsoKnownAs”) will behave the same as getBean(“navigation”).
If you want code to be executed after DI/1 has discovered all the beans on disk — for example, to configure a variety of additional “constant” or computed beans — you can use the onLoad() method to specify a listener function:
beanFactory.onLoad( loadListener );
That will register loadListener with DI/1 to be called after bean discovery is complete. This is a good place to put your calls to declareBean()
and addAlias()
if you need those to be in effect prior to the first call to getBean()
.
- If loadListener is a CFC instance, DI/1 will call loadListener.onLoad( beanFactory ), passing the DI/1 instance in as an argument.
- If loadListener is a bean name, DI/1 will call beanFactory.getBean( loadListener ).onLoad( beanFactory ), where beanFactory is the DI/1 instance.
- If loadListener is a function or closure, DI/1 will call loadListener( beanFactory ). Note that if loadListener is a method on a CFC, it will be called out of context so it will not have access to the variables scope or this scope of that CFC instance and therefore also won’t have access to other methods of that CFC.
You can ask if the bean factory knows about a particular bean using the containsBean() method:
if ( beanFactory.containsBean("productService") ) ...
(although you probably shouldn’t need to do this unless you are building some sort of framework plugin that needs to check what is available to it at runtime!).
You can force all singletons to be reloaded using the load() method:
beanFactory.load();
That will empty the bean cache and then call getBean() on every bean that DI/1 knows about. Note: it does not call load() on any parent bean factory (see below) and it does not perform a new search on the folders (so it won’t see newly written CFCs). To force the search to be performed again, create a new instance of the bean factory as shown above.
Metadata can be queried using the following methods:
1 2 |
|
I would expect these only to be useful to framework authors. Both methods walk up into parent bean factories, if present. If you omit the bean name for getBeanInfo() you get back a struct with a key beanInfo that refers to metadata for all of the beans known in the factory. If there is a parent bean factory, its metadata is returned under a key parent in that struct.
getBeanInfo()
can be called with a beanName
argument – the default – or with a regex
argument which will return metadata about all the beans in the factory whose names match the regular expression, in a struct with the single key beanInfo
, whose value will be a struct with a key for each matching bean.
getBeanInfo()
can also be called with no arguments, in which case it will return metadata for all the beans in the factory (in the beanInfo
key of the result) and metadata for all the beans in the factory’s parent, if any, in the parent
key of the result. Optionally, you may specify an argument of flatten = true
and the parent
structures will be merged (recursively through the parents) into beanInfo
, producing a flat struct.
getConfig()
can be called to get a copy of the bean factory’s configuration, in case you need to have conditional behavior in your load listeners.
Specifying Additional Transient Beans
By default, any CFC in the beans folder is considered a transient and everything else is considered a singleton. There are three ways to specify other CFCs should be considered transient:
- config.singulars allows you to specify additional folders that resolve to bean
- config.transients allows you to specify additional folders whose contents are transient
- config.singletonPattern allows you to specify a regular expression which limits which beans are considered singletons
- config.transientPattern allows you to specify a regular expression which limits which beans are considered transients
In the first case, any folder name whose singular name is bean will cause CFCs to get an alias that ends in Bean and will be considered transients. In the second case, the singular transformation will still be applied to create the alias, but the CFCs will be considered transients anyway. See below for additional uses of config.singulars. In the third case, CFCs will also be considered transients if their name does not match the regular expression pattern supplied. In the fourth case, CFCs will also be considered transients if their name matches the regular expression pattern supplied. You cannot specify both config.singletonPattern and config.transientPattern.
For example:
var beanFactory = new ioc( ".", { singulars = { objects = "bean" }, transients = [ "models" ] } );
This will cause CFCs found in the objects folder to be treated as if they were in the beans folder (their alias will end with Bean and they will be considered transients because of that) and CFCs found in the models folder to be treated as transients too (but their alias will end with Model, the singular of models).
var beanFactory = new ioc( ".", { singulars = { services = "manager" }, transients = [ "objects" ] } );
This, on the other hand, will cause CFCs found in the services folder to be treated as if they were in the managers folder (their alias will end with Manager and they will be considered singletons because of that) and CFCs found in the objects folder to be treated as transients (their alias will end with Object, the singular of objects).
var beanFactory = new ioc( ".", { singletonPattern = "(Service|Factory)$" } );
In addition to any CFCs found in a folder called beans, any CFC whose name does not end in Service or Factory will be considered a transient.
var beanFactory = new ioc( ".", { transientPattern = "(Entity)$" } );
In addition to any CFCs found in a folder called beans, any CFC whose name ends in Entity will be considered a transient.
Parent Bean Factories
If your application is assembled from multiple modules, you may have a main bean factory containing shared CFCs and each module may also have a bean factory. You can tell a module’s bean factory about the shared CFCs in the main bean factory using the setParent() method:
1 2 |
|
This causes DI/1 to ask its parent bean factory about any beans that are requested but unknown (within the moduleBeanFactory). Because DI/1 uses only containsBean(name) and getBean(name) the parent bean factory does not need to be another DI/1 instance – it can be any bean factory that provides that API.
Bean Factory Aware
If you need access to the bean factory itself within one of your CFCs, either declare a constructor argument called beanFactory, provide a setBeanFactory( any beanFactory ) setter or declare a beanFactory property (with implicit setters enabled). DI/1 declares itself as a bean called beanFactory and will inject itself where any such dependencies appear.
Configuration
When you create the bean factory, you can optionally supply a second argument that is a struct containing configuration for DI/1. At present, DI/1 understands the follow config options:
- constants – struct – defaults to {}. DI/1 will use any name/value pairs specified here to provide beans that resolve to the specified values. This can be used to provide resolution for constructor arguments that need values which are not actual beans.
- exclude – array – defaults to []. DI/1 will ignore any CFCs whose file path contains the strings in this array. DI/1 always excludes paths containing /WEB-INF and /Application.cfc, as well as various FW/1 and DI/1 framework files. The strings are not case-sensitive.
- initMethod – string – If specified, identifies a method name on beans that DI/1 will attempt to call (with no arguments) on each bean after its dependencies have been injected.
- omitDirectoryAliases – boolean – defaults to false. If true, use CFC names as bean names directly, without appending the singular directory name as a suffix. If your CFC names are not unique, you will get an exception.
- omitTypedProperties – boolean – defaults to false. If true, property declarations that specify a type will be ignored for injection. That is useful if you are working with the ORM (since those property declarations will have types and should not be treated as dependencies).
- recurse – boolean – defaults to true. Controls whether DI/1 searches subfolders recursively or not.
- singletonPattern – string – no default. Specifies a regular expression that DI/1 uses to determine whether a bean is singleton or not, based on its name. The beans folder convention and the transients configuration below still apply so nothing in those folders will be considered a singleton, even if its name matches the pattern.
- singulars – struct – defaults to {}. DI/1 will use any name/value pairs specified here to translate folder names to a singular variety, e.g., pride = ‘lion’ will convert the plural folder pride to the singular name lion and therefore a simba.cfc within the pride folder will get the alias simbaLion. This also allows for other folders to behave as if they were called beans by treating their singular name as bean. One of the DI/1 unit tests maps sheep to bean for this reason. This won’t work if the CFCs in sheep have the same name as the CFCs in beans however.
- strict – boolean – defaults to false. If true, DI/1 will throw an exception if it cannot resolve a bean implied by a constructor argument, setter name or property name. If false, DI/1 simply calls logMissingBean() which writes the failure to the Java console.
- transients – array – defaults to []. DI/1 will consider any CFCs found in these folders to be transient, rather than singleton. The conversion to a singular form will still take place to create the alias for each CFC. For example, if singulars = { pride = ‘lion’ } and transients = [ ‘pride’ ] then any CFCs in the pride folder will be treated as transients and their alias will end in Lion.
- transientPattern – string – no default. Specifies a regular expression that DI/1 uses to determine whether a bean is transient or not, based on its name. The beans folder convention and the transients configuration below still apply so CFCs in those folders will be still considered transients, in addition to any name that matches the pattern.
Configuring “Constant” Beans
As noted above, the optional config argument to the ioc constructor is a struct containing various parameters that alter the behavior of DI/1. The constants config element is a struct containing mappings from bean names to specific constant values. This allows you to specify non-CFC values for constructor arguments, setters and properties (but is most commonly used for constructor arguments). The value may be of any type and any reference to that bean name will return the specified value as a singleton.
These values may be added after DI/1 has been initialized using the addBean() method as shown above.
Overriding DI/1 Behavior
If you want to override the methods in DI/1, such as logMissingBean(), you can create your own CFC that extends ioc.cfc and overrides the desired methods. Then use your CFC instead of ioc.cfc. If any particular use case becomes common, we can discuss incorporating it into DI/1 as a configuration option.
A particular extension point that is provided is:
private void function setupInitMethod( string name, any bean )
This is called for each bean after its dependencies have been injected prior to calling initMethod (if specified).
Two related extension points that can be useful as well are:
private any function construct( string dottedPath )
private any function metadata( string dottedPath )
These can be overridden if you want to change the behavior of how beans are created and how metadata is obtained for beans. An example from Adam Tuttle is the ability to silently ignore beans that have syntax errors during development, so the rest of the beans are loaded: you would override metadata()
and have it wrap a call to super.metadata( dottedPath )
in try/catch
and return an empty struct if an exception is thrown.


Abro - Lucido Media GbR
on 2012-07-15 21:11:27
Please consider using indexOf() [ see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf ] if available.
Mahbubur Rahman
on 2011-08-15 23:34:43
People who are using jQuery in their project can use $.inArray which gives returns 1 when match is found and -1 when not found.
Theriault
on 2011-05-17 21:02:25
@callumacrae: The indexOf method on the Array object is not supported by Internet Explorer. Also, the PHP JS function can handle Object.
callumacrae
on 2011-05-17 14:26:01
This might just be me being stupid, but:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf
Why not just force that to be boolean?
luigifab
on 2011-01-29 17:31:08
@Brett Zamir : There is a problem with array in IE if you use my function in_array without the !isNaN(key). That's it.
Brett Zamir
on 2011-01-05 13:33:26
@luigifab: What problem are you referring to? Why would the key need to be a number? (php.js treats objects as associative arrays) What is the relation to IE?
luigifab
on 2011-01-05 12:03:27
Here a recursive function.
But, there is a problem with IE without the !isNaN(key).
function in_array(needle, haystack) {
if ((needle === null) || (haystack === null))
return false;
var key = null;
if (needle instanceof Array) {
for (key in needle) if (needle.hasOwnProperty(key)) {
if (in_array(needle[key], haystack))
return true;
}
}
else {
for (key in haystack) if (haystack.hasOwnProperty(key)) {
if (!isNaN(key) && (haystack[key] === needle))
return true;
}
}
return false;
}
Brett Zamir
on 2009-11-27 04:11:34
@Jordi: Thanks for the submission. Kevin commented on this earlier that although he supports DRY (Don't Repeat Yourself), it is faster in this case to be longer, since with the way we have it now, there is only need to check the "strict" argument once. So, we will stick with the way it is.
Btw, if you are using your version, you should drop the first "if" since it prevents dealing with non-strict cases.
Thanks again!
Jordi
on 2009-11-26 14:22:36
Of course that had to be:
function in_array (needle, haystack, argStrict)
{
var key = '', strict = !!argStrict;
if (strict)
for (key in haystack)
if ( (strict && haystack[key] === needle) || ( !strict && strict && haystack[key] == needle ) )
return true;
return false;
}
Jordi
on 2009-11-26 11:06:18
Shorter:
function in_array (needle, haystack, argStrict)
{
var key = '', strict = !!argStrict;
if (strict)
for (key in haystack)
if ( (strict && haystack[key] === needle) ) || ( !strict && strict && haystack[key] == needle )
return true;
return false;
}
Brett Zamir
on 2009-10-18 07:03:04
@billy: Thanks, fixed now in git: http://github.com/kvz/phpjs/commit/e37089b71ed1d32d1b4b4567c70a684c9d0e16f5
Sorry Drydenmaker and Kevin, it was a noble attempt, but search should be checked against -1, and even if that were corrected, there would still be problems as your version would make in_array('needle', ['needles']) return true.
Theriault
on 2009-10-18 06:49:30
I believe the solution to the bug Billy found is that the native JavaScript String.prototype.search returns -1 if the needle is not found, not false like in PHP, what this function expects.
Also, turning an array into a string and searching for the needle, while faster, will be incorrect in many situations, such as searching for 'he' against ['the'] will return true, even though 'he' is not in the array.
Billy
on 2009-10-17 23:38:26
Is it just me or does in_array("whatever", ["notit"]) return true...
This function is majorly broken. Strings arguments always return true, even if the array is empty!
Kevin van Zonneveld
on 2009-10-08 20:59:44
@ Drydenmaker: Good point. Didn't bench it but obviously an internal function would be faster than anything we can hack.
However your implementation relies on this.is_string which is not a php.js feature.
I replaced it with (typeof(needle)=='string') but it seems that also the second test case (where we don't want to find 'vlado') fails.
So it needs a little bit of work still.
Drydenmaker
on 2009-09-22 18:17:21
what if you flattened the non-strict side to a string and used a string search to avoid the loop. Something like:
in_array: function (needle, haystack, argStrict) {
var key = '', strict = !!argStrict;
if (strict) {
for (key in haystack) {
if (haystack[key] === needle) {
return true;
}
}
} else {
if (this.is_string(needle)) {
str = haystack.toString();
return (str.search(needle) !== false)
}
for (key in haystack) {
if (haystack[key] == needle) {
return true;
}
}
}
return false;
}
Kevin van Zonneveld
on 2009-05-31 20:27:49
@ vlado houba: Yes using hash tables is really fast. Obviously we don't control our user's data. But we can make an effort to make in_array as fast as reasonably possible, and I see your optimization is not to check for strict every iteration, but check for it once, and use duplicated loops to do further processing.
Though I'm a big fan of DRY, this really makes sense to me and justifies exception so I will implement your proposal. Thanks for sharing!
vlado houba
on 2009-05-31 12:46:33
sorry for posting that same content by mistake...
maybee it seems to be an unimporatnt change but i was working on a text analyzing script where things like this one matters a lot
for fast searching in small arrays i recommend using the value (string or number) as an index (for sure just for short values..), it much cuts the access times and can be used for advanced structures
function in_array(needle, haystack, argStrict)
{
var found = new Boolean(false);
var key;
var strict = new Boolean(argStrict);
if(strict)
{
for (key in haystack)
{
if (haystack[key] === needle)
{
found = true;
break;
}
}
}
else
{
for (key in haystack)
{
if (haystack[key] == needle)
{
found = true;
break;
}
}
}
return found;
}
Brett Zamir
on 2009-04-05 15:04:05
@Vladimir, it looks like you posted the same code as we currently have... One very small optimization I do see is "return true" and "return false" instead of found=true, etc. If your optimization was using indexOf, be aware that PHP.JS considers objects to be arrays, so we need to handle them as well...
Vladimir Houba
on 2009-04-05 13:39:05
function's preformance can be improoved by following
01.function in_array(needle, haystack, argStrict) {
02. // Checks if the given value exists in the array
03. //
04. // version: 903.1614
05. // discuss at: http://phpjs.org/functions/in_array
06. // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
07. // * example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
08. // * returns 1: true
09. var found = false, key, strict = !!argStrict;
10.
11. for (key in haystack) {
12. if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
13. found = true;
14. break;
15. }
16. }
return found;
}
Kevin van Zonneveld
on 2009-02-15 15:42:54
@ Java Dude: No but it has been tested (successfully) in Rhino and I believe Google based their js engine on that.
Do you have more information (maybe a line number or something) for us to go on? Thanks in advance!
Java Dude
on 2009-02-12 22:14:22
Has this function been tested on Google Chrome?
I am receiving a: Uncaught TypError when using it but on in Google Chrome.
Kevin van Zonneveld
on 2008-06-18 17:26:29
@ peter: Thank you but according to the PHP manual in_array should return a boolean value. Also, your version doesn't support the optional strict argument, so in it's current form I'm not convinced I should replace our version with yours.
peter
on 2008-06-17 15:55:02
function in_array(value, arr)
{
var key;
for (key in arr)
{
if (arr[key] === value)
{return value; }
}
return null; //false
}
Kevin van Zonneveld
on 2008-05-12 22:51:47
@ Adam: If I'm not mistaken this forces strict to be boolean. A single exclamation mark would indeed reverse it's meaning.
Adam
on 2008-05-12 20:28:33
var found = false, key, strict = !!strict;
why are you defining strict to be NOT NOT strict ?


Line 3 initializes three integer type variables to their respective values.
The do portion of the do while loop statement (starting at line 4, and
including line 6) actually contains a while loop statement - embedded within it (i.e. starting
with the word while, at line 4). The embedded while loop statement ensures
that the variable k attains a value of 8, before the while loop statement at line
6, is ever evaluated.
When the while loop statement at line 6 is evaluated (and returns true), there is
no follow-on action. Instead, the while loop statement at line 6 simply continues to repeat
– until it evaluates to false.
After the while loop statement at line 6 evaluates to false, the program's code flow transitions to the next statement
(at line 7), and prints the value of the variable k (... which was determined as a result of the
embedded while loop that was previously executed at line 4).


WIREY SPINDELL
Reviewed by Harvey Karten WinStar Cinema Director: Eric Schaeffer Writer: Eric Schaeffer Cast: Eric Mabius, Eric Schaeffer, Callie Thorne, Bill Weeden, Devin Matthews-Johnson, Zane Adlum, Samantha Buck
Woody Allen transformed nerdiness into art while Eric Schaeffer tries to follow that path with "Wirey Spindell," a semiautobiographical look at his current screwed-up personality with peeks at the 36-year-old man during various earlier stages of his life. The result is a strange movie, mixing vulgar, Kevin-Smith type comedy with a disheartening view of the title character--a blend that does not come off but at times demonstrates Schaeffer's inclination to locate key incidents in his life that made him the person he is. The film is based on his ten-year-old unpublished novel, though Schaeffer in effect produces the book by providing so much narration in the movie that you wonder if Schaeffer really wants to cram the novel down your throat by way of the screen. Still somehow the narration does not come off as intrusive as you'd expect if you were annoyed with the perpetual philosophisizing on the sound track of Terrence Malick's "The Thin Red Line."
The picture gets off to an awful start, one that could encourage people to walk out on what promises to be a prelude to a sophomoric story. Wirey (Eric Schaeffer) sits fully clothed in the bathroom while his fiancee, Tabatha (Callie Thorne) opens the door in time to hear Wirey complain that she is invading his space during his private time. But Wirey does not simply explain this point to his girl friend but illuminates it such a nebbishy way that Woody Allen could be considered Laurence Olivier next to him. Things can only get better after that.
The basic conflict examined by the movie is Wirey Spindell's inability to sit next to his fiance without having his eyes wander around the room, scrutinizing just about anyone in a skirt and presumably fantasying about what it's like to be intimate with her. This is not all that drives Tabatha crazy: for the past nine months, Wirey has been unable to perform in bed with her. Exploring his background as though under analysis by a Freudian therapist with an earthy sense of humor, Wirey ultimately discovers the cause of his neuroses, an origin that is all too farfetched and which, having been discovered, can hardly cure him of his malady in time for his upcoming, and probably short-lived, marriage.
Spindell takes us to seminal incidents of his past, starting with his first memory of being blown across the room while licking an electrical outlet to his battle with addiction to drugs and alcohol (his father was a hippie), through his experiences with several women in junior high, high school and college. Unpopular with his male peers, he has mixed success with women culminating in a heartbreaking fling with the sexy Samantha (Samantha Buck).
Much of what Schaeffer shows us has been done in other films with more resonance, poignancy and humor. The wacky therapy sessions (his stepmother's former lesbian lover as the analyst); affiliations with some wacked-out coke- heads and with leggy and pliant females; the sorrowful contacts with a mother and estranged father who demand obedience but haven't a clue how to express their love to the young man.
There isn't a single likable character in the film, from the high-school teacher in Vermont who makes fun of the New Yorker on his very first day to the uninspiring fiance who calls her boyfriend honey and sweetie at least a decade before such endearing terms should ever be used. For the most part Mr. Schaeffer, by mixing melodrama and comedy in ways that they do not combine, neither shows how Wirey's early life is so terrible that he winds up a drugged and drunken misfit nor jogs the comedy to a level beyond the mildly amusing.
Rated R. Running Time: 95 minutes. (C) 2000 Harvey Karten<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


{% filter markdown %}
## Collect Nematodes As A Citizen Scientist! ##
The Caenorhabditis research community is looking for new wild strains from throughout the world! **If you would like to help us**, please feel free to [contact us]({{ url_for('primary.contact')}}).
We will send you everything you need to isolate your own nematodes. After you mail the samples back to us, we will tell you (as much as we can) about what species you found.
### The procedure is very easy ###
1. Collect rotting vegetation: fruits, tubers, seeds, flowers, bark, nuts, etc.
2. Put the samples on the provided agar plates.
3. Wait a couple of days.
4. Wrap up the plates with provided parafilm.
5. Mail them back to me at my expense.
Download the full instructions [here](http://andersenlab.org/files/WormCollecting.pdf)
If you would like materials to collect your own nematodes, please fill out this [form](http://docs.google.com/forms/d/15JXAQptqCSenZMyqHHOKQH1wJe7m0n8_Q0nHMe0eTUY/viewform?formkey=dERCQ1lsamU1ZFNtOGJJUkJqVzZOOVE6MQ#gid=0).
The Andersen laboratory uses a Biosafety level 3 facility for the isolation of nematodes from foreign soil and rotting plant debris. We have received APHIS permits (both international and interstate) which allow us to have foreign samples shipped to Northwestern for processing. Please see our [standard operating procedure](http://andersenlab.org/files/USDA_SOP.pdf) for additional information.
### APHIS Permits ###
* [APHIS - Interstate](http://andersenlab.org/files/APHISDom.pdf)
* [APHIS - International](http://andersenlab.org/files/APHISIntl.pdf)
### Additional Protocols ###
* [Sampling and Isolation of _C. elegans_ from the Natural Habitat](https://storage.googleapis.com/elegansvariation.org/static/protocols/SamplingIsolationC.elegansNaturalHabitat.pdf)
{% endfilter %}


|
My Project
|
The class for holding and controlling Animation. More...
#include <animator_controller.h>
Public Member Functions | |
| AnimatorController (animation_holder *animations, long int array_length) | |
| The constructor of the AnimatorController. More... | |
| void | setAnimation (const char *animation) |
| Set the Animation to be displayed. More... | |
| Animation * | getAnimation () |
| Get the Animation that is being displayed. More... | |
| const char * | getAnimationName () |
| Get the name of the Animation that is being displayed. More... | |
| void | setX (float x) |
| Set the x position of the Animation being displayed. More... | |
| void | setY (float y) |
| Set the y position of the Animation being displayed. More... | |
| float | getX () |
| Get the x position of the Animation being displayed. More... | |
| float | getY () |
| Get the y position of the Animation being displayed. More... | |
| void | addTime (float time) |
| add the amount of time passed so that the Animation can update. More... | |
| SDL_Texture * | getTexture () |
| Get a pointer to the Animation texture. More... | |
| SDL_Rect * | getDestRect () |
| Get a pointer to the destination rect used for positioning with the renderer. More... | |
| SDL_Rect * | getSrcRect () |
| Get a pointer to the source rect used for getting the frame of the Animation. More... | |
| Public Member Functions inherited from blackhole::graphics::ImageBase | |
| virtual void | setFlipX (bool flipped) |
| Overridable function for flipping ImageBase across the x plane. More... | |
| virtual void | setFlipY (bool flipped) |
| Overridable function for flipping ImageBase across the y plane. More... | |
| virtual bool | isFlippedX () |
| Overridable function for checking if ImageBase is flipped across the x plane. More... | |
| virtual bool | isFlippedY () |
| Overridable function for checking if ImageBase is flipped across the y plane. More... | |
| virtual void | setTexture (SDL_Texture *tex) |
| Overridable function for setting ImageBase texture generally used in the Camera class. More... | |
| virtual SDL_RendererFlip | getRendererFlip () |
| Overridable function for getting the rendererflip for the ImageBase. Used for rendering. More... | |
| virtual void | setLayer (int layer) |
| Set the layer to be rendered on. 0 - low layer. 100 - high layer. More... | |
| virtual int | getLayer () |
| Get the layer ImageBase is on. More... | |
Additional Inherited Members | |
| Protected Member Functions inherited from blackhole::graphics::ImageBase | |
| void | init (const char *file, SDL_Renderer *renderer) |
| Protected Attributes inherited from blackhole::graphics::ImageBase | |
| SDL_RendererFlip | rendererFlip = SDL_FLIP_NONE |
| int | layer = 0 |
| SDL_Rect | destRect |
| SDL_Texture * | texture |
The class for holding and controlling Animation.
| blackhole::graphics::AnimatorController::AnimatorController | ( | animation_holder * | animations, |
| long int | array_length | ||
| ) |
The constructor of the AnimatorController.
|
virtual |
add the amount of time passed so that the Animation can update.
| time | The amount of time passed in the frame |
Reimplemented from blackhole::graphics::ImageBase.
| Animation* blackhole::graphics::AnimatorController::getAnimation | ( | ) |
Get the Animation that is being displayed.
| const char* blackhole::graphics::AnimatorController::getAnimationName | ( | ) |
Get the name of the Animation that is being displayed.
|
virtual |
Get a pointer to the destination rect used for positioning with the renderer.
Reimplemented from blackhole::graphics::ImageBase.
|
virtual |
Get a pointer to the source rect used for getting the frame of the Animation.
Reimplemented from blackhole::graphics::ImageBase.
|
virtual |
Get a pointer to the Animation texture.
Reimplemented from blackhole::graphics::ImageBase.
|
virtual |
Get the x position of the Animation being displayed.
Reimplemented from blackhole::graphics::ImageBase.
|
virtual |
Get the y position of the Animation being displayed.
Reimplemented from blackhole::graphics::ImageBase.
| void blackhole::graphics::AnimatorController::setAnimation | ( | const char * | animation | ) |
Set the Animation to be displayed.
| animation | The name of the Animation to display eg. running |
| void blackhole::graphics::AnimatorController::setX | ( | float | x | ) |
| void blackhole::graphics::AnimatorController::setY | ( | float | y | ) |


A shell script to help the management of files as a package through easy version number manipulation. Supports name, description, author and version number. Integrates with .git and uses gitflow methodology to automatically merge and tag.
The web_package scripts need to be installed on your system once to make the tool available. Don't confuse this with intializing a project which comes later.
~/lib/web_package-master
.composer install
to download dependencies.~/bin
is in your $PATH
variable of BASH. To verify type echo $PATH
in a shell window and look for the path ~/bin
; note that it will probably appear as the expanded home directory, not ~
.Create a symlink to web_package.sh
as bump
as seen in the following snippet. (In all examples the symlink is called bump
but that is not functionally necessary; you may rename as desired.) For this snippet we're assuming that the package has been saved to ~/lib/web_package-master
cd ~/bin && ln -s ~/lib/web_package-master/web_package.sh bump && bump
If all went well you should see something like this:
web_package.info not found.
This will save you keystrokes if you're used to typing this:
$ git add .
$ git cim 'some changes'
$ git checkout -b release-1.1
$ cat version.info
version = 1.0
$ echo version.info > "version = 1.1"
$ git add version.info
$ git cim 'Bumped version to 1.1'
$ git checkout develop
$ git merge --no-ff release-1.1
$ git checkout master
$ git merge --no-ff release-1.1
$ git br -d release-1.1
$ git checkout develop
How would you rather type this, instead from now on...
$ git add .
$ git cim 'some changes'
$ bump release
$ bump done
If so, Web Package is for you! Read on...
(prefix-)major.minor.patch
and (prefix-)major.minor(patch_prefix)patch
.999.999.999
. Important to note: the next minor version after 1.9
is not 2.0
, but rather 1.10
.(prefix-)
is a string of any chars ending in a hyphen, e.g. 7.x-
.(patch_prefix)
is a string of one or more non numbers, e.g. -alpha
.bump test
.1.0
1.0.1
7.x-1.0
7.x-1.0.1
1.0-rc1
1.0-alpha1
7.x-1.0-rc1
1
(missing minor digit, use 1.0
instead.)1-rc1
(missing minor digit, use 1.0-rc1
instead.)1.0-alpha
(missing patch digit, use 1.0-alpha1
instead.)1.0-dev
(missing patch digit, don't use -dev
or add a patch digit.)patch: 0.0.1 --> 0.0.2
minor: 0.0.1 --> 0.1
major: 0.0.1 --> 1.0
The key difference to notice is that when you bump minor
in this schema, it simply drops the patch prefix and the patch values and does not increment the minor value. Also if you bump major
it will carry over the patch_prefix for you automatically and set the patch value to 1.
patch: 8.x-2.0-alpha6 --> 8.x-2.0-alpha7
minor: 8.x-2.0-alpha6 --> 8.x-2.0
major: 8.x-2.0-alpha6 --> 8.x-3.0-alpha1
By default, the major, minor and patch step increment is 1. This can be changed in a local_config
file as necessary (either user or project level).
major_step = 1
minor_step = 1
patch_step = 2
Let's say that two developers are working on the same master branch and they are rolling out rapid hotfixes. Wouldn't it be nice if developer A only did odd-numbered hotfixes and developer B only did even-numbered hotfixes, so as to not step on each others' toes? This the idea behind version incrementing with steps > 1.
You can override the default using the local_config
and use odd steps by adding the following lines, be sure to include a line break at the end of the line.
patch_step = "odd"
For even just change the value to "even"
.
In this example, if you were to add this directive to the config
file, that would negate the whole point, since config
is checked into the repo. You need to use the local_config
.
bump help test
for more info.info
FileWeb Package looks for a file with the .info extension and will use that for storing the meta data about your project. This file is one that can be parsed using php's parse_ini_file()
function. If none is found, then web_package.info
will be created. You may configure the actual filename in the config file e.g. info_file = some_other_file.info
if these first two options do not work for you. Here is a basic .info
file.
name = "Apple"
description = "A red, green or yellow fruit."
homepage = http://www.intheloftstudios.com/packages/jquery/apple
version = 0.0.1
author = Aaron Klump<EMAIL_ADDRESS>Had you wanted to start with version 1.0, then you would have used bump major
; and if you had wanted to start with version 0.0.1 you would have used bump patch
.
$ mkdir example
$ cd example
$ git init
Initialized empty Git repository in /Library/WebServer/Documents/globalonenessproject/site-dev/public_html/sites/all/modules/contrib/example/.git/
$ bump init
Enter package name: Example Package
Enter package description: An example package showing how to do this.
A new web_package "Example Package" has been created.
$ bump minor
Version bumped: 0.0.0 ---> 0.1
$ git add .
$ git commit -m 'initial commit'
[master (root-commit) e604ade] initial commit
1 file changed, 3 insertions(+)
create mode 100644 web_package.info
$
bump init
By the way--to reverse the action of bump init
, simply delete the folder .web_package
from the root of your project. You may or may not want to delete the *.info
file from the root of your project.
.web_package
in version control. It has a .gitignore file that you can refer to for files that may safely be excluded.bump release
; this is shorthand for bump minor release
. If you only want a patch release then type bump patch release
. Consequently if you want a major release type bump major release
.Immediately thereafter (unless you know what you're doing), type bump done
$ git checkout -b develop
Switched to a new branch 'develop'
$ touch do
$ touch re
$ touch mi
$ git add .
$ git commit -m 'added do re mi'
[develop 7094ae4] added do re mi
0 files changed
create mode 100644 do
create mode 100644 mi
create mode 100644 re
$ bump release
Version bumped: 0.1.0 ---> 0.2.0
M web_package.info
Switched to a new branch 'release-0.2.0'
[release-0.2.0 83abd01] Version bumped from 0.1.0 to 0.2.0
1 file changed, 1 insertion(+), 1 deletion(-)
$ bump done
Merging into develop...
Switched to branch 'develop'
Merge made by the 'recursive' strategy.
web_package.info | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Continue to master? (y/n) y
Switched to branch 'master'
Merge made by the 'recursive' strategy.
web_package.info | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
create mode 100644 do
create mode 100644 mi
create mode 100644 re
Delete release-0.2.0? (y/n) y
Deleted branch release-0.2.0 (was 83abd01).
Now you can list the tags and see that a tag was just created that matches the current version of your package.
$ git tag -l
0.2.0
$ bump -i
name = Example Package
description = An example package showing how to do this
version = 0.2.0
$
At this point you need to use git push
as necessary for your remotes.
An example of a hotfix to the master branch.
bump hotfix
.Type bump done
.
$ git status
On branch master
nothing to commit (working directory clean)
$ bump hotfix
Version bumped: 0.2.0 ---> 0.2.1
M web_package.info
Switched to a new branch 'hotfix-0.2.1'
[hotfix-0.2.1 75b936a] Version bumped from 0.2.0 to 0.2.1
1 file changed, 1 insertion(+), 1 deletion(-)
$ touch fa
$ git add .
$ git commit -m 'added fa'
[hotfix-0.2.1 75b936a] added fa
0 files changed
create mode 100644 fa
$ bump done
Merging into develop...
Switched to branch 'develop'
Merge made by the 'recursive' strategy.
web_package.info | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Continue to master? (y/n)y
Switched to branch 'master'
Merge made by the 'recursive' strategy.
web_package.info | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Delete hotfix-0.2.1? (y/n)y
Deleted branch hotfix-0.2.1 (was 75b936a).
Again, checking that a tag was created...
$ git tag -l
0.2.0
0.2.1
$ bump -i
name = Example Package
description = An example package showing how to do this
version = 0.2.1
bump done
Follow these steps if you experience a merge conflict after typing bump done
; they should get you through it.
git add [file]
git commit
git checkout hotfix…
bump done
There are three commands that will move your package through the stages, but only in the logical order.
bump alpha
call this when your version doesn't already contain alpha, beta or rc as the patch prefix. Example, calling bump alpha
on a version of 1.0
will bump your version to 1.1-alpha1
.bump beta
on when your project is already in alpha will move it to beta stage, e.g. bump beta
when your version is 1.1-alpha5
moves it to 1.1-beta1
.bump rc
on a 1.1-beta3
bumps it to 1.1-rc1
2.3
you can bump rc
and it becomes 2.4-rc1
.In the Loft Studios
Aaron Klump - Developer
PO Box 29294 Bellingham, WA 98228-1294
aim: theloft101
skype: intheloftstudios
http://www.InTheLoftStudios.com


Convert odds ratio to relative risk in cohort studies with partial data information.
| Version: | 1.0-4 |
| Imports: | BB, BHH2 |
| Suggests: | setRNG |
| Published: | 2018-05-17 |
| Author: | Zhu Wang |
| Maintainer: | Zhu Wang <zwang at connecticutchildrens.org> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | yes |
| Citation: | orsk citation info |
| Materials: | NEWS |
| CRAN checks: | orsk results |
| Reference manual: | orsk.pdf |
| Vignettes: |
orsk Illustrations |
| Package source: | orsk_1.0-4.tar.gz |
| Windows binaries: | r-devel: orsk_1.0-4.zip, r-release: orsk_1.0-4.zip, r-oldrel: orsk_1.0-4.zip |
| OS X binaries: | r-release: orsk_1.0-4.tgz, r-oldrel: orsk_1.0-4.tgz |
| Old sources: | orsk archive |
Please use the canonical form https://CRAN.R-project.org/package=orsk to link to this page.


Experience Paris
Home
(current)
About
Blog
Contact
Like a Parisian
“When good Americans die, they go to Paris.”
Oscar Wilde
Contact Us
Like a Parisian
110 Highgate Studios
53-79 Highgate Road, London, NW5 1TL
P:
(123) 456-7890
E:
likeaparisian@hotmail.com


menu
Events
About us
Get involved
ESSEF
opFair
Merchandise
Documents
Home
Events
About us
Get involved
ESSEF
opFair
Merchandise
Documents
Documents
Documents about our organization and our meetings.
Governance documents
Constitution and policy manual
Meeting minutes
Spring 2016
AGM 2016
Fall 2015
Summer 2015
Spring 2015
AGM 2015
Spring 2016
Date
January 11, 2016
January 18, 2016
January 25, 2016
February 1, 2016
February 15, 2016
February 22, 2016
February 29, 2016
March 7, 2016
March 14, 2016
March 21, 2016
April 4, 2016
April 14, 2016
Fall 2015
Date
September 17, 2015
September 22, 2015
September 29, 2015
October 6, 2015
October 13, 2015
October 20, 2015
October 27, 2015
November 3, 2015
November 10, 2015
November 17, 2015
November 24, 2015
December 1, 2015
Summer 2015
Date
May 22, 2015
May 29, 2015
June 5, 2015
June 12, 2015
June 19, 2015
June 26, 2015
July 3, 2015
July 10, 2015
July 13, 2015
July 17, 2015
July 24, 2015
July 31, 2015
August 7, 2015
August 23, 2015
Spring 2015
Date
January 12, 2015
January 19, 2015
January 26, 2015
February 2, 2015
February 16, 2015
February 23, 2015
March 2, 2015
March 9, 2015
March 16, 2015
March 30, 2015
April 13, 2015
Conference reports
CFES Congress 2016
CFES Conference on Diversity in Engineering 2015


Distributing money on the basis of number of people went for partyyyy and clubbinggg.
Each person should contribute {{ eachPerson | currency : 'INR'}}


ExpiryDate(month: String, year: String)
Data class to hold expiry data
id
- Actual account id as String
month
- 1-2 numeric chars, accepted 1-12
1-4 numeric chars. For years <= 999 2000 is added
You can check if expiry date is valid with isValid


Configuring the AWS Command Line Interface
This section explains how to configure settings that the AWS Command Line Interface uses when interacting with AWS, such as your security credentials and the default region.
Note
The AWS CLI signs requests on your behalf, and includes a date in the signature. Ensure that your computer's date and time are set correctly; if not, the date in the signature may not match the date of the request, and AWS rejects the request.
Sections
Using the Examples in this Guide
The examples in this guide are formatted with the following conventions:
-
Prompt – The command prompt is displayed as a dollar sign ('$'). Do not include the prompt when you type commands.
-
Directory – When commands must be executed from a specific directory, the directory name is shown before the prompt symbol.
-
User Input – Command text that you should enter at the command line is formatted as
user input
. -
Replaceable Text – Variable text, including names of resources that you choose, or IDs generated by AWS services that you must include in commands, is formatted as
replaceable text
. In multiple line commands or commands where specific keyboard input is required, keyboard commands can also be shown as replaceable text. -
Output – Output returned by AWS services is shown beneath user input without any special formatting.
For example, the following command includes user input, replaceable text, and output:
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: ENTER
To use this example, type aws configure
at the command line and
press Enter. aws configure
is the command. This
command is interactive, so the AWS CLI outputs lines of texts, prompting you to enter
additional information. Enter each of your access keys in turn and press
Enter. Then, enter a region name in the format shown, press
Enter, and press Enter a final time to skip the output
format setting. The final Enter command is shown as replaceable text because
there is no user input for that line. Otherwise, it would be implied.
The following example shows a simple non-interactive command with output from the service in JSON format:
$ aws ec2 create-security-group --group-name my-sg
--description "My security group"
{
"GroupId": "sg-903004f8"
}
To use this example, enter the full text of the command (the highlighted text after the
prompt) and press Enter. The name of the security group, my-sg
is replaceable. In this case, you can use the group name as shown, but you will probably want
to use a more descriptive name.
Note
Arguments that must be replaced (such as AWS Access Key ID), and those that should be
replaced (such as group name), are both shown as replaceable
text
. If an argument must be replaced, it will be noted in the text describing
the example.
The JSON document, including the curly braces, is output. If you configure your CLI to output in text or table format, the output will be formatted differently. JSON is the default output format.
Quick Configuration
For general use, the aws configure
command is the fastest way to set up your
AWS CLI installation.
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
The AWS CLI will prompt you for four pieces of information. AWS Access Key ID and AWS Secret Access Key are your account credentials. If you don't have keys, see the Getting Set Up section earlier in this guide.
Default region is the name of the region you want to make calls against by default. This is usually the region closest to you, but it can be any region.
Note
You must specify an AWS region when using the AWS CLI. For a list of services and available regions, see Regions and Endpoints.
Default output format can be either json, text, or table. If you don't specify an output format, json will be used.
If you have multiple profiles, you can configure additional, named profiles by using the
--profile
option.
$ aws configure --profile user2
AWS Access Key ID [None]: AKIAI44QH8DHBEXAMPLE
AWS Secret Access Key [None]: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
Default region name [None]: us-east-1
Default output format [None]: text
To update any of your settings, simply run aws configure
again and enter new
values as appropriate. The next sections contains more information on the files that aws
configure
creates, additional settings, and named profiles.
Configuration Settings and Precedence
The AWS CLI uses a provider chain to look for AWS credentials in a number of different places, including system or user environment variables and local AWS configuration files.
The AWS CLI looks for credentials and configuration settings in the following order:
-
Command Line Options – region, output format and profile can be specified as command options to override default settings.
-
Environment Variables –
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
, etc. -
The AWS credentials file – located at
~/.aws/credentials
on Linux, macOS, or Unix, or atC:\Users\
on Windows. This file can contain multiple named profiles in addition to a default profile.USERNAME
\.aws\credentials -
The CLI configuration file – typically located at
~/.aws/config
on Linux, macOS, or Unix, or atC:\Users\
on Windows. This file can contain a default profile, named profiles, and CLI specific configuration parameters for each.USERNAME
\.aws\config -
Instance profile credentials – these credentials can be used on EC2 instances with an assigned instance role, and are delivered through the Amazon EC2 metadata service.
Configuration and Credential Files
The CLI stores credentials specified with aws configure
in a local file
named credentials
in a folder named .aws
in your home directory.
Home directory location varies but can be referred to using the environment variables
%UserProfile%
in Windows and $HOME
or ~
(tilde) in
Unix-like systems.
For example, the following commands list the contents of the .aws
folder:
Linux, macOS, or Unix
$ ls ~/.aws
Windows
> dir %UserProfile%\.aws
In order to separate credentials from less sensitive options, region and output format
are stored in a separate file named config
in the same folder.
The default file location for the config file can be overridden by setting the AWS_CONFIG_FILE environment variable to another local path. See Environment Variables for details.
Storing Credentials in Config
The AWS CLI will also read credentials from the config file. If you want to keep all of
your profile settings in a single file, you can. If there are ever credentials in both
locations for a profile (say you used aws configure
to update the profile's
keys), the keys in the credentials file will take precedence.
If you use one of the SDKs in addition to the AWS CLI, you may notice additional warnings if credentials are not stored in their own file.
The files generated by the CLI for the profile configured in the previous section look like this:
~/.aws/credentials
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
~/.aws/config
[default]
region=us-west-2
output=json
The following settings are supported.
aws_access_key_id – AWS access key.
aws_secret_access_key – AWS secret key.
aws_session_token – AWS session token. A session token is only required if you are using temporary security credentials.
region – AWS region.
output – output format (json, text, or table)
Named Profiles
The AWS CLI supports named profiles stored in the config and
credentials files. You can configure additional profiles by using aws configure
with the --profile
option or by adding entries to the config and credentials
files.
The following example shows a credentials file with two profiles:
~/.aws/credentials
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[user2]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
Each profile uses different credentials—perhaps from two different IAM users—and can also use different regions and output formats.
~/.aws/config
[default]
region=us-west-2
output=json
[profile user2]
region=us-east-1
output=text
Important
The AWS credentials file uses a different naming format than the CLI config file for named profiles. Do not include the 'profile ' prefix when configuring a named profile in the AWS credentials file.
Using Profiles with the AWS CLI
To use a named profile, add the --profile
option to your command. The
following example lists running instances using the user2
profile from the
previous section.
$ aws ec2 describe-instances --profile user2
If you are going to use a named profile for multiple commands, you can avoid specifying the profile in every command by setting the AWS_DEFAULT_PROFILE environment variable at the command line:
Linux, macOS, or Unix
$ export AWS_DEFAULT_PROFILE=user2
Windows
> set AWS_DEFAULT_PROFILE=user2
Setting the environment variable changes the default profile until the end of your shell session, or until you set the variable to a different value. More on variables in the next section.
Environment Variables
Environment variables override configuration and credential files and can be useful for scripting or temporarily setting a named profile as the default.
The following variables are supported by the AWS CLI
AWS_ACCESS_KEY_ID – AWS access key.
AWS_SECRET_ACCESS_KEY – AWS secret key. Access and secret key variables override credentials stored in credential and config files.
AWS_SESSION_TOKEN – session token. A session token is only required if you are using temporary security credentials.
AWS_DEFAULT_REGION – AWS region. This variable overrides the default region of the in-use profile, if set.
AWS_DEFAULT_PROFILE – name of the CLI profile to use.
This can be the name of a profile stored in a credential or config file, or
default
to use the default profile.
AWS_CONFIG_FILE – path to a CLI config file.
If the config file variable is set, aws configure
will write region and
output settings to the specified file, and the CLI will attempt to read profiles' settings
from there instead of the default file (~/.aws/config). Credentials will still be read from
and written to the default credentials file (~/.aws/credentials).
The following example shows how you would configure environment variables for the default user from earlier in this guide.
Linux, macOS, or Unix
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
Windows
> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
> set AWS_DEFAULT_REGION=us-west-2
Command Line Options
The AWS CLI uses GNU-style long command line options preceded by two hyphens. Command line options can be used to override default configuration settings for a single operation, but cannot be used to specify credentials.
The following settings can be specified at the command line.
--profile – name of a profile to use, or "default" to use the default profile.
--region – AWS region to call.
--output – output format.
--endpoint-url – The endpoint to make the call against. The endpoint can be the address of a proxy or an endpoint URL for the in-use AWS region. Specifying an endpoint is not required for normal use as the AWS CLI determines which endpoint to call based on the in-use region.
The above options override the corresponding profile settings for a single operation. Each takes a string argument with a space or equals sign ("=") separating the argument from the option name. Quotes around the argument are not required unless the argument string contains a space.
Tip
You can use the --profile option with aws configure
to set up additional
profiles
$ aws configure --profile profilename
Common uses for command line options include checking your resources in multiple regions and changing output format for legibility or ease of use when scripting. For example, if you are not sure which region your instance is running in you could run the describe-instances command against each region until you find it:
$ aws ec2 describe-instances --output table --region us-east-1
-------------------
|DescribeInstances|
+-----------------+
$ aws ec2 describe-instances --output table --region us-west-1
-------------------
|DescribeInstances|
+-----------------+
$ aws ec2 describe-instances --output table --region us-west-2
------------------------------------------------------------------------------
| DescribeInstances |
+----------------------------------------------------------------------------+
|| Reservations ||
|+-------------------------------------+------------------------------------+|
|| OwnerId |<PHONE_NUMBER>01 ||
|| ReservationId | r-abcdefgh ||
|+-------------------------------------+------------------------------------+|
||| Instances |||
||+------------------------+-----------------------------------------------+||
||| AmiLaunchIndex | 0 |||
||| Architecture | x86_64 |||
...
Command line option parameter types (string, boolean, etc.) are discussed in detail in the Specifying Parameter Values for the AWS Command Line Interface section later in this guide.
Instance Metadata
To use the CLI from an EC2 instance, create a role that has access to the resources needed and assign that role to the instance when it is launched. Launch the instance and check to see if the AWS CLI is already installed (it comes pre-installed on Amazon Linux).
Install the AWS CLI if necessary and configure a default region to avoid having to specify
it in every command. You can set the region using aws configure
without entering
credentials by pressing enter twice to skip the first two prompts:
$ aws configure
AWS Access Key ID [None]: ENTER
AWS Secret Access Key [None]: ENTER
Default region name [None]: us-west-2
Default output format [None]: json
The AWS CLI will read credentials from the instance metadata. For more information, see Granting Applications that Run on Amazon EC2 Instances Access to AWS Resources in IAM User Guide.


In the articulation of vowels, the tongue body may either be raised (towards the palatal area) or be lowered. The utmost raised tongue position for a vowel is describe as close (or high). When the tongue body is lowered to its utmost, the position is described as open. In between close and open positions, there are two others: close-mid and open-mid. The tongue body could be retracted to the back towards the pharynx or pushed to the front towards the teeth. When the tongue is neither retracted nor fronted, the position is central. In the production of vowels, lips can be rounded or unrounded to change the quality of the sound.