Hi again, here’s your Librem 5 hardware update report for the first half of the month of May:
Conferences
At JDLL, Adrien gave a talk on “GNOME on phones” and helped out at the GNOME booth, where he answered lots of questions about Purism’s products and animated a first contribution to GNOME workshop along with community member Alexandre Franke.
There are always improvements and fixes making their way into the image creation; for example, the librem5-base package needed a fix in order to unbreak rendering. To make testing easier, debs built by gitlab-ci are now saved as artifacts. Flashing a devkit is a little easier now that the tool used to flash a new image, uuu, has been updated to make it buildable for PureOS. Also, with a recent change to the scripts used in flashing the devkit, we avoid re-downloading the image if one already exists.
We all know how important it is for a phone to place phone calls, so there is a continuing effort investigating audio over the modem. There are issues with DMA transfers on the SAI interface; digging into the issues included testing various kernel changes. Stay tuned for more to come on this effort.
Libhandy
We’re getting closer to bumping the API version of LibHandy to 1! Some new widgets are in the works: HdySqueezer is a cool new widget that is needed for HdyViewSwitcher, which is needed by many apps and HdyPreferencesWindow, which in turn is needed by Web and other apps.
Messaging
The SMS plugin is being reworked, and an issue happening when more than one instance of Chatty was opened that has been resolved.
Linux 5.X Kernel
Hooray, the devkit’s LCD panel driver has been accepted upstream; thanks to Thierry Reding for applying these, and thanks to the reviewers Fabio Estevam and Sam Ravnborg, too! We are working on getting the librem5-devkit devicetree upstream. There is also an ongoing investigation into why USB stopped working with the 5.1 kernel, and last but not least, an SDMA fix was accepted upstream.
Hardware Work
We continue to work on the Librem 5 board schematic, and are getting ever closer to getting the hardware into production!
Community Outreach
The troubleshooting guides on the developer documentation have been split out to be a little more readable.
A big “Thanks!” to all the external teams that have helped review and merge changes into upstream projects; your time and contribution are much appreciated.
That’s all for now, folks – stay tuned for more exciting updates to come!
Most keyboards that come with laptops and desktops suck. Mechanical keyboards, so called because they have individual mechanical switches under each key, are more enjoyable to type on, more durable, and more customizable than those typical membrane, butterfly, or scissor-switch keyboards. And for people who spend all day typing, programming, or gaming, it can be satisfying to customize the size, switches, keycaps, layout, and even the backlight to your exact needs. If you’re interested in mechanical keyboards but don’t know where to start with all of the terminology and options, start here. And if you know the basics but want to go a little deeper, we’ll point you in the right direction.
Size and layout
Illustration: Sarah MacReading
The first and most important decision when shopping for a keyboard is what size and layout you want. You’ll have about a gazillion options but they fall into four main categories: full-size, tenkeyless, compact, and ergonomic.
Full-size keyboards have all of the keys, including letters, numbers, modifiers, function keys, arrow keys, and a number pad. We recommend this size only for people who need the number pad frequently. Wide keyboards force you to place your mouse farther from your body, which can put strain on your shoulders, neck, and back.
Tenkeyless (often abbreviated TKL) keyboards lack a number pad but have all of the other keys. We recommend this size for most people because it’s significantly more compact than full-size and has all of the most commonly used keys. And standalone number pads are a great option if you only need one sometimes.
Illustration: Sarah MacReading
The compact category is a catchall for a variety of sizes and layouts. Boards that are 75 percent, like the Vortex Tab 75 and Race 3, have the same keys as tenkeyless, but they’re all smushed together so that the keyboard has no empty space. Boards that are 65 to 68 percent, like the Magicforce 68 and Massdrop ALT lose the function keys along the top but keep the arrow keys and a few keys from the navigation cluster. We think 65 to 75 percent keyboards are the sweet spot, and we love them, but we haven’t tested enough of them Wirecutter-style to make firm picks for most people yet. Sixty-percent keyboards like the Vortex POK3R and the Anne Pro 2 include only the essential block of letters, numbers, and modifiers and have no function keys, no arrow or navigation keys, and no numpad. We recommend a 60 percent keyboard only if you’re willing to retrain yourself to remember key combinations every time you need arrow or function keys.
After testing 10 ergonomic keyboards in 2019 with the help of a panel, we found that the Kinesis Freestyle Edge is the best split, ergonomic option.
Ergonomic keyboards can come in any of the above sizes but are split down the middle so you can hold your hands, wrists, arms, and shoulders at a more natural angle than you would on traditional flat keyboards. Ergonomic keyboards are either partially split and fully split. Partially split keyboards have a small gap down the middle but are connected at the bottom; they have a lower learning curve but aren’t as adjustable as fully split keyboards. Fully split keyboards are the most flexible and adjustable, so you can angle each half however you prefer.
Most of our recommended keyboards have standard layouts, which means none of the keys are unusual sizes or in unusual locations. This makes buying replacement keycaps easier if the included ones wear out or if you fall down the rabbit hole of custom keycaps. Some gaming keyboards have nonstandard bottom rows, and many ergonomic keyboards have unique layouts with unusual key sizes and locations.
Switches
We recommend starting with Cherry MX Browns or an equivalent tactile switch from a different maker. Photo: Michael Hession
Next, you’ll need to decide which switches you want to type on. Mechanical keyboards have individual switches beneath each key, which makes this style of keyboard more durable, easier to repair, and more customizable than membrane, scissor, or butterfly keyboards—as well as more comfortable in many cases. Mechanical switches come in three main varieties: linear, tactile, and clicky.
Linear switches feel smooth when you press them down, from top to bottom.
Tactile switches have a noticeable bump partway through the keypress, which lets you know that you’ve activated the key.
Clicky switches feel similar to tactile ones but have an added click sound to match the tactile bump.
From these three main switch types come many variations, defined by their actuation force (how much effort it takes to activate each key) and by their actuation point (how far down you have to press to activate each key).
Many companies now make mechanical switches, but the most common are Cherry MX switches. We recommend starting with Cherry MX Browns (or an equivalent) because they’re a popular tactile switch that’s good for most tasks and quiet enough for most offices, and we recommend linear switches like Cherry MX Reds for games, because the relatively light actuation force and continuous travel make them easier (and theoretically faster) to activate. We do not recommend clicky switches, such as MX Blues, if you work or game in a shared space, because they’re very noisy and will likely annoy your co-workers or housemates.
How noisy any keyboard is depends on a lot of factors, including not only switch type but also case material and design, keycap shape and material, room acoustics and noise levels, and how heavily you type. All else being equal, here’s how the common types of Cherry switches compare:
Name
Type
Actuation force
Noise
Cherry MX Brown
Tactile
45 g
Average
Cherry MX Clear
Tactile
65 g
Average
Cherry MX Red
Linear
45 g
Low
Cherry MX Black
Linear
60 g
Low
Cherry MX Blue
Clicky
50 g
High
Since Cherry’s switch patents expired in 2014, a number of clones (from companies such as Gateron, Kailh, Outemu, and Greetech) have become available. These switches tend to mimic Cherry MX switches in feeling and color-naming scheme, though quality can vary. Keyboard companies like Logitech, Razer, and Steelseries have also begun making their own mechanical switches, either independently or in partnership with companies that clone Cherry switches. Cherry and other switch makers also make low-profile switches, and there are yet other, completely different types of switches, such as Topre, buckling spring, and Alps clones. PCGamer has a fantastic explanation of most of these switches.
To learn which switches you like, we recommend buying a switch tester. (If you’re curious about switches beyond the basics, you could try this tester from NovelKeys that lets you select exactly which switch types you want to try, including more obscure options that you can’t find in most preassembled boards.) You could also try a friend’s keyboard or go to a store like Best Buy (or, if you have one in your area, Fry’s or Microcenter) and poke some mechanical keyboards for yourself. We advise buying your keyboard from a seller with a good return policy so you can swap it if you don’t like the switches.
What features matter for typing and programming
Any keyboard can be used for any task—there’s not really any such thing as a special keyboard for typing, or a programming keyboard, or a gaming keyboard. That said, some features are more useful than others for certain tasks. Once you’ve decided what size, layout, and switches you want, here’s what else is worth looking for in a keyboard you plan to use primarily for typing or coding.
Out of 31 mechanical keyboards we tested, the WASD Code 87-Key has the best combination of smart features and good build quality, with a minimalist aesthetic.
Build quality: Cheap keyboards with plastic cases and backplates feel and sound hollow when you type and can flex when you press too hard on them. A sturdier keyboard made of metal or other higher-quality materials won’t do that. And there are two types of frame: a “high-profile” frame that sets the keys within a plastic case, or a “low-profile” frame that has the switches sitting on top of the case. Neither performs better than the other; it’s an aesthetic choice.
Keycaps: Many keyboards come with ABS keycaps, a lightweight type of plastic that’s more prone to wear and can become smooth and shiny with heavy use. Keycaps made of PBT, though less common, tend to be more durable and have a grittier texture. Keycap profiles determine how the keycaps in each row are shaped. Many pre-built keyboards come with keycaps that are sculpted to cup your fingers and feel comfortable to type on. If you buy keycaps separately, there’s a whole world of different profiles: DSA, SA, GMK (Cherry), XDA, and more.
Programmability: Many nonmechanical keyboards can’t be programmed—that is, you can’t change the default behavior of certain keys to perform other actions—at all. You simply connect them to your computer and they do the normal keyboard stuff. But a good chunk of mechanical keyboards can be customized. The simplest way is via DIP switches on the bottom of a keyboard that alter the layout (QWERTY, Colemak, or Dvorak) or behavior of a few keys. For example, you can switch between Windows and Mac layouts, swap the Caps Lock key to Ctrl, or disable OS-specific keys like the Windows or Command keys.
Other keyboards offer onboard programming, where you press certain keys to record macros and customize backlighting. Yet others come with software you can use to record macros, remap or customize certain keys, and futz with backlighting. Off the deep end involves entirely customizable layouts you have to build and flash to the keyboard.
Removable cable: A removable USB cable is preferable to a built-in one, because if the cable breaks it’s easier to replace just the cable rather than the whole keyboard.
Backlight: Backlighting can be a nice addition but it isn’t a requirement for typing or coding. If a keyboard does come with backlighting, we prefer it to be either a tasteful white or programmable—though customizable backlighting almost always costs more.
Hot-swap switches: This is a newer feature typically found only in expensive, high-end mechanical keyboards, but the ability to trade out switches anytime without having to break out a soldering iron is a nice bonus.
What features matter for gaming
You can use any keyboard for playing games, but gaming-specific keyboards have a fun mix of lighting and software not often found on normal mechanical keyboards. None of it is necessary, but some dazzling RGB lights are certainly one way to spice up an otherwise boring keyboard. Here’s what to look for in a gaming keyboard.
Build quality: Cheap gaming keyboards tend to flex and the worst make awful noises like creaking or pinging when you hit a key too hard. Paying a little extra for a well-built keyboard gets you something that lasts longer and feels better to use. Build quality is especially important if you take your keyboard with you for LAN tournaments or over to a friend’s house. If you’re not the type to keep a tidy deskspace, we’d also recommend a low-profile design. Because the keys appear to float on top of the deck, this type of keyboard is easier to clean with canned air.
Gaming mode: This important feature disables the Windows key so you don’t accidentally pull up the Start menu and knock yourself out of a game.
RGB lighting: RGB lighting is not a useful feature by any stretch but it is a fun one. Good RGB lighting is easy to customize, includes silly animations you’ll look at once and never use, and gives you the ability to change lighting based on which game you’re playing.
Removable cable: The cable may fray or break before the mechanical keyboard does, especially if you travel with your keyboard often. A removable cable lets you easily swap that cable out if anything goes wrong.
Software: We prefer gaming keyboards with optional customization software, which can make certain features much easier to use. Good software doesn’t require an account and lets you change key bindings, record macros, and customize the RGB lighting.
Macro recording: Macros are generally useful only for people who play MMOs and simulation games but are a nice feature that makes repetitive keystrokes easier.
Other features
Some keyboard features are still a pipe dream or come with serious drawbacks. Some extras aren’t worth paying more for, and others are complete marketing bunk.
A feature we want but can’t have yet
Wireless: As of early 2019, few wireless mechanical keyboards exist and the ones that do come with serious trade-offs like poor battery life and connection issues, or more minor ones like a nonremovable palm rest and nonstandard switches. We’re not quite there yet but we’re looking forward to the day when wireless mechanical keyboards are worth buying.
Perks that aren’t worth paying extra for
Extra media control knobs: Keys configured to play and pause media or adjust volume can be handy for people who use them frequently, but extra, dedicated buttons and knobs that take up extra space on your keyboard and can’t be used for any other purpose are inconvenient (and many of these actions are assigned to the function row anyway).
USB and audio passthrough: Having USB ports and an audio jack built into your keyboard can be convenient if you frequently plug in and unplug devices, but plugging things into your keyboard adds more clutter in your immediate workspace, and routing audio devices through a keyboard can add extra interference.
Features that don’t matter
Palm rests: Ideally you shouldn’t be typing with your palms or wrists on a palm rest. Instead, you should hover so your arms and wrists are at a neutral angle rather than flexed upward at the wrist, a position called extension. “Repeated extremes of wrist extension can put excessive pressure on the median nerve as it passes through the carpal tunnel of the wrist, and this impairs nerve function and eventually results in injury,” explains a Cornell research study. Palm rests also take up a lot of desk space for something you shouldn’t use. If a keyboard comes with a palm rest, it must be removable.
Feet: Most keyboards are angled upward from front to back, or come with little feet to angle the keyboard even further. Using a keyboard in this position also causes wrist extension. Professor Alan Hedge, director of Cornell University’s Human Factors and Ergonomics Research Group, said, “To minimize the risk of injury and to optimize performance, it is important that a keyboard can be used with the hand in its most neutral position. That is, straight and level.” A keyboard with a flat—or even negative—slope is ergonomically ideal, so don’t use those little feet, and keep your keyboard as flat as possible.
N-key rollover: NKRO refers to how many simultaneous inputs a keyboard can handle before it can no longer recognize additional keypresses. It’s important—some earlier keyboards could handle only two or three simultaneous keypresses—but almost all keyboards today support at least six-key rollover, which is more than enough for typing, programming, and gaming.
Anti-ghosting:Ghosting is no longer a common issue, but on old keyboards, if you pressed three or more keys at once it could cause the board to register phantom keypresses. Modern keyboards have anti-ghosting features, so this is no longer a differentiator.
Optical switches: Optical switches use a laser to tell when you actuate a key. Manufacturers claim this is much faster than a traditional mechanical switch, which would theoretically be useful in gaming. In our experience, a light linear switch like the common Cherry MX Red is plenty fast. Optical switches can also be used to reproduce an “analog” feel. Similar to a joystick, how much you press down on the key affects the input. These keyboards are rare, expensive, and benefit only a few genres of games. For now, optical switches are expensive without adding much benefit.
Ich mag Sachen, die gut funktionieren und dabei auch noch gut aussehen. Und sich vielleicht auch noch wertig anfühlen. Dazu zählen meine ganzen Luxus-Gegenstände von Vipp, aber neuerdings auch dieser Energy Strip von Eve Systems.
Als Eve Systems noch Elgato hieß, da haben die ersten HomeKit-Geräte bei mir nicht gepasst. Langweiliges Design, glänzendes Plastik, schwache Bluetooth-Verbindungen, schwache Software. Ich habe mich ewig mit einem Außenthermometer herumgeschlagen und trotz aller Geduld sind wir nie warm geworden miteinander.
Bei dem Energy Strip war sofort anders. Schon wenn man ihn auspackt, hat man eine schönes Stück Alu in der Hand mit einem stabilen dicken Kabel, ordentlichen Steckdosen und Schaltern, die ihren Zustand anzeigen. Aktuell habe ich zwei Steckdosen belegt mit einer Artemide Megaron und einem Sonos Play:1. Ein Anschluss bleibt frei, um dort mal schnell ein Netzteil einstecken zu können. Da das frei im Raum steht, möchte ich dort kein Billigplastik sehen.
Schön aussehen reicht nicht. Der Energy Strip fügt sich ganz einfach in Apple HomeKit ein. Sorry, no Android. Damit schalte ich Megaron automatisch und kann über die Eve-App auch den Energie-Verbrauch messen. Der Sonos ist die meiste Zeit ebenfalls aus. Der Energy Strip spricht per WLAN mit den Apple-Gerätschaften und kann durch das Apple TV auch von unterwegs gesteuert werden.
Just the other day I hot what might be my last Katexic Newsletter. I hope there are more to come after the hiatus because I dig the format, but I can only imagine the time that goes into each of these carefully curated missives. Filled with crazy ass vocabulary words, an excerpt of some brilliant literature, and a list of awesome, annotated links it was one of the highlights in my email inbox. In fact, after a quick search I see I subscribed in October of 2017, and looks like he may have been sending them out since 2014 making for over 400 newsletters! Since October 2017 I’ve gotten roughly 100 of those newsletters, and I have the email archive to both prove and cherish it. What a run.
Thanks Chris, I really appreciate your razor sharp sensibility and absolute, undying love of words, it makes me better reading you.
To heal my wounds I just subscribed to Notabilia (I know, I know, I’m late to that party too), but reflecting on Katexic and the life of any project we engage over time, I can’t help but think of Chris’s championing of online emphemera, in fact he has been known to just up and delete a blog or two—which is akin to Grand Moff Tarkin obliterating Alderaan for me. So what struck me about Katexic, and by extension newsletters and email, is that the archive is built-in.I now have 100 issues in my email archive, and I am sure many others have the newsletters I am missing. It could almost make for a peer-to-peer seeding archive that is insurance against Lott up and deleting katexic.com Interesting that despite my tongue-in-cheek smack-talking on email newsletters, many years later I can see the long-term archiving value as near and dear to my anti-ephemera stance to shared resources (on, and sometimes off, the web).
Finally, for all my love of writing, linking, and then futilely trying to preserve my little plot on the web, something about getting snail mail from an online friend is special. Dr. Garcia has been consistently awesome about this, and she sends the family postcards on the regular. On the other hand, I have been terrible at responding. So the same week I read about the shuttering of Katexic I get a letter from Chris for National Poetry Month 2019 with two chapbooks, and a typed poem by Stanley Moss titled “Allegory of Evil in Italy”:
The Visconti put you on their flag: a snake
devouring a child, or are you throwing up a man
feet first? Some snakes hunt frogs, some freedom of will.
There’s good in you: a man can count years on your skin.
Generously, you mother and father a stolen boy,
to the chosen you offer your cake of figs.
A goiter on my neck, you lick my ear with lies,
yet I must listen, smile and kiss your cheek
or you may swallow the child completely. In Milan
there is a triptych, the throned Virgin in glory,
placed on the marble below, a dead naked man
and a giant dead frog of human scale on its back.
There’s hope! My eyes look into the top of my head
at the wreath of snakes that sometimes crowns me.
This whole thing brought me so much joy. I know have two typed poems from Chris (he sent me another by Oscar Wilde in 2016) so that I can’t say, with any authority, that no one writes to the Colonel anymore—and that make me very happy.
Today my favorite dictionary app, LookUp, was updated to version 5.2 on iOS and watchOS. The update centers around a new, modernized Watch app with a feature I'm really excited about: Siri face support for the word of the day. The Watch app isn't the only noteworthy improvement though, as LookUp has also added Handoff support and search improvements on iOS.
LookUp’s new Watch app brings all the advancements you would expect from a modernized Watch client, including new complications that take advantage of Series 4 faces like Infograph and Infograph Modular, a simplified interface to make app interactions quick and relevant, and finally, Siri face support for displaying LookUp’s word of the day.
The Siri face component is easily the highlight of the app for me. I’m a big fan of the Siri face, and as such I’m always happy to see a new third-party app take advantage of it. There’s no setup required in the app, LookUp simply surfaces the word of the day as a card on the Siri face each morning. I’ve found this a perfect way to be exposed to new words without the need for something as potentially intrusive as a notification.
The main Watch app interface is extremely minimal: you’ll see the word of the day card, which can be tapped for more info, and also a search button that enables searching via voice, Scribble, or by tapping one of the recently searched terms listed there. Each word in the Watch app now contains a lot more information than before, closely modeling what the iOS app offers.
Another addition to LookUp 5.2 that benefits Watch use is Handoff support. If you’re looking at a word on your Watch, LookUp on your iPad and iPhone will display Handoff suggestions so you can easily switch to the fuller dictionary experience provided by iOS.
Finally, LookUp on iOS now offers a list of real time search suggestions with each character you type. This greatly speeds up the ability to search for the correct word, but I’ve also found it a solid tool for discovering other interesting words to explore. Typing to search one thing then seeing a list of related suggestions has sent me down a rabbit hole more than once and helped me expand my vocabulary along the way.
LookUp was already a great iOS citizen, featuring an excellent iPad app, rich Siri shortcuts support, an iOS-friendly design, and even a fun Smile to Like feature that takes advantage of the TrueDepth camera system on newer iPhones and iPad Pros – today’s update simply extends the app’s multi-platform benefits, ensuring that whichever device you’re using, LookUp has something valuable to offer.
Support MacStories Directly
Club MacStories offers exclusive access to extra MacStories content, delivered every week; it's also a way to support us directly.
Club MacStories will help you discover the best apps for your devices and get the most out of your iPhone, iPad, and Mac. Plus, it's made in Italy.
If you listen to music, watch movies, or play games through your desktop or laptop computer, you could use a good set of computer speakers. Our favorite pair is the Mackie CR4BT set, which sounds great and is simple to set up and use. Plus, these speakers won’t take up too much space on your desk and they pair easily with your mobile devices via Bluetooth.
For a company famed for its engineering culture, you wouldn’t expect a video at Google’s annual I/O developer conference to have such emotional resonance. And yet, just watch (I have included the context around the video in question, which starts at the 2:33 mark):
“I liked that very much.”
This was the most direct statement of what was a clear theme from Google’s entire keynote:
“Technology, particularly Google’s technology, is a good thing, and we are going to remind you why you like it.”
Google’s Mission
As he opened the keynote, CEO Sundar Pichai, as he always does, repeated Google’s mission statements:
It all begins with our mission to organize the world’s information and make it universally accessible and useful, and today, our mission feels as relevant as ever.
Pichai, though, quickly pivoted to something rather different than simply organizing and presenting information:
The way we approach it is constantly evolving. We are moving from a company that helps you find answers to a company that helps you get things done…We want our products to work harder for you in the context of your job, your home, and your life, and they all share a single goal: to be helpful, so we can be there for you in moments big and small over the course of your day.
In short, the mission statement may be the same, but what that means for Google and its products has shifted:
Our goal is to build a more helpful Google for everyone. And when we say helpful, we mean giving you the tools to increase your knowledge, success, health, and happiness. We feel so privileged to be developing products for billions of users, and with that scale comes a deep sense of responsibility to create things that improve people’s lives. By focusing on these fundamental attributes, we can empower individuals and benefit society as a whole.
This set the stage for the rest of the keynote, including the video above: Google spent most of the keynote demonstrating — both with actual products, and a whole bunch of vaporware — how Google could take a much more proactive role in its users’ lives in ways they ought appreciate.
Google’s Data Collection
To be sure, not all of the demos were of unassailably positive use cases like helping an illiterate person navigate the world; take, for example, this demonstration of Duplex for the Web:
With the caveat that this is one of the pieces of vaporware I referenced earlier (Duplex, it should be noted, did finally launch several months after last year’s Google I/O), the demonstration is very impressive. What is worth noting, though, is the degree to which the demo relies on Google’s having access to your data; to that end, perhaps the most striking takeaway is that Google didn’t bother hiding this fact:
The implicit message was clear: “Yes, we have all of your data, but the fact we have all of your data is a good thing, because it allows us to make your life easier.”
Notice that Aparna Chennapragada, the Vice President of Google’s AR, VR, and Vision-based Products whose video I opened with, makes the same point:
What you are seeing here is text-to-speech, computer vision, the power of translate, and 20 years of language understanding from search, all coming together.
To put it more succinctly: “Yes, we collect a lot of data. But that data makes amazing things possible.”
Google’s Strategy Credits
There was one more thing Chennapragada said at the end of her presentation:
The power to read is the power to buy a train ticket, to shop in a store, to follow the news. It’s the power to get things done, so we want to make this feature accessible to as many people as possible.
This is another feather in Google’s cap: it really does serve everyone in the way a company like Apple does not. Pichai made this point as well:
So far, we have talked about building a more helpful Google. It is equally important to us it for everyone. “For everyone” is a core philosophy for us at Google. That’s why from the earliest days Search works the same whether you’re a professor at Stanford or a student in rural Indonesia. It’s why we build affordable laptops for classrooms everywhere. And it’s why we care about the experience on low-cost phones in countries where users are just starting to come on-line, with the same passion as we do with premium phones.
What was unmentioned is that this is very much a Strategy Credit. Google spends billions of dollars on research and development and global-scaling infrastructure in order to deliver superior products to, first and foremost, users on premium phones (who have a huge amount of overlap with the set of customers most attractive to advertisers). That expenditure, though, is a fixed cost, while serving a marginal user is effectively free; it follows, then, that the best way to leverage those costs is to serve as many people as possible, even if the revenue from doing so is quite meager, at least for now.
To be clear, to say that something is a Strategy Credit is not a bad thing: it is simply an observation that doing the “right thing” requires no trade-offs when it comes to a company’s core business model; I originally created the term to explain why Apple could commit to not collecting data in a way that a company like Google could not.
Even so, it is striking how Google leaned into its core business model during the keynote: while Facebook likes to talk about connecting everyone, the company mostly tries to have its privacy cake and eat it too, that is, talk a lot about privacy and major moves it claims it is making in that direction, while actually changing nothing about its core business (or acknowledging that those moves are for competitive reasons).
Google, on the other hand, didn’t just admit it collects data, it highlighted how that collection makes Google more helpful. Google didn’t just admit that its goal is to be the Aggregator of information for every customer on earth, it bragged about that fact. And Google certainly didn’t engage in any self-effacing comments about how technology could be used for both good and bad: the entire keynote was arguing that technology is not only good, it is going to get better, and Google will lead the way.
Google’s Opportunities
There should be, to be sure, concerns about Google believing their own hype: many of the problems with YouTube, for example, stem from The Pollyannish Assumption that treats technology as an inherent good instead of an amoral force that makes everything — both positive outcomes and negative ones — easier and more efficient to achieve.
At the same time, from a purely strategic perspective, the positive message makes sense. Presuming that everything about technology is bad is just as mistaken as the opposite perspective, and the fact of the matter is that lots of people like Google products, and reminding them of that fact is to Google’s long-term benefit.
Moreover, a world of assistants and machine-learning based products is very much to Google’s advantage: the argument to not simply tolerate Google’s collection of data, but to actually give them more, is less about some lame case about better-targeted ads but about making actually useful products better. The better-targeted ads are a Strategy Credit!
It certainly appears that Google is pressing its advantage: after several years of including iPhones in Google I/O demos and/or alluding to products coming out on iOS — a welcome correction to The Android Detour — the only mention of iPhones was in a camera comparison to Google’s Pixel phone.1 Notably, Pixel’s headline feature — its camera — is very Google-like; Sabrina Ellis, Vice President of Product Management, said while introducing the $399 Pixel 3a:
Delivering premium features with high performance on a phone at this price point has been a huge engineering challenge, and I’m really proud of what our team has been able to accomplish with Pixel 3a…What Pixel is really known for is its incredible camera. With software optimizations we found a way to bring our exclusive camera features and our industry-leading image quality into Pixel 3a. So photos look stunning in any light. What other smartphone cameras try to do with expensive hardware, we can deliver with software and AI, including high-end computational photography.
While phones are certainly not a zero marginal cost item, the point is that Google applies overwhelming computer resources that can be leveraged through software instead of premium hardware, lowering the price of a phone, thus allowing it to be sold more broadly (better leveraging Google’s investment).
Google’s Challenges
At the same time, while many of today’s trends are in Google’s favor, the Pixel is a reminder that the company still has significant challenges: Google has struggled to sell Pixels not because it hasn’t invested in a quality phone, but because it hasn’t invested in marketing and distribution. To that end, what was even more notable than the Pixel 3a price point is the fact it will be available on more than one U.S. carrier for the first time; unfortunately for Google, that is only one country, and there remain the massive investments in marketing necessary to become a major smartphone player.
More importantly, while Google Assistant continues to impress — putting everything on device promises a major breakthrough in speed, a major limiting factor for Assistants today — it is not at all clear what Google’s business model is. It is hard to imagine anything as profitable as search ads, which benefit not only from precise targeting — the user explicitly says what they want! — but also an auction format that leverages the user to pick winners, and incentivizes those winners to overpay for the chance of forming an ongoing relationship with that user.
Indeed, this was both the promise and pitfall of Google’s overall presentation: organizing the world’s information was (relatively) easy when that information was widely available, and it was easy to monetize. Everything was aligned. The future, though, is a lot messier: getting information is more difficult, presenting that information is more challenging, and making money is very much an open question. Just because Google is better positioned in this race than anyone else doesn’t matter quite as much when the race is harder, even as the prize is less lucrative, while an increasing number of spectators are cheering for failure. Might as well bring cheerleaders!
A slide-in (or front-control) range can bring a refined look to your kitchen without totally busting your budget. We looked closely at 56 different radiant-electric and induction slide-in stoves and think the GE JS760 is a competitively priced option that will work well in most kitchens. It has a great set of cooking features and comes from a brand with a strong reputation.
I expect that whatever she finds in missing data within the UK public sector, similar or matching examples can be found in other countries, such as here in the Netherlands.
One such Dutch example are the election results per candidate per polling station. The election council (Kiesraad) that certifies election results only needs the aggregated results per municipality, and that is what it keeps track of. Local governments of course have this data immediately after counting the votes, but after providing that data to the Kiesraad their role is finished.
The Open State Foundation (disclosure: I’m its current chairman of the board) in recent years has worked towards ensuring results per polling station are available as open data. In the recent provincial and water authority elections the Minister for the Interior called upon municipalities to publish these results as machine readable data. About 25% complied, the other data files were requested by the Open State Foundation in collaboration with national media to get to a complete data set. This way for the first time, this data now exists as a national data set, and is available to the public.
This is a two-part article (part 1, part 2). The 'indieweb' is a collection of individually-owned and independent web sites (as opposed to pages on centrally managed services such as Facebook). The fediverse is a collection of social networking sites like Mastodon that support multiple user accounts, operate independently but are connected to each other (constituting a 'federation'). They are similar in origin and intent, but use different underlying protocols (ActivityPub for the fediverse, with Micropub and Webmentions for the indieweb). The first part of this article lists a number of ways to bridge the two systems: POSSEing, pterotype, wordpress actvitypub, and Bridgy Fed. The second part looks specifically at using WordPress Indieweb plugins and Bridgy Fed; "it works pretty smoothly," but of course if you're not using WordPress then you will need a different approach.
I must confess I don't feel nearly the same outrage at Stanford's decision to cut subsidies to its university press as Cathy Davidson does, but then again, I'm not at all invested in publishing or buying books; my work is entirely online, and review, for me, is best done post-publication. Sure, we can debate these points, but some of the argumentation here is entirely spurious. Like: " Since the publishing of scholarly books and journals is largely the domain of the humanities (etc)... the university is making an implicit judgment that those domains do not deserve resources." Um, no. Like: "Given that all of higher education is reputational — rankings, accreditation, and beyond — scholarly publishing is the most rigorous form of peer review." Wow. No. "If a university’s intellectual and educational reputation is to rest on the scholarly output of its faculty... then scholarly publishing must be subsidized as part of the educational mission." Hardly. All bad arguments.
My son plays travel baseball, and I’m glad he does. Competition nurtures resilience, and I love seeing him jump with sheer joy whenever a teammate crosses home plate. But here’s what I don’t love: the hours of my life lost each week taking him to practice and games (easily eight), and the guilt I (kind of) feel about making my husband go alone. When I do show up, I’m either too hot or too cold, and I feel silly shouting things like “Nice cut!” Turns out, though, there’s a better way. If you signed your kid up for sports this season, try these expert strategies for making the whole experience a little more comfortable and a lot more meaningful.
What to wear
Dress strategically: It’s not enough to ask Alexa what the weather is like “right now.” You must get the lowdown for two, four, and, with doubleheaders, six hours from now. “The games are long and the weather can change,” said Matthew Panikkar, director of soccer at Yorkville Youth Athletic Association in New York City. Throw extra layers and other seasonal necessities such as a blanket, umbrella, gloves, bug spray, and sunblock (more on that later) into a big bag; you can always leave it in the car. (Wirecutter’s pick, the water-resistant Patagonia Black Hole Duffel, sports ripstop fabric, a padded base and removable shoulder and backpack straps, and comes in various sizes.) In late fall and early spring, you’ll also want a versatile coat, preferably a hooded, waterproof one that can stand up to spilled coffee and the various things you’ll be slinging onto your shoulder. I have my eye on the Eddie Bauer Girl on the Go Trench Coat. It’s a Wirecutter rec that has a removable insulated lining and hood, and fleece-lined pockets.
Don’t skimp on shades: A good pair doesn’t just block out the sun—it also makes the game easier to see. Brett Klika, founder of SPIDERfit Kids, an online kids-fitness resource, in San Diego, used to wear his everyday sunglasses for his 6-year-old daughter’s soccer games, but when he wore his sports glasses one day, he found himself squinting less. Why? They were both UV protectant and polarized—and that means they provide more contrast and less glare, explained Rahul Khurana, MD, clinical spokesperson for the American Academy of Ophthalmology. (Wirecutter’s favorite pair, the J&S Premium Sunglasses, is sturdy yet under $20.) PSA: Put sports eyewear on your kids, too, to protect their eyes from sun and injuries, said Khurana, who’s also a dad of a basketball player. (The American Academy of Ophthalmology has recommendations for each sport.)
Embrace hats and functional gloves: Joel Cohen, MD, an American Academy of Dermatology spokesperson in the Denver area, typically wears a baseball cap to his daughters’ soccer games, but on scorching late-spring or early fall days, he replaces it with the wide-brim hat he keeps tucked into his cargo-pants pockets. (Wirecutter’s sun-hat pick, the Columbia Bora Bora II Booney, is also breathable.) When winter comes early, I depend on a no-nonsense knit-wool hat, which I pull over my ears, and warm gloves because, after all, you can’t applaud your kid’s home run with your hands in your pockets. (Wirecutter likes the inexpensive GliderGloves Urban Style Touchscreen Gloves, which protect against the late-autumn chill while letting you easily text the grandparents about said homerun.)
What to bring
Invest in a folding camp chair: My husband refers to his Coleman Oversized Quad Chair as his throne, but what I really want is a seat with built-in shade, which also shields you from rain. “Look for straps—because you might not find parking near the field,” Klika said. (Wirecutter’s upgrade pick, the Renetto Original Canopy Chair, was always ‘“the first seat snagged” during group testing.)
BYO food and beverages: The hot dog at the snack stand is never as good as the idea of it. Consider a rolling cooler (again, parking) for long afternoons. For short games, a soft, sling-on-your-shoulder model—like Wirecutter’s pick, the AO Canvas Series 24-Pack Soft Cooler—might do. Klika throws in pita bread, hummus, and deli meats so he doesn’t even have to make sandwiches in the morning (on hot days, the ice packs feel refreshing on the face, too). PB&J, nuts, fruit, hard-boiled eggs, and sweet potatoes will also feed you and your kid without weighing you down. Don’t forget filled water bottles! (Wirecutter recommends the Hydro Flask 21oz Standard Mouth.)
Employ ninja sunblock tricks: Apply sunblock every two hours, even on cloudy or cold days. Kids often push back, but they’re more apt to put it on if they see you put it on yourself, said Cohen. He recommends using physical sunblock with zinc or titanium dioxide, which, unlike the chemical kind, blocks both UVA and UVB and works immediately. (Wirecutter’s also-great pick, CVS Health Clear Zinc Sun Lotion SPF 50, is a water-resistant physical-chemical combo formula and rubs in more easily than the competition.) You’re less likely to miss spots with a lotion, so start the day with a generous layer of it and reserve sticks and sprays for between-game reapplications that older kids can do themselves. Remember to use zinc lip protection, too.
What to do
Pay attention: Before I started writing this story, I’d bring a laptop to games. I don’t anymore. The expert consensus is that you don’t have to be at every game, but when you’re there, you should “be present,” said Rebecca Rialon Berry, PhD, psychologist at NYU Langone’s Child Study Center. “Minimize side conversations and tech use.” However, if you’re going crazy by the third inning of the second game (because you’re human), Klika suggests listening to podcasts or audiobooks—this way, you can still keep an eye on what’s going on. (Wirecutter’s true-wireless earbuds pick, the Jabra Elite 65t, lets you hear both your podcast and the game.)
Be chill: Cheer the effort (“Way to hustle!”), not just the outcome (“Great catch!”), said Gregory Chertok, an NYC sports psychology consultant at Telos Sport Psychology Coaching. Putting weight on something kids can’t control can lead to anxiety—for everyone. Also: Let coaches coach and refs ref. Yelling instructions from the sidelines can confuse your child. “Mistakes will be made,” said Jack Wayland, head coach with Wise VA Rush Soccer, but you should let them go. You’re embarrassing your child otherwise, according to a 2011 study published in the Research Quarterly for Exercise and Sport. Kids also mimic your behavior. So encourage good plays, even on the other team, and as Wayland said, “If you’re not staying positive, then stay in the car.”
Don’t forget siblings: Small tents (Wirecutter likes the Lightspeed Outdoors Seaside Pop-Up Shelter Tent) furnished with toys give tots a place to play. Klika also suggests bringing baseballs and gloves to baseball games, soccer balls to soccer games—small kids love doing what their big sibs are doing.
Know the only two things you should say after the game: “Did you have fun?” and “I loved watching you play.” That’s what’s important to kids of every age, but especially in elementary school, said Klika. If your child has a bad game, the worst time to discuss it is right afterward. Let them take the lead. Chertok suggests asking kids how they would have handled it differently, allowing them to formulate insights. Berry, who played basketball through her teens, noted, “Unless your child asks specifically for coaching from you, listening and providing emotional support and validation for their hard work is often enough.”
Craig Hockenberry’s What to Expect From Marzipan should be required reading for iOS developers considering doing Mac versions.
I want to amplify a couple things.
If you’re writing a Mac app using Marzipan, you’re still writing a Mac app. You’re a Mac developer now! For real.
As a Mac developer, you should do what other Mac developers do: understand and respect the platform and get help from Mac users, power users, and fellow Mac developers.
I’ve always found that Mac users are rooting for our success. They want us to make great apps — and they reward us for it. It’s a smaller, more intimate community, and warmer than iOS world. But you can also blow it by not trying, by not respecting the Mac and Mac users.
And that’s the biggest investment here. It’s not the coding. It’s your own intellectual and emotional investment in the Mac itself.
If you decide you’re up for it, then great! And: thank you.
Hopefully we’ll find that UIKit is awesome for writing Mac apps. But it’s worth knowing what AppKit provides, because it’s part of understanding Mac apps.
“Democracy is not guaranteed, and it is not inevitable.”
Carole Cadwalladr’s TED talk about her work to understand how democracy in Britain and around the world was broken by technology — especially Facebook — is a must watch.
According to the History of Crapaud, the boundary of the village was set as follows:
It was further decided that the incorporated area should include all land and water within a half mile radius of Crapaud Bridge, which spans the Westmoreland River, on the present course of Highway Route No. 9.
Eagle-eyed readers will note that this point falls about 30 meters east of “Crapaud Bridge, which spans the Westmoreland River,” which is where history describes it. It turns out that proclamation in the Royal Gazette of Crapaud’s incorporation refers only to “Crapaud Corner,” without a more specific geographic location; when digital cartographers of yore created the Crapaud municipal boundary in its contemporary digital form they thus had to take their best guess, and what you see in OpenStreetMap is the boundary they came up with.
With the centre of Crapaud now fixed (at least close to) its proper location, and with the work I’ve been doing all winter long to fill out the roads, buildings, driveways, sheds, trees, rivers and forests of Crapaud in OpenStreetMap, I can now use the lovely and powerful Overpass Turbo tool to do some interesting things.
But it’s not only buildings: this query shows polygons where residential land use has been tagged:
And this query extracts all the points marked as individual trees (as opposed to areas marked as “wood”):
I’ve so long thought of OpenStreetMap as a map, and of course it is that.
But it’s also a database with a powerful set of open tools that use open formats, meaning that the effort to keep the map up to date has all manner of unintended other benefits.
Thoughts about Drupal 8, Drupal 7, Backdrop, the Drupal Community, DrupalCon's meteoric price increases, DrupalCamps, and the future of the framework/CMS/enterprise experience engine that is Drupal have been bubbling up in the back of my mind for, well, years now.
I am almost always an optimist about the future, and Drupal 8 promised (and usually delivered) on many things:
Vastly improved content administration
Views in core, and even better than ever
Media in core
Layouts in core
Modern programming paradigms (fewer #DrupalWTFs)
'Getting off the island' and becoming more of a normal PHP application (kinda the opposite of something like Wordpress)
But one thing that has always been annoying, and now is probably to the state of alarming, for some, is the fact that Drupal 8 adoption has still not hit a level of growth which will put it ahead of Drupal 7 adoption any time soon.
Joseph Planta@Planta
I talked to Sid Ryan about his new memoir A Grander Vision, Ontario politics, labour, the NDP, growing up in Irelan… twitter.com/i/web/status/1…
The Flickr website is up and stable, and it’s running faster than ever. As of 10:15pm PDT, we have just released the mobile apps. It can take up to 90 minutes for your app to receive the activation signal, so if you still see the downtime message, please be patient for just a bit longer. You don’t have to do anything to reactivate the app; just launch it to see when it’s ready for you.
Thanks for your patience! We’ll be continuing to monitor the site for stability throughout the weekend. Please check this Help Forum post for any ongoing updates.
May 23, 2019 update:
As of 8:15pm PDT, We’re back! It’s been a long process, but we’re switched over to AWS. Thank you so much for your patience! Please check this Help Forum post for ongoing updates.
As of 5:45am PDT, our team is still hard at work completing some final steps to bring the site back online — it’s taken a little bit longer than we hoped, but we expect to be up and running within the next several hours. Thank you for your patience!
It’s time to move:
It is an exciting time at Flickr right now as we approach the final stretch of our migration of Flickr’s data and systems. You may remember that one of the biggest steps we promised in revitalizing Flickr was to bring it increased speed and stability. Part of that process was re-engineering our underlying infrastructure and moving it all from Yahoo’s data centers and onto Amazon Web Services (AWS), where SmugMug’s photos have been kept safe and secure for years.
The process involves hundreds of millions of gigabytes of photos and videos (literally billions of photos) and 100+ million accounts. We knew there would be a few bumps in the road, and one of those unfortunate bumps is the need for some planned downtime while we finish the migration. Luckily though, when this step is complete, we’ll be well on our way to a much faster, much more secure, much more stable Flickr.
The details:
On May 22, 2019, Flickr will be down for planned maintenance for about 12 hours starting at 5pm PDT (that’s 8pm EDT or 12am GMT on May 23).
Your data, photos, videos, and settings will all be perfectly safe during this downtime. Once we are back online, you’ll have access to each and every item just as it was before. Also, all your photo rights will obviously continue to be protected and respected.
After the downtime:
After we come back online, you’ll be able to access your Flickr account, browse the feed, and explore Flickr just as you did before. However, because of the complexity of this migration, we do anticipate a few parts that may take a little bit more time to bring back online.
Camera Roll and push notifications may break. The website and mobile apps will provide alternative functionality while the Camera Roll is unavailable; things will look a little different, but you will still be able to access all your photos. On the mobile apps, you will be able to see your notifications after opening the app, but may not receive the notification pushed to your device. If you like, you may visit this link to turn on additional email notifications until push notification service is restored. We’ll be working hard to bring these features back online as fast as possible, but they may remain unavailable for a month or more.
You’ll need to re-download the Android app. Users who still have the old app will be able to continue to use it for now, but we’ll be discontinuing support and updates to it. We’ll release a new Android app around June 1 that will be available in the Google Play Store and will receive all new product features, updates and bug fixes, and continued support. This is necessary to transfer control over the app out of Yahoo’s developer account and into Flickr’s own account. iOS users get lucky here — we’re able to transfer that app out of Yahoo without the need for you to re-download.
We know this downtime is an inconvenience and we are infinitely grateful to each member of this amazing community for your support and patience as we chip away at this huge undertaking. We’re also thrilled that much of this work is behind us so we can continue putting more and more of our focus on building the features you’ve asked for.
And one last note: To make this scheduled maintenance thing a little more fun, we’re planning a contest to get us all to step away from the computer, grab our cameras, and create. You can check out the details here. We can’t wait to see the view from behind your lens!
Lazy evaluation is easily implemented in any language that can create first-class computations. That means functions or objects. In this episode, I explain how to implement a Delay, which is a reusable lazy component that is common in functional programming languages.
Transcript
Eric Normand: How do you implement lazy evaluation, even if your language doesn’t support it out of the box? By the end of this episode, you’ll be able to implement lazy evaluation in your favorite language.
My name is Eric Normand and I help people thrive with functional programming.
Lazy evaluation is important because it’s great for separating two concerns. One concern is how you generate a value, so the code for generating the value. The other concern is how much of that value do you need? Are you even going to need it at all?
You have one part of your code say, “Here is how you generate the value,” and another part of your code that decides, given that value, how much of it to actually use or whether to use it at all.
Let’s go over this recipe for how you would build this thing. What we’re going to be building, in spoken code, is called a delay. A delay is an object that represents one lazily evaluated value. It represents the value but it hasn’t been calculated yet, or maybe it has. It doesn’t matter.
From the outside, there’s just one interface method on that object and it will give you the value. It’s an object. Whatever you use in your language to build a little object. I’m going to assume something that has a constructor. The constructor is going to take a calculation and that calculation is what generates the value.
Let’s give a really dumb example. If I need to calculate the value five plus four but I don’t want to do it right now, I want to delay it, I would pass the calculation five plus four to the constructor. How do you make a calculation? How do you pass it? That depends on your language.
In something like JavaScript, I would wrap that up in a function. I’d make a function that just returns five plus four. The function has zero arguments. What functional programmers call that, a function of zero arguments — it’s really not a function at all — it’s always going to return the same value. It’s practical because it’s something that hasn’t run yet but you could run it.
This is called a thunk. A function of zero arguments. If it’s a pure function, it’s always going to return the same thing because there’s no arguments. It’s called a thunk. I think it’s supposed to be the incorrect past tense of to think, “I thunk about it.” Anyway, it’s a thunk. The only thing you can do with it is call it and it’ll calculate the answer.
When I call this thunk, it’ll return nine to me. Until I call it, it hasn’t done that addition yet. That’s the constructor for the delay object. It takes a thunk. If you’re in Java and you don’t have…maybe Java 8 does have first class functions now. I don’t want to argue about that.
In other languages it’s going to be an object with a single method called invoke or run, something like that. It’s not going to take any arguments. It’s just going to finally run the thing. That would be your thunk.
Now this object, besides the constructor, it has one method. Doesn’t matter what you call it, it could be called get or get value.
This is what the method does. It’s going to first check whether you have already calculated the value. If you have then it’s going to return that value. It has to have saved it somewhere, like some field in the object. If it has not already calculated the value, it’s going to run the thunk. It’s going to call, invoke or whatever method it is or if it’s a function it’s going to call it.
It’s going to take the return value from that function. It’s going to save it and then it’s going to return the value.
The first time you run this method, it will have to call the thunk. The second time though, it will already be saved so you won’t need to call it again. What we’ve done with this…that’s it, that’s done. What we’ve done is we’ve made a reusable and generic object that can work for any calculation you might want to delay.
This is a standard functional programming tool, a little reusable thing. It takes a calculation and it delays it. It’s just one thing. It only works on functions of zero arguments. Because it does not remember. It’s not a memoized but it’s like memoized but only for functions of zero arguments.
Memoize is another thing we can talk about in a future episode. I just wrote that down, so we’ll get to that.
We’ve made this reusable thing. It’s called the delay. It takes a thunk which is a function of zero arguments and part of the constructor. It remembers whether it has called that function before. If it has, it returns the saved value. If it hasn’t, it calls it and saves the value and then returns it.
It’s reusable, you can use this a lot of places. You might be saving values already, in some other method or some function has a little thing that remembers whether it’s been called or not. This is a reusable thing. Now you have a thing that is totally reusable.
Do yourselves a favor. I always like to give a takeaway that you can go home and try. Implement this. This shouldn’t be more than 10 lines of code. Probably less if you’ve got succinct language. I’d love to get your code. If you want to show it to me, I’d love to see what you’ve come up with to implement this thing.
One of the cool things about functional programming that I really like is that it has…People have thought about these little reusable components. These primitives that give you a lot of power. This is a higher order primitive. It takes a function and transforms it into something else. I really appreciate these because, first of all, they’re not hard to understand.
I feel like I can understand them and I can collect them as part of a repertoire of things that I’ve learned. I can see how they are implemented into a few lines of code and say, “Ah, I get it. This really makes sense.”
I learn it in a functional language and I go to another language. Let’s say I have to do some work in Java and I can just write it. Even though I don’t have it, it’d be really nice to already have it. I can just write it and it’s not a big deal.
That’s what I really like, that this knowledge is transferable. It’s really convenient to have a functional language built around these things but I can bring it to any language I want.
One thing I’m thinking of now that I should have mentioned. I said that the constructor takes the thunk and that the thunk should be a pure function. It doesn’t need to be a pure function. It does need to be something runnable so it can be an action or a calculation.
As an example, I could have a thing that lazily accesses the database. It has a delay for every page of values I get from the database. I could make my interface for the database just return these lazy things and say, “Here’s all the pages. You want page one? You call this delay. You want page two? You call this delay. You want page three? You call this delay.”
It can say, “I’m done. I’ve told you how to…I’ve given you everything I’ve got.” The code that calls that interface has all these delays. It can decide, “I only need two pages. I don’t need all 700 pages from the database so I’m just going to call these two.” Isn’t that nice? That’s the separation of concern I’m talking about.
It can say, “I just need these two pages. Yeah, I have these. Thank you but I don’t need to get all that data from the database.” I’m saving some bandwidth going back and forth from the database. The connection can be freed faster, what have you.
If you didn’t have the laziness, you would have to have some logic of you would ask for the first page, then you’d ask for the second page, then you’d stop. It’s so much nicer to be able to have the thing just say, “Here is everything I know. Here’s all the pages.”
Like I said before, pop in the stack. I’d love to see your codes. Send me a gist. That would be pretty cool to see the code you’ve written in your language. I’ll put it together. I’ll collate them all into a single gist and link to it from the page.
Speaking of which, if you want to see all of the past episodes you can go to lispcast.com/podcast. There I’ve got video version, audio version and transcript, that’s text version. That’s video, audio and text of all of the old episodes and all future episodes. I will have the future episodes, I wonder how you conjugate that.
You can also find links for subscribing, for my email, and my social media if you want to get in touch with me.
Thank you very much. My name is Eric Normand and I will see you in the next episode. Wait, is that true? No, you’ll see me but I won’t see you so what do I say? See me in the next episode? Anyway, I hope you listen to the next episode. How about that? There we go. Bye.
Freedom Mobile is continuing to grow its wireless coverage with the announcement of an expansion to Prince Rupert, British Columbia.
While there is no definite launch date, Freedom states that coverage will be active — and that it will most likely come with introductory pricing — sometime this summer.
The current Play Store on Android TV has a very similar look to Android Nouget, which looks outdated compared to the rest of the company’s modern design language.
The new Play Store design looks much cleaner and uses Google Sans font in more places to help bring it up to par with other Google apps on the TV like Play Movies.
Android TV’s new Play Store interface. (The blue and green bars are part of the live stream, not the latest update).
Google is also saying that this update will make content easier to find and apps more accessible to subscribe too.
The company is also working to integrate Assistant into the TV interface by making it know what’s on live TV through some third-party apps like Philo.
While this is a refreshing update, there are still a lot of problems with Android TV. If you ever wondered why it takes so long for your Android phone to get updates, you have no idea what it’s like with Android TV.
Luckily for Android TV owners, Google is trying to solve this problem. The tech company announced that right now 80 percent of Android TVs are running Android 7 and above, but by the end of the year it’s hoping to have at least 60 percent on Android 8 and above.
Once users get Android 8 Oreo, updates should flow in more smoothly too. Google has decoupled the launcher from the OS so it’s easier to update and ultimately should give users a better experience in the future.
While being on Android 8 seems a few steps behind Android 9 and 10 on mobile, don’t worry. The visual language currently associated with Android 8 Oreo on Google’s TV platform looks very modern and takes lots of notes from Google’s Material Guidelines.
Vidéotron and its partners in the Open-Air Laboratory for Smart Living (LabVI) have announced that a 5G testing site is now live in the Montreal’s Quartier de l’innovation.
The site replicates 5G features such as faster speeds, better geographic coverage, increased bandwidth and reduced latency.
The infrastructure supports mobile services and connected devices, and is connected to a 5G radio antenna.
“We want to give the scientific community and start-ups the opportunity to test actual applications and projects at LabVI by making the connectivity of the future available to them,” said Serge Legris, Vidéotron’s vice-president, in a press release.
The new network has been installed on the roof of the École de Technologie Supérieure, at an existing LTE site. Vidéotron and Ericsson engineered the site.
Vidéotron and its partners aim to advance innovation and cultivate research with the opening of this site.
“With 5G, innovative technological applications that serve human needs will become a reality in the next few years,” said Legris. “They will be used in smart transportation systems, security, entertainment, healthcare, traffic control and AI. The possibilities are endless!”
The development of 5G technology will support the secure interconnection of a larger number of devices, such as sensors and probes that will be capable of transmitting information in real time.
If you love dark mode on your phone, there’s a mind-blowing developer option in Android Q that forces the feature on all third-party apps.
Google added a ‘Dark theme‘ to its OS which changes things like notifications, and a majority of its apps like Photos, Contacts, and more. This developer setting takes care of everything else.
The feature is in the developer options so you’ll have to go into Settings then ‘About phone’ and tap on the build number seven times to reveal the dev settings.
Once you do this go into the ‘System’ settings. Expand the ‘Advanced’ section and open ‘Developer options.’
As you scroll through these settings, you’ll find something called ‘Override force-dark.’ Turning this on means that whenever you open an app, voila, it has a dark mode.
Truth be told, this doesn’t work great in a lot of apps, but the ones where it does it’s pretty fantastic. On a side note, you can also change the font, OS accent colour and icon shape at the bottom of the dev options.
Google is looking into developing a phone with a foldable display, but don’t expect to see a foldable smartphone from the Pixel-maker anytime soon.
In an interview with CNET, Mario Queiroz, the head of Pixel, confirmed that Google is experimenting with the technology.
“We’re prototyping the technology. We’ve been doing it for a long time,” said Queiroz, who added, “I don’t think there’s a clear use case yet.”
While Google understands that foldable displays are aimed at users that want a larger screen to view content, it’s still difficult to convince people they really need a foldable smartphone, said Queiroz.
“The use case is going to need to be something where you go, ‘Hey, I definitely need to have this.’ Right now, you don’t need to have a foldable. It’s kind of a ‘nice-to-have,'” said Queiroz.
Though Google doesn’t have any immediate announcements regarding upcoming foldable smartphones, the company is working to help third-party manufacturers adapt Android to foldable devices from other manufacturers. Google recently announced that Android Q will feature better support for devices with foldable displays.
With companies like Huawei, TCL and Samsung developing foldable handsets, it makes sense that better adapting Android to this type of device is top of mind.
The third Android Q beta adds two quality of life improvements to the ‘Battery Saver’ setting by making the feature turn off automatically when your phone recharges back to up 90 percent and adapting to your usage patterns.
This is similar to how iOS handles its ‘Low Power Mode.’ If you turn on Battery Saver at the end of the day as your phone’s charge drops lower, your phone will turn the feature off the next time you plug it in and it reaches 90 percent.
The only catch is that this feature isn’t on by default. If you want to enable it, go into your phone’s battery settings. Then open the ‘Battery Saver’ setting. There’s a toggle in this section called ‘Turn off when fully charged.’
Another improvement lets you set Battery Saver to come on automatically. It can either turn on when your device reaches a specified battery percentage or based on your routine. The ‘Routine’ feature is useful since it means that your phone will automatically go into Battery Saver mode if it thinks it’s going to run out before your next typical charge.
These are simple improvements, but they define what Android Q is all about; a bunch of small quality of life improvements that make Android easier and more convenient to use compared to previous versions of the operating system.
GM is transitioning its Oshawa vehicle assembly plant in Ontario into a parts manufacturing plant and a test track for autonomous and advanced technology vehicles.
The legacy automaker announced during November 2018 that it was shuttering the 100-year old vehicle plant. Since then the company hasn’t shared much, but now it’s decided to transition the factory into something else instead of an assembly plant.
The company is investing $170 million into restructuring the factory from a vehicle assembly into one focused on “stamping, related sub-assembly, and other miscellaneous activities for GM and other auto industry customers,” reads the company’s press release.
GM is converting the southern section of the plant into a track to test autonomous and advanced technology vehicles. This is meant to support GM Canada’s Canadian Technical Centres, specifically the ones in Markham and Oshawa. The Markham centre is currently focusing on self-driving technologies, and Oshawa is working on chassis and body subsystems as well as to enhance GM’s expertise in alternative fuels, specialty vehicles, cold weather development, according to GMAutority.
The track will take up 55-acres of land and include two straight sections that are 365 metres (1,200-feet) long that are joined by a banked curve on each end to allow continuing driving safely at high speeds.
The new GM campus is planned to employee 300 people with the ability for it to expand in the following years.
The company also states that it’s offering “special relocations to Oshawa employees for jobs at some of its other Ontario operations” in the press release.
For employees who are close to retirement age, the company is offering enhanced retirement packages.
There already seems to be a significant issue with Samsung’s recently released Galaxy Tab S5e tablet.
Reportedly, if users hold the tablet in the landscape orientation and cover the lower left corner with their hand, it causes the device’s Wi-Fi to shut off. According to SamMobile, if the tablet is held in this way the signal is blocked from reaching the device’s receiver.
To make the Wi-Fi work when holding the Tab S5e in the landscape orientation, you need to keep the device in a way where the tablet’s camera is located in the right corner. This positions the receiver at the top so your hand doesn’t block it.
The Wi-Fi doesn’t cut out, however, when the user is holding the Tab S5e in the portrait orientation with the selfie camera at the top.
SamMobile also mentions that the issue doesn’t always result in a complete lost in Wi-Fi signal. The Netherland-based publication notes that there is only a 50 percent dip in strength. However, this decrease is more than enough to ruin the experience when playing games like Fortnite or while using video streaming apps.
SamMobile continued by stating that it was not able to make the tablet completely lose strength at all.
Additionally, replacing your tablet won’t fix the issue given that it is hardware related. It’s strange that Samsung didn’t uncover this issue while testing the tablet.
We’ve reached out to Samsung Canada for more details regarding the Tab S5e’s Wi-Fi issues. However, it’s possible that users in Canada have not experienced this issue.