Archive for Software Development

How merchants use Facebook to flood Amazon with fake reviews

A Post examination found the majority of reviews on some popular products appeared to violate the e-commerce giant’s policies.

www.washingtonpost.com/business/economy/how-merchants-secretly-use-facebook-to-flood-amazon-with-fake-reviews/2018/04/23/5dad1e30-4392-11e8-8569-26fda6b404c7_story.html

This won’t be solved as long as human to human interaction is considered “too expensive”, there is always a cost to cheap.

Not making decisions 

I think that the biggest problem that Reddit had and continues to have, and that all of the platforms, Facebook and Twitter, and Discord now continue to have is that they’re not making decisions, is that there is absolutely no active thought going into their problems — problems that are going to exist in coming months or years — and what they can do to combat them. I know firsthand that between 2011 and 2015 or 2016, there was just really no thought going into it until I took over product, Ellen [Pao] took over the CEO role, and Jessica [Moreno] took over the head of community role, and we started trying to think about what was going on and what was going to be happening in the future.

We can talk about those decisions if you want, but I think the more interesting aspect is just why people aren’t thinking about this stuff, and how can we get people to think about this stuff. That’s really half of the premise of why Imzy was started. I think there’s just a complete breakdown in the kind of thought process behind how your technology is going to affect the users that use it and the world at large, and the incentive structure that is behind Silicon Valley start-ups and how they’re formed.

What’s that incentive structure?
The incentive structure is simply growth at all costs. There was never, in any board meeting that I have ever attended, a conversation about the users, about things that were going on that were bad, about potential dangers, about decisions that might affect potential dangers. There was never a conversation about that stuff.

Source: Dan McComas, Reddit Product SVP and Imzy Founder Interview

What types of privacy data does the GDPR protect?

  • Basic identity information such as name, address and ID numbers
  • Web data such as location, IP address, cookie data and RFID tags
  • Health and genetic data
  • Biometric data
  • Racial or ethnic data
  • Political opinions
  • Sexual orientation

The GDPR requirements will force U.S. companies to change the way they process, store, and protect customers’ personal data. For example, companies will be allowed to store and process personal data only when the individual consents and for “no longer than is necessary for the purposes for which the personal data are processed.” Personal data must also be portable from one company to another, and companies must erase personal data upon request.

That last item is also known as the right to be forgotten. There are some exceptions. For example, GDPR does not supersede any legal requirement that an organization maintain certain data. This would include HIPAA health record requirements.

What could be a challenging requirement is that companies must report data breaches to supervisory authorities and individuals affected by a breach within 72 hours of when the breach was detected. Another requirement, performing impact assessments, is intended to help mitigate the risk of breaches by identifying vulnerabilities and how to address them.

For a more complete description of GDPR requirements, see “What are the GDPR requirements?”.

Source: What is the GDPR, its requirements and deadlines? | CSO Online

A closer look at the capabilities and risks of iPhone X face mapping

In clause 5.1.2 (iii) of the developer guidelines, Apple writes:

Data gathered from the HomeKit API or from depth and/or facial mapping tools (e.g. ARKit, Camera APIs, or Photo APIs) may not be used for advertising or other use-based data mining, including by third parties.

It also forbids developers from using the iPhone X’s depth sensing module to try to create user profiles for the purpose of identifying and tracking anonymous users of the phone — writing in 5.1.2 (i):

You may not attempt, facilitate, or encourage others to identify anonymous users or reconstruct user profiles based on data collected from depth and/or facial mapping tools (e.g. ARKit, Camera APIs, or Photo APIs), or data that you say has been collected in an “anonymized,” “aggregated,” or otherwise non-identifiable way.

While another clause (2.5.13) in the policy requires developers not to use the TrueDepth camera system’s facial mapping capabilities for account authentication purposes.

Rather developers are required to stick to using the dedicated API Apple provides for interfacing with Face ID (and/or other iOS authentication mechanisms). So basically, devs can’t use the iPhone X’s sensor hardware to try and build their own version of ‘Face ID’ and deploy it on the iPhone X (as you’d expect).

They’re also barred from letting kids younger than 13 authenticate using facial recognition.

Apps using facial recognition for account authentication must use LocalAuthentication (and not ARKit or other facial recognition technology), and must use an alternate authentication method for users under 13 years old.

Source: A closer look at the capabilities and risks of iPhone X face mapping | TechCrunch

Why it’s not “Just Build a Website”

Hey you know computers right? Can you build me a Website/App?

So how many of the above do you know?
These are all things I worked/work with every day and power much of what you see on the internet.
And how many have you not heard of?
And that is just the top level Web Client side frameworks.
That does not include the working knowledge i need on all of the following just to do my job.

  • Programming Languages
  • Networking and Domains and Protocols
  • Web Servers
  • Web Service Architectures
  • Web Service frameworks
  • Server Integrations and API
  • Operating Systems
  • Hosting Services
  • Software As A Service
  • Platform As A Service
  • Virtual Machines and Integrations
  • MicroServices
  • Database Managment
  • Data Architecture
  • Data Clients
  • Mobile Frameworks
  • Mobile-Web Hybrid Frameworks
  • Development Platforms and IDEs
  • Development methodologies
  • Styling Frameworks
  • Testing Frameworks
  • Deployment Frameworks
  • Design Tools
  • Design Methodologies
  • User Experience and Behavior
  • SEO and Marketing
  • Product Distribution
  • Finances
  • Security and Encryption
  • High-level Math and Logic

Each one of those has a chart like above for them.

But some of those things on that chart are out of date!?

 

One person’s history of Twitter, from beginning to end

Here’s the bad news: we did.

Twitter was built at the tail end of that era. Their goal was giving everyone a voice. They were so obsessed with giving everyone a voice that they never stopped to wonder what would happen when everyone got one. And they never asked themselves what everyone meant. That’s Twitter’s original sin. Like Oppenheimer, Twitter was so obsessed with splitting the atom they never stopped to think what we’d do with it.

Twitter made the decision to ride the hate wave. With their investors demanding growth, and their leadership blind to the bomb they were sitting on, Twitter decided that the audience Trump was bringing them was more important than upholding their core principles, their ethics, and their own terms of service.

But when companies tell you they need to be more transparent it’s generally because they’ve been caught being transparent. You accidentally saw behind the curtain. Twitter is behaving exactly as it’s been designed to behave.

Source: One person’s history of Twitter, from beginning to end

Software Engineering is different from Programming

A piece of software is usually not very useful on its own. Useful software features start when multiple pieces of software communicate with each other, exchange their data, and collaborate on the task of presenting data and interfaces to users.

Programs have to be designed with that in mind. What messages do they accept? What events are monitored? What messages are emitted? How do we authenticate and authorize communications?

Another important aspect of great programs is the clarity of the code, not how many tests there are or the number on the test coverage report. It is the simple question of is this code readable to someone else? Or better, would I, the writer of code today, understand this code a few weeks from now?

“There are only two hard things in Computer Science: cache invalidation and naming things.”

— Phil Karlton

Code readability matters a lot more than you think. Unfortunately, there are no good metrics for code clarity. Memorizing good software patterns and practices might help but are often not enough. Good software engineers just develop an eye for code clarity with experience and intuition. The writing metaphor here is perfect: just knowing a big list of words will not help you write concise and clear content.

Source: Software Engineering is different from Programming – Samer Buna – Medium

Choose a License

For reference, all licenses described in the choosealicense.com repository, in a table.

Source: Appendix | Choose a License

Designing Websites for iPhone X | WebKit

The first new feature is an extension to the existing viewport meta tag called viewport-fit, which provides control over the insetting behavior. viewport-fit is available in iOS 11.

The next step towards making our page usable again after adopting viewport-fit=cover is to selectively apply padding to elements that contain important content, in order to ensure that they are not obscured by the shape of the screen.

@supports(padding: max(0px)) {
    .post {
        padding-left: max(12px, constant(safe-area-inset-left));
        padding-right: max(12px, constant(safe-area-inset-right));
    }
}

Experienced web developers might have previously encountered the “CSS locks” mechanism, commonly used to clamp CSS properties to a particular range of values. Using min() and max() together makes this much easier, and will be very helpful in implementing effective responsive designs in the future.

Source: Designing Websites for iPhone X | WebKit

some changes to get maximum support here for sure

How we make a game called Hidden Folks 

How we made a game called Hidden Folks

Funny side-track: when Sylvain and I started working on Hidden Folks about three years ago, he decided to buy a somewhat medium-quality / cost-efficient scanner for the project. When that scanner broke down recently, he used a better scanner for a while only to discover that his digital drawings suddenly looked very different, and so we bought that same low-budget scanner just to make sure all Hidden Folks drawings look consistent.