ActiveMerchant CHANGELOG
- Add test mode detection to Beanstream [cody]
- Add support for Beanstream payment gateway [xiaobozz]
- Add support for PayPal NV Pair API. Will be used to replace the usage of
the PayPal SOAP API in ActiveMerchant in the future [Greg Furmanek, cody]
- Protx does support UK Maestro [cody]
- Add tests for length of UK Maestro cards [cody]
- Return all the error messages and codes from paypal responses [cody]
- Fail hard when attempting to capture without a credit card with NetRegistry
[cody]
- Add support for the order fields to the create_customer_profile_transaction
in Authorize.net CIM. [Patrick T. Joyce]
- Strip invalid characters and limit lengths of Protx customer data [Simon
Russell]
- Fix empty start or end dates in Protx [Simon Russell]
- Add support for Authorize.net CIM [Patrick T. Joyce, Ian Lotinsky]
- Add option to skip order review to all PayPal Express gateways
[garret.alfert, cody]
- Add capturing partial amounts, fix issue number formatting, fix
authorization string when nil values returned, fix parsing of multiple
’=’ characters, simplify message_from [Simon Russell]
- Fix StartDate in ProtxGatewy [cody]
- Add support for refunds and continuous authority references to
DataCashGateway [joel.chippindale]
- Fix gross in HiTrust notification. Don‘t use Money object in Verifi
gateway [cody]
- Initial implementation of Payflow Name-Value API [Greg Furmanek]
- Add support for CyberSource credits [mjuneja]
Version 1.3.2 (February 24, 2008)
- Actually fix the bug by adding extdata element to Payflow Requests [cody]
- Fix bug with adding name to Payflow requests [cody]
- Gateways will now look for CreditCard#brand before looking for
CreditCard#type [cody]
- Make before_validate in CreditCard more clear<EMAIL_ADDRESS>cody]
- Don‘t send full Australian state names to PayPal [cody]
- Return last_digits that are less than 4 characters long [cody]
- Fix Bug with Authorize.Net ARB Remote Test [patrick.t.joyce]
- Add support for forcing test mode on Secure Pay AU gateway [cody]
- Update Secure Pay Au to meet specs for MessageInfo elements [cody]
- Add support for the Australian Secure Pay payment gateway [cody]
- Allow LinkPoint cancellations for recurring billing. [yanagimoto.shin]
- Add support for Åland Islands to the country list [cody]
Version 1.3.1 (January 28, 2008)
- Rename BrainTreeGateway to BraintreeGateway, but keep alias to old naming
for backwards compatibility [cody]
Version 1.3.0 (January 28, 2008)
- Remove attr_readers for url and response from Gateway [cody]
- Remove @url from EfsnetGateway [cody]
- Remove @response instance variable in QuickpayGateway. [cody]
- Remove @response instance variable in PsigateGateway. Don‘t use
billing address for shipping [cody]
- Remove @response instance variable in PaypalGateway. Don‘t use
billing address for shipping. [cody]
- Remove @response instance variable in PayflowGateway [cody]
- Remove @response instance variable in MonerisGateway [cody]
- Remove @response instance variable and don‘t use billing address for
shipping address in LinkpointGateway [cody]
- Remove @response instance variable from ExactGateway [cody]
- Remove @response instance variable from EwayGateway [cody]
- Remove @response instance variable from EfsnetGateway [cody]
- Remove @response instance variable from DataCashGateway [cody]
- Don‘t use billing_address for shipping_address in CyberSourceGateway
[cody]
- Remove @response instance variable from CardStreamGateway [cody]
- Remove @response instance variable from BrainTreeGateway [cody]
- Remove unused deal_with_cc method from BogusGateway [cody]
- Remove test_result_from_cc_number completely from ActiveMerchant [cody]
- Don‘t use billing_address for shipping_address in Realex [cody]
- Update Realex to add support for cvv data. remove
test_result_from_cc_number. [cody]
- Update Protx to add support for avs and cvv data. remove
test_result_from_cc_number. [cody]
- Include ActiveMerchant::Utils module in test_helper and use
generate_unique_id from the module instead of generate_order_id. [cody]
- Update SecurePay tests to check for avs and cvv data. [cody]
- Update SkipJack to add support for avs and cvv data. remove
test_result_from_cc_number. [cody]
- Move generate_unique_id to its own module [cody]
- Update Viaklix to add support for avs and cvv data. remove
test_result_from_cc_number. Truncate fields to avoid failure [cody]
- Update PSL Card Gateway to add support for avs and cvv data. remove
test_result_from_cc_number. [cody]
- Update PlugNPayGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Update PaymentExpressGateway to remove test_result_from_cc_number. [cody]
- Update PaySecure to remove test_result_from_cc_number. [cody]
- Update NetbillingGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Replace all usage of :address with :billing_address in test cases [cody]
- Remove sensitive data from NetRegistryGateway responses. Refactor gateway
and tests. Remove test_result_from_cc_number. [cody]
- Update VerifiGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Small refactoring of UsaEpayGateway [cody]
- Update UsaEpayGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Update TrustCommerce docs now that the gateway falls back to SSL post when
tclink isn‘t available [cody]
- Change ARB to use correct :address1 key for addresses [cody]
- No need for specialized recurring response for Authorize.net recurring
billing [cody]
- Update TransFirst to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Maintain backwards compatibility with :address option for now in the
Payflow gateways [cody]
- Remove test_result_from_cc_number from SecurePayTech. Improve unit test
coverage [cody]
- Fix email option in PayflowGateway. Remove support for :address option.
:billing_address and :shipping_address must now be passed in separately.
[cody]
- Make Bogus gateway‘s credit() method behave like capture [cody]
- Add update and delete methods to update and delete records stored in the
vault. [benjamin.curtis]
- Add support for recurring_inquiry() to the PayflowGateway
<EMAIL_ADDRESS>- Add support for Authorize.net Automated Recurring Billing (ARB)
[vkurnavenkov, forestcarlisle<EMAIL_ADDRESS>patrick.t.joyce]
- Fix laser card regex [ladislav.martincik]
- Cleanup whitepace in README [patrick.t.joyce]
- Update ExactGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Remove test_result_from_cc_number from eWay gateway. [cody]
- Remove duplicate attr_reader definitions from all gateways [cody]
- Remove useless tests raising Error [cody]
- Update gateway templates [cody]
- Fix Authorize.net test where authorize() was being called instead of
purchase(). Perform some cleanup of the tests<EMAIL_ADDRESS>cody]
- Improve Authorize.net documentation based on the DataCashGateway docs
[patrick.t.joyce]
- Update EfsnetGateway to support avs and cvv data. Remove
test_result_from_cc_number. [cody]
- Remove test_result_from_cc_number from DataCash. Improve unit test coverage
[cody]
- Update CyberSourceGateway to support avs and cvv results. Remove
test_result_from_cc_number. [cody]
- Remove match information from CVVResult [cody]
- Remove Response#card_data. The application has access to the information
anyway [cody]
- Return the last 4 digits of the card number from the Response instead of
the masked number [cody]
- Actually use the shipping address in TrustCommerce [cody]
- Update TrustCommerceGateway to support avs and cvv results. Remove
test_result_from_cc_number. Automatically fallback to SSL POST if the
TCLink library is not available. Add additional customer information to the
requests. [cody]
- Fix remote CardStreamGateway tests [cody]
- Map merchant AVS codes to street and postal match codes [cody]
- Update CardStreamGateway to support avs and cvv data [cody]
- Remove merchant_data hash. Add additional CVV codes [cody]
- Update QuickpayGateway to support merchant_data hash. Remove
test_result_from_cc_number. [cody]
- Update LinkpointGateway to support merchant_data hash. Remove
test_result_from_cc_number. [cody]
- Update PsigateGateway to support merchant_data hash. Remove
test_result_from_cc_number. [cody]
- Update MonerisGateway to support merchant_data hash. Remove
test_result_from_cc_number. [cody]
- Remove AVS Message and CVV2 Message from params hash in Authorize.net
[cody]
- Update BrainTreeGateway to support merchant_data hash [cody]
- Update PaypalGateway to support merchant_data hash [cody]
- Update Payflow to support merchant_data hash [cody]
- Add card data to PayJunction response. PayJunction does not return the CVV
or AVS result codes. Remote test_result_from_cc_number from PayJunction.
[cody]
- Rename CCVResult to CVVResult to be more aligned with
ActiveMerchant‘s usage of the term verification value [cody]
- Remove test_result_from_cc_number from Authorize.net in favour of mocking
[cody]
- Add merchant_data hash, which contains all of the card_data, avs_result,
and ccv_result. [cody]
- Add CCVResult for the Card Code Verification Result. Update Authorize.net
to use the new class [cody]
- Rename AVSResult#match_type AVSResult#match [cody]
- Rename AVS::Result class to AVSResult [cody]
- Convert Authorize.net gateway to use the new AVS module [cody]
- Add AVS data to the Response object [cody]
- Fix credentials for remote Authorize.net TEST MODE test [cody]
- Add AVS module and AVS::Result class [cody]
- Update base gateway class RDOC [cody]
- Update the README with the latest list of supported gateways. Update the
example in the README to include the verification value, which is now
required by the credit card object by default. [cody]
- Handle the return from 2Checkout [cody]
- Automatically determine the credit card type when a type is not provided
[cody]
- Revert to initial implementation of LUHN algorithm because it all fits in
one simple method [cody]
- Remove unused api_cert_chain.crt file [cody]
- Update PaypalGateway, and PaypalExpressGateway to send requests to the
correct endpoints when using API signatures [cody]
- Successful return code for HiTRUST is actually 00 [cody]
- Make ActiveMerchant::Billing::Error a subclass of
ActiveMerchant::ActiveMerchantError [cody]
- Handle the return from the offsite payment gateways [cody]
- Default HiTRUST order description to "Store purchase" [cody]
- Fix HiTRUST field names [cody]
- Add support for passing in the locale code<EMAIL_ADDRESS>- Add support for the Offsite payment gateway HiTRUST [cody]
- Accept SuccessWithWarning as success [cody]
- Add a link to the LinkPoint staging server docs in remote_linkpoint_test.rb
[cody]
- Update Discover regex [cody]
- Match full pan range of Maestro cards from 12 - 19 digits in length [cody]
- Fix errors on base of CreditCard [josh.bassett]
- Update product to use Rubigen instead of stolen Rails generator [cody]
- Mimic directory structure of unit tests in remote tests [cody]
- Restructure the location of the remote tests [cody]
- Ensure DataCash order_id is limited to 30 characters [cody]
- Return the pretty messages from PayJunction based on the return code [cody]
- make CreditCard.require_verification_value = true the default [cody]
- Use existing credit_card helper in credit card tests [cody]
- Return the authrorization number of the original transaction in the
SkipJack gateway [cody]
- Update format of line items given to the gateway. Cleanup and uncomment
unit tests [cody]
- Add support for the SkipJack gateway [Bill Bereza, cody]
- Make the bogus gateway easier to test by moving messages into constants
[cody]
- Add retry logic when connection has been refused for all gateways. Enable
safe retries of all connection failures with the PayflowGateway, as it has
a unique request header. [cody]
- Catch Timeout::Error when posting data [cody]
- Change order of loading ActionPack for tests since assert_success defined
in ActionController::Assertions::DeprecatedAssertions inteferes with
ActiveMerchant‘s definition [cody]
- Catch Errno::ETIMEDOUT and extend open and read timeouts to 60 seconds
[cody]
- Add address2 to the billing address of Viaklix transactions [cody]
- Improve Psigate generic error message [cody]
- Fix small errors in Psigate documentation [cody]
- Add Response#fraud_review? query method to the response. Allows gateways to
indicate that a payment is pending review by the fraud service [cody]
- Handle Errno::ECONNRESET when posting data [cody]
- Fix broken USA ePay URL [cody]
- Update RequiresParameters to support HashWithIndifferentAccess [cody]
- Add support for SecurePayTech payment gateway [Jasper Bryant-Greene]
- Detect when test credentials are being used with PayJunction [cody]
- Update documentation about TrustCommerce void [cody]
- Add void to TrustCommerce [jesse.c.scott]
- Add support for echecks to the BrainTree gateway [Jeremy Voorhis]
- Fix before_validate and validate methods in CreditCard [rick.denatale]
- Add support for Netbilling payment gateway [cody]
- Pass in N/A for unknown states when a country is present in PaypalGateway
[cody]
- Strip non alpha chars from order_id in Payflow gateway, as Paymentech Tampa
can‘t handle them [cody]
- Add support for the PaySecure payment gateway [cody]
- Add support for descriptions in Authorize.net credits [shiva.kaul]
- Great cleanup and improvement of CreditCard code, tests, and docs [James
Herdman]
Version 1.2.1
- Fix remote PayPal tests [cody]
Version 1.2.0
- Update Linkpoint tests to remove useless pem file [cody]
- Use symbols for CreditCard error messages, since errors have indifferent
access [cody]
- Improve CreditCard error messages [George Ogata]
- Change deny to assert_false, and deny_success to assert_failure. Remove
Gateway.gateway, as it is available from Base [cody]
- Improve documentation, and test coverage [James Herdman]
- Refactor MonerisGateway, improve test coverage and documentation [James
Herdman]
- Add support for crediting to Moneris [James Herdman]
- Send state N/A in Payflow when the state is blank. Fixes UK PayPal Express
payments when not providing a state [cody]
- Load remote test credentials from a fixtures file. ActiveMerchant will look
for a custom file ~/.active_merchant/fixtures.yml. If the file exists it
will be loaded instead of the default fixtures provided by ActiveMerchant.
This makes development easier, and removes the risk of committing
non-public test account credentials to subversion. [cody]
- Add support for password protected pem files [cody]
- Add support for Concord Efsnet payment gateway [snacktime]
- Fix dependency loading for gateways that are subclasses [cody]
- Add Braintree payment gateway [Michael J. Mangino]
- Add support for PayPal API signatures [Benjamin Curtis, cody]
- Add payment gateway Viaklix [Sal Scotto, cody]
- Add Australian payment gateway NetRegistry [George Ogata]
- Take order email from the options hash instead of the address for
CyberSource [cody]
- Use an array for LineItems when calculating tax in CyberSource gateway
[cody]
- Add CyberSource gateway [Matt Margolis]
- Sanitize Protx order id [cody]
- Fix support for electron in Protx [cody]
- Add support for Protx [shiftx, cody]
- Use undef_method with a single argument in SecurePay to prevent JRuby from
choking on it. [jonathan.l.bartlett]
- Default address_override to 0 for PayPal Website Payments Standard
payments. [cody]
- Enhance credit card error messages [manfred]
- Use HashWithIndifferentAccess for CreditCard for compatibility with Rails
applications [michael.j.mangino]
- Fix nil exception when no response reason text is found in Authorize.net
[cody]
- Add support for PayJunction [Matt Sanders]
- Change billing_address to shipping_address in PayPal Integration helper, as
billing_address was incorrect. Addresses passed to billing_address for the
PayPal helper will no longer be added to the form. This will break existing
code, as the address will not be passed.
- Remove switch patterns from card detection that were eliminated on July 1,
2007 [cody]
- Format the issue number in Payflow requests to always be 2 digits [cody]
- Move application_id to Gateway and Helper class respectively [cody]
- Improve TrustCommerce documentation [cody]
- Add credit to Payflow [cody]
- Add support for the Plug ‘N Pay gateway [ryan.norbauer, cody]
- Add support for ItemTotal, Shipping, Handling, and Tax amounts in the
PayPal Express and PayPal gateways [baldwindavid, cody]
- Add page customization options to the PaypalExpress, and PayflowExpress
gateways [ cpjolicoeur, cody]
- Add Verifi gateway [Paul Hepworth]
- Add a PayflowResponse object with a profile_id accessor method. Return the
correct authorization number on recurring actions [cody]
- Add support for an initial transaction with recurring payments [findchris,
cody]
- Add support for email receipts to recurring Payflow Payments [Rick Olson]
- Ensure the ButtonSource isn‘t too long [cody]
- Add ButtonSource to Paypal and PaypalExpress gateways [cody]
- Rename application to application_id and place it on Base, so it can be set
once and forgotten about [cody]
- Add ButtonSource field to PayflowExpress gateway [cody]
- Add a field for the bn to the PayPal helper [cody]
- Add remote secure pay test and correctly define test? [cody]
- Undefine unsupported methods from SecurePay [cody]
- Enhance the TransFirst error message for declined transactions [cody]
- Add initial support for TransFirst gateway [cody]
- Deprecate certification_id in Payflow gateways [cody]
- Work around required PayPal state fields for countries that don‘t
require states [cody]
- Add metadata to SecurePay gateway [cody]
- Add initial support for the SecurePay gateway using the Authorize.net
translator [cody]
- Add the homepage_url and display_name accessors to each gateway [cody]
- Remove Money dependency from main gateways. Cleanup tests. Add
supported_countries class accessor which returns an array of 2 digit iso
country codes for which countries the gateway supports accounts in [cody]
- Add American Express card to Psigate [cody]
- Send N/A to PayPal in the PayPal Helper when we don‘t know the UK
county [cody]
- Actually pass the amount of the capture through to Payflow [cody]
- Update ExactGateway test and test mode [cody]
- Remove unused method in PslCardGateway [cody]
- Add updated credit card tests [cody]
- Update and test PslCardGateway [cody]
- Add Laser card type [cody]
- Update Nochex documentation [cody]
- Sanitize the Realex order_id [cody]
- Add support for Irish Realex payment gateway [John Ward, cody]
- Move credit_card helper method to the test_helper [cody]
- Update PayflowExpressResponse to match the interface of the
PayflowExpressResponse. Add :no_shipping and :address_override options to
PayflowExpress [cody]
- Add a currency option to the Payflow and Paypal gateways [cody]
- PaypalExpress should use the shipping address, not the billing address
[cody]
- Allow overriding the user with Payflow so that a vendor and user can be
provided when making requests [cody]
- PayPal DirectPayment API requires a UK County to be sent as the state or
province. Return N/A as the state when one isn‘t provided to ensure
that PayPal doesn‘t reject the payment [cody]
- Add ability to perform reference transactions with Payflow [Al Evans, cody]
- Enhance recurring Payflow tests and recurring_inquiry [Al Evans]
- Add recurring payments to Payflow [Rick Olson]
- Improve the error message generated by requires! [cody]
- Update credit card regular expressions and update Quickpay gateway with
tests for new cards [cody]
- Add support for token based payments to PaymentExpress [Nik Wakelin]
- Refactor default_currency to the base gateway class [cody]
- Clean unsupported characters from the Quickpay ordernum [cody]
- Call the :sale and :authorization in QuickpayGateway [cody]
- Add Danish gateway Quickpay [cody]
- Remove redundant hash brackets from generator template [cody]
- Add additional options to the PayPal Website Payments Standard Helper [Rick
Olson]
- Move generate_unique_id method to Gateway class so other gateways can also
use it [cody]
- Allow notification name / value pairs to have a . in the name like
checkout.x = 400 [cody]
- Fix PaypalExpressGateway#purchase to have the same method signature as
other gateways [cody]
- Cargo cult off the rails unique id generator instead of UUID library [cody]
- Add uuid-1.0.3 for generating random request UUIDs [cody]
- Remove mock_methods and http mock from the library [cody]
- PaypalExpress cannot setup a payment for 0 dollars. If the amount is zero
then setup a payment for $1. [cody]
- Small changes to PslCard gateway [cody]
- Fix Money dependency with PslCard gateway [cody]
- Add PslCard payment gateway [MoneySpyder moneyspyder.co.uk]
- Scrub the card number, expiry, and CVV code from the response [cody]
- Use test? query for checking test mode [cody]
- Add support for the E-xact Payment Gateway [James Edward Gray II, cody]
- Fix partially broken method of dealing with phone numbers in the PayPal
Helper [cody]
- Update remote tests for PaymentExpress [cody]
- Add Content-Type header to PaymentExpress post [cody]
- Use DECLINED as the message for declined transactions in the PaymentExpress
remote tests [cody]
- Add JCB as a supported card type for the PaymentExpressGateway [cody]
- Rename DpsGateway to PaymentExpressGateway [cody]
- Add DPS Payment Express gateway (NZ) [dgjones, cody]
- Remove duplicate and incorrect expdate method from Authorize.net [cody]
- Allow authorization and purchase using a billing_id retrieved from
TrustCommerce citadel [jesse.c.scott]
- Don‘t return a frozen string from CreditCard.type? [cody]
- Update remote Psigate test to ensure using a verification value
doesn‘t break anything [cody]
- Update remote Moneris test to ensure using a verification value
doesn‘t break anything [cody]
- Fix Solo issue number with CardStream gateway and improve test coverage
[cody]
- Add CardStream gateway [Jonah Fox, Thomas Nichols, cody]
- Verify Peer in PayPal notifications and add account method [cody]
Version 1.1.0
- Add unique_id option to PayPal mass payments [Haig]
- Fix expiry date in USA ePay [cody]
- Fix PayPal Payments Pro UK with Switch & Solo cards [cody]
- Add reauthorization to PaypalGateway and PaypalExpressGateway [dorrenchen]
- Update DataCash tests and format merchant reference number to meet
DataCash‘s requirements [MoneySpyder, cody]
- Add Datacash gateway [MoneySpyder, cody]
- VERIFY_PEER on all SSL requests [cody]
- Add support for 2Checkout [cody]
Version 1.0.3
- Add support for PayPal mass payments to the PaypalGateway and the
PaypalExpressGateway [Brandon Keepers]
- Add a credit method to Authorize.net [cody]
Version 1.0.2
- Add support for OrderDescription, Payer, and InvoiceID fields in
PaypalGateway [cody]
Version 1.0.1
- Add support for crediting to PayPal [cody, Haig]
Version 1.0.0
- Add discover to list of supported card types for Authorize.net
- Fix Psigate crediting<EMAIL_ADDRESS>- Fix dependency loading of tests
- Add methods for storing credit cards to the Bogus gateway [Jim Kane]
- Fix bugs in expiration dates. [Jim Kane]
- Fixed bugs related to authorized.net [Rick Olson]
- Linkpoint is now a full featured backend for active merchant [Ryan Heneise]
- Added linkpoint support [Ryan Heneise]
- Added trust commerce gateway [Hans Friedrich]
- Removed shipping stuff until there is time to implement it properly
- The library now rejects money amounts which are not either cents as integer
or a Money object
- Moneris now uses the same layout as the authorized.net plugin
- Added authorized.net
- Changed default to :test mode. Set to production with
ActiveMerchant::Billing::Base.gateway_mode = :production
- More refactoring
- Refactored a bit so that there is space for billing and shipping area. None
of the shipping aids are fleshed out yet. Needs more work.
- Added Moneris support
- Credit card in memory object resembling a AR object
- Credit card validation methods as static methods of the credit card object


[Erowid Note: Combining MAOIs with other psychoactive drugs carries serious medical risks and can result in extremely unpleasant side effects, overheating, nausea, confusion, heart problems, and even death. Please see Erowid's MAOI Vault]
I'd taken mushrooms several times, and had fun trips, party trips, nothing heavy. Sex on mushrooms and pot was always excellent, and I would go round to one particular friend to trip, get stoned, and have wild kinky sex. This all changed one night when I experimented with Syrian Rue seeds. These potentiate the effects of mushrooms (and some other drugs) by blocking an enzyme that breaks down the alkaloids in the mushroom. I then had about 20 fresh mushies, probably half as much again as I'd taken previously.
Normally, I feel the effects after 40 minutes or so, but this time disorientation and visual disturbances hit after 10 minutes. It was so strong and sudden, I knew I was in for a rough ride, and had to stop Willy from playing with me, I just wanted quiet. For the first time I was descending into a bad trip. 'Monsters from the Id' tormented me, was I dying? Had I taken poisonous 'shrooms? Would I end up in the emergency room? Doubts and fears crowded in, and I clung to sanity with some difficulty, telling myself that of course I'd be OK, I'd get through the trip and live another day. I felt I was sinking down a dark tunnel of my soul. I don't know how long this went on, I'm guessing probably half an hour.
Then with no warning, and in about 2 or 3 seconds, the trip changed. The crowding doubts and fears were suddenly swept away by what I can only describe as a sun or blow-torch of the purest love and joy. I felt I'd sunk to the depths of by soul, and reached a well of pure goodness. At the same time I knew, absolutely and with no doubt, that I was in Nirvana, the Buddhist heaven, which was strangely inside me as much as an external place. At the same time as this joy erupted, the room I was in exploded in colour, pulsing across the spectrum and beyond, to colours that don't exist, and while I remember marveling at the colours I'd never suspected could exist, I cannot now recall them. I guess the brain isn't equipped to remember such things! I remember telling Willy that if I died, I would die happy, I'd seen it! I stayed in Nirvana for about four hours, before being gently let down to Earth.
I can't adequately describe the intensity of my experience, it's like trying to describe the colour red to a blind man. I can only say it changed my life. This happened about four years ago, and I can't look at the world in quite the same way still, there is more beauty in the world than I ever thought. Contemplating a flower is enough to lift my mood. I had a strong feeling that I could never go to the same place again, a vision of Nirvana is at best a once in a lifetime experience. My feeling that this was Nirvana was strengthened by visiting Nepal and seeing Buddhist Thankas (religious paintings). One form, the Mandala, has concentric rings, the outer ones inhabited by demons, but ending in Nirvana in the centre, just how I would paint my experience if I could! I suspect that the monks who originally formalised this form of painting reached the same state of mind as I had, but maybe by meditating for years rather than using psychedelic plants.
I have had many more mushroom experiences, but since my 'Big Trip', they have changed. They aren't just a 'drug experience' any more, but a deeply spiritual experience. The world becomes coated with true magic, and I can sense the flow of life in things. Standing barefoot on grass, my consciousness spreads out through the soil, roots, fungi, and feel the interconnections of them all. Touching a leaf on a shrub, and my mind dives into it, along branches and into roots. I wondered what an ancient tree would feel like, and recently tried to connect with one, a disappointing experience, as the dead bark seemed to insulate me from the tree. A shame that an weed works better!
Imagine what it's like touching another person then. If the other person has had mushrooms, I can often sense the 'mushroom light' glowing from inside, and with gentle touch, caress their soul. It sounds crazy (even to me), but it happens. I can drive them wild with pleasure, or 'download' knots of emotion, healing emotional wounds. I haven't lost the plot, the friends I do this with corroborate my experience.
Last week, I tried some San Pedro cactus, and (for the first time with cactus) the magic coated the world. I was with a friend who hadn't had any, just some cannabis. He looked into my eyes and surfed on my trip, and swore he saw incredible depth and power surging through them and had the most pleasurable experience of his life. I can't discount what he saw as my delusion. So what is happening? I don't know, but it is true magic. I'm looking forward to continuing this journey of discovery, with good friends and much pleasure!
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.


Set Chart Content¶
Click the Chart dropdown menu and choose a chart type:
Configure the content of the chart by clicking the Options button.
The options dialog that opens contains a set of common configuration choices for every chart, plus a set of options specific to the chart type you selected. For example, Bar Chart shows the following options dialog:
To set keys and values, drag fields from the Fields list on the left and drop them where you want them.
Set these common options for every chart:
- Chart Title. Enter an apt, descriptive title
- Fields. List of available field names derived from your DataFrame schema
- Keys. Field(s) to serve as the x-Axis
- Values. Field(s) to serve as the y-Axis
- Aggregation. Type of aggregation to be performed on the data. Options include:
- SUM sum or total of values for the key
- AVG average of values for the key
- MIN Min (lowest) of values for the key
- MAX Max (highest) of values for the key
- COUNT number of times the key occurs
Then choose the chart-specific options. Read on to learn how to configure individual chart types.
Note
Errors? Issues? If you get an error or encounter a problem displaying data, start troubleshooting by checking the logs.


sos: Search Contributed R Packages, Sort by Package
Search contributed R packages, sort by package.
| Version: |
2.0-0 |
| Depends: |
brew |
| Suggests: |
RODBC, WriteXLS, fda |
| Published: |
2017-07-03 |
| Author: |
Spencer Graves, Sundar Dorai-Raj, and Romain Francois |
| Maintainer: |
Spencer Graves <spencer.graves at prodsyse.com> |
| License: |
GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: |
no |
| Materials: |
NEWS |
| CRAN checks: |
sos results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=sos
to link to this page.


Fluents: a Uniform Extension of Kernel Prolog
for Reflection and Interoperation with External Objects
Paul Tarau
University of North Texas & BinNet Corporation
-
Kernel Prolog = Horn Clause Interpreters with
LD-resolution ( Answer Sources)+ Fluents
-
redesigning key components of Prolog's system
of built-in predicates
-
uniform interface for controlling multiple
interpreters and external stateful objects
-
lazy, composable data structures
-
interoperation with the underlying Java system
-
crisp abstractions -> new design patterns
-
http://www.binnetcorp.com/kprolog/Main.html
Motivation
-
Logic Programming languages share a common
kernel: Horn Clause Resolution
-
LP: reasoning with referentially transparent, stateless
entities
-
the resolution process as such, is not
stateless, as it proceeds in time, step by step
-
ability to reflect in the object language
the resolution process provided by the underlying ''glass-box''
interpreter, in its full generality => the need of stateful primitives
-
similar abstractions:
-
file or socket streams in C, lazy list streams
in Scheme
-
iterators in Java or C+, declarative I/O in
Mercury
-
monadic constructs in Haskell and LambdaProlog
Fluent Classes and their Operations
Fluents are created with specific constructors,
usually by converting from other Fluents or conventional Prolog data structures
like Terms, Lists or Databases...
class Fluent extends SystemObject {
Fluent(Prog p) {
trailMe(p);
}
// add the fluent to the parent Interpreter's Trail
protected void trailMe(Prog p) {
if(null!=p) p.getTrail().push(this);
}
// usable (through overriding) to release resources
// and/or stop ongoing computations
public void stop() {
}
// release resources on backtracking, if needed
protected void undo() {
stop();
}
}
Sources:
abstract class Source extends
Fluent {
Source(Prog p) {
super(p);
}
abstract public Term
get();
}
Sinks
abstract class Sink extends Fluent
{
Sink(Prog p) {
super(p);
}
// sends T to the Sink
for tasks as
// accumulation or printing
abstract public int put(Term
T);
// return data previously
sent to the Sink
// (if collection ability
is present)
public Term collect()
{ return null;
}
}
.
Fluent Composers
Fluent composers provide
abstract operations on Fluents. They are usually implemented with
lazy semantics.
-
append_sources/3 creates
a new Source with a get/2 operation such that when the first Source is
stopped, iteration continues over the elements of the second Source
-
Compose_sources/3 provides
a cartesian product style composition, the new get/2 operation returning
pairs of elements of the first and second Source
-
Split_source/3 creates
two Source objects identical to the Source given as first argument. It
allows writing programs which iterate over a given Source multiple times.
-
Sources and
Sinks are related through a discharge(Source,Sink) operation which sends
all the elements of the Source to the given Sink.
Fluent Modifiers: ex. set_persistent(Fluent,YesNo)
is used to make a Fluent survive failure, by disabling its undo
method, which, by default, applies the Fluent's stop method on backtracking.
Interpreters as Answer Sources
Answer Sources can
be seen as generalized iterators, allowing a given program to control
answer
production in another. Each Answer Source works as a separate Horn
Clause LD-resolution interpreter.
The Answer Source constructor initializes
a new interpreter.
answer_source(AnswerPattern,Goal,AnswerSource)
-
creates a new Horn Clause solver, uniquely
identified by AnswerSource which shares code with the currently
running program and is initialized with resolvent Goal.
get/2 is used to retrieve successive
answers generated by an Answer Source, on demand
get(AnswerSource,AnswerInstance)
-
tries to harvest the answer computed starting
from Goal, as a instance of AnswerPattern
-
if an answer is found it is returned as the(AnswerInstance),
otherwise no is returned.
The stop/1 operation is called automatically
when no more answers can be produced as well as through the Fluent's undo
operation on backtracking.
first_solution/3, once/1 and not/1
% returns the(X) or no as first solution of G
first_solution(X,G,Answer):-
answer_source(X,G,Solver),
get(Solver,R),
stop(Solver),
eq(Answer,R).
% succeeds by binding G to its first solution or fails
once(G):-first_solution(G,G,the(G)).
% succeeds without binding G, if G fails
not(G):-first_solution(_,G,no).
Reflective Meta-Interpreters
metacall(Goal):-
answer_source(Goal,Goal,E),
element_of(E,Goal).
element_of(I,X):-get(I,the(A)),select_from(I,A,X).
select_from(_,A,A).
select_from(I,_,X):-element_of(I,X).
Unfolders: fine grained control
unfolder_source(Clause,Source)
associative clause composition operation Å
:
(A0:-A1,A2,...,An)Å(B0:-B1,...,Bm)
= (A0:-B1,...,Bm,A2,...,An)q
with q = mgu(A1,B0).
^ Å
C = C Å ^ =
^
unfold_solve(Goal):-
unfold(':-'(Goal,Goal),':-'(Goal,true)).
unfold(Clause,Clause).
unfold(Clause,Answer):-
unfolder_source(Clause,Unfolder),
element_of(Unfolder,NewClause),
unfold(NewClause,Answer).
If-then-else
% if Cond succeeds executes Then otherwise Else
if(Cond,Then,Else):-
first_solution(successful(Cond,Then),Cond,R),
select_then_else(R,Cond,Then,Else).
select_then_else(the(successful(Cond,Then)),Cond,Then,_):-Then.
select_then_else(no,_,_,Else):-Else.
Findall/3: by recursing over get/2
findall(X,G,Xs):-
answer_source(X,G,E),
get(E,Answer),
collect_all_answers(Answer,E,Xs).
% collects all answers of a Solver
collect_all_answers(no,_,[]).
collect_all_answers(the(X),E,[X|Xs]):-
get(E,Answer),
collect_all_answers(Answer,E,Xs).
Note that, again, the collect_all_answers operation
is generic, and works on any Source. This suggest providing a built-in
Source-to-List converter source_list/2 which can be made more efficient
in the underlying implementation language.
Findall/3: with fluent operations
findall(X,G,Xs):-
answer_source(X,G,Solver),
source_list(Solver,Xs).
Term copying and instantiation state detection:
copy_term(X,CX):-first_solution(X,true,the(CX)).
var(X):-copy_term(X,a),copy_term(X,b).
Built-ins as a Library of Fluents
Emulating (backtrackable) dynamic database operations
assert_(Clause,Engines,[E|Engines]):-
answer_source(repeat,Clause,E).
linear_assert(Clause,Engines,[E|Engines]):-
answer_source(true,Clause,E).
clause_(Engines,Head,Body):-
member(E,Engines),
get(E,the((Head:-Body))).
Database Fluents
Lists and Terms as Source Fluents
univ(T,FXs):-if(var(T),list_to_fun(FXs,T),fun_to_list(T,FXs)).
list_to_fun(FXs,T):-list_source(FXs,I),source_term(I,T).
fun_to_list(T,FXs):-term_source(T,I),source_list(I,FXs).
File, Socket,URL I/O: char and clause readers and writers.
Lazy Arithmetics with Fluents
integer_source(MaxFuel,A,X,B).
iterated computation of X<-A*X+B at most
MaxFuel times
Memoing Fluents
-
Most Fluents: usable only once, by default,
and release all resources
-
A Memoing Fluent is built easily on
top of a Source Fluent by accumulating values in a List or dynamic array.
-
A Memoing Fluent can be shared between multiple
consumers which want to avoid recomputation of a given value.
Fluent based Lazy Lists
-
an instance of Memoing Fluents
-
they accumulate successive values of a Source
Fluent in a (reusable) list
source_lazy_list(Source, LazyList)
lazy_head(LazyList, LazyHead)
lazy_tail(LazyList, LazyTail).

Multi Variables and Fluent based DCGs
Multi-Variables are special Fluents which accumulate multiple
values on an internal stack. As the stack is popped on backtracking multi-variables
return to their previous values, therefore providing a form of backtrackable
destructive assignment. A new Multi-Variable is built with
def(MultiVar,InitialValue)
set(MultiVar,NewValue)
val(MultiVar,Value)).
multi-stream DCGs,
do not require a DCG preprocessor,
uses backtrackable destructive assignment
for advancing the state of a given DCG stream.
dcg_def(MultiVar,Xs):-def(MultiVar,Xs).
dcg_val(MultiVar,Xs):-val(MultiVar,Xs).
dcg_connect(MultiVar,X):-val(MultiVar,[X|Xs]),set(MultiVar,Xs).
Towards XSB resolution: Kernel Prolog + Memoing
-
a global store is implemented as a Database Fluent in which
we can attach to each goal variant a unique persistent Answer Source
-
Goal variants can be represented as ground terms resulting
from the numbervars/2 operation, on which a hash key can be computed
-
a memoing engine construct, which encapsulates the
same functionality as an ordinary Answer Source, from outside, while
making sure, internally, that the stream of solutions is computed only
once, and shared through copying by all the consumers in the equivalence
class of the answer variant
-
can be implemented by adapting the Lazy List construct to
persistent Fluents
Adding Constraints
-
Kernel Prolog has an extensible unification algorithm (see
Multi-Variables)
-
Constraint Stores as Fluents: put + collect
-
Assertional vs. Variable based constraints
-
propagation can be triggered on unification or on updating
a Linda blackboard
-
uniform design patterns
Related work
-
similar to our Answer Sources: engines in Oz
-
main difference with Oz: we have encapsulated backtracking
-
pure subsets of Prolog: Mercury
-
Horn Clauses with negation have been extensively studied
- can we adapt some results to better understand Answer Sources?
Future/Ongoing Work
-
executable specification of ISO Prolog in terms
of Kernel Prolog
-
a study of Kernel Prolog's invariance under
program transformations (unfolding)
-
expressiveness of multi-engine Datalog (conjectured
as being Turing-equivalent)
-
type checking / type inference mechanisms for
Kernel Prolog
-
lightweight engine creation and engine reuse
techniques for Kernel Prolog
-
adapting Kernel Prolog for spoken I/O, using
a new prototype based Natural Language style predicate syntax
-
Kernel Prolog as a basis of embedded Prolog
component technology and Prolog based Palm computing
-
implementation technique for lightweight Web
based Kernel Prolog interpreters - XML
Conclusion
-
uniform interoperation of Horn Clause Solvers
with stateful entities (Fluents) ranging from external procedural and object
oriented language services like I/O operations, to other, 'first class
citizen' Horn Clause Solvers
-
as a result, a simplified Prolog built-in predicate
system has emerged
-
Fluent Composers allow combining component
functionality in generic, data representation independent ways
-
Lightweight Prolog implementation
Looking through the Walls of the Glass Box: a Kernel Prolog Interpreter
in Java:
public Term get() {
if(null==orStack) return null;
Clause answer=null;
while(!orStack.isEmpty()) {
Unfolder I=(Unfolder)orStack.pop();
answer=I.getAnswer();
if(null!=answer) break;
Clause goal=(Clause)I.get();
if(null!=goal) {
if( I.notLastClause() ) orStack.push(I);
else I.stop();
if(null==answer)orStack.push(new Unfolder(goal,this));
}
}
Term head;
if(null==answer) {
head=null;
stop();
}
else
head=answer.getHead();
return head;
}
Unfolder class:
public Term get() {
if(null==e) return null;
Clause unfolded_goal=null;
while(e.hasMoreElements()) {
Term T=(Term)e.nextElement();
prog.getTrail().unwind(oldtop);
unfolded_goal=T.toClause().unfold_with_goal(goal,prog.getTrail());
if(null!=unfolded_goal) break;
}
return unfolded_goal;
}


This sample uses Kubernetes as container platform and deploys both application under test and integration tests as pods in Kubernetes. The Citrus integration tests may then access the Kubernetes exposed services and APIs within the test.
Read about the Citrus Kubernetes integration in the reference guide
Objectives
The todo-list sample application provides a REST API for managing todo entries. We want to deploy the whole application in Kubernetes in order to expose the REST API to other pods running on the Kubernetes platform. The Citrus tests will also get deployed to Kubernetes in order to access the exposed service API via Kubernetes service discovery. In addition to that we access the Kubernetes REST services within the Citrus tests in order to verify deployment states.
Prepare the environment
First of all you need a running Kubernetes platform. Minikube is a fantastic way to get started with a local Kubernetes cluster for testing. Please refer to the installation description on how to set up the Minikube environment.
Or you can simply call the Fabric8 Maven plugin to setup everything for you:
mvn fabric8:start-cluster
This command will download all needed tools and install Minikube on your local system. After that you should be able to access the Kubernetes dashboard with:
minikube dashboard
Deploy pods to Kubernetes
This sample uses the Fabric8 Maven plugins for generating the Kubernetes resources with automatic deployment to the local cluster.
First of all we build and deploy the todo-list application as pod in Kubernetes. We are going to build a Docker image the runs the todo-list application as web application in Tomcat 8. In addition to that we define a service resource in Kubernetes that exposes the todo-list REST API to other pods.
The complete configuration is placed in the todo-list project Maven POM (pom.xml) as plugin configuration. The Fabric8 Maven plugin configuration looks like follows.
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-maven-plugin</artifactId>
<version>${fabric8.plugin.version}</version>
<configuration>
<verbose>true</verbose>
<mode>kubernetes</mode>
<images>
<image>
<alias>todo-app</alias>
<name>citrus/todo-app:1.1.0</name>
<build>
<from>fabric8/tomcat-8:latest</from>
<tags>
<tag>latest</tag>
</tags>
<assembly>
<inline>
<files>
<file>
<source>/Users/cdeppisc/.m2/repository/com/consol/citrus/samples/citrus-sample-todo/1.1.0/citrus-sample-todo-1.1.0.war</source>
<destName>ROOT.war</destName>
<outputDirectory>.</outputDirectory>
</file>
</files>
</inline>
</assembly>
</build>
</image>
</images>
<resources>
<services>
<service>
<name>citrus-sample-todo-service</name>
<ports>
<port>
<protocol>tcp</protocol>
<port>8080</port>
<targetPort>8080</targetPort>
</port>
</ports>
<type>NodePort</type>
</service>
</services>
</resources>
</configuration>
</plugin>
The configuration is much more straight forward than it looks like at first sight. First of all the configuration defines a Docker image citrus/todo-app build section. The todo-list Spring Boot web application should be deployed on a Tomcat web server. So the Docker image extends from fabric8/tomcat-8 base image which is also provided by the Fabric8 team. This Docker image is best suited for working with artifacts that are assembled within the Maven build.
In the assembly section we define the target WAR that should be deployed to the Tomcat web server in the Docker image. This is very comfortable way of adding artifacts and other sources to the web server as the assembly can be done in various ways (also see Fabric8 Docker assembly). In this sample above we just copy the todo-list WAR from our local Maven repository.
In addition to that the configuration also defines a service citrus-sample-todo-service that exposes the port 8080. This means that other pods will be
able to access the todo-list service via http://citrus-sample-todo-service:8080
. The type NodePort will also create a random port for external clients that are coming from outside of Kubernetes.
That completes the configuration on the Fabric8 plugin. The plugin reads this information and creates all Kubernetes resource configurations for us. Lets do that by calling
mvn fabric8:resource
mvn install fabric8:build
You can review the Kubernetes configurations for the complete deployment in Maven target/classes/META-INF/fabric8/ folder now. We are now ready to deploy the todo-list application to Kubernetes.
mvn fabric8:deploy
After that you should see a new deployment on your local Minikube Kubernetes cluster. Also you should be able to see the exposed Kubernetes service citrus-sample-todo-service with a default replica set and of course the running pod with the the Tomcat 8 todo-list application.
The node port service type generated an external port for us. So we can also access the todo-list application with the browser.
minikube service citrus-sample-todo-service
This opens you local browser pointing to the external node port. You should be able to see the todo-list application now.
Run Citrus tests as pod
Now that we have a running Kubernetes deployment we also want to execute the Citrus integration tests as pod in Kubernetes. This has the great advantage that we can access the todo-list REST service as client in Kubernetes just like every other pod would do in production. The Citrus tests will be able to call operations via the exposed Kubernetes service.
Lets review the Fabric8 Maven plugin configuration for the Citrus integration test POM:
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${fabric8.maven.plugin}</version>
<configuration>
<verbose>true</verbose>
<images>
<image>
<alias>todo-app-tests</alias>
<name>citrus/todo-app-tests:1.1.0</name>
<build>
<from>consol/citrus:2.7</from>
<tags>
<tag>latest</tag>
</tags>
<assembly>
<descriptorRef>project</descriptorRef>
</assembly>
</build>
</image>
</images>
</configuration>
</plugin>
Once again we define a Docker image that is supposed to run as part of a Kubernetes pod. This time we extend from consol/citrus:2.7 Docker image which is ready to execute a Citrus Maven build at container runtime. The image also works with the Docker Maven plugin assembly mechanism. This time the assembly adds the complete project sources by using the descriptorRef=project which is a predefined assembly in the Fabric8 plugin.
When we build the image with mvn docker:build
we get a ready to use Citrus Docker image of the current Maven project. When the image is run as pod in Kubernetes all integration tests will be executed
as Maven build.
You might have noticed that we now use the Docker Fabric8 Maven plugin here (<artifactId>docker-maven-plugin</artifactId>
). This is simply because we do not want Fabric8 to create a Kubernetes deployment for the
Citrus tests. Deployments in Kubernetes are designed for pods that are supposed to never end. The Citrus pod is supposed to run all tests. After that the pod will terminate with success or failure. This
is not a classic deployment in Fabric8 and Kubernetes. Instead we use a customized pod YAML configuration. We simply tell Fabric8 to just create that specific resource in Kubernetes. All
default deployment creation steps are then skipped. Here is the Citrus pod YAML config:
apiVersion: v1
kind: Pod
metadata:
name: citrus-sample-todo-tests
spec:
restartPolicy: Never
containers:
- name: citrus-sample-todo-tests
image: citrus/todo-app-tests:2.7.1
imagePullPolicy: Never
securityContext:
privileged: false
The pod configuration tells Kubernetes to use the Docker image citrus/todo-app-tests:2.7.1 that we have just built. Also the restartPolicy is set to Never. This makes sure that Kubernetes will not try to endlessly restart the pod in case a test fails with error.
Now lets put that all together with:
mvn docker:build
mvn fabric8:resource
mvn fabric8:deploy -DskipTests
We have to skip the tests when calling fabric8:deploy because we do not want to execute the tests locally but inside the Kubernetes pod. After that you should see a new pod running on your Kubernetes cluster. This pod automatically executes the Citrus tests and terminates. You will see the terminated pod and you will be able to review the logs. In case all Citrus tests pass the pod terminates with Terminate: Complete. In case the tests are broken the pod terminates in state Terminate: Error.
Access Kubernetes resources in test
Have a look at the Citrus endpoint configuration that shows the service discovery via Kubernetes:
@Bean
public HttpClient todoClient() {
return CitrusEndpoints.http()
.client()
.requestUrl("http://citrus-sample-todo-service:8080")
.build();
}
The client component in Citrus uses the Kubernetes service name citrus-sample-todo-service as host. The host and port are automatically resolved as the Citrus tests run as pod in Kubernetes. Also we can add a Citrus Kubernetes client to access the Kubernetes API within a test:
@Bean
public KubernetesClient k8sClient() {
return CitrusEndpoints.kubernetes()
.client()
.username("minikube")
.namespace("default")
.url("https://kubernetes:443")
.build();
}
The client also uses the Kubernetes internal host and port for Kubernetes exposed services. With this client we can access the running pods and services from within a Citrus test:
@Autowired
private KubernetesClient k8sClient;
@Test
@CitrusTest
public void testDeploymentState() {
kubernetes()
.client(k8sClient)
.pods()
.list()
.label("app=todo")
.validate("$..status.phase", "Running")
.validate((pods, context) -> {
Assert.assertFalse(CollectionUtils.isEmpty(pods.getResult().getItems()));
});
kubernetes()
.client(k8sClient)
.services()
.get("citrus-sample-todo-service")
.validate((service, context) -> {
Assert.assertNotNull(service.getResult());
});
}
As you can see in the sample above we are able to test the deployment state of the todo-list applicaiton within Kubernetes. The test verifies that the pod is running and that the service is set up correctly. Now we can access the todo-list REST API in another test:
@Autowired
private HttpClient todoClient;
@Test
@CitrusTest
public void testTodoService() {
variable("todoId", "citrus:randomUUID()");
variable("todoName", "citrus:concat('todo_', citrus:randomNumber(4))");
variable("todoDescription", "Description: ${todoName}");
variable("done", "false");
http()
.client(todoClient)
.send()
.post("/api/todolist")
.messageType(MessageType.JSON)
.contentType(ContentType.APPLICATION_JSON.getMimeType())
.payload("{ \"id\": \"${todoId}\", \"title\": \"${todoName}\", \"description\": \"${todoDescription}\", \"done\": ${done}}");
http()
.client(todoClient)
.receive()
.response(HttpStatus.OK)
.messageType(MessageType.PLAINTEXT)
.payload("${todoId}");
http()
.client(todoClient)
.send()
.get("/api/todo/${todoId}")
.accept(ContentType.APPLICATION_JSON.getMimeType());
http()
.client(todoClient)
.receive()
.response(HttpStatus.OK)
.messageType(MessageType.JSON)
.payload("{ \"id\": \"${todoId}\", \"title\": \"${todoName}\", \"description\": \"${todoDescription}\", \"done\": ${done}}");
}
With these integration tests we make sure to access the services and pods as every other pod running in Kubernetes would do. These are in-container tests that consume services just like other clients would do in production. On top of that we can use the Citrus features such as message validation and service simulation.
The test is able to check the Kubernetes deployment state. We can even manipulate the Kubernetes resources at test runtime:
kubernetes()
.pods()
.delete("${todoPod}")
.namespace("default")
.validate((result, context) -> Assert.assertTrue(result.getResult().getSuccess()))
The listing above deletes the todo-list pod. In that case the default Kubernetes replica set may just automatically start another pod so the todo-list application is kept running. The todo-list service should always be reachable for clients. We could verify that by constantly adding todo entries as client while deleting the pod.
We can think of many possibilities and test scenarios with this integration test setup then.


--- layout: page title: About permalink: /about.html ---
This site is personal notes and media used by the author for sharing his personal experiences and thoughts, mostly about software engineering and other computer science related.

If you insist then just drop him a line.


We know exercise can be hard. That is why we created Weight Lifter to help you keep track of your weight lifting metrics. It's simple - we enable you to log your metrics all in one place, and generate a beautiful dashboard to catalog your progress.
It's hard to keep track of how many reps you have done. Our application enables you to change that by allowing you to seamlessly track all your daily exercise metrics. With our dead simple logbook, you only need to press a few buttons and ta-da! It's saved.
Our aim is to be as simple to use as possible. Once you sign up with us, all your metrics will be availabe and synced daily on our progressive mobile web app, iOS and Android applications. We'll also be available soon on Apple Watch to make your metric tracking even simpler!
Every day, every workout, this app will be with you on the journey to your fitness goals. Ease of use and on-the-go accessiblity make it a must-have for everyone from weekend warriors to competitive athletes.
From supersets to pyramids let the Weight Lifter app keeps track of how many reps were performed for each exercise in your routine. Feeling extra strong? Push it out for an extra rep or two and easily update the app.
Keep pushing your one-rep-max limit higher by tracking how much weight you lifted in each exercise. Instant access to previous workouts allow you to challenge yourself to get stronger, while also letting you know when to take a recovery day.
All workouts in one conveninent place let you see instant progress across workouts. Watch your strength and endurance improve the more workouts you log. No more guessing - get results, see results.


Tests GpuTsp_2 and GpuTsp_3a introduce a key concept in PGU programming: understanding memory access. Understanding how the thread-warp on each GPU access memory on each instruction cycle, particularly how it access the very fast (on-chip) Shared Memory, is essential to getting the best performance.
The best description of Shared Memory structure is to visualize it as a 2D table. This table appears to be in row-major order when conceptualized by a serial algorithm, such as when written to, or read from, by the host CPU; however for optimal performance it must appear in column-major order for each thread of a warp. In the simple 1D case here that means putting the thread-threadidx.x index last. The same analysis holds for the paired-arrays gpuLatitude and gpuLongitude.
The CUDA and CUDAfy infrastructures endeavour to align data suitably, but it is also incumbent of developers to recognize the pattern. Thus a substantial performance gain is seen by converting the paired arrays gpuLatitude and gpuLongitude to a struct array of LatLongStruct, and re-ordering the dimensions of the paths array.
[Cudafy]
public struct LatLongStruct {
public float Latitude;
public float Longitude;
public float Distance(LatLongStruct other) {
return (float)GMath.Sqrt(Square(Latitude - other.Latitude)
+ Square(Longitude - other.Longitude));
}
public float Square(float value) { return value * value; }
}
Along the way, in test GpuTsp_3 we also set the Architecture and Compute Capability (2.1 for the GT 630M GPU) before compiling and CUDAfying the code:[Cudafy] public static void GpuFindPathDistance(GThread thread, int permutations, LatLongStruct[] gpuLatLong, AnswerStruct[] answer) { var threadsPerGrid = thread.blockDim.x * thread.gridDim.x; var paths = thread.AllocateShared<int>("path", _cities, _threadsPerBlock); var bestDistances = thread.AllocateShared<float>("dist", _threadsPerBlock); var bestPermutations = thread.AllocateShared<int> ("perm", _threadsPerBlock); var permutation = (int)(thread.threadIdx.x + thread.blockIdx.x * thread.blockDim.x); var bestDistance = float.MaxValue; var bestPermutation = 0; while (permutation < permutations) { var distance = FindPathDistance(thread, permutations, permutation, gpuLatLong, paths); if (distance < bestDistance) { bestDistance = distance; bestPermutation= permutation; } permutation += threadsPerGrid; }
internal override Answer GetAnswer() { var stopWatchLoad = Stopwatch.StartNew(); using (var gpu = CudafyHost.GetDevice()) { var arch = gpu.GetDeviceProperties().Capability.GetArchitecture(); gpu.LoadModule(CudafyTranslator.Cudafy(ePlatform.x64,arch)); LoadTime = stopWatchLoad.ElapsedMilliseconds; // etc. } // etc. }
This latter may not seem beneficial in the short 11-city case, but in the 12-city case it provides a small net gain. If you know that specific features of newer architectures will benefit your performance, the code above demonstrates how to query the available devide and instruct CUDAfy to use it to advanatage.


[§21G-1] Purpose. The purpose of this chapter is to establish a permanent public access program to ensure improved public participation in the legislative process. [L 1994, c 259, pt of §2]


Camera not available. Please reload and allow access.
Enter the test data
Point the camera to the test tube, or enter manually the code below.
ESTABLECIMIENTO Covid Safe Responsable
Warning! Use these functions only if you know the
implications or if instructed by operations personnel.


the and with was were for The antiviral {background against SARS-CoV- drug margin potential {border-style are lumefantrine px;} #ffffff;} viral cells drugs have virus artesunate that anti-SARS-CoV- μM, arteannuin artemisinins from treatment after artemisinin its performed reported which (CAS No. different showed R.; Vero could infection px; {font-family (Figure Antiviral COVID- Figure RNA Res., artemisinins, effects font-size plasma their --), A.; Arteannuin COVID-. EfferthT.; For analysis been broad-spectrum compounds double; human infected lumefantrine, pharmacokinetic protein selected using vitro After Artemisinins M.; PBPK S.; StammingerT.; Western added antimalarial approved assays border-color border-width clinical coronavirus cytomegalovirus data doses effect effective experimental expression has inhibit malaria. mean oral population research serum solid; therapeutic vitro. {font-style {font-weight ./s---. All Artesunate C.; H.; IFA J.; K.; L.; Med. This WolfD. Y.; according activities activity antibody, artemisone assay available based bold bovine candidates carried cell combination concentrations courier; dihydroartemisinin efficacy em; global including might model multiple other out over profile pt;} quantified results secondary shown six stages. stained studies such systematically there use when


Pharmacists' hearings set over drugs for patients who died
by EndPlayCOLUMBUS, Ohio (AP) - Administrative hearings are planned for an Ohio hospital system and three pharmacists facing possible discipline over excessive painkillers ordered by a doctor now charged with murder in 25 patient deaths.
Only the doctor, William Husel (HYOO'-suhl), is being criminally prosecuted. He has pleaded not guilty.
The pharmacists and the Columbus-area Mount Carmel Health System were entitled to request hearings before the Ohio Board of Pharmacy takes any action against their licenses. The board says those hearings are tentatively scheduled for April.
Two pharmacists were cited for verifying large doses of fentanyl. Another was cited for supervisory failures in cases in which nurses overrode controls on automated dispensers in non-emergencies to access drugs for patients who then died.
Administrative hearings also are set for 25 nurses cited by the nursing board.


Jazen Ye
Font-end Engineer
Work experience is essential for getting a job. Whether it’s a short work placement or a longer internship, work experience is always viewed favourably by employers and can help you decide your future career.
Work experience is essential for getting a job. Whether it’s a short work placement or a longer internship, work experience is always viewed favourably by employers and can help you decide your future career.
Work experience is essential for getting a job. Whether it’s a short work placement or a longer internship, work experience is always viewed favourably by employers and can help you decide your future career.
The original Latin word "universitas" refers in general to "a number of persons associated into one body, a society, company, community, guild, corporation, etc."
The original Latin word "universitas" refers in general to "a number of persons associated into one body, a society, company, community, guild, corporation, etc."


--- layout: post title: Deloitte employee rude on a train date: '2008-03-06T21:17:00.001Z' tags: [] modified_time: '2008-03-08T08:01:57.870Z' blogger_id: tag:blogger.com,1999:blog-4015568221071268916.post-5394579952909630951 comments: true blogger_orig_url: http://serialseb.blogspot.com/2008/03/deloite-employee-rude-on-train.html ---
[Update: oh well, this was unnecessary. I'd rather people understood the meaning of quiet zone and weren't so up their own a*se. And personal recorders are so over-used. Is it that hard to just write?]


A documented shell script to build complete OpenStack development environments.
An OpenStack program maintained by the developer community.
git clone https://github.com/openstack-dev/devstack.git
cd devstack && ./stack.sh
Only Ubuntu 14.04 (Trusty), Fedora 20 and CentOS/RHEL 6.5 are documented here. OpenStack also runs and is packaged on other flavors of Linux such as OpenSUSE and Debian.
In order to correctly install all the dependencies, we assume a specific minimal version of the supported distributions to make it as easy as possible. We recommend using a minimal install of Ubuntu or Fedora server in a VM if this is your first time.
git clone https://github.com/openstack-dev/devstack.git
The devstack
repo contains a script that installs OpenStack and templates for configuration files
We recommend at least a minimal configuration be set up.
cd devstack; ./stack.sh
It takes a few minutes, we recommend reading the script while it is building.
| Title | Description | Link |
|---|---|---|
| Virtual Machine | Run OpenStack in a VM. The VMs launched in your cloud will be slow as they are running in QEMU (emulation), but it is useful if you don't have spare hardware laying around. | Read » | 1 Guide |
These guides tell you how to virtualize your OpenStack cloud in virtual machines. This means that you can get started without having to purchase any hardware.
| Title | Description | Link |
|---|---|---|
| All-In-One | Run OpenStack on dedicated hardware to get real performance in your VMs. This can include a server-class machine or a laptop at home. | Read » |
| Multi-Node + VLANs | Setup a multi-node cluster with dedicated VLANs for VMs & Management. | Read » | 2 Guides |
These guides tell you how to deploy a development environment on real hardware. Guides range from running OpenStack on a single laptop to running a multi-node deployment on datacenter hardware.
An overview of DevStack goals and priorities
Configuring and customizing the stack
| Filename | Link |
|---|---|
| stack.sh | Read » |
| functions | Read » |
| functions-common | Read » |
| lib/apache | Read » |
| lib/baremetal | Read » |
| lib/ceilometer | Read » |
| lib/cinder | Read » |
| lib/config | Read » |
| lib/database | Read » |
| lib/glance | Read » |
| lib/heat | Read » |
| lib/horizon | Read » |
| lib/infra | Read » |
| lib/ironic | Read » |
| lib/keystone | Read » |
| lib/ldap | Read » |
| lib/zaqar | Read » |
| lib/neutron | Read » |
| lib/nova | Read » |
| lib/oslo | Read » |
| lib/rpc_backend | Read » |
| lib/sahara | Read » |
| lib/savanna | Read » |
| lib/stackforge | Read » |
| lib/swift | Read » |
| lib/tempest | Read » |
| lib/tls | Read » |
| lib/trove | Read » |
| unstack.sh | Read » |
| clean.sh | Read » |
| run_tests.sh | Read » |
| extras.d/50-ironic.sh | Read » |
| extras.d/70-zaqar.sh | Read » |
| extras.d/70-sahara.sh | Read » |
| extras.d/70-savanna.sh | Read » |
| extras.d/70-trove.sh | Read » |
| extras.d/80-opendaylight.sh | Read » |
| extras.d/80-tempest.sh | Read » |
| Filename | Link |
|---|---|
| local.conf | Read » |
| stackrc | Read » |
| openrc | Read » |
| exerciserc | Read » |
| eucarc | Read » |
| Filename | Link |
|---|---|
| tools/info.sh | Read » |
| tools/build_docs.sh | Read » |
| tools/create_userrc.sh | Read » |
| tools/fixup_stuff.sh | Read » |
| tools/install_prereqs.sh | Read » |
| tools/install_pip.sh | Read » |
| tools/upload_image.sh | Read » |
| Filename | Link |
|---|---|
| local.sh | Read » |
| localrc | Read » |
| Filename | Link |
|---|---|
| exercise.sh | Read » |
| exercises/aggregates.sh | Read » |
| exercises/boot_from_volume.sh | Read » |
| exercises/bundle.sh | Read » |
| exercises/client-args.sh | Read » |
| exercises/client-env.sh | Read » |
| exercises/euca.sh | Read » |
| exercises/floating_ips.sh | Read » |
| exercises/horizon.sh | Read » |
| exercises/neutron-adv-test.sh | Read » | exercises/sahara.sh | Read » | exercises/savanna.sh | Read » |
| exercises/sec_groups.sh | Read » |
| exercises/swift.sh | Read » | exercises/trove.sh | Read » |
| exercises/volumes.sh | Read » |
| exercises/zaqar.sh | Read » |


MANSFIELD PARK A film review by Mark R. Leeper
Capsule: A liberated young writer is brought to her uncle's mansion to be little more than a servant. As she grows she is involved in romantic adventures as she seeks happiness and the right husband for her. Patricia Rozema adapted and directed the novel by Jane Austen mixing in details from Austen's own life and adding themes that Austen somehow missed. This is an entertaining but decidedly fluffy tale of romance. Rating: 6 (0 to 10), +1 (-4 to +4)
Let me start by identifying my attitudes on Jane Austen so the reader knows if to continue or not. I consider these stories an excellent view into the minds of a certain class of woman in the early 19th century. Austen novels are at the high-end of what we have come to call the romance novel. Jane Austen heroines, if one may call them heroines, seem to aspire mostly only to achieve comfort. This they accomplish via the institution of marriage. The choice of whom they will marry is usually obvious to every reader, if not to the heroine herself, from the early pages of the novel.  Usually the reader has more interest and certainly better knowledge of the events of their times than they appear to have themselves. They are living during the Napoleaonic Wars, a fascinating period, but to all appearances are ignorant of the fact. This does not say that great literature cannot be written about minor and narrowly absorbed people, but the greatness of some other authors is more readily apparent.
Fanny Price in the new MANSFIELD PARK is a little more aware of the world than most Austen heroines, though not by the intention of Jane Austen herself. Patricia Rozema who adapted the navel for the screen and then directed it has revised and corrected Austen for current audiences. To spice up Fanny's personality she now is a budding writer. The amusing melodramatic stories that Fanny writes are stories that really did exist. They are stories that Jane Austen herself wrote as a young teen. Fanny's knowledge of the world, her social conscience, and most of the anti-slavery subplot is all Rozema's revision. There is some but very little mention of slavery in the Austen novel, though by a coincidence that perhaps Austen herself was not aware of, Mansfield Park was named after Lord Mansfield who in 1772 ruled that any slave brought to England was legally free. The film's implications of open sex and even lesbianism are pulled from Rozema's fertile imagination. Still it is hard to be too harsh on a film with this much historic charm. It may not be what Austen intended, but it is still enjoyable.
Fanny Price (Frances O'Connor) was taken from her poor parents in Portsmouth at age ten and brought to Mansfield Park to be raised by the Bertram family who live in a huge mansion called Mansfield Park. The masters of Mansfield Park are her aunt and uncle and she is to have a status somewhere between a family member and a servant. She will get to know the Bertram children but everyone will be constantly aware that she is not their equal. She is treated at best insensitively by the family except for young Edmund Bertram who from the very start shows her compassion.
As the years pass Fanny is accepted at arm's length by the four Bertram children Tom, Edmund, Maria, and Julia. Into their lives come brother and sister Henry and Mary Crawford (Alessandro Nivola, Embeth Davidtz), neighbors. Henry and Mary are close and share a tendency to flirt, an attraction to the opposite sex, a sense of style, an interest in the Bertrams, and both are attracted to women. Fanny who secretly loves Edmund sees him attracted to Mary Crawford and Maria and Julia attracted to Henry. But Henry is more interested in Fanny. This is Jane Austen so we know from the start that things will sort themselves out and that the heroine will get the right man and in doing so get to live on the big estate. "It could have ended differently, I suppose, but it didn't," Fanny muses at the end of the film. But then she does not know Jane Austen as well as we do.
Frances O'Connor's Fanny Price is perky and free-spirited, but just a little too attractive for the Jane Eyre-like heroine. Sir Thomas Bertram is played by none other than Harold Pinter. Alessandro Nivola does bring enough charm to the role of Henry that the audience is almost rooting for him. Michael Coulter's camera captures a usually bright and sunny view of early 19th century England created by production designer Christopher Hobbs and art director Andrew Munro. The historical detail is questionable with details like lipstick and eye makeup on a ten-year-old child, but it is nice to look at.
This is perhaps not Jane Austen's MANSFIELD PARK, but Jane Austen would have probably recognized most of it and would have been amused by the rest. I rate it a 6 on the 0 to 10 scale and a +1 on the -4 to +4 scale.
Mark R. Leeper<EMAIL_ADDRESS>Copyright 2000 Mark R. Leeper
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


Education:
- Western Jurassic University (2014)
- Lucky Duck State University (2010)
Master of Science, Paleontology
Bachelor of Science, Biology
Employment History:
- Raptors, Inc (2014-Present)
- Lucky Duck Museum (2008-2012
Digging Intern
Just keep digging, digging, digging, digging. Keep on digging. Just keep digging, digging, digging, digging. Keep on digging. Just keep digging, digging, digging, digging. Keep on digging. Just keep digging, digging, digging, digging. Keep on digging.
Prehistoric Curator
Maintained all the old things. Cleaned the old things. Explained the old things to curious guests. Lost track of time. Did some soul-searching. Talked to dinosaur bones because it was better than talking to myself all the time.


This section lists HID Global Items. More...
Macros | |
| #define | HIDReport_GLOBAL_USAGEPAGE 0x04 |
| Current usage page. More... | |
| #define | HIDReport_GLOBAL_LOGICALMINIMUM 0x14 |
| Minimum value that a variable or array item will report. More... | |
| #define | HIDReport_GLOBAL_LOGICALMAXIMUM 0x24 |
| Maximum value that a variable or array item will report. More... | |
| #define | HIDReport_GLOBAL_PHYSICALMINIMUM 0x34 |
| Minimum value for the physical extent of a variable item. More... | |
| #define | HIDReport_GLOBAL_PHYSICALMAXIMUM 0x44 |
| Maximum value for the physical extent of a variable item. More... | |
| #define | HIDReport_GLOBAL_UNITEXPONENT 0x54 |
| Value of the unit exponent in base 10. More... | |
| #define | HIDReport_GLOBAL_UNIT 0x64 |
| Unit values. More... | |
| #define | HIDReport_GLOBAL_REPORTSIZE 0x74 |
| Size of the report fields in bits. More... | |
| #define | HIDReport_GLOBAL_REPORTID 0x84 |
| Specifies the report ID. More... | |
| #define | HIDReport_GLOBAL_REPORTCOUNT 0x94 |
| Number of data fields for an item. More... | |
| #define | HIDReport_GLOBAL_PUSH 0xA4 |
| Places a copy of the global item state table on the stack. More... | |
| #define | HIDReport_GLOBAL_POP 0xB4 |
| Replaces the item state table with the top structure from the stack. More... | |
This section lists HID Global Items.
( HID Spec. <IP_ADDRESS> )
| #define HIDReport_GLOBAL_LOGICALMAXIMUM 0x24 |
Maximum value that a variable or array item will report.
| #define HIDReport_GLOBAL_LOGICALMINIMUM 0x14 |
Minimum value that a variable or array item will report.
| #define HIDReport_GLOBAL_PHYSICALMAXIMUM 0x44 |
Maximum value for the physical extent of a variable item.
| #define HIDReport_GLOBAL_PHYSICALMINIMUM 0x34 |
Minimum value for the physical extent of a variable item.
| #define HIDReport_GLOBAL_POP 0xB4 |
Replaces the item state table with the top structure from the stack.
| #define HIDReport_GLOBAL_PUSH 0xA4 |
Places a copy of the global item state table on the stack.
| #define HIDReport_GLOBAL_REPORTCOUNT 0x94 |
Number of data fields for an item.
| #define HIDReport_GLOBAL_REPORTID 0x84 |
Specifies the report ID.
| #define HIDReport_GLOBAL_REPORTSIZE 0x74 |
Size of the report fields in bits.
| #define HIDReport_GLOBAL_UNIT 0x64 |
Unit values.
| #define HIDReport_GLOBAL_UNITEXPONENT 0x54 |
Value of the unit exponent in base 10.
| #define HIDReport_GLOBAL_USAGEPAGE 0x04 |
Current usage page.


Data and statistics of Pakistan Social and Living Standards Measurement (PSLM) survey 2014-15 from Pakistan Bureau of Statistics (<http://www.pbs.gov.pk/>).
| Version: | 0.2.0 |
| Depends: | R (≥ 2.10.0) |
| Imports: | magrittr , dplyr , ggplot2 |
| Published: | 2017-12-06 |
| Author: | Muhammad Yaseen [aut, cre], Muhammad Arfan Dilber [ctb] |
| Maintainer: | Muhammad Yaseen <myaseen208 at gmail.com> |
| License: | GPL-2 |
| URL: | https://github.com/MYaseen208/PSLM2015 |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | PSLM2015 results |
| Reference manual: | PSLM2015.pdf |
| Package source: | PSLM2015_0.2.0.tar.gz |
| Windows binaries: | r-devel: PSLM2015_0.2.0.zip, r-release: PSLM2015_0.2.0.zip, r-oldrel: PSLM2015_0.2.0.zip |
| OS X binaries: | r-release: PSLM2015_0.2.0.tgz, r-oldrel: PSLM2015_0.2.0.tgz |
| Old sources: | PSLM2015 archive |
Please use the canonical form https://CRAN.R-project.org/package=PSLM2015 to link to this page.


Why This Harvard Startup Plans to Ignore Investors (For Now)
Quickhelp is taking an "Uber for tutoring" approach
Online tutoring services are a dime a dozen, so how’s a startup supposed to rise above a seemingly saturated market. For Quickhelp - a Harvard Innovation Lab venture - it requires a carefully calculated business plan that will let the startup stand out from the throngs of competitors. And, apparently, the ability to forgo getting funding.
According to Hikari Senju, co-founder of Quickhelp, the key to this app’s success is that it’s brought the on-demand model that we’ve come to love with companies like Uber and Drizly and applied it to in-person tutoring. It makes finding a quality tutor easier, faster and cheaper than ever before, which opens up tutoring to a whole slew of new students and prompting steady growth for the app over the past year or so - growth that’s supposed to continue moving forward.
San Francisco inspiration
The reason for starting Quickhelp was personal. As an undergrad, Senju often sought help with his coursework, but there were obstacles. He explained, “I was a CS major, so I was always going to office hours, but they’d be so crowded.”
Following an internship in San Francisco - which Senju described as the land of on-demand companies - he and his friend decided to apply that model to the world of tutoring. Within the first app being live, there were tutoring requests. And after the first month, they had 1,000 users.
A big part of the Quickhelp appeal is price. Typically, one-on-one, in-person tutoring sessions are above undergraduate students’ budgets, especially if they need regular help. At the same time, free resources like office hours or virtual tutoring options aren’t as personal or effective. With Quickhelp, though, the price is right.
“It drives down the cost of tutoring,” Senju said of the on-demand app. “The average cost of a tutor outside our app is about $100 an hour, while the tutors on our app are around $30 an hour.”
That immediately broadens the startup’s customer demographic. But it doesn’t exclusively benefit undergrads finding inexpensive tutors. The on-demand structure also allows graduate students - who are notoriously tight on cash - to profit, letting them make money from their smarts whenever they have time.
“It’s making tutors accessible to people who didn’t have access before, which is important because it’s been shown that tutoring increases people’s grades,” Senju said. “But it also gives new people who usually don’t tutor the opportunity to make money. They can now get the flexibility to tutor who they want, when they want."
“That’s what keeps us going. We’re also working for social good and improving the lives of people.”
Growing it alone
So far, this "Uber for tutoring" approach has been working. It has about 15,000 users now from schools like UC Irvine and Northwestern, which are beyond the initial Harvard, MIT and BU targets Quickhelp had initially named. For the next year, the startup will continue to pin down cosmopolitan areas crowded with college students to spur on growth.
Senju laid out their growth plan:
Most cities have high concentrations of college students, like New York, Philadelphia, Washington, D.C. Just like Uber doesn’t operate in rural places, we won’t either...All of the urban areas have high populations of students, so if we were present just in those locations, we’ll be very successful. We’re not too worried about having to branch out to rural regions. We have plans for bigger targets like Atlanta, Washington, D.C., and Austin.
Plans for growth normally involve raising a round of funding. Not for Quickhelp (at least for now). Senju said the team would rather remain self-sufficient as long as possible so they can focus on carrying out their own vision of the company.
“We’re capable of keeping it lean,” Senju told me. “We don’t have the burn rates of other companies. We don’t have to worry about a funding crunch in the tech space because we’re not going to face that. I handle all of the development, so don’t have the liabilities others have.”
He elaborated on the startup’s motivation to pass on pursuing investment:
We can survive when other people can’t survive...We haven’t gone out and raised a seed round. We have the freedom to do that. We don’t want investors distracting us, asking us things like when we’re going to raise more money. It gives us flexibility and being scrappy like that is an advantage. We don’t have to prioritize worrying about someone else’s goals like raising another round in a year instead of focusing on our own goals.
 He knows Quickhelp will have eventually have to seek financial support and answer to investors. It just hasn’t become essential yet.
“Obviously we’ll one day have to do that so our product can have a competitive edge. But we’re holding off.”


Xeneus is a unique company in the web development ecosystem. Unlike most firms, we take on only one client at a time - and then we work closely with you until you're 100% happy with how your project turned out.
We're able to make your project our one and only priority because of the modular philosophy behind Xeneus. We've carefully designed Xeneus to be able to scale on a project-by-project basis so that our resources always match your needs exactly.

It's a pleasure to have you on the site! I'm the technical lead for Xeneus, which means I'm in charge of making sure your project turns out exactly how you want. I have 10 years experience in the IT field, 8 years experience in software integration, and 3 years experience in website development and design. I'm ready to put all my knowledge at your command in order to help you achieve your goals for your company.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close ProjectLorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close ProjectLorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close Project
The PupPod site is a great example of how we are able to scale Xeneus in response to your needs. The site was built on a shoestring budget, while remaining full-featured and meeting all of PupPod's goals.
This project required an affordable approach to a complex set of requirements, including custom-coded features and modular construction, which is why PupPod was attracted to our scalable model at Xeneus.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia neque assumenda ipsam nihil, molestias magnam, recusandae quos quis inventore quisquam velit asperiores, vitae? Reprehenderit soluta, eos quod consequuntur itaque. Nam.
Close Project
The NygaChef site is a showcase of our capabilities at Xeneus in tackling your large-scale commercial project. The site contains over 100 product listings, each with its own technical data.
This project involved a heavy amount of coordination with the NygaChef Marketing and Communications Manager, which is one of the reasons they chose the single-client service offered by us at Xeneus.
The NygaChef site is a showcase of our capabilities at Xeneus in tackling your large-scale commercial project. The site contains over 100 product listings, each with its own technical data.
This project involved a heavy amount of coordination with the NygaChef Marketing and Communications Manager, which is one of the reasons they chose the single-client service offered by us at Xeneus.
The NygaChef site is a showcase of our capabilities at Xeneus in tackling your large-scale commercial project. The site contains over 100 product listings, each with its own technical data.
This project involved a heavy amount of coordination with the NygaChef Marketing and Communications Manager, which is one of the reasons they chose the single-client service offered by us at Xeneus.
The NygaChef site is a showcase of our capabilities at Xeneus in tackling your large-scale commercial project. The site contains over 100 product listings, each with its own technical data.
This project involved a heavy amount of coordination with the NygaChef Marketing and Communications Manager, which is one of the reasons they chose the single-client service offered by us at Xeneus.


ZendService\Flickr\Flickr is a simple API for using the Flickr REST Web Service. In order to use the Flickr web services, you must have an API key. To obtain a key and for more information about the Flickr REST Web Service, please visit the Flickr API Documentation.
In the following example, we use the tagSearch() method to search for photos having “php” in the tags.
Simple Flickr Photo Search
1 2 3 4 5 6 7 | $flickr = new ZendService\Flickr\Flickr('MY_API_KEY');
$results = $flickr->tagSearch("php");
foreach ($results as $result) {
echo $result->title . '
';
}
|
Note
Optional parameter
tagSearch() accepts an optional second parameter as an array of options.
ZendService\Flickr\Flickr provides several ways to get information about Flickr users:
Finding a Flickr User’s Public Photos by E-Mail Address
In this example, we have a Flickr user’s e-mail address, and we search for the user’s public photos by using the userSearch() method:
1 2 3 4 5 6 7 | $flickr = new ZendService\Flickr\Flickr('MY_API_KEY');
$results = $flickr->userSearch($userEmail);
foreach ($results as $result) {
echo $result->title . '
';
}
|
ZendService\Flickr\Flickr allows to retrieve a group’s pool photos based on the group ID. Use the groupPoolGetPhotos() method:
Retrieving a Group’s Pool Photos by Group ID
1 2 3 4 5 6 7 | $flickr = new ZendService\Flickr\Flickr('MY_API_KEY');
$results = $flickr->groupPoolGetPhotos($groupId);
foreach ($results as $result) {
echo $result->title . '
';
}
|
Note
Optional parameter
groupPoolGetPhotos() accepts an optional second parameter as an array of options.
ZendService\Flickr\Flickr makes it quick and easy to get an image’s details based on a given image ID. Just use the getImageDetails() method, as in the following example:
Retrieving Flickr Image Details
Once you have a Flickr image ID, it is a simple matter to fetch information about the image:
1 2 3 4 5 6 | $flickr = new ZendService\Flickr\Flickr('MY_API_KEY');
$image = $flickr->getImageDetails($imageId);
echo "Image ID $imageId is $image->width x $image->height pixels.
\n";
echo "clickUri\">Click for Image\n";
|
The following classes are all returned by tagSearch() and userSearch():
Represents a set of Results from a Flickr search.
Note
Implements the SeekableIterator interface for easy iteration (e.g., using foreach()), as well as direct access to a specific result using seek().
| Name | Type | Description |
|---|---|---|
| totalResultsAvailable | int | Total Number of Results available |
| totalResultsReturned | int | Total Number of Results returned |
| firstResultPosition | int | The offset in the total result set of this result set |
int:totalResults()
Returns the total number of results in this result set.
A single Image result from a Flickr query
| Name | Type | Description |
|---|---|---|
| id | string | Image ID |
| owner | string | The photo owner’s NSID. |
| secret | string | A key used in url construction. |
| server | string | The servername to use for URL construction. |
| title | string | The photo’s title. |
| ispublic | string | The photo is public. |
| isfriend | string | The photo is visible to you because you are a friend of the owner. |
| isfamily | string | The photo is visible to you because you are family of the owner. |
| license | string | The license the photo is available under. |
| dateupload | string | The date the photo was uploaded. |
| datetaken | string | The date the photo was taken. |
| ownername | string | The screenname of the owner. |
| iconserver | string | The server used in assembling icon URLs. |
| Square | ZendServiceFlickrImage | A 75x75 thumbnail of the image. |
| Thumbnail | ZendServiceFlickrImage | A 100 pixel thumbnail of the image. |
| Small | ZendServiceFlickrImage | A 240 pixel version of the image. |
| Medium | ZendServiceFlickrImage | A 500 pixel version of the image. |
| Large | ZendServiceFlickrImage | A 640 pixel version of the image. |
| Original | ZendServiceFlickrImage | The original image. |
Represents an Image returned by a Flickr search.
| Name | Type | Description |
|---|---|---|
| uri | string | URI for the original image |
| clickUri | string | Clickable URI (i.e. the Flickr page) for the image |
| width | int | Width of the Image |
| height | int | Height of the Image |
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


This is my homework submission for the '01 HTML CSS Git: Code Refactor' project.
his week’s homework requires you to create an application that an employee can use to generate a random password based on criteria they’ve selected by modifying starter code. This app will run in the browser, and will feature dynamically updated HTML and CSS powered by JavaScript code that you write. It will have a clean and polished user interface that is responsive, ensuring that it adapts to multiple screen sizes. The password can include special characters. If you’re unfamiliar with these, see this [list of Password Special Characters from the OWASP Foundation](https://www.owasp.org/index.php/Password_special_characters).
Project at UCSD Extension Full Stack Web Development Course to create a simple calendar application that allows a user to save events for each hour of the day by modifying starter code. This app will run in the browser and feature dynamically updated HTML and CSS powered by jQuery.
In this assignment, I developed a simple weather dashboard that pulls information using the Open Weather API.


Sample JPG
Sample PNG
Sample GIF
Sample SVG
Sample WEBP
Sample AAC
Sample FLAC
Sample MP3
Sample OGA
Sample WAV
Sample WEBA
Sample MP4
Sample OGV
Sample WEBM
Sample HTML
Sample Iframe


2.2. Molecular Integrals¶
Contains the information about how the integrals are calculated. In the equations in this section the following definitions is used.
Here a and b are Gaussian exponent factors. Ax and Bx are the position of the Gaussians in one dimension. Further the basisset functions is of Gaussian kind and given as:
with a normalization constant given as:
2.2.1. Boys Function¶
The Boys function is given as: .. math:
Fn(x)=∫10exp(−xt2)t2ndt
FUNCTION:
MIcython.boys(m,T) return value Input:
m, subscript of the Boys function T, argument of the Boys function Output:
value, value corrosponding to given m and T
2.2.2. Expansion coefficients¶
The expansion coefficient is found by the following recurrence relation:
Ei,jt=0,t<0ort>i+j Ei+1,jt=12pEi,jt−1+XPAEi,jt+(t+1)Ei,jt+1 Ei,j+1t=12pEi,jt−1+XPBEi,jt+(t+1)Ei,jt+1 With the boundary condition that:
E0,00=exp(−pX2AB) FUNCTION:
MolecularIntegrals.E(i,j,t,Qx,a,b,XPA,XPB,XAB) return val Input:
i, input values j, input values t, input values Qx, input values a, input values b, input values XPA, input values XPB, input values XAB, input values Output:
val, value corrosponding to the given input
2.2.3. Overlap¶
The overlap integrals are solved by the following recurrence relation:
With the boundary condition that:
FUNCTION:
MolecularIntegrals.Overlap(a, b, la, lb, Ax, Bx) return Sij Input:
a, Gaussian exponent factor b, Gaussian exponent factor la, angular momentum quantum number lb, angular momentum quantum number Ax, position along one axis Bx, position along one axis Output:
Sij, non-normalized overlap element in one dimension
2.2.4. Kinetic energy¶
The kinetic energy integrals are solved by the following recurrence relation:
With the boundary condition that:
FUNCTION:
Kin(a, b, Ax, Ay, Az, Bx, By, Bz, la, lb, ma, mb, na, nb, N1, N2, c1, c2) return Tij, Sij Input:
a, Gaussian exponent factor b, Gaussian exponent factor Ax, position along the x-axis Bx, position along the x-axis Ay, position along the y-axis By, position along the y-axis Az, position along the z-axis Bz, position along the z-axis la, angular momentum quantum number lb, angular momentum quantum number ma, angular momentum quantum number mb, angular momentum quantum number na, angular momentum quantum number nb, angular momentum quantum number N1, normalization constant N2, normalization constant c1, Gaussian prefactor c2, Gaussian prefactor Output:
Tij, normalized kinetic energy matrix element Sij, normalized overlap matrix element
2.2.5. Electron-nuclear attraction¶
The electron-nuclear interaction integral is given as:
V000ijklmn=2πp∑ti+jEijt∑uk+lEklu∑vm+nEmnvRtuv FUNCTION:
MolecularIntegrals.elnuc(P, p, l1, l2, m1, m2, n1, n2, N1, N2, c1, c2, Zc, Ex, Ey, Ez, R1) return Vij Input:
P, Gaussian product p, exponent from Guassian product l1, angular momentum quantum number l2, angular momentum quantum number m1, angular momentum quantum number n1, angular momentum quantum number n2, angular momentum quantum number N1, normalization constant N2, normalization constant c1, Gaussian prefactor c2, Gaussian prefactor Zc, Nuclear charge Ex, expansion coefficients Ey, expansion coefficients Ez, expansion coefficients R1, hermite coulomb integrals Output:
Vij, normalized electron-nuclei attraction matrix element
2.2.6. Electron-electron repulsion¶
The electron-electron repulsion integral is calculated as:
gabcd=∑tl1+l2Eabt∑um1+m2Eabu∑vn1+n2Eabv∑τl3+l4Ecdτ∑νm3+m4Ecdν∑ϕn3+n4Ecdϕ(−1)τ+ν+ϕ2π5/2pqp+q‾‾‾‾‾√Rt+τ,u+ν,v+ϕ(α,RPQ) FUNCTION:
MIcython.elelrep(p, q, l1, l2, l3, l4, m1, m2, m3, m4, n1, n2, n3, n4, N1, N2, N3, N4, c1, c2, c3, c4, E1, E2, E3, E4, E5, E6, Rpre) return Veeijkl Input:
p, Gaussian exponent factor from Gaussian product q, Gaussian exponent factor from Gaussian product l1, angular momentum quantum number l2, angular momentum quantum number l3, angular momentum quantum number l4, angular momentum quantum number m1, angular momentum quantum number m2, angular momentum quantum number m3, angular momentum quantum number m4, angular momentum quantum number n1, angular momentum quantum number n2, angular momentum quantum number n3, angular momentum quantum number n4, angular momentum quantum number N1, normalization constant N2, normalization constant N3, normalization constant N4, normalization constant c1, Gaussian prefactor c2, Gaussian prefactor c3, Gaussian prefactor c4, Gaussian prefactor E1, expansion coefficient E2, expansion coefficient E3, expansion coefficient E4, expansion coefficient E5, expansion coefficient E6, expansion coefficient Rpre, hermite coulomb integral Output:
Veeijkl, normalized electron-electron repulsion matrix element