Archive for Software Development

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.

The Twelve-Factor App

In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that:

  • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
  • Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
  • Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
  • Minimize divergence between development and production, enabling continuous deployment for maximum agility;
  • And can scale up without significant changes to tooling, architecture, or development practices.

The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

Source: The Twelve-Factor App

Tech Bros: The Indicator Species

It’s not so much that tech bros are bad in and of themselves, it’s that they’re a indicator species for an ecosystem. Like an algal bloom, their overabundance is a sign that the balance is amiss.

The Silicon Valley startup ecosystem depends on venture capital. If VCs are putting in money, they want to see a return (and a big one, because of the expectation that nine out of ten companies, at a minimum, will crash and burn). And they want to see it ASAP, because that’s how the time value of money works, and because companies are burning money like liquid hydrogen as they try to achieve lift-off. So there’s an enormous pressure on founders to produce, which inevitably selects for people who are prepared to sleep under their desk for the chance of having a breakout company (and, not incidentally, making an enormous return for their VCs, who are presumably sleeping soundly in their nice Design Within Reach beds). The system doesn’t select for women, for people who have families or lives outside of work, for thoughtful people. And by not selecting for them, it actively pushes them out, creating a culture that rejects and is intolerable for them (witness the much-documented sexism and ageism of tech culture). On top of all that, we as a culture socialize boys to be over-confident in themselves and to be deeply messed up about gender, and then there’s the Dunning-Kruger effect, and then we give them a bunch of money. So it’s not surprising that tech bros (or be both more precise and less ad hominem, techbro behaviors) come out of this system.

Source: Metafoundry 4: Indicator Species

What do Uber, Volkswagen and Zenefits have in common? They all used hidden code to break the law.

Coding is a superpower. With it, you can bend reality to your will. You can make the world a better place. Or you can destroy it.

You may be able to fool the regulators, the police, the judges. You may be able to fool the general public. And you may be able to go on doing this indefinitely without being caught.

But that doesn’t make it right.

Developers have great power. And they must use this power responsibly.

If you’re a developer, or working toward becoming one, I strongly recommend you read Bill Sourour’s article “The code I’m still ashamed of.”

And if someone asks you to build something that is clearly illegal?—?or downright evil?—?go to the press. The developers in all three of these cases could have done this and saved the world a lot of heart ache.

via https://medium.freecodecamp.com/dark-genius-how-programmers-at-uber-volkswagen-and-zenefits-helped-their-employers-break-the-law-b7a7939c6591#.kz8pbb6q1