SHIPPINGPOLICY:
Free Purity is experiencing high volume of orders, inventory shortages (due to manufacturing delays) and shipping delays, we thank you for your patience.
Shipping delays after your order leaves our warehouse are out of out control. Some products on our website require custom order from the manufacturer. As a wholesale distributor we do our best to ship all products as soon as possible when they're in stock. If you have any questions or need a timely delivery, please contact us directly. Thank you for choosing Free Purity.
RETURN POLICY:
Free Purity is a wholesale distributor and reseller, and our return policy or warranty varies based on a product you've purchased. Some products can not be returned. Where allowed, you can return unopened, unused and resalable products bought on Free Purity within 30 days.
We apologize but shipping costs are non-refundable unless the product was defective, please let us know in the first 3 days of receipt. 15% restocking fee will be charged on all product returns except products that were defective on arrival. Please know we test our products where possible. If you are unsure what system or parts you need, we are happy to recommend before you purchase to avoid returns.
We work hard to make sure all of our customers are satisfied with their orders and will work with you to make sure you order the right products and are satisfied with your purchase.
CANCELLATIONS & REFUNDS
Please note transaction fees for processing orders with 3rd party merchants such as Paypal or Amazon, or credit card companies such as Visa or MasterCard are non refundable. In case the order gets canceled, for any reason, including due to products being on backorder, discontinued or out of stock, and you don't request a compatible or better substitution, transaction and processing fees do not get refunded. These fees are not charged by Free Purity but 3rd party processors that retain those fees directly when the refund gets issued. As a wholesaler, we can not absorb these fees for our customers but will offer to substitute our products with equal or better quality.
To start a return please email us for a return address and an authorization code. You must have the original receipt or proof of purchase. No returns will be accepted without a prior authorization code. We are not responsible for lost items if shipped without prior authorization code. Free Purity operates from several warehouses in US, we will provide a specific return address based on the location and product you've purchased.
Free Purity is not responsible for lost returns without authorization code. You must ship all merchandise via a courier that provides tracking, and provide us with the tracking number. Please contact us ahead of mailing anything to our office for the correct mailing address.
DEFECTIVE PRODUCTS:
All of our wholesale products are of the highest quality, assembled and tested by our team and built with the most reliable, industry-trusted components. We also distribute complete systems and products designed and manufactured by the most reputable US companies and water purification brands in the world that we have long standing relationships with, that have partnered with us to offer their products to you at the lowest wholesale prices.
All of the products are manually inspected before shipment. If the product arrives to you defective or appears defective after installation, and there is no sign of misuse, we will process an exchange and ship you a new replacement at no cost to you. If the defect is visible please take photos to share with us immediately after receiving the product. We reserved our right to inspect all products prior to issuing refunds.
DAMAGED FROM MISUSE ITEMS POLICY:
Sorry, no refunds available for damaged items that were visibly tampered with or used incorrectly by the customer. Your satisfaction is important to us and we try our best to address all issues. If you aren't sure how to install or use our products, please contact us prior to use and we will guide you.
Merchandise that becomes defective after 30 days is subject to the product-specific manufacturer's warranty. Returns or replacement of opened or used products that became defective will be processed on a case by case basis.
If you choose to return a product because you simply changed your mind, note 3rd party processing fees do not get refunded and the product must be in the original package, unopened, sealed and unused, in order to be qualified for a refund. If the package is open, returns will be processed and money refunded less than 15% restocking fee. The refund will be applied to the cost of the product only. We apologize but shipping costs can not be refunded.
But for a client application, (suppose a python client that has managed to perform step 1, 2, and opened a browser with the correct URL+parameters in step 3) how does the Authorization code get back to the client application? There is no server to callback to. Can the client application contact the Auth0 Tenant to check on the state of the authorization request?
Could you walk us through an example? I am curious why you would not just authenticate through the SPA and request a token for your api, then make requests that way. Can you outline the implementation or flow if possible?
The main use case is this: I have a simple Python script on my Windows machine. It accesses a protected service, so it needs some key to function properly. Right now, I plug in a USB dongle with credentials to get it to run, but that is not secure. I would like to change the script so I authenticate over our company sso, the script gets its Authorization Code, does its work against the protected service, and shuts down. There are no keys on my machine, there are no keys on a usb stick. I think I understand how to implement steps 1, 2, and 3. Steps 4 and 5 are between me and auth0. Step 6 is a mystery. Steps 7, 8, 9, 10 and 11 happen during the script execution, and seem clear.
The other option that may be more tailored to this setup, although not an exact solution, would be the device flow. This will require you to authenticate from the machine and input a code, but may be a solution. It would work like this:
I really like Haskell. But why? In this post I try to articulate why Ilike this language so much and why I think it would be worth mostprogrammers' while to learn it. None of this is new, but I want toexpress my own view in my own words. I write this in part to clarifymy thinking and in part to improve my ability to articulate thesepoints.
When I first started to learn Haskell purity (In Haskell, puritymeans that a function must be free from side effects such asprinting to the console or modifying variables.)seemed like a crazy concept. Programming by modifying some kind ofstate and interacting with the 'real world' is so ingrained inmainstream programming languages that it is hard to imagine how youcan get anything done without it. Ironically, after havingprogrammed in Haskell for a while, impure languages now make mytoenails curl. What do you mean, I have to look at the functionbody to find out if it writes to a file, makes calls over thenetwork, or talks to the database? That is insane!
The beauty of Haskell's way of dealing with pure and impurefunctions is that you can tell from the type signature what afunction is and isn't allowed to do. You can still do all thoseimpure calls-over-the-network and array-update-in-place things thatregular languages allow you to do, but you have to tell everyoneabout it in your function's type signature.
This, and the Haskell community, pushes you to make your program aspure as possible. I have found that this has huge benefits: Purefunctions are easy to understand: just by the name and type signatureit is usually obvious what a function does. When you do inspect afunction's body you don't have to keep track of what state the worldis in right now (or all the states that it could theoretically be in),its behavior only depends on your input parameters. As a result, thismakes programs (large parts of which are now pure functions) mucheasier to understand. In fact, I find that one of the hardest thingsabout understanding programs is to keep track of state. This burden ishugely reduced in the pure part of your code.
Purity makes testing a breeze. Most of the time the hard part aboutwriting tests is to construct the state where the tests should run,verify it was changed in the intended ways, and clean upafterwards. Worse, the code you want to test could depend on a globalstate that you can't modify easily, such as the system time or therandom number generator. If you have pure functions, you just pass inthe arguments and check the result. Testing becomes much easier.
Pure functions simplify conceptualizing and designing programs. Infunctional programming you have two concepts: functions and data. Thetwo are orthogonal in their purpose. The functions modify your datauntil you get to the result. I find that conceptualizing and reasoningabout data that gets successively modified by a number of (pure)functions is much easier than doing the equivalent with an objectoriented approach. It is just very difficult to mentally enumerate allthe possible states that a number of different objects could be in atany given time. But understanding all possible states is necessary todraw conclusions about the behavior of a program.
Have you ever tried to reuse some piece of code and found to yourdismay that it reads or writes stuff from or to disk, uses thesystem time function in a way that is now inappropriate, talks overthe network, prints to the console or pops up dialogs? These thingsare hugely inconvenient and often inhibit reuse. State just doesnot compose well and having the ability to modify state tends tocreate implicit dependencies. If you have a pure function, you cancall it anywhere you want!
3a8082e126