David Remnick, editor of The New Yorker, agreed to interview former Breitbart leader and Trump advisor Steve Bannon on stage at The New Yorker Festival. Then, on second thought, he decided not to. Changing your mind is hard; justifying it is even harder. The challenge here is that Bannon is the self-acknowledged leader of the … Continued
Today is the first day back from my two-week vacation. We started our vacation in Maine, and we ended our vacation with a few days in Italy.
While I did some work on vacation, it was my first two-week vacation since starting Acquia 11 years ago.
This morning when the alarm went off I thought: "Why is my alarm going off in the middle of the night?". A few moments later, reality struck. It's time to go back to work.
Going on vacation is like going to space. Lots of work before take-off, followed by serenity and peaceful floating around in space, eventually abrupted by an insane re-entry process into the earth's atmosphere.
I got up early this morning to work on my "re-entry" and prioritize what I have to do this week. It's a lot!
Drupal Europe is only one week away and I have to make a lot of progress on my keynote presentation and prepare for other sessions and meetings. Between now and Drupal Europe, I also have two analyst meetings (Forrester and Gartner), three board meetings, and dozens of meetings to catch up with co-workers, projects, partners and customers. Plus, I would love to write about the upcoming Drupal 8.6.0 release and publish my annual "Who sponsors Drupal development?" report. Lots to do this week, but all things I'm excited about.
If you're expecting to hear from me, know that it might take me several weeks to dig out.
As you might have noted when we announced closing the development kit “last call” sale, new specifications have been made public. I want to explain what led to these specifications and why we made the choices we made and what the current timeline is for the devkits and Librem 5 phones.
We want to make a secure mobile communication device which can offer on-par experience similar to today’s smartphones, while making it as free and transparent to the extent we can given the reality of today. We take the notion of “free” or “libre” seriously, striving to comply with the Free Software Foundation (FSF) strict “Respects Your Freedom” (RYF) requirements. Having that endorsement is an important and critical goal for us. The RYF criteria rules out a substantial amount of hardware, making finding RYF complaint phone hardware a challenging endeavor. It would have been relatively trivial to produce a smartphone with non-free GPU drivers and a CPU with combined radios + CPU + GPU in a few months, but creating a regular smartphone is not our goal. We have much higher aspirations.
We chose to build a free and secure mobile communication device. One that respects peoples’ privacy and security. We chose to do it because the pursuit of building one will challenge us as a company and to provide a product to those who care deeply about software and hardware freedom. It is an endeavor that we are unwilling to compromise on with the firm belief that it is achievable.
Let’s talk about what the current state of things are.
Phone hardware is comprised of a SoC (System on a Chip) and peripheral hardware like modems that connect them to cellular networks. In early 2017, when we started our research for the right SoC, we quickly came to the conclusion that the NXP i.MX family—with the free Etnaviv drivers for the embedded Vivante GPU—would be the best choice. The fact that the NXP i.MX 6 did not require a proprietary firmware for normal phone use cases, combined with an advanced free “etnaviv” GPU driver available, was very attractive to us. The fact that the SoC has been on the market for quite some time also meant that the drivers were stable and solid.
By late summer 2017, we became aware that the newer “i.MX 8” generation of SoC was rumored to be released soon. At the time, we had already launched our crowdfunding campaign and there was no publicly available information on this newer generation SoC, so we had to continue with the plans already in place. The allure of having a newer generation SoC was enough that we reached out to NXP and various distributors to get more detailed information on these new SoCs. While continuing to work on other parts of the phone and working on our software, we kept communication lines open on the new SoC opportunity after nearly six months, then we were able to obtain early documentation but no availability dates.
In early 2018, we got word that the i.MX 8 family would finally be announced at “Embedded World” in Nürnberg, Germany! So after a small hackfest in Germany, Purism CEO Todd Weaver and I drove to Nürnberg and met with NXP and i.MX 8 partners. We were able to get a demonstration of actual i.MX8 hardware and associated firmware to see it running. Even the latest Etnaviv was already working well. We were excited about the opportunities of running a more recent hardware.
We were confident that the i.MX 8 was well suited for the Librem 5 and will be available in larger quantities early enough for our initially scheduled shipping date of January 2019. The decision to upgrade to a newer generation of the SoC (from the the same hardware family) brings the benefits of a modern 64-bit CPU, more GPUs on the silicon, lower power consumption and a host of other upgrades, while still allowing us to maintain our strict requirements to seek the FSF’s “RYF” endorsement. We believe that the risk trade-off is worth it given the modern upgrades the new SoC provides us. The SoC is of course not the only concern for the Librem 5.
Challenges of Making a Non-Android Mobile Phone
Making a non-Android mobile phone that will run an FSF-approved OS that supports all the features that we’ve all come to rely on (cellular, WiFi, Bluetooth, touchscreen input) has and continues to involve a lot of pathfinding, given that a RYF phone has never been attempted before and discovery involves solving issues as they come up.
The industry offers all the hardware to create a smartphone on a fast path, as the SoC vendors typically provide the modem (cellular and wifi) integrated directly on the SoC. Like a recipe in a cookbook—take an SoC, place it on a PCB, add RAM and flash chip on top of it (called a package on package—PoP), add antennas and finally power. The difficulty comes down to the firmware and the software that run these devices. The necessary firmware to operate the cellular modem, WiFi, BT etc. is provided by the chip maker, including the drivers for the GPU and more. The firmware and software included is proprietary with no source code with little to no alternatives.
Cellular (baseband) modem
The cellular modem is arguably the most complex part of a mobile phone. The modem is the component that has to implement all the familiar protocols you would associate with a phone (like 2G, 3G, 4G and the upcoming 5G). It does so by running its own proprietary black box operating system. The cellular modem is also covered by thousands of patents held by hundreds of patent owners. Now imagine this… This cellular modem sits right on the same RAM bus as the SoC! Non-free software not only has access to the data flowing to and from the SoC, but also has the ability to modify it. Because this modem operating system is a propreitary black box, we have no idea what this component does or what kind of vulnerabilities it has.
Coming back to the design of the Librem 5 phone, we clearly do not believe this is an ideal situation. The cellular modem should be isolated from the SoC by not accessing the RAM bus. The situation is further complicated by the fact that during our research into cellular modems, we realized that there are only a handful of silicon vendors in the world that make these chipsets and nearly all of them integrate their model with the SoC on the same bus. In addition, you historically need to acquire a license to run the proprietary firmware to power the modem on SoCs.
This left us with only one choice: to use ready-made modem “modules” and our own layout that isolates the modem from the SoC. There are a number of these modem modules available in different form factors with various available options in speed, bands, etc. By going the module route we can both provide supplier choice in modems that meet our strict standards, and also allow modem isolation from the RAM and host CPU.
To isolate the cellular modem from the SoC, we will be placing the modem on the (remarkably fast) USB bus and have the phone interact with the cellular modem through USB instead of on the main RAM bus. This will separate the cellular modem on its own bus without seeing any other data.
WiFi/Bluetooth modem
For WiFi and Bluetooth radios we are currently working closely with Redpine Signal. Redpine Signal will supply us with a low power WiFi/Bluetooth solution using SDIO as the data interface. We went with Redpine Signal as their chipset does not require a firmware download at runtime like other vendors; having a downloadable firmware would violate the Free Software Foundation’s RYF requirements. In the end, we believe we have a great solution for WiFi and Bluetooth that will integrate well and at low power in the Librem phone. This is highlighting the fact that Purism, as a social purpose corporation, will push our strict agenda of software and user freedoms upstream into the supply chain.
EE, ID, and MD (Electronics Engineering, Industrial Design, and Mechanical Design)
To find the right vendors to build our hardware components, a while ago Todd and I went to Shenzhen, China. Shenzhen is where two-thirds of the current worldwide production of smartphones happens, where over a billion devices per year are produced. That’s where the optimized supply chain logistics have been developed over the past few decades, and that’s where the physical electronics engineering expertise is these days. We selected this area because this is where we are going to find the expertise in building the Librem 5 with the hardware components we have selected.
Selecting fabrication partners for our custom design has been an exciting exercise due to all the possibilities that could be reality. Since the beginning of April of this year, we have been evaluating hardware fabrication companies and factories that would be willing to work with us. Aligned with our original planning and timeline we began working with an electronics design house and soon after we located our mechanical design and hardware fabrication.
Status of the Development Kits
We will begin shipping the devkits in October barring any unforeseen issues. We are quite conscious that the hundreds of active developers all are eager to see these development kits and we are eager to send them out and get you developing on the Librem 5 PureOS platform. We have been pushing hard on our supply chain to give us results as quickly as possible. The new devkits will have the newer i.MX 8M based SoC. The current status is that we have completed the design and working towards power up test. We are pleased that the devkits will be assembled and manufactured in the United States, specifically in the San Diego California area, while the final phone production is expected to be in China.
With the new SoC, devkits will have more up-to-date hardware, faster, more powerful GPUs (from dual core to quad core), 64 bits and overall lower power consumption and heat. This will increase the attractiveness of the phone for those who are doing comparison shopping with other phones.
The developer documentation for the dev kits are fairly close to being ready and we expect that those who receive the dev kits will be ready to start writing applications relatively quickly.
The past three to four months have been a period of great activity here at Purism with a lot of pathfinding work, negotiations, and dividing of labors amongst the various parties—A precise dance with many partners working in concert in an effort to get the right product. But like you, we can’t wait for the end result: a truly freedom-driven phone that we hope will disrupt the market today with groundbreaking concepts while still having all the modern features that phones on the market have today.
Pictured: parts of the devkit in our office in Germany. When you consider the design of the PCBs we made, the devkits comprise more than 700 components.
Status of the Librem 5 Phone Roadmap
Let’s move on to the schedule for the Librem 5. With the latest information at our disposal, we foresee a delay in production until April 2019. The reason is that there is a silicon bug on the SoC that causes extreme battery draining. If we were to put out the phone with this bug, the phone battery would drain out within an hour or so… That’s not the first impression we want to give!
The errata from NXP (the silicon vendor) for the currently shipping revision can be found here. More specifically, this document where the two issues that can affect power management and power consumption are identified as “e11174” and “e11171”.
We are working closely with the silicon vendor, NXP, to fix the issue.
Why April? We want to be realistic with our projection based on a number of factors:
If the problem gets fixed by December, that runs into the holiday season in Europe and America.
February is the Chinese New Year and effectively the entire country is shut down for that month. Therefore, we can only restart the production ramp-up process in March, with first units to be produced in April.
Internally, we have a lot of plans that need a hard date to plan off of, and so it is imperative that we hit close to our dates in order to meet commitments with the press, community (online and at various events), investors, and others.
We want to give all of you a date that is realistic so that we can provide the best first experience as possible. We want you to be wow’d but we need a long tail to properly QA the product after the initial power on. So this is why we are saying that we are hoping to begin production in April (if we can manage earlier, that’s great, but we’d rather not over-promise).
You might wonder why the schedule for the devkits did not change significantly compared to the Librem 5 phone (that we release to the public). The devkits are meant to be plugged in and thus are not negatively affected by the silicon bug as the devkits are meant to be used while connected to a power outlet. The devkits will therefore be shipped with the SoC that has the silicon power bug, as this will not affect developers (since it is not like you would expect to carry a devkit in your pocket with days of standby time).
To whet your appetite, we have included below one of the early blueprints of the development kit (don’t use it as a reference!)—as well as some recent 3D renderings of it, for your viewing pleasure.
An early blueprint of the development kit3D rendering of Librem 5 Devkit front and back
Beyond devkits, one of the things that I think all of you would be pleased with is that the phone will have a user-replaceable battery: unlike the vast majority of mobile phones we see on the market today, ours won’t have the battery soldered onto the mainboard and the case will not be glued beyond reapairability.
The phone design schematics are pretty much complete and we’ve been busy focusing on putting the device together. There are some missing pieces like the modem that needs to be incorporated, but other than that there currently are no show-stopping issues in regards to manufacturing the phone.
Amazing amounts of diligent work have gone into creating the Librem 5, and we continue to learn new lessons and overcome challenges going forward. One of the hardest things that we had to deal with is establishing the phone hardware supply chain and navigating our way with a whole new set of suppliers around the world, making the right contacts to get what we want accomplished. We can’t underscore enough the challenge that building this supply chain has been. The other challenge is finding compatible hardware components that respects our ideology and FSF RYF endorsement goals when the whole supply chain has traditionally been built for cost effectiveness. Finding suppliers that avoid blobs in the operating system has proven to be, unsurprisingly, long and arduous.
We will continue to evolve as we understand better how this subset of the industry works. The success of our phone is critical, as it will provide us with the legitimacy and leverage we need to bend hardware suppliers to our way of thinking by showing them that we have the potential to be market leaders with ethical products that respect users.
For those who invested in us, and continue to be patient with us: you have our undying gratitude. For those who take a wait-and-see approach, we hope that you’ll come around and be part of the Purism family, whether through the phone project or with our other offerings. Thank you.
Device maker Purism shares new details on the smartphone’s status and production schedule
SAN FRANCISCO, Calif., September 4, 2018 — Purism, the social purpose corporation which designs and produces popular digital rights respecting hardware, software, and services, is sharing the much anticipated progress and scheduling for its Librem 5 smartphone.
Pre-selling at $599 until production—less than the cost of many popular smartphones—the Librem 5 will give users unprecedented control and security with features unavailable on any other mainstream smartphone, including a fully free/libre and open source operating system PureOS that also runs on Purism laptops (transparent code is the core of secure systems), proper hardware separation of cellular modem from the host CPU (isolation of communications to protect private data), and hardware kill switches for the camera, microphone, WiFi/Bluetooth and cellular baseband modem. The Librem 5, running Purism’s own Free Software Foundation endorsed PureOS will be the only mainstream smartphone manufactured to avoid the duopoly of Google Android and Apple iOS, and it will specifically steer people toward ethical rights respecting applications to protect people by default.
With all the advancements Purism is making with the hardware, software, development kits, and services, during testing two silicon bugs were discovered in the Librem 5’s CPU, manufactured by NXP, that affects power management and power consumption. Purism has been working with the silicon vendor directly to evaluate the upcoming CPU for this silicon power management issue that would have a significant negative impact on the Librem 5’s battery life. Ultimately, this issue is going to lead to a three month delay in the production schedule for the final Librem 5 phone.
The errata from NXP for the current silicon revision can be found here, more specifically, this document where the two issues that can affect power management and power consumption are identified as “e11174” and “e11171”.
A more detailed technical blog post from Purism’s hardware team explaining the intricacies of the manufacturing process is available here.
“We are making impressive progress across the hardware design and the completely free software stack for the Librem 5,” said Nicole Faerber, Purism’s CTO. “It has been an unsurprisingly long and arduous process given that traditional supply chains are built for cost effectiveness, whereas we are prioritizing components that respect a person’s privacy and freedom to control their device.”
“We want to make a secure mobile communication device which can offer on-par experience similar to today’s smartphones, but that are ethical,” said Todd Weaver, founder and CEO at Purism. “I’m proud of the progress our team is making and grateful to our community for supporting our efforts as we work diligently to get the Librem 5—and all its societal benefits—into people’s hands.”
Front and back 3D renders of the Librem 5’s development kit mainboard
About Purism
Purism is a Social Purpose Corporation devoted to bringing security, privacy, software freedom, and digital independence to everyone’s personal computing experience.
With operations based in San Francisco (California) and around the world, Purism manufactures premium-quality laptops and phones, creating beautiful and powerful devices meant to protect users’ digital lives without requiring a compromise on ease of use. Purism designs and assembles its hardware by carefully selecting internationally sourced components to be privacy-respecting and fully Free-Software-compliant. Security and privacy-centric features come built-in with every product Purism makes, making security and privacy the simpler, logical choice for individuals and businesses.
Media Contact
Marie Williams, Coderella / Purism
+1 415-689-4029
pr@puri.smSee also the Purism press room for additional tools and announcements.
A neighborhood full of offices might not seem like much of an attraction, but South Lake Union has undoubtedly increased the city’s appeal. More than 114,000 people have moved to Seattle since 2010, increasing the population by 19 percent and making it the fastest-growing big city in the U.S. this decade. There haven’t been nearly enough new places for them to live, leading to steep increases in housing costs in a city poorly equipped to absorb people.
About two-thirds of Seattle’s residential properties are single-family homes. (Similar tech-centric cities are much denser; for instance, in Boston, single-family homes account for just 14 percent of the housing stock.) Seattle homeowners have vigorously fought changes to zoning laws that would increase density on the grounds that it would alter the character of neighborhoods filled with picturesque (if small) craftsman-style bungalows. The Nimby-ism has led to scarcity and bidding wars, driving the median home price to $805,000 in July. In some areas once populated by Boeing machinists, houses routinely fetch more than $1 million. And developers have generally prioritized offices and high-end homes over more affordable housing in recent years, exacerbating the imbalance between supply and demand. A poll published in May showed that the soaring cost of living had overtaken traffic as residents’ most-hated part of life in greater Seattle.
Note also the story of the failed Seattle Commons initiative:
Some of the anger in Seattle stems from the fact that much of South Lake Union could have been a park. In 1991 a series of columns in the Seattle Times proposed building a giant green space that would extend from downtown a mile north to Lake Union, a large body of water in the middle of the city. An article waxed poetically about the possibility of “whispering firs” and “a brand-new salmon run.” Soon, prominent citizens formed the nonprofit Seattle Commons Committee, which developed a plan for a residential and commercial neighborhood with homes for 15,000 people surrounding a 74-acre park.
But Seattleites voted it down, twice, mainly because tax revenue would seem to have benefited developers. So now they have everything they feared, and no park.
Carlito Pablo in the Georgia Straight and others are talking about the optics of a report quickly going to Vancouver Council this Tuesday which gives land that the City just purchased from the CPR (Canadian Pacific Railway) railway back to that company.
The former CPR land in question is east of Fir Street south of 5th Avenue to West 1st Avenue, land that is already zoned for housing, industrial and commercial uses and is not part of the “transportation” corridor currently being used as part of the Arbutus Greenway.
And this is just not any land~these parcels located on the old railbed that went to the Molson Brewery are in the highly sought after False Creek precinct.
You may remember a decade or two ago CPR embarked on a strange planning process where they set up a site office in Kerrisdale and solicited comments from the community about what density could be built where along the Arbutus corridor. At the time CPR was establishing a valuation of the Arbutus corridor as something more than a transportation corridor, and that has been a major sticking point in the CPR/City negotiations, which went on for a very very long time.
It is no surprise that the CPR wants a piece of the development pie, and they laid that out in their agreement penned in 2016. You can take a look at the CPR and City of Vancouver agreement here. Section 10.5 stipulates that “development lands” if sold to a developer would require the City to pony up 75 per cent of the sale to the CPR.
Section 11.1 of the agreement handily gives CPR the first option of purchasing said lands for $1.00.
Anything not deemed to be used for a transportation corridor is still on the table for CPR. Lands north of 1st Avenue will be removed in trust for the Squamish First Nations as part of their territory. The Council report states that the agreement with the CPR has been made available at public meetings. The City has also pointed out that this sale has been publicly discussed at the meetings about the Arbutus Greenway. Given that it is a municipal election year there’s not a surprise other factions are disagreeing politically with the decision. The bottom line? For 55 million dollars the city still gets its greenway and light rail transit corridor, but in order to anchor that, has had to acquiesce to CPR’s position on development rights for land not in the Arbutus transportation corridor that has signficant development potential. With an election weeks away, expect to hear more about the interpretation of this agreement from other political candidates vying for a City Hall seat.
Some people have blogged about their experiences at our birthday unconference “Smart Stuff That Matters” and bbq in honour of Elmine’s birthday.
Peter wrote about the session his son organised, and about (re)connecting to the other participants in a way that describes the richness of the interaction well: “All the friends I’ve not yet met“, in reference to a sentence uttered at the event.
Elja wrote a great post about the ‘oh sh*t’ moment where you think no-one will be interested in your story. The original is in Dutch too, so you may want to use the machine translation.
Iskander mentions how he adapted a workshop he regularly organises to facilitate a group to make a robot with the help of the mobile FabLab, Frysklab parked in the courtyard.
Elmine, the host and birthday girl herself, is still reeling from all the interaction, and in awe of all the efforts people made to attend. A feeling I completely share.
Most of them started as teacher-bloggers, but through websites like TeachersPayTeachers and Instagram feeds these teachers have been supplementing their often-meagre income marketing props, aids and classroom supplies. “Some come just to share to help other teachers and to make a little extra pocket money,” said Freed. “And then some of them actually become extraordinary content creators, and they really become almost mini-publishers.” I'm glad that some teachers are able to use the internet to make some extra money, but I think teachers should be paid by school boards, not each other.
I’ve always found it interesting that visualization and analysis are typically “overview first, then details on demand”, whereas storytelling more often goes the opposite direction. Focus on an individual data point first and then zoom out after.
As locals hop aboard, complain about the scooters taking up street space, compete to collect and charge them, and hurl them into lakes, municipalities are left to wonder: How do we manage these things? Some, like Austin, have decided to let the companies be. Others, like San Francisco and Santa Monica, have cracked down, limiting which companies can operate, and how.
As with Uber, Vancouver is apparently being cautious. Or has it just not had to confront the scooter reality when some venture-bro decides to dump them on us?
Officials also see this as a do-over, a chance to regulate a new mobility option in the way they never did for Uber and Lyft, when those options stormed into cities less than a decade ago. “Cities learned two things: to be open to new stuff,” says Bruce Schaller, a transportation consultant . “And you need to guide the introduction, be partners in guiding, testing, and piloting.”
Major rapid transit projects to ease congestion in Metro Vancouver
The Prime Minister, Justin Trudeau, and the Premier of British Columbia, John Horgan, have announced more than $3 billion in federal and provincial funding for two major rapid transit projects in Metro Vancouver: the Broadway Subway project and the Surrey-Newton-Guildford Light Rail Transit project.
The Broadway Subway project will add 5.7 kilometres and six stations to the line, bringing frequent and reliable SkyTrain access to one of the most congested transit corridors in Metro Vancouver.
The Surrey-Newton-Guildford Light Rail Transit project (LRT) will create the first light-rail transit system in British Columbia. With 11 new stations along 10.5 kilometres of street-level track, the LRT will provide much-needed transit services in underserved areas, connect and revitalize communities, and make it easier to travel across the Lower Mainland.
Quick Facts:
The Government of Canada will contribute $1.37 billion to the two projects, the Government of British Columbia will contribute $1.82 billion, and Translink, the City of Vancouver, and the City of Surrey will contribute $1.23 billion.
The Broadway Subway will be able to move 5,100 more passengers per hour, per direction than the existing B-Line bus service it will replace, increasing capacity by 250%. It will also be built to accommodate additional future capacity increases.
In Surrey, the Light Rail Transit project will take people from one end of the line to the other in approximately 27 minutes. The line will operate within dedicated train-only lanes on the road, allowing the trains to bypass traffic queues, making it an attractive public transit choice.
Note that one of the routes is now called “The Broadway Subway.”
Note the head: Apparently the purpose of transit is to “ease congestion.” Implicit, of course, is that the congestion is vehicle traffic. If it was to ease transit congestion, it would say so.
Further, rapid transit really won’t ease congestion all by itself over time. Any capacity on the roads that will be freed up, in areas of high growth, will be filled by induced traffic (unless those areas are connected with a frequent transit network too.) The Broadway Subway may well help the City maintain the level of vehicle trips while growth is accommodated by the so-called alternatives, which will actually provide the majority of trips. But it will also create more transit passenger congestion on stations elsewhere on the connecting lines. The next major projects may in fact be ways to add and maximize capacity on the Expo and underbuilt Canada Lines.
It's interesting top see an article about networking from the prototypical proponents of direct instruction. But here it is. "We define," they write, "a PLN as a trusted network of current and former colleagues or other people that are valuable to you as a professional or in other areas of your life.... The value of a PLN lies in the fact that the people in it provide access to the knowledge and expertise necessary for you to better perform your role." So, OK then. Social constriuctivism next?
Google has pulled Rootless Pixel Launcher from the Play Store due to a violation of the company’s app guidelines.
The launcher was a popular option for users looking to emulate the Google Pixel feel without buying the device. The app was only released on the Play Store about a week ago, despite being available from other sources beforehand.
Rootless Pixel Launcher is about as close as users can get to the Pixel launcher. It includes the ‘At a glance’ widget and swiping to open the app drawer. Further, it even has the Google Feed to the left of the home screen — if you install another app.
Unfortunately, that’s where the problem comes in.
When you first launch the Rootless Pixel Launcher, a pop-up informs you that you’ll need to install the Rootless Pixel Bridge app.
The launcher will take care of that process for you, installing the required app once you tap install.
However, as per Google Play Store guidelines, apps can’t cause users to download or install apps from unknown sources outside the Play Store.
Amir Zaidi, the developer behind Rootless Pixel Launcher, has appealed the decision and has an update that removes the download message. However, Google may still deny the appeal.
Zaidi says he will create a new app listing with the updated app if Google denies the appeal.
The downside to this, however, is that users will lose their existing settings and will have to start fresh.
If you want to try the Rootless Pixel Launcher, you can still get it from Zaidi’s GitHub repository here.
Mid-range devices from Samsung could soon become a lot more exciting.
In an interview with CNBC, Samsung mobile head DJ Koh said the tech giant will push new features to mid-range devices like its upcoming Galaxy A refresh before filtering them out to high-end devices like the Galaxy S10.
“In the past, I brought the new technology and differentiation to the flagship model and then moved to the mid-end. But I have changed my strategy from this year to bring technology and differentiation points starting from the mid-end,” Koh said in his interview with CNBC.
He went on to tell the news agency that the new strategy is a reaction to a downturn in global smartphone sales. The hope is to attract more millennial consumers, as well.
Previous rumours indicate that Samsung Galaxy A handset will also feature an in-display fingerprint scanner, before Samsung’s S series smartphones. Additionally, the 2019 Galaxy A will reportedly also include a triple-rear facing camera.
With Apple’s September 12th ‘Gather Round’ hardware event just around the corner, it’s that time of year again where we recap everything we’re expecting to see at the company’s annual iPhone keynote.
Specific devices like the iPhone XS and Apple Watch Series 4, for example, are almost certainly going to make an appearance, while other upcoming products, like Apple’s often-rumoured iPad Pro revamp and the mythical MacBook Air refresh, might be revealed at a later date.
It’s likely that Apple will hold a second hardware event at some point in October where the company plans to announce additional devices like the new MacBook Air, AirPower charging matt and possibly even a pair of upgraded AirPods.
The September event is set to take place on September 12th in Cupertino, California at the company’s new Apple Park campus. As more information surrounding Apple’s keynote inevitably leaks leading up to September 12th, this story will be updated with additional rumours.
Here’s what we expect to see at Apple’s fall hardware event.
What we’ll almost certainly see
iPhone XS
Apple’s updated version of the iPhone X will likely be called the iPhone XS, according to a recent leak published by 9to5Mac. Similar to past years, Apple will announce and release the iPhone XS in two distinct sizes: 5.8-inches and 6.5-inches. What’s different this time around is that Apple won’t use a ‘Plus’ moniker to differentiate the 6.5-inch model.
If true, this means that there will be feature parity across the XS line, unlike in previous years where specific camera features like ‘Portrait Mode’ have been exclusive to the Plus version of the iPhone. Further, the 6.5-inch iPhone XS will likely include a bigger battery to compensate for its larger display.
Both versions of the smartphone are expected to feature OLED display panels, just like the iPhone X, along with a faster and more efficient 7-nanometer A12 processor. Other rumours indicate both phones will feature 4GB of RAM instead of 3GB like with last year’s iPhone X and iPhone 8 Plus. It’s also likely that Apple could add a gold colour option to the mix, according to reports.
Overall, the iPhone XS will also look very similar to the iPhone X, complete with the current phone’s recognizable notch, Face ID functionality, stainless steel sides, lack of a physical home button and gesture navigation.
Less likely rumours surrounding the iPhone XS include the possibility of the larger version of the smartphone featuring support for the Apple Pencil, as well as faster wireless charging and dual SIM functionality in specific regions.
Our best look at the iPhone XS yet, as well as confirmation of the smartphone’s often-rumoured name, dropped last week courtesy of 9to5Mac’s expertly-timed leak that directly followed Apple announcing its fall hardware event.
6.5-inch LCD iPhone
Although the name for this entry-level iPhone hasn’t appeared just yet, rumours regarding its existence have popped up so often over the last few weeks that it almost certainly exists in some capacity.
This LCD display-clad iPhone will measure in at 6.1-inches and is tipped to feature the same depth-sensing camera, notch and A12 processor as its higher-end siblings, according to rumours. The phone will also likely feature 3GB of RAM and could drop Apple’s 3D Touch technology and wireless Qi charging functionality to cut cost.
In many ways, the 6.5-inch LCD iPhone is set to be this year’s iPhone 8. Regarding the Canadian market in particular, it will be interesting to see what price point the device ends up hitting, especially given that Apple is expected to continue selling the iPhone 8 and iPhone 8 Plus.
Finally, unlike the iPhone XS, which is expected to drop towards the end of September, speculation points to Apple releasing the LCD iPhone at some point in November. This strategy would make sense given Apple released the iPhone 8/iPhone 8 Plus and iPhone X last year on different dates.
Apple Watch Series 4
If recent rumours are accurate, the Apple Watch Series 4 could end up being the most significant revamp to the smartwatch’s design since its initial launch back in 2015.
While not a complete re-imagining of the Apple Watch, the Series 4 is rumoured to bring a roughly 15 percent larger display to the wearable, resulting in smaller bezels but an overall bigger body. Given that the display is larger, the leaked render hints that Apple could have plans to add additional Watch Face complications to the smartwatch. Because of the larger build, it’s also expected Apple will utilize this space to equip the smartwatch with a more sizable battery.
The leaked render of the Series 4 also indicates that while the smartwatch’s display might be larger, the wearable will still be thinner when compared to its predecessors. That said, the Apple Watch Series 4 will almost certainly still use the same Watch Bands as its predecessors.
Another report stemming from Fast Company hints that the Apple Watch Series 4 will drop conventional buttons, including the Digital Crown and side button, in favour of haptic feedback, non-physical buttons that vibrate. This feature will likely be very similar to the MacBook Pro’s haptic feedback trackpad. The leaked render also shows off what looks like an additional mic placed between the smartwatch’s side button and Digital Crown.
Other improvements will likely include Bluetooth 5.0, 16GB of storage, a more powerful processor and faster LTE in the version of the watch that supports data.
Most of the news regarding the latest iteration of Apple’s smartwatch comes from 9to5Mac dropping a render of the wearable, along with additional details, following the confirmation of Apple’s ‘Gather Round’ event. Other Apple Watch related rumours indicate that Apple could have plans to launch a Watch Face store of some sort, opening the creation of the wearable’s customizable interfaces to third-party developers, along with possibly bringing an always-on display to the smartwatch.
Products we might get a glimpse of
New iPad Pro
While at this point it looks like Apple will likely save the reveal of its revamped iPad Pro for a still-unannounced October event, the latest rumours indicate that along with a more powerful A12x processor — an upgraded version of the silicon featured in the iPhone XS — the tablet will also feature smaller bezels and possibly a notch.
With this in mind, the actual display size of the 10.5-inch and 12.9-inch iPad is not expected to shift significantly, with the main change coming from the tablet’s body being sleeker.
Adding confusion to the rumours surrounding the new iPad Pro, some speculation indicates that Apple won’t bring the notch to this new version of its flagship tablet and will instead reduce the bezels significantly. It’s also possible Apple could drop the 3.5mm headphone jack from the iPad Pro, just like it did with the iPhone 7 a few years ago — a move that’s sure to stir up controversy.
Unlike other rumours included in this story, most of the information surrounding the new iPad Pro has been gathered from analysis of iOS 12’s beta code, rather than an unamed source.
AirPower and new AirPods
There’s a chance we could finally get a release date for Apple’s AirPower wireless charging pad, an accessory the tech giant first revealed back at the company’s September hardware event last year.
There likely won’t be any significant changes to the charging pad’s functionality, with it still being capable of simultaneously charging iPhones that support Qi inductive charging, along with the Apple Watch and new AirPods.
Speculation indicates that the AirPower charging pad will drop towards the end of September alongside the iPhone XS. It’s also possible that Apple could adopt a staggered regional release for the AirPower, which might mean that Canada will gets the accessory at a later date.
Speaking of AirPods, this new version of Apple’s surprisingly great wireless headphones aren’t expected to be that significant of an upgrade. The new AirPods will likely include hands-free ‘Hey Siri’ functionality, an improved wireless chip and the wireless charging case the company revealed roughly a year ago at this point.
Everything else: New MacBook Air, Mac Mini and iPhone SE
Reports that Apple is working on a Retina-display MacBook Air refresh that features a significant processor update won’t go away. Further, the fact that the source of these rumours is Bloomberg’s often-reliable Mark Gurman indicates that there is likely some level of truth to them.
This means that Apple is probably working on some sort of replacement for the current entry-level Air, though given how packed this September’s event is set to be, the eagerly anticipated laptop update will probably be revealed at an event set for a later date.
Apple is also rumoured to be working on a new, updated version of the Mac Mini, according to Bloomberg, though it’s unclear when the pint-sized desktop will be released.
There have also been fairly consistent, though sometimes incredibly sketchy rumours that Apple is still working on an iPhone SE revamp that features a notch and Face ID functionality. It’s likely that we won’t see this iPhone SE refresh until 2019 if it really does exist.
A recently filed patent application focused on preventing burn-in with OLED screens hints that Apple could have plans to bring an always-on display feature to the Apple Watch at some point in the future.
While the method Apple describes in its patent application doesn’t necessarily prevent burn-in on its own, it does outline a technique that continuously adjusts the brightness and colours of specific areas of the display to mitigate the problem.
Rather than an actual solution itself though, Apple’s patent primarily relates to the storage of usage data required to make the above feature operate.
“To address this concern, burn-in statistics–which record historical usage information associated with a given OLED display–can be used to artificially adjust the operation of the OLED display to substantially restore visual uniformity throughout its operation.”
A more lengthy excerpt from the patent application that expands on the proposed feature can be found below:
Organic light-emitting diode (OLED) displays–which are becoming a popular choice for computing device displays–can degrade in a non-uniform manner over their lifespans and lead to unwanted color/brightness artifacts. To address this concern, burn-in statistics–which record historical usage information associated with a given OLED display–can be used to artificially adjust the operation of the OLED display to substantially restore visual uniformity throughout its operation. Notably, such burn-in statistics can take the form of a high-resolution, multiple-channel image that consumes a considerable amount of storage space within the computing device in which the OLED display is included. For obvious reasons, this consumption can dissatisfy users as their overall expected amount of available storage space is reduced for seemingly unknown reasons. It is therefore desirable to store the burn-in statistics in a more efficient manner.
While an always-on display makes gathering at-a-glance significantly easier for the smartwatch user, it also results in substantially less battery life.
That said, various Android manufacturers have implemented solutions to this issue that involve dimming the display when the watch is placed at a resting position. For example, Motorola’s now-defunct Moto 360 does a great job of taking advantage of this functionality, giving users access to the information they need with a quick raise of the wrist, but still saving battery life.
It’s unclear if Apple eventually plans to bring an always-on display feature to the upcoming Apple Watch Series 4, which is set to be officially revealed at Apple’s September 12th event, or if it is intended for a future — or perhaps even past — version of the wearable. For what it’s worth, there’s been no mention of the functionality in the developer beta version of watchOS 4.
Of course, as with all patents, just because Apple has filed this application, it doesn’t mean that an actual product that features the functionality will ever be released. For those interested, there’s a lengthy Reddit discussion focused on the patent application in the dedicated Apple subreddit.
I recently took an overnight trip on a ferry from Gothenburg, Sweden to Kiel, Germany. While they were advertising free Wifi on board, which, not to my surprise, totally failed during the trip, I was looking forward to finding out, if and when I could reach the land based LTE network and get connected. As the ship ventured quite far from land, I wasn’t very hopeful that things would work well.
The Route in Three Parts
When you look at the Gothenburg – Kiel ferry route on OpenStreetMap, you can roughly split the trip into three parts from a connectivity point of view. The first part of the trip follows the coastline of Sweden. At some point the ship then turns starboard, crosses the sea and for quite a few hours is far away from the Swedish and Danish coast. During the final part of the trip, the ship is close to the Denmark again and then finally reaches the German coast. ‘Close’ is a relative term, however, as even when the ship sailed alongside the coast, it was usually 20 km or more away from the coastline. In other words, quite far for LTE.
Part 1 – Alongside the Coast
I spent most of the first third of the trip topside, deck 11 and during that time, despite being 15 to 20 km away from the coastline, which was still visible, LTE coverage was great. Being outside in the open and quite high certainly helped.
Part 2 – Out Into the Sea
After it got dark and after dinner, I was in my cabin, which was at the front of the ship, with a ‘captain’s view’ window as they called it. Inside the cabin I had no coverage on my mobile most of the time, despite it being on deck 9. But another smartphone I put directly at the window serving as a Wifi tethering hotspot always provided a network for my devices even when we went further away then 30 km from the coastline. This really surprised me and then I suddenly realized that I was no longer served from a Swedish network but by Telia Denmark (MCC/MNC 238-20). But where did this come from, we were still very far away from the Danish mainland!? It turned out that the LTE base station must have been on Anholt, a small island just between Sweden and Denmark. The first time I noticed that I had switched networks, the ship was around 23-25 km away from the island as shown in the first screenshot. It looks like the LTE tower on the island has a single cell that covers all 360 degrees as the PCI (Physical Cell ID) stayed the same for the next two hours even as we went around the island.
Part 3 – Danish Waters
At some point, the PCI switched again and this time, I must have been served from another location, as my cabin window was in front of the ship and Anholt island was already behind the ship. The distance I measured at this point to the coast was almost 42 km as can be seen in the second screenshot. Quite amazing! Another possibility that I can’t rule out, however, could have been that an LTE cell was installed on one of the windmills of the the Anholt Offshore Wind Farm that lies between Grena and Anholt. Should that have been the case, then the distance was shorter.
Datarates At A Distance
The next thing of course what kind of data rates I could achieve. I ran some downlink and uplink speed tests at a distance of 25 km and (the potential) 42 km and in both cases I could reach sustainable downlink speeds of well over 15 Mbit/s and sustained uplink speeds of over 5 Mbit/s. I could hardly believe it, but I made quite a number of speed measurement over several hours with my tethering mobile at the window with similar results. Amazing! And in case you wonder which frequency band was used by the LTE cell, it was LTE band 20 with eARFCN 6200, i.e. 800 MHz and the channel bandwidth was 10 MHz.
So by and large I had great LTE Internet connectivity throughout the 14 hour trip, at least with my tethering mobile at the window at the front of the ship. Things could be different in some places if you have a window cabin at the wrong side of the ship and it’s pretty unlikely there is any sort of usable LTE coverage in cabins without a window. In other words, your mileage will vary.
P.S.: A few years ago I might have been inclined to also check out the on-board GSM system but the world has moved on since…
Our event meant bringing together some 45 people. They all know at least one of us two, but mostly don’t know each other. Some type of introduction is therefore useful, but you don’t want to take much time out of the day itself for it, as often intro-rounds are dreary and meaningless exercises that sap energy and of which you don’t remember much immediately after. So we’ve aimed for our events to have a first activity that is also an intro-round, but serves a bigger purpose for the event.
Previously we’ve done 1-on-1 intro conversations that also produced a hand drawn map of connections or of skills and experiences in the group, to be re-used to find the right people for subsequent sessions. We’ve done groups of 5 to 6 to create Personas, as the first step of the design process to make something yourself. This time we settled on an idea of Elmine, to do what can best be described as Anecdote Circles Lite. Anecdote circles are a process to elicit experiences and stories from a group as they reveal implicit knowledge and insights about a certain topic (PDF). You group people together and prompt them with one or more questions that ask about specific occasions that have strong feelings attached to it. Others listen and can write down what stands out for them in the anecdote shared.
The starting point of the unconference theme ‘Smart Stuff That Matters’ was our move to Amersfoort last year. It means getting to know, find your way in, and relate to a new house, a different neighbourhood, a different city. And do that in the light of what you need to fulfill your needs to be at home and feel supported in the new environment. But in a broader light you can use the same questions to take a fresh look at your own environment, and make it ‘smarter’ in being at home and feeling supported. Our opening exercise was shaped to nudge the participants along the same path.
In my opening remarks, after singing a birthday song together for Elmine, I sketched our vision for the event much as in the previous paragraph. Then I asked all participants to find 3 or 4 others that you preferrably do not know, and find a spot in the house or garden (inviting them to explore the house/garden on their own that way too, giving them permission to do so as it were). The question to prompt conversation was “Think back to the last time you moved house, and arrived in a new environment. What was most disappointing to you about your new place/live? What was pleasantly surprising to you about your new place/live?” With those questions and pen & paper everybody was off to their first conversations.
The thoughts and observations resulting from the intro-round
Judging by Peter’s description of it, it went well. It’s quoted here in full as it describes both the motivation for and the layeredness of the experience quite well. I take Peter’s words as proof the process worked as intended.
The second highlight is an event that preceded Oliver’s talk, the “icebreaker” part of the day that led things off. I have always dreaded the “everybody introduce yourself” part of meetings, especially meetings of diverse people whose lives inevitably seem much more interesting than my own; this, thankfully, was dispensed with, and instead we were prompted to gather with people we didn’t yet know and to talk about our best and worst moves in life.
What proceeded from this simple prompt was a rich discussion of what it’s like to live as an expat, how difficult it is to make friends as an adult, and the power of neighbourhood connections. Oliver and I were in a group with Heinz and Elja and Martyn, and we talked for almost an hour. I have no idea what any of the others in our group do for a living, but I know that Martyn mowed his lawn this week in preparation for a neighbourhood party, that Heinz lives in an apartment block where it’s hard to get to know his neighbours, and that Elja has lived in Hungary, the USA and Turkey, and has the most popular Dutch blog post on making friends.
During the event Elja shared her adagio that the best way to get to know people after moving to a new environment is to do something together (as opposed to just sitting down for coffee and conversation). It’s pleasantly recursive to see a statement like that as the result of a process designed to follow that adagio in the first place.
I will transscribe all the post-its and post (some of) it later.
Some images from previous activities-as-intro-rounds we used in previous editions:
Persona creation / Using the hand drawn skills cards
Drawing a map of connections, dubbed sociogram, between participants
More on Apple Events and security, courtesy of a former colleague of mine. The more I read about this the more it seems that Mojave is going to be security popup land for those of us who rely on UI automation.
Update: 9/9/18: The sale has now concluded. Happy riding! Update 9/7/18: By popular demand, we are extending our FLASHYFENDERS sale through 11:59pm ET on September 9th, 2018. Happy riding!
In preparation for Fall and Winter's elements, we're running a flash sale on all VO fendersets. Starting right this very moment through September 9th, 2018 at 11:59pm ET, we will be offering 20% off on all in-stock fendersets for retail orders.
Simply use the coupon code FLASHYFENDERS and enjoy 20% worth of savings. Here is the fine print:
This 20% off deal is available only to retail customers.
Retail and wholesale orders get free shipping on orders with subtotals over $150 within the contiguous USA - no coupon code needed for this deal!
20% applies to all in-stock fendersets, not fender hardware or spare stays.
Not applicable to any pre-sales or gift certificates.
No backorders.
Not applicable to shipping or tax.
Here's how to get the deal:
Click on your cart
Once you've confirmed everything is in your cart, select CHECKOUT
On the righthand side of the page, enter the coupon code FLASHYFENDERS and click Apply
Confirm the code has been applied, finish checking out, and enjoy your new fenders!
Here are the answers to often asked fender questions:
The difference between the width of the tire and the width of the fender should be at least 10mm. For example, if you are running 42mm tires, you'll want to get at least 52mm wide fenders.
700c fenders do fit 27" wheels with no problem at all. We suggest going with a fender that is 45mm wide.
The Noir Fenders are anodized, not painted or powder-coated.
A 45mm alloy fenderset weighs roughly 650g and the equivalent stainless steel fenderset weighs roughly 900g. That includes untrimmed stays and hardware.
Will these fit with disc brakes? It depends, but for bikes that aren't designed strictly for racing, they should fit. This article about installing fenders on disc brake bikes will be very helpful and should give you some tips and tricks for installing fenders on your bike.
Karen K. Ho 嘉 韻@karenkho
if you are wondering where to put tweets you are worried about and keep deleting, I recommend texting a friend or writing them in a journal
Today, former Apple engineer Ken Kocienda’s book Creative Selection, which covers his career at Apple and insights about the company’s software design process, was released. As an engineer at Apple, Kocienda worked on several high-profile projects including Safari on the Mac and the touch keyboards on the iPhone and iPad. Much of the publicity surrounding the book focuses on Kocienda’s work on the iPhone. However, there is a treasure trove of interesting anecdotes about other products and people that make Creative Selection an absorbing read for anyone interested in the creative process and Apple.
Kocienda worked at Apple from 2001 through 2017. However, Creative Selection focuses primarily on his work on Safari, the original iPhone, and to a lesser extent, the iPad. His later work on the Apple Watch, which is mentioned in his bio, isn’t included.
The book opens with a demo of prototype iPad keyboard layouts that Kocienda gave to Steve Jobs in 2009. It’s stories like these where Creative Selection is at its best. The demo was held in a conference room at Apple’s One Infinite Loop campus called Diplomacy, which Kocienda describes as ‘shabby, certainly not the decor you would expect in a company as obsessively design-focused as Apple.’ It’s a small detail, but an example of the excellent job Kocienda does capturing what it felt like to demo software to Jobs.
The episode also sets the book on the path to explaining its title. Software demos play an essential role throughout Creative Selection providing structure to the design process. Demos are the way the engineers and designers in the book share ideas with their peers and an opportunity to receive feedback allowing software to evolve iteratively.
Demos don’t tell the whole story though. Kocienda also identifies seven essential elements to software design success – Inspiration, Collaboration, Craft, Diligence, Decisiveness, Taste, and Empathy – which are the lens through which each of his stories is examined. Add to that small teams of highly committed people, and you have all the interlocking puzzle pieces that are woven throughout Kocienda’s narrative.
The first half of the book recounts the development of Safari. Kocienda explains how an early demo by Richard Williamson that shimmed the Konqueror browser onto Mac OS X inspired the team and kickstarted what became Safari. Along the way, Kocienda explains in plain English the challenge of porting 120,000 lines of Konqueror code to the Mac. For anyone familiar with software development, describing the magnitude of that sort of task is unnecessary, but the explanation and others like it go a long way towards making the book accessible to a broader audience.
The Safari project provides a foundation for Kocienda’s hypotheses about software design. A small team drawing on the expertise of each of its members slogged through over 100,000 lines of code with the focused purpose of building a faster browser. That focus, provided by a mandate from Steve Jobs, served as the team’s North Star keeping the project on track. The particulars of each story are different, but over the course of the book, the same pattern is repeated over and over.
Much of the rest of Creative Selection tells the story of the first iPhone with an emphasis on the development of its on-screen keyboard, for which Kocienda was responsible. Aspects of that story have been told elsewhere, like Becoming Steve Jobs by Brent Schlender and Rick Tetzeli and Walter Isaacson’s biography of Jobs, but nowhere is the tale told in such detail and clarity, explaining each challenge raised by building a software keyboard.
Through a process of iterative demos, Kocienda refined the iPhone keyboard from an early prototype that included multiple letters per key to what shipped in 2007. Along the way, the feedback loop provided by the demos and from colleagues who used the keyboard every day drove its evolution into a functional product.
Creative Selection is full of great stories, but my favorite part of the book is one of the final chapters entitled ‘The Intersection,’ in which Kocienda considers what Steve Jobs meant when he famously said Apple is at the intersection of technology and the liberal arts. As Kocienda explains:
Working at the intersection is not only about honing details so that an individual icon, animation, or sound achieves an aesthetic ideal in isolation. Liberal arts elements and state-of-the-art technology must combine, and the end result can be judged only holistically, by evaluating how the product fits the person.
Kocienda provides three examples of what he means, but my favorite is the story of how Imran Chaudhri demonstrated how direct manipulation of user interfaces with multitouch should work. Chaudhri would take a piece of paper, place it on a table and slide it around the table with his finger proclaiming that multitouch should work just as smoothly. Harkening back to earlier parts of the book, ‘The Intersection’ also revisits the ideas underlying Kocienda’s hypothesis about the elements of software design success synthesizing the stories told and the central message of the book nicely.
Looking at Creative Selection as a whole, the parts that work best are the stories about products and people. The lessons on Apple’s software design process were enjoyable to read too, but the flow of the stories early in the book was too often interrupted to explain how they fit into Kocienda’s conceptual framework of how software design works at Apple. I would have preferred a more pure memoir style in the early parts of the book that didn’t keep reminding me of the lessons I should be taking away from the stories. The lessons are so ably covered in the later chapters, that I was left wondering if more subtle foreshadowing of them in the early chapters would have been more effective.
I’m also not a fan of the illustrations of scenes from Creative Selection. Except for the smaller illustrations that demonstrate programming and design, they don’t add to the narrative but fortunately don’t meaningfully detract from it either.
Nonetheless, I enjoyed Creative Selection a lot and recommend it. The book falls squarely in a creative productivity space which I, and I expect many MacStories readers, find fascinating. Beyond just providing fun insider stories about products we use every day, Kocienda has succeeded in putting his finger on some fundamental elements that contribute to Apple’s success that are also valuable lessons for anyone involved in creative pursuits regardless of whether that’s at a big company like Apple.
It’s time for another deep-dive into Python brokenness and the pain that is POSIX system programming, this time with exciting and not very convincing shark-themed metaphors!
Most of what you’ll learn isn’t really Python-specific, so stick around regardless and enjoy the sharks.
Let’s set the metaphorical scene: you’re swimming in a pool full of sharks.
(The sharks are a metaphor for processes.)
Next, you take a fork.
(The fork is a metaphor for fork().)
You stab yourself with the fork.
Stab stab stab.
Blood starts seeping out, the sharks start circling, and pretty soon you find yourself—dead(locked) in the water!
In this journey through space and time you will encounter:
A mysterious failure wherein Python’s multiprocessing.Pool deadlocks, mysteriously.
The root of the mystery: fork().
A conundrum wherein fork() copying everything is a problem, and fork() not copying everything is also a problem.
Some bandaids that won’t stop the bleeding.
The solution that will keep your code from being eaten by sharks.
Let’s begin!
Introducing multiprocessing.Pool
Python provides a handy module that allows you to run tasks in a pool of processes, a great way to improve the parallelism of your program. (Note that none of these examples were tested on Windows; I’m focusing on the *nix platform here.)
from multiprocessing import Pool
from os import getpid
def double(i):
print("I'm process", getpid())
return i * 2
if __name__ == '__main__':
with Pool() as pool:
result = pool.map(double, [1, 2, 3, 4, 5])
print(result)
If we run this, we get:
I'm process 4942
I'm process 4943
I'm process 4944
I'm process 4942
I'm process 4943
[2, 4, 6, 8, 10]
As you can see, the double() function ran in different processes.
Some code that ought to work, but doesn’t
Unfortunately, while the Pool class is useful, it’s also full of vicious sharks, just waiting for you to make a mistake.
For example, the following perfectly reasonable code:
import logging
from threading import Thread
from queue import Queue
from logging.handlers import QueueListener, QueueHandler
from multiprocessing import Pool
def setup_logging():
# Logs get written to a queue, and then a thread reads
# from that queue and writes messages to a file:
_log_queue = Queue()
QueueListener(
_log_queue, logging.FileHandler("out.log")).start()
logging.getLogger().addHandler(QueueHandler(_log_queue))
# Our parent process is running a thread that
# logs messages:
def write_logs():
while True:
logging.error("hello, I just did something")
Thread(target=write_logs).start()
def runs_in_subprocess():
print("About to log...")
logging.error("hello, I did something")
print("...logged")
if __name__ == '__main__':
setup_logging()
# Meanwhile, we start a process pool that writes some
# logs. We do this in a loop to make race condition more
# likely to be triggered.
while True:
with Pool() as pool:
pool.apply(runs_in_subprocess)
Here’s what the program does:
In the parent process, log messages are routed to a queue, and a thread reads from the queue and writes those messages to a log file.
Another thread writes a continuous stream of log messages.
Finally, we start a process pool, and log a message in one of the child subprocesses.
If we run this program on Linux, we get the following output:
About to log...
...logged
About to log...
...logged
About to log...
<at this point the program freezes>
Why does this program freeze?
How subprocesses are started on POSIX (the standard formerly known as Unix)
To understand what’s going on you need to understand how you start subprocesses on POSIX (which is to say, Linux, BSDs, macOS, and so on).
A copy of the process is created using the fork() system call.
The child process replaces itself with a different program using the execve() system call (or one of its variants, e.g. execl()).
The thing is, there’s nothing preventing you from just doing fork().
For example, here we fork() and then print the current process’ process ID (PID):
from os import fork, getpid
print("I am parent process", getpid())
if fork():
print("I am the parent process, with PID", getpid())
else:
print("I am the child process, with PID", getpid())
When we run it:
I am parent process 3619
I am the parent process, with PID 3619
I am the child process, with PID 3620
As you can see both parent (PID 3619) and child (PID 3620) continue to run the same Python code.
Here’s where it gets interesting: fork()-only is how Python creates process pools by default.
The problem with just fork()ing
So OK, Python starts a pool of processes by just doing fork().
This seems convenient: the child process has access to a copy of everything in the parent process’ memory (though the child can’t change anything in the parent anymore).
But how exactly is that causing the deadlock we saw?
The cause is two problems with continuing to run code after a fork()-without-execve():
fork() copies everything in memory.
But it doesn’t copy everything.
fork() copies everything in memory
When you do a fork(), it copies everything in memory.
That includes any globals you’ve set in imported Python modules.
For example, your logging configuration:
import logging
from multiprocessing import Pool
from os import getpid
def runs_in_subprocess():
logging.info(
"I am the child, with PID {}".format(getpid()))
if __name__ == '__main__':
logging.basicConfig(
format='GADZOOKS %(message)s', level=logging.DEBUG)
logging.info(
"I am the parent, with PID {}".format(getpid()))
with Pool() as pool:
pool.apply(runs_in_subprocess)
When we run this program, we get:
GADZOOKS I am the parent, with PID 3884
GADZOOKS I am the child, with PID 3885
Notice how child processes in your pool inherit the parent process’ logging configuration, even if that wasn’t your intention!
More broadly, anything you configure on a module level in the parent is inherited by processes in the pool, which can lead to some unexpected behavior.
But fork() doesn’t copy everything
The second problem is that fork() doesn’t actually copy everything.
In particular, one thing that fork()doesn’t copy is threads.
Any threads running in the parent process do not exist in the child process.
from threading import Thread, enumerate
from os import fork
from time import sleep
# Start a thread:
Thread(target=lambda: sleep(60)).start()
if fork():
print("The parent process has {} threads".format(
len(enumerate())))
else:
print("The child process has {} threads".format(
len(enumerate())))
When we run this program, we see the thread we started didn’t survive the fork():
The parent process has 2 threads
The child process has 1 threads
The mystery is solved
Here’s why that original program is deadlocking—with their powers combined, the two problems with fork()-only create a bigger, sharkier problem:
Whenever the thread in the parent process writes a log messages, it adds it to a Queue.
That involves acquiring a lock.
If the fork() happens at the wrong time, the lock is copied in an acquired state.
The child process copies the parent’s logging configuration—including the queue.
Whenever the child process writes a log message, it tries to write it to the queue.
That means acquiring the lock, but the lock is already acquired.
The child process now waits for the lock to be released.
The lock will never be released, because the thread that would release it wasn’t copied over by the fork().
In simplified form:
from os import fork
from threading import Lock
# Lock is acquired in the parent process:
lock = Lock()
lock.acquire()
if fork() == 0:
# In the child process, try to grab the lock:
print("Acquiring lock...")
lock.acquire()
print("Lock acquired! (This code will never run)")
Band-aids and workarounds
There are some workarounds that could make this a little better.
For module state, the logging library could have its configuration reset when child processes are started by multiprocessing.Pool.
However, this doesn’t solve the problem for all the other Python modules and libraries that set some sort of module-level global state.
Every single library that does this would need to fix itself to work with multiprocessing.
For threads, locks could be set back to released state when fork() is called (Python has a ticket for this.)
Unfortunately this doesn’t solve the problem with locks created by C libraries, it would only address locks created directly by Python.
And it doesn’t address the fact that those locks don’t really make sense anymore in the child process, whether or not they’ve been released.
Luckily, there is a better, easier solution.
The real solution: stop plain fork()ing
In Python 3 the multiprocessing library added new ways of starting subprocesses.
One of these does a fork() followed by an execve() of a completely new Python process.
That solves our problem, because module state isn’t inherited by child processes: it starts from scratch.
Enabling this alternate configuration requires changing just two lines of code in your program:
from multiprocessing import get_context
def your_func():
with get_context("spawn").Pool() as pool:
# ... everything else is unchanged
That’s it: do that and all the problems we’ve been going over won’t affect you.
(See the documentation on contexts for details.)
But this still requires you to do the work.
And it requires every Python user who trustingly follows the examples in the documentation to get confused why their program sometimes breaks.
The current default is broken, and in an ideal world Python would document that, or better yet change it to no longer be the default.
Learning more
My explanation here is of course somewhat simplified: for example, there is state other than threads that fork() doesn’t copy.
Here are some additional resources:
Read the Linux man page for fork() to learn about other things it doesn’t copy.
Rachel By The Bay’s post on why threads and processes don’t mix and a followup are where I originally learned about this problem—and I promptly forgot about it until I encountered a related issue in production code.
NPR Music Tiny Desk Concert: Penguin Cafe. (YouTube, 15:55min)
“The music of Penguin Cafe is like no other. Its origins date back to the early ’70s, within fever dreams Simon Jeffes had that were brought on by food poisoning. In those dreams he imagined a dispassionate world “where everyone lived in big concrete blocks and spent their lives looking into screens. In one room, there was a couple making love lovelessly. In another there was a musician sat at a vast array of equipment, but with headphones on, so there was no actual music in the room.” Eerily accurate. But he also imagined a place, the Penguin Cafe, where folks could gather, for pleasure, cheer and music. He wanted to hear what that music would sound like, and so created the Penguin Cafe Orchestra. I was always a huge fan of that original music; listeners of NPR may have heard it often in-between news stories during the many years I directed All Things Considered. While Simon Jeffes died in 1997, his son Arthur has been creating new music infused with his father’s original inspiration. He calls his group, simply, Penguin Cafe. You can hear Brazilian sounds in the rhythms, classical and minimalism in the strings, Asia in its harmonium, African sounds in the kalimbas. But honestly, it’s none of these; it’s a universal dream state.”
I’m excited to announce that Alan Davidson is joining us today as our new Vice President of Global Policy, Trust and Security.
At a time when people are questioning the impact of technology on their lives and looking for leadership from organizations like Mozilla, Alan will add considerable capacity to our public policy, trust and security efforts, drawing from his extensive professional history working to advance a free and open digital economy.
Alan will work closely with me to help scale and reinforce our policy, trust and security capabilities and impact. He will be responsible for leading Mozilla’s public policy work promoting an open Internet and a healthy web around the world. He will also supervise a trust and security team focused on promoting innovative privacy and security features that put people in control of their online lives.
“For over 15 years, Mozilla has been a driving force for a free and open Internet, building open source products with industry-leading privacy and security features. I am thrilled to be joining an organization so committed to putting the user first, and to making technology a force for good in people’s lives,” says Alan Davidson, Mozilla’s new Vice President of Global Policy, Trust and Security.
Alan is not new to Mozilla. He was a Mozilla Fellow for a year in 2017-2018. During his tenure with us, Alan worked on advancing policies and practices to support the nascent field of public interest technologists — the next generation of leaders with expertise in technology and public policy who we need to guide our society through coming challenges such as encryption, autonomous vehicles, blockchain, cybersecurity, and more.
“Alan was a tremendous asset to the Commerce Department in our groundbreaking work to promote a strong and prosperous digital economy for all Americans,” said Penny Pritzker, former United States Secretary of Commerce and the Chairman of PSP Capital. “I am sure he will be a terrific addition to Mozilla and its role as a leading voice for a free and open Internet around the world.” Until early 2017, Alan served as the first Director of Digital Economy at the U.S. Department of Commerce and a Senior Advisor to the Secretary of Commerce.
Alan joins Mozilla from his most recent engagements as Senior Program Fellow with New America in Washington D.C. and as a private consultant. Prior to joining the U.S. Department of Commerce, he was the director of New America’s Open Technology Institute. Prior to that, Alan opened and grew Google’s Washington D.C. office, and led the company’s public policy and government relations efforts in North and South America for seven years.
Sitting here in the airport in Amsterdam I received the sad news that Jim Munves, a neighbour and great Islander, has died.
Jim and his wife Barbara were fixtures of our neighbourhood; I saw them just a few weeks ago walking around the block together. Jim briefly lost track of Barbara when she and her aid took a shortcut through the Murphy Centre parking lot; there was a palpable look of joy on both their faces when their reconnected.
Even though he lived just a few blocks away, shared an interest in public transit, and used to write talk pieces for The New Yorker, I never introduced myself to Jim. I always meant to, but was forever in a hurry; “I’ll get him on the next round.” Alas that’s exactly what I did last week, even though the opportunity presented itself. And so we never met.
By all accounts, Jim’s was a life well-lived; our neighbourhood won’t been the same without him. My sympathies to Barbara and their children.
Things are getting a little messy up on Vancouver’s west side where a very functional commercial area is under threat of development. This article by Joanne Lee-Young in the Vancouver Sun shows what happens when the city goals of housing affordability butts up against a little single storey commercial area located at 33rd Avenue and Mackenzie Street. It’s the northeast corner of this intersection that is being proposed for redevelopment and it contains three lots. One of the lots has an older building containing Bigsby the Bakehouse, a community institution for good bread.
Price Tags Vancouver has previously written about this commercial gem of an area that provided small-scale storefronts for a variety of businesses. The three lots in question became part of Vancouver’s real estate flipping shell game, being sold to a numbered company in 2015 for $5.43 million dollars and then flipped for nearly a million dollars more a couple of months later.
The new “numbered company” owners wanted to build luxury condos, and some commercial space on the ground level. After consultation with local residents, the developer agreed to create smaller retail store spaces 16 feet wide to accommodate local businesses, and also agreed to create some adaptive units for seniors in the development.
Meanwhile three things happened~the numbered company owners put the three lots back on the market (asking a gasping $12.88 million dollars~they later took the lots off the market). The small businesses in the buildings are being served with 30 to 50 % increases in their commercial rents as their leases come up. And lastly, despite the negotiation to have the smaller commercial business spaces on the ground level with condominiums above, the City wants a large rental building on the site.
The developer’s architect states it this way “essentially, after two years of public consultation on a project that fit the City of Vancouver’s written guidelines of increasing the commercial area and modest increase of residential density for that area, (city staff earlier this year) stated they wanted a larger rental building on the site.”
After two years of extensive community consultation the land owners can no longer build the building that the guidelines have suggested they could build, and instead must consider a rental building which has higher risks, and is harder to recoup the initial investment. Meanwhile the commercial tenants are being pushed out, the local residents feel they have been involved in a process on the wrong product, and the developer has to rethink redevelopment as rental based instead of owner based.
And lastly, here’s a photo of the goods at the Butter Bakery,also located in this cluster of commercial stores. This bakery was a finalist for Oprah Winfrey’s “O” Magazine “favourite things” with their cookies. Come and visit this area while it is still here.
Lenovo has announced two super interesting new Yoga products at IFA 2018:
The Yoga C630 WOS is the first Windows machine with the Snapdragon 850 promising sufficient performance, a long battery life and continuous connectivity via LTE. If this thing works, it's a road warrior dream come true.
The Yoga Book C930 is the second iteration on a laptop without physical keyboard. Instead of the Wacom digitizer in the original Yoga Book, the Book C930 has an e-ink display that can display multiple keyboard layouts, hide/unhide the trackpad, serve as a drawing surface or be an e-reader that works in direct sunlight.
Both aren't cheap. They start at 999 Eur including VAT, firmly in laptop territory, and can cost even more depending on configuration. The German press release says they start at 1199 Eur. I see both of them as experimental and super interesting at that. I really tried typing on the Wacom digitizer of the Yoga Book and never quite made it. And so far every single attempt at running Windows on non-Intel failed.
Ich bin jetzt seit knapp zwei Jahren fast ausschließlich mit Surface Pro unterwegs. Und ich habe keinen Virenscanner. Wahnsinn, was? Sowas braucht man doch, machen zumindestens die Schutzgeldeintreiber glaubhaft. "Einen schönen PC haben Sie da. Währe doch schade, wenn was passiert."
Dabei kümmert sich Microsoft mit Windows 10 selbst umfassend um die Sicherheit. Ich mag das.