All opinions expressed are those of the authors and not necessarily those of OSNews.com, our sponsors, or our affiliates.
  Add to My Yahoo!  Subscribe with Bloglines  Subscribe in NewsGator Online

published by noreply@blogger.com (Phin Jensen) on 2017-09-19 18:10:00 in the "browsers" category

Security is often a very difficult thing to get right, especially when it?s not easy to find reliable or up-to-date information or the process of testing can be confusing and complicated. We have a lot of history and experience working on the security of websites and servers, and we?ve found many tools and websites to be very helpful. Here is a collection of those.

Server-side security

There are a number of tools available that can scan your website to check for common vulnerabilities and the quality of SSL/TLS configuration, as well as give great tips on how to improve security for your website.

  • Qualys SSL Labs Server Test takes a simple domain name, performs a series of tests from a variety of clients, and returns a simple letter grade (from A+ down to F) indicating the quality of your SSL/TLS configuration, as well as a detailed summary for a host of configuration options. It covers certificates key and algorithms; TLS and SSL configurations; cipher suites; handshakes on a wide variety of platforms including Android, iOS, Chrome, Firefox, Internet Explorer and Edge, Safari, and others; common protocols and vulnerabilities; and other details.
  • HTTP Security Report does a similar scan, but provides a much more simplified summary of a website, with a numeric score from 0 to 100. It gives a simple, easy to understand list of results, with a green check mark or a red X to indicate whether something is configured for security or not. It also provides short paragraphs explaining settings and recommended configurations.
  • HT-Bridge SSL/TLS Server Test is very similar to Qualys SSL Labs Server Test, but provides some valuable extra information, such as PCI-DSS, HIPAA, and NIST guidelines compliance, as well as industry best practices and basic analysis of third-party content.
  • securityheaders.io is another letter-grade scan, but focuses on server headers only. It provides simple explanations for each recommended server header and links to guides on how to configure them correctly.
  • Observatory by Mozilla scans and gives information on HTTP, TLS, and SSH configuration, as well as simple summaries from other websites, including Qualys, HT-Bridge, and securityheaders.io as covered above.
  • SSL-Tools is focused on SSL and TLS configuration and certificates, with tools to scan websites and mail servers, check for common vulnerabilities, and decode certificates.
  • Microsoft Site Scan performs a series of simple tests, focused more on general website guidelines and best practices, including tests for outdated libraries and plugins which can be a security issue.
  • testssl.sh, the final website scanning tool I?ll cover, is a more advanced bash script that covers many of the same things these other websites do, but provides lots of options for fine-tuning test methods, returned information, and testing abnormal configurations. It?s also open source and doesn?t rely on any third parties.

These websites provide valuable information on SSL/TLS which can be used to create a secure, fast, and functional server configuration:

  • Security/Server Side TLS on the Mozilla wiki is a fantastic page which provides great summaries, recommendations, and reference information on many TLS topics, including handshakes, OCSP Stapling, HSTS, HPKP, certificate ciphers, and common attacks.
  • Mozilla SSL Configuration Generator is a simple tool that generates boilerplate server configuration files for common servers, including Apache and Nginx, and specific server and OpenSSL versions. It also allows you to target ?modern?, ?intermediate?, or ?old? clients and servers, which will give the best configuration possible for each level.
  • Is TLS Fast Yet? is a great, simple, and to-the-point informational website which explains why TLS is so important and how to improve its performance so it has the smallest impact possible on your website?s speed.

Client-side security

These websites provide information and diagnostic tools to ensure that you are using a secure browser.

  • badssl.com gives a list of links to subdomains with various SSL configurations, including badly configured SSL, so you can have a good idea of what a well-configured website looks like versus one with errors in configuration, weak ciphers or key exchange protocols, or insecure HTTP forms.
  • IPv6 Test checks your network and browser for IPv6 support, showing you your ISP, reverse DNS pointers, both your IPv4 and IPv6 addresses, and giving an idea of when your computer or network may have problems with dual-stack IPv4 + IPv6 remote hosts or DNS.
  • How?s My SSL? and Qualys Labs SSL Client Test both check your browser for support of SSL/TLS versions, protocols, ciphers, and features, as well as susceptibility to common vulnerabilities.

General Tools

  • NeverSSL is a simple website that promises to never use SSL. Many public wifi networks require you to go through a payment or login page, which can be blocked when trying to access a well-secured website such as Google, Facebook, Twitter, or Amazon, which can cause trouble connecting to that website. NeverSSL provides an easy and simple way to access that login website.
  • crt.sh is a search engine for public TLS certificate information. It provides a history of certificates for a given domain name, with information including issuer and issue date, as well as an advanced search.
  • Digital Attack Map is an interactive map showing DDoS attacks across the world.
  • The Internet-Wide Scan Data Repository is a public archive of scans across the internet, intended for research and provided by the University of Michigan Censys Team.
  • take-a-screenshot.org is a simple website that shows how to take a screenshot on a variety of operating systems and desktop environments. It?s a fantastic tool to help less technically-minded people share their screens or issues they?re having.

Comments

published by noreply@blogger.com (Greg Hanson) on 2017-08-28 22:36:00 in the "ecommerce" category
"Custom eCommerce" means different things to different people and organizations. For some eCommerce shopping cart sites that pump out literally hundreds of websites a year, it may mean you get to choose from a dizzying array of "templates" that can set your website apart from others.
For others, it may be a slightly more involved arrangement where you can "create categories" to group display of your products on your website ... after you have entered your products into a prearranged database schema.
There are many levels of "custom" out there. Generally speaking, the closer you get to true "custom", the more accurate the term "development" becomes.
It is very important for your business that you decide what fits your needs, and that you match your needs to a platform or company that can provide appropriate services. As you can imagine, this will depend entirely on your business.

Example scenarios

For example, a small one- or two-person business that does fulfillment of online orders may be well suited for a pre-built approach, where you pay a monthly fee to simply log into an admin, add your products, and some content, and the company does the rest. It handles all of the "details."
A slightly larger company that has maybe 5-10 employees, and possibly a staff member with some understanding of websites, may choose to purchase a package that requires more customization and company related input, and perhaps even design or choice of templates.
From this level up, decisions become far more important and complex. For example, even though the previously described company may be perfectly suited with the choice described, if sales are expected to increase dramatically in the near future, or if the company is in a niche market where custom accounting or regulations require specific handling of records, a more advanced approach may be warranted.

What we do

The purpose of this post is not to give you guidelines as to what sort of website service you should buy, or consultancy you should hire for your company. Rather it is to point out some of the types of things that we at End Point do for companies that need a higher level of custom eCommerce development. In fact, the development we do is not limited to eCommerce.

We offer a full range of business consultancy and IT development services. We can guide you through many areas of your business development. True, we primarily provide services to companies that sell things on the web. But we also provide support for inventory management systems in your warehouses, accounts receivable / payable integration with your websites, management of your POS (point of sale) machines, strategic pricing for seasonal products with expiry dates, and the list goes on.

Real-life scenarios

The following is a real-life example of services we have provided for one client.

Case Study: Vervante

Consultant vs Service

Hopefully, the real life scenarios will help serve as an example as to how complex business needs can be, and how using an out of the box "eCommerce" website, will not work in every circumstance. When you find a good business consultant, you will know it. A consultant will not try to make your business fit into their template, they will listen to you and then assemble and tailor products to fit your business.
Regardless of the state of maturity of your business, very seldom will a single "system" or "website" cover all of your business needs. It will more likely be a collection of systems. Which systems and how they work together is likely what will determine success or failure. The more mature your business, the broader the scope of systems required to support the growing requirements of your business.
So whether you are a sole proprietor getting started with your business, or you are a CTO tasked with organizing and optimizing the many systems in your organization, understanding what type of service or partner you need, is the first step. In the future I will spotlight a few other examples of how we have assisted businesses in growing and improving how they do business.

Comments

published by noreply@blogger.com (Greg Hanson) on 2017-08-28 21:21:00

A real-life scenario

The following is a real-life example of services we have provided for one of our clients.
Vervante Corporation provides a print on demand and order fulfillment service for thousands of customers, in their case, "Authors". Vervante needed a way for these authors to keep track of their products. Essentially they needed an Inventory management system. So we designed a complete system from the ground up that allows Vervante's authors many custom functions that simply are not offered in a pre-built package anywhere.
This is also a good time to mention that you should always view your web presence, in fact your business itself, as a process, not a one time "setup". Your products will change, your customers will change, the web will change, everything will change. If you want your business to be successful, you will change.

Some Specifics

While it is beyond the scope of this case study to describe all of the programs that were developed for Vervante, it will be valuable for the reader to sample just a few of the areas to understand how diverse a single business can be. Here are a few of the functions we have built from scratch, over several years to continue to provide Vervante, their authors, and even their vendors with efficient processes to achieve their daily business needs.

Requirements

  1. Author Requirement - First, in some cases, the best approach to a problem is to use someone else's solution! Vervante's authors have large data files that are converted to a product, and then shipped on demand as the orders come in. So we initially provided a custom file transfer process so that customers could directly upload their files to a server we set up for Vervante. Soon Vervante's rapid growth outpaced the efficacy of this system, so we investigated and determined the most efficient and cost-effective approach was to incorporate a 3rd party service. So we recommended a well known file transfer service and wrote a program to communicate with the file transfer service API. Now a client can easily describe and upload large files to Vervante.


    We were able to effectively showcase our ability to incorporate 3D models and mapping layers at BOMA through the use of Google Earth, Cesium, ArcGIS, Unity, and Sketchfab. We were also able to pull data and develop content for neighboring booths and visitors, demonstrating what an easy and data-agnostic platform Liquid Galaxy can be.

    We?re very excited about the increasing traction we have in the real estate industry, and hope our involvement with BOMA will take that to the next level. If you?d like to learn more about Liquid Galaxy, please visit our website or email ask@endpoint.com.
    Comments

    published by Eugenia on 2017-06-26 23:46:29 in the "Metaphysics" category
    Eugenia Loli-Queru

    Some random additional Q&A on the alien agenda series, first part was here.

    Q: How can you say that alien life exists at all?

    A: If you don’t believe that intelligent alien life exists, you’re not just blindly selfish, but also the ultimate pessimist — you basically believe that the Universe is a trap.

    If you do believe they exist, but you don’t believe they’re already here, you essentially deny their intelligence, and hence their very existence. Philosophically, your argument wouldn’t work. Either you believe they’re here, or you don’t believe that aliens exist at all.

    Q: Who are the Greys?

    A: The Greys seem to be an engineered species, made to do a specific work. The bosses are the “praying mantis” 7 ft tall insectoids, not the Greys, and not the Reptilians (which seem to be hybrids themselves, so what is being done to humanity was done to them before). From all these races, in psychedelic trips the praying mantis type is among the most popular encounters. It requires a higher level of consciousness to reach the levels that LSD, mushrooms or DMT can reach. The other races are encountered much less often (but they still do).

    Here’s how to setup the whole operation:
    Step 1: Create a prototype hybrid between your race, and the humans. Two important keys you’re after: to be intelligent to do the job right, to be able to control humans but not the insectoids, and most importantly, to be able to survive on the Earth atmosphere, at least for a while. The moment you have a successful hybrid with the desired characteristics (even if sterile), you clone it. These are the Greys.

    Step 2: You raise the Greys and teach them how to do the job. For different operations (e.g. for surveillance instead of abductions), a few more Grey types exist (e.g. the tall ones). They’re loyal because they have no alternative anyway. They don’t have a planet. The insectoids do, but the Greys are between worlds, entities without a real home. As such, they can only continue to exist in the new humanity. So that becomes their goal.

    Step 3: The Greys start the human mass abductions, to create a new hybrid between them, and the humans, that looks completely human but has additional features that they have (e.g. telepathy), albeit diminished in ability.

    Step 4: When the project finishes, the Greys are not cloned or replaced anymore. Their role would be fulfilled, they would be a dying race. They were never meant to last. That explains why the Greys are not seen in ancient drawings. Just like you create a special robot for a specific usage on an one-of-a-kind factory, that is unlike any other robot for other factories, same way, the Greys are made for the Earth project only. For a different planet, they’d create a different cloned hybrid to carry out the plan.

    Please note that the Greys are not robots, neither they’re “biological robots”. They’re just engineered to do a specific job, and not much else. Mechanical AI/robots wouldn’t be able to do what’s needed, because the job requires to be able to adapt fast, because dealing with humans can be violent, and unpredictable. Only consciousness-assisted AI can reach high levels of performance, pure software can’t.

    Q: What about alien implants?

    A: What about them? They’re just tracking and health monitoring devices that get powered from the body itself. They emit some radiation or signal when inside the body, but when they are removed, they immediately go OFF. And yes, we Earthlings recently got a similar a technological achievement too!

    Q: When is the abduction project finishing?

    A: It already has. Since early 2000s, the number of alien abductions is way, way lower than what it used to be in the second part of the last century. The project has now moved to a new phase, which is the integration to human society of thousands of final stage hybrids, which look indistinguishable from humans.

    Q: …and loyal to them, not to us.

    A: It will take a few generations before they become loyal to Earth. Just like when Spaniards moved in South America, it took them a while before they felt Colombian or Argentinian, and not Spanish. Or the Australians not feeling English anymore. In the meantime, after the initial massacres that took place on the aboriginals, the local population was given options to join the new order. Even if they were a few steps behind in choices and often the objects of racism.

    Q: Some say that the Reptilians are evil and they run the whole operation.

    A: Nonsense of David Icke and his conspiratorial, religiously idiotic followers, that mix New Age crapola in the whole operation. Reptilians get the bad wrap because humans have evolved to fear reptiles more than insects. But on each and every hypnosis session made by a reputable hypnotist (from Dr Mack to Dr Jacobs), Reptilians are just in the middle of the pack in the hierarchy. People fear them just because they look scary, not because they do anything really different than the Greys do. And no, they won’t eat you, jeez.



    Some of the best analysis of the phenomena by a trained professional

    Q: What do they get out of the whole deal?

    A: Evolution. At the end of the day, nothing really changes about why anyone does anything (from microbes, all the way to humans, and to aliens). It always comes down to evolution at the end.

    What if after one point, “evolution of consciousness” only happens artificially, and it MUST happen because the civilization must play catch up with its own technological achievements? If you don’t stay ahead of your own tech curve, you are going to get wiped out by your own creations. This is exactly also why Elon Musk wants to create a “neural link” between the human brain and the upcoming age of AI. Because he wants to keep the humans in the loop, and not “lose out” to the AI.

    What this means in a galactic scale, is that evolved races must constantly find new ways to enrich their consciousness, and the best way to do that is to intermingle with other races that have had a different evolutionary path, which had made them better at different things. For example, an eagle can see fine, but a rat, not so well, but the rat has other qualities (e.g. it can swim, chew etc). Mix the two, and you get millions of years of evolution in a few steps.

    The Greys have mentioned to the US government that human evolution was intervened 65 times in the past. Not all of these times were for the benefit of the aliens, but occasionally only to us. You will have to see the project as a “set of projects, as needed”, and not as a single project, to understand their longer term benefit too (basically we get immediate benefits, while they get benefited long term).

    No one is coming here to “take our planet and its resources”. If they needed that, they would have done so thousands of years ago already. It’s evolution of consciousness they’re after, and it’s a two way road. Which is why the Greys always say to their abductees that: “stop complaining, you agreed to this before you came to this life”. It’s because from a higher vantage point, anyone with a pure logic would have agreed to such evolution, even if from the human incarnated perspective the whole thing looks and sounds so ominous, and terrible. It’s the vantage point that makes all the difference.

    Q: Why don’t they reveal themselves?

    A: Because no human would accept the medicine they offer.

    They’re not here to offer us free energy, or cancer treatments. They are here to give us the tools to find these ourselves. Just like an educational system, they would give you the tools necessary to find the solutions to homework on your own. Because if they just served you the answers, you never learn anything. You can’t progress.

    It only makes sense to reveal themselves to the population after we’re dealt with immediate suicidal problems, e.g. wars, nuclear weapons, global warming etc., and only after the descendants of their final stage hybrids have taken root to ensure safe passage. I don’t think they will reveal themselves in less than 50-100 years from now, unless:
    A. We are close to global war, which this time around will have them mobilize due to the threat of nuclear weapons, or,
    B. the government spills the beans earlier, just to piss them off (or as a strategically-placed scare tactic, after the whole Muslim fear dies down).

    Q: We didn’t ask for their help!

    A: First, you need to read and deeply understand this. And then, I will leave you with a quote from one of the smartest people today, Mrs Naomi Klein, from a recent Vox interview about global warming:

    “For decades, there was a huge emphasis on these just small consumer changes that you can make. It created a kind of dissonance where you present people with information about an existential threat and then say, ?Well, change your light bulb,? or, ?Drive a hybrid.? You don’t talk at all about public policy. And if you do, it’s a very tiny carbon tax and that’s going to do it.

    Then I think there are some liberals who do understand the implications of climate change and the depth of change it requires from us. But because they believe humans are incapable of that kind of change, or at this stage in human evolution, I suppose, they think we’re basically doomed. I think contemporary centrist liberalism does not have the tools to deal with a crisis of this magnitude that requires this level of market intervention. And I worry that can lead to a kind of a nihilism around climate change.”

    Clearer now?


    Comments

    published by noreply@blogger.com (Mark Johnson) on 2017-06-26 13:00:00 in the "CommonAdjust" category

    Product pricing can be quite complex. A typical Interchange catalog will have at least one table in the ProductFiles directive (often products plus either options or variants) and those tables will often have one or more pricing fields (usually price and sales_price). But usually a single, static price isn't sufficient for more complex needs, such as accessory adjustments, quantity pricing, product grouping--not to mention promotions, sales, or other conditional features that may change a product's price for a given situation, dependent on the user's account or session.

    Typically to handle these variety of pricing possibilities, a catalog developer will implement a CommonAdjust algorithm. CommonAdjust can accommodate all the above pricing adjustments and more, and is a powerful tool (yet can become quite arcane when reaching deeper complexity). CommonAdjust is enabled by setting the PriceField directive to a non-existent field value in the tables specified in ProductFiles.

    To give an adequate introduction and treatise on CommonAdjust would be at a minimum its own post, and likely a series. There are many elements that make up a CommonAdjust string, and subtle operator nuances that instruct it to operate in differing patterns. It is even possible for elements themselves to return new CommonAdjust atoms (a feature we will be leveraging in this discussion). So I will assume for this writing that the reader is familiar generally with CommonAdjust and we will implement a very simple example to demonstrate henceforth.

    To start, let's create a CommonAdjust string that simply replaces the typical PriceField setting, and we'll allow it to accommodate a static sales price:

    ProductFiles products
    PriceField 0
    CommonAdjust :sale_price ;:price
    

    The above, in words, indicates that our products live in the products table, and we want CommonAdjust to handle our pricing by setting PriceField to a non-existent field (0 is a safe bet not to be a valid field in the products table). Our CommonAdjust string is comprised of two atoms, both of which are settors of type database lookup. In the products table, we have 2 fields: sale_price and price. If sale_price is "set" (meaning a non-zero numeric value or another CommonAdjust atom) it will be used as it comes first in the list. The semicolon indicates to Interchange "if a previous atom set a price by this point, we're done with this iteration" and, thus, the price field will be ignored. Otherwise, the next atom is checked (the price field), and as long as the price field is set, it will be used instead.

    A few comments here:
    • The bare colon indicates that the field is not restricted to a particular table. Typically, to specify the field, you would have a value like "products:price" or "variants:price". But part of the power of ProductFiles holding products in different tables is you can pick up a sku from any of them. And at that point, you don't know whether you're looking at a sku from products, variants, or as many additional tables as you'd like to grab products from. But if all of them have a price and sales_price field, then you can pick up the pricing from any of them by leaving the table off. You can think of ":price" as "*:price" where asterisk is "table this sku came from".
    • The only indicator that CommonAdjust recognizes as a terminal value is a non-zero numeric value. The proposed price is coerced to numeric, added on to the accumulated price effects of the rest of the CommonAdjust string (if applicable), and the final value is tested for truth. If it is false (empty, undef, or 0) then the process repeats.
    • What happens if none of the atoms produce a non-zero numeric value? If Interchange reaches the end of the original CommonAdjust string without hitting a set atom, it will relent and return a zero cost.

    At this point, we finally introduce our situation, and one that is not at all uncommon. What if I want a zero price? Let's say I have a promotion for buy one product, get this other product for free. Typically, a developer would be able to expect to override the prices from the database optionally by leveraging the "mv_price" parameter in the cart. So, let's adjust our CommonAdjust to accommodate that:

    CommonAdjust $ ;:sale_price ;:price
    

    The $ settor in the first atom means "look in the line-item hash for the mv_price parameter and use that, if it's set". But as we've discussed above, we "set" an atom by making it a non-zero numeric value or another CommonAdjust atom. So if we set mv_price to 0, we've gained nothing. CommonAdjust will move on to the next atom (sale_price database settor) and pick up that product's pricing from the database. And even if we set that product's sale_price and price fields to 0, it means everyone purchasing that item would get it for free (not just our promotion that allows the item to be free with the specific purchase of another item).

    In the specific case of using the $ settor in CommonAdjust, we can set mv_price to the keyword "free", and that will allow us to price the item for 0. But this restricts us to only be able to use $ and mv_price to have a free item. What if the price comes from a complex calculation, out of a usertag settor? Or out of a calc block settor? The special "free" keyword doesn't work there.

    Fortunately, there is a rarely used CommonAdjust settor that will allow for a 0 price item in a general solution. As I mentioned above, CommonAdjust calculations can themselves return other CommonAdjust atoms, which will then be operated on in a subsequent iteration. This frees us from just the special handling that works on $ and mv_price as such an atom can be returned from any of the CommonAdjust atoms and work.

    The settor of interest is >>, and according to what documentation there is on it, it was never even intended to be used as a pricing settor! Rather, it was to be a way of redirecting to additional modes for shipping or tax calculations, which can also leverage CommonAdjust for their particular purposes. However, the key to its usefulness here is thus: it does not perform any test on the value tied to it. It is set, untested, into the final result of this call to the chain_cost() routine and returned. And with no test, the fact that it's Perly false as numeric 0 is irrelevant.

    So building on our current CommonAdjust, let's leverage >> to allow our companion product to have a zero cost (assuming it is the 2nd line item in the cart):

    [calcn]
        $Items->[1]{mv_price} = '>>0';
        return;
    [/calcn]
    

    Now what happens is, $ in the first atom picks up the value out of mv_price and, because it's a CommonAdjust atom, is processed in a second iteration. But this CommonAdjust atom is very simple: take the value tied to >> and return it, untested.

    Perhaps our pricing is more complex than we can (or would like to) support with using $. So we want to write a usertag, where we have the full power of global Perl at our disposal, but we still have circumstances where that usertag may need to return zero-cost items. Using the built-in "free" solution, we're stuck, short of setting mv_price in the item hash within the usertag, which we may not want to do for a variety of reasons. But using >>, we have no such restriction. So let's change CommonAdjust:

    CommonAdjust $ ;[my-special-pricing] ;:sale_price ;:price
    

    Now instead of setting mv_price in the item, let's construct [my-special-pricing] to do some heavy lifting:

    UserTag my-special-pricing Routine <<EOR
    sub {
        # A bunch of conditional, complicated code, but then ...
        elsif (buy_one_get_one_test($item)) {
            # This is where we know this normally priced item is supposed to be
            # free because of our promotion. Excellent!
    
            return '>>0';
        }
        # remaining code we don't care about for this discussion
    }
    EOR
    

    Now we haven't slapped a zero cost onto the line item in a sticky fashion, like we do by setting mv_price. So presumably, above, if the user gets sneaky and removes the "buy one" sku identified by our promotion, our equally clever buy_one_get_one_test() sniffs it out, and the 0 price is no longer in effect.

    For more information on CommonAdjust, see the Custom Pricing section of 'price' glossary entry. And for more examples of leveraging CommonAdjust for quantity and attribute pricing adjustments, see the Examples section of the CommonAdjust document entry.


    Comments

    published by noreply@blogger.com (Ben Witten) on 2017-06-19 18:59:00 in the "Conference" category

    End Point had the privilege of participating in The Ocean Conference at the United Nations, hosted by the International Union for Conservation of Nature (IUCN), these past two weeks. The health of the oceans is critical, and The Ocean Conference, the first United Nations conference on this issue, presents a unique and invaluable opportunity for the world to reverse the precipitous decline of the health of the oceans and seas with concrete solutions.

    A Liquid Galaxy was set up in a prominent area on the main floor of the United Nations. End Point created custom content for the Ocean Conference, using the Liquid Galaxy?s Content Management System. Visiting diplomats and government officials were able to experience this content - Liquid Galaxy?s interactive panoramic setup allows visitors to feel immersed in the different locations, with video and information spanning their periphery.

    Liquid Galaxy content created for The Ocean Conference included:
    -A study of the Catlin Seaview Survey and how the world's coral reefs are changing
    -360 panoramic underwater videos
    -All Mission Blue Ocean Hope Spots
    -A guided tour of the Monaco Explorations 3 Year Expedition
    -National Marine Sanctuaries around the United States

    We were grateful to be able to create content for such a good cause, and hope to be able to do more good work for the IUCN and the UN! If you?d like to learn more, please visit our website or email ask@endpoint.com.


    Comments