Weekly digest - 2018.28


Last time I talked about possible premiere of the new MacBook Pros. One week later, Apple refreshed MacBook Pros with new processors, more RAM options, True Tone display (on some models), and new third-generation keyboard.
The basic configuration of the 15' MacBook Pro contains:

  • 2.2GHz 6-core Intel Core i7, Turbo Boost up to 4.1GHz, with 9MB shared L3 cache
  • 16GB of 2400MHz DDR4
  • Radeon Pro 555X with 4GB of GDDR5
  • 256GB SSD
  • True Tone Retina display

and costs $2,399. The maxed out configuration has:

  • 2.9GHz 6-core Intel Core i9, Turbo Boost up to 4.8GHz, with 12MB shared L3 cache
  • 32GB of 2400MHz DDR4
  • Radeon Pro 560X with 4GB of GDDR5
  • 4TB SSD
  • True Tone Retina display

and costs stunning $6,699. Without a doubt the specifications are impressive, but we will need to wait for the benchmarks, to verify whether the new laptops are as powerful as Apple claims. The last thing that remains the mystery is whether a new keyboard fixed issues of its predecessor. Apple only mentioned that the new keyboard is quieter, but latest teardown from iFixit suggest that included silicone membrane might protect against key failure.

Earlier this week, we heard the rumors that Apple plans to deploy the 1Password application to all 100,000 employees. There were also rumors that Apple is going to acquire the 1Password, which has been denied in quite specific way.
I'm using 1Password for couple of years now, and I would love to see it integrated into the operating system, but on the other hand 1Pasword is not only the macOS or iOS app, it also runs on Android and Windows. So it would be a shame to loose such a good app from those platforms.

Apple is not the only company that showed new hardware. Microsoft has presented the Surface Go, a smaller, less powerful version of the Surface Pro. New tablet features a 10-inch screen, integrated kickstand and Windows 10. Basic model that starts at $399 contains:

  • Intel Pentium Gold 4415Y (1.6GHz)
  • 4GB 1866MHz LPDDR3 RAM
  • Intel HD 615 GPU
  • Storage: 64GB eMMC
  • Display: 10-inch (3:2 aspect) 1800 x 1200
  • Camera: 5MP front-facing with Windows Hello, and 8MP rear auto-focus
  • Up to 9 hours battery

I must admit that the price and spec are impressive. The closest competitor - iPad Pro 10' with 64GB of storage - costs $649.

I must admit, it was quite eventful week, but in the meantime, I managed to find couple of interesting articles:

REVERSE ENGINEERING WIPEOUT (PSX)

Mobile UI Design Trends In 2018

Make your app accessible for everyone

Cross Platform Mobile Apps with .NET and Uno

Building an Animated Slider 

Build VueTube: A Youtube Clone with VueJS, Webpack and Flexbox


Image credits: Apple.

Weekly digest - 2018.26


Half year mark is behind us and we have entered the silly season as nothing important is happening. From worth noting news, Apple and Samsung have finally settled a seven-year-old patent dispute. The dispute was about design patents which covered the iPhone's outer shell, software icons and UI elements. Apple sued Samsung in 2011 starting the long battle with many countersuits, trials and appeals that continued up until now.
The companies did not disclose the settlement amount, but in May Samsung was ordered to pay Apple $539 million for infringing on its patents.

Apple is also planning to release completely new version of Maps. The changes will roll out gradually with iOS 12 Beta. At the beginning Maps will cover San Francisco, then California and should cover rest of US at some point next year.
We don't know when new maps will be introduced in other countries, but Eddy Cue said that Maps team is global, which means that eventually we will get new Maps outside US.
It took Apple a while to do those improvements, but it's good to see that Apple is investing in Maps. Beside, Google is not making Apple's life easier with new improvements to Google Maps putting the comparison bar really high.

Now, lets move on to Star Wars topic. Amy Hennig left EA and the project she was working on has been put on hold. Last October EA closed Visceral, but it kept project alive. Development was to continue at EA Vancouver, but it looks like studio is working on something else.
It has been rough few years for Star Wars players. First, the Star Wars 1313 has been canceled. Then we've had shenanigans with Battlefront 2. Now, the third project is on hold. We've been teased with Star Wars Jedi: Fallen Order, but I'm afraid that without specific release date, it might share the fate of the previous projects.

And finally, here is list of interesting articles.

The Problem You Solve Is More Important Than The Code You Write 🔊

How We Created a Virtual Crime Scene to Investigate Syria’s Chemical Attack

Why you should not use Google Cloud

How to build a React.js chat app in 10 minutes

How to create a real-world Node CLI app with Node

Extracting Super Mario Bros levels with Python

Code Injection In Swift

What’s new in Xcode 10?

Ui Goodies - A directory of UI resources

DevTube - The best developer videos in one place


Image credits: Sylwia Bartyzel.

Weekly digest - 2018.25


This week Apple launched Apple Pay in Poland. Customers of 9 Polish banks can add their Mastercard and Visa cards to the Wallet app. According to Polish media, the launch itself was huge success, outclassing Google Pay.
I personally started using Apple Pay almost everywhere. I also started thinking about leaving all plastic cards at home, especially when Apple Pay is more secure.

Speaking of Apple, they finally acknowledged that new MacBooks have keyboard issues.
They launched new service program for users that have issues with sticky, repeated characters or unresponsive keys. The fix is free and if someone already paid for keyboard repair will get a refund.
I'm glad that those keyboards shenanigans are over. Now, I only hope that keyboard in MacBooks will be better than current implementation.

Apple also announced that iOS 12 will automatically share caller's location with 911. This is huge and possibly can save many lives. I hope the same mechanism will be soon implemented in other countries.

We had a lot of Apple news this week, so here is the list of other interesting things:

React Native at Airbnb
This is must read for anyone interested in React Native and cross platform development!

Reconciling GraphQL and Thrift at Airbnb

Create A Live Comment Feed with Pusher and Gatsby (React + GraphQL + Node.js)

NES Emulator for Swift Playgrounds

Writing good bug reports

Advanced Swift Debugging for UIKit

Custom UIView in Swift done right

The Story Behind Susan Kare’s Iconic Design Work for Apple

How to Lose an IT Job in 10 Minutes

How to make meetings (with your client) more effective


As developers we spend a lot of time in meetings. Sometimes those meetings are short and productive. Sometimes they take ages and what is even worse, they don't bring any results.
We've all been there, sitting in the meeting, listening to clients/product owners, who are wondering about what they could do, instead of thinking about what they really need. Those meetings usually turns into endless discussion panels where people are arguing about the features, competitors, etc. They talk about everything but solutions.
Don't get me wrong, it's good to have different opinions. But imagine how well spent time could be if opposite sides came to the meeting prepared. Presenting pros and cons of their solutions and then as a team you decided what to do. Sounds easy, right? Yeah, it is not because it requires preparation.

We cannot force people to be prepared for every single meeting. Usually people come to the meetings unprepared because they are busy, but sometimes they just had no idea what we want talk about. Regardless of the reason, we can make this whole process easier which eventually might result in more productive and effective meetings.

The List

I saw this method for the first time when I was working on previous project. Once a week, our Business Analytics (BA) had a meeting with a client called Alignment. For every meeting they (both BAs and client) would prepare a list of topics they wanted to discuss. During the meeting, they would talk only about the things from the list, nothing more nothing less. During the meeting, they would write down the notes and, if necessary, required actions.
It sounds quite formal and tedious. My thoughts were the same, but I started appreciate this method when I realized how many benefits it brought to the project.

Simple list

Sample list of topics.

General awareness

First of all, with the list, everyone knows what will be discussed during next meeting. This gives a chance and time for preparation. Clients/product owners might revisit their requirements. Designers can prepare mocks. Developers can assess technological solutions. Every single action taken before the meeting makes the meeting itself more effective.
If the list is available to the rest of a team, that increases overall awareness of the project. Every one knows what's happing right now and what is planned for the future.
This doesn't stop there. If a team member needs to discuss something with the client. He/she just needs to add the topic to the list. It is that simple, bring the topic and attend the meeting.

Right people at right time

How many times a decision was postponed because someone was not in the meeting? And I'm not talking about product owners, business analytics or project leaders. I'm talking about people with specialized knowledge.
Lets say you want to talk about user interface. Who is better to talk about UX than a designer or UX expert? If you create a list in advance, it will give you time to invite these people. Specialist are not only to help make a decision, by explaining and clarifying stuff. They are in the meeting to actually increase a chance of making some decisions or defining necessary actions.

Time guardian

Do you remember when I mentioned endless discussions? The list allows to eliminate them. You can add time constraint to every topic you want to discuss. You need to remember that you have finite amount of time for the meeting and you have to go trough every topic from the list.
You may ask how much time you should spend on a topic? It depends. Some topic will take more time to refine, some will take less.
If you just starting, you can divide the meeting time by number of topics. For example if you have 1 hour meeting and 5 topics to discuss, that gives you about 12 minutes per topic. After couple of meetings you will know how much time is required for each topic. So don't worry about this and just experiment.
Another question is what to do when we already exceeded allocated time? The best way would be to cut off the discussions, and determine next actions. For example, client will talk to stakeholders, or developer will prepare the list of viable solutions.
Even if you don't end up with a solution, actions will keep things going and allow you to tackle the problem again during next meeting.

Are there any actions?

Very often, during the meetings, it turns out that we need to take some additional actions. Split a user story, create a spike to investigate something, etc. Equally often we forget about those actions. Ok, maybe not all of them, but I'm sure every single one of us forgot to do something after the meeting.
To solve this issue, the list has a column dedicated to actions. If a topic requires an action you just write it down in that column.
It not only helps you remember, but also gives all of you the insight into what will happen next. That also ensures that there is full transparency between client/product owner and the rest of a team.

Actions list

Actions adeed to the topics.

Where to store it?

Now you know how this list works. You might wondering where you should keep it. It should be accessible to anyone in a team. It also must be editable. Usually such lists are part of project's documentation, so they are kept together with documentation. If you keep your documentation in some kind of wiki, like Confluence or GitHub wiki you are ready to go. All you need to do is to create a section for your lists. Then for every meeting you create a new page where you keep your topic list and all the meeting notes.

List of the meeting notes

List of the meeting notes.

If you don't have any fancy documentation systems available, you can use plain text files and shared folder. In such case, each meeting notes will be stored in separate files. Of course this won't be as convenient as dedicated systems, but it will serve its purpose.

Conclusion

Let's face it. What I just wrote doesn't sound revolutionary. And it is not. That's the buauty of this method. It's easy to introduce, but it requires discipline and patience to master it. Hopefully you can see the advantages. I also hope that I convince you to try it. You have nothing to loose. And who knows, maybe it will make even your meetings more effective.


Image credits: Brooke Cagle.