Shared posts

18 Apr 02:08

Squamish plan for massive development by Burrard Bridge gets a surprisingly warm welcome

by Frances Bula

So my big story for the week was the news that the Squamish are moving ahead with plans to create a huge new development by the Burrard Bridge. My story was in the Globe Thursday, with a follow-up including the mayor’s comments on Friday. (I’ll post the full stories below.)

The reaction on often-toxic Twitter was very positive, with people (at least in my stream) very excited about the thought of a lot of new housing in an area where there’s a huge demand, as well as the news that the Squamish are seriously considering making the units all rental.

I’d advise people not to break open the champagne just yet, as some members apparently are arguing in favour of the early money that some condo development would provide. As well, no one is saying what prices the units might rent for yet.

Some people are also dubious about the idea of having Westbank/Ian Gillespie as the partner, given his penchant lately (Vancouver House, Butterfly, Oakridge, Kengo Kuma tower) to build for the ultra high end. He did do the Woodward’s building, granted, with its two social-housing components, but that’s quite different from trying to figure out a market approach to providing affordable rental. CHMC people sound very excited by the project and say there’s money available (cheap financing, etc.) if the Squamish do decide to make some or all of it lower-cost.

In the meantime, the really interesting story behind all this is how the Squamish were slowly pushed off their land, which was a permanent settlement, not just a summer camp for them.

This timeline from UBC provides some excellent information and mapping of what happened over time.

As I said earlier, I’ve posted the full stories below

 

 

APRIL 11:

The Squamish Nation plans a massive housing project encompassing as many as 3,000 apartments on prime land next to a Vancouver city park, marking the first large-scale urban development by an Indigenous group in Canada.

The ambitious project next to the Burrard Bridge and Vanier Park on the False Creek waterfront in central Vancouver would occupy the last of their reserve land in the city. It is likely to spark controversy in the tony Kitsilano neighbourhood nearby, where in recent weeks residents have been protesting the development of a couple of low-rise apartment buildings.

Development of so many apartments, which the Squamish are considering restricting to all rental, could help Vancouver alleviate its housing crisis, but the city does not have jurisdiction over the Squamish land.

As a result, the city will have little legal authority over the project, unlike the relationship the city will have with two other Indigenous-led megaprojects in a more long-term roll out. The Jericho lands in the west and Heather lands in central Vancouver are being developed jointly by the federal government and a consortium of the three local First Nations.

A spokesperson for the City of Vancouver confirmed the city has no zoning or regulatory power over the Squamish proposal, but says it will work with them on services, land use and community context when an application comes in.

Squamish council member Khelsilem, who was authorized to talk about the Squamish project on behalf of the nation, said there have been some informal talks with city officials about the development, but the nation is moving forward with its plans. It has already selected the developer, although Khelsilem would not reveal the company. Nation members are being asked for their approval for the plans in a referendum.

As well, the Squamish has begun talks with the regional district of Metro Vancouver for water and sewer infrastructure.

Khelsilem said his nation wants to do something that benefits Vancouver, but also its 4,000 members. Income or profits will be used to provide Squamish members with needed social services, including housing.

He said the development is also the nation’s chance to radically alter the story about the place the Squamish traditionally called Senakw and about the sliver of land the nation band was reduced to in Vancouver after decades of expropriation and buyouts that forced them to move out of the city to reserves on the North Shore.

“It feels like the beginning of a new era. We want to make a mark of who we are in nation-building,” said the 29-year-old councillor.

Squamish people were affected when their land base in Vancouver – which originally included all of Vanier Park, as well as the land under the Canadian Forces Seaforth Armoury on Burrard – was reduced, affecting their ability to support themselves, he said. For years, people have waited for government assistance to become more self-sufficient. Now, they won’t have to wait.

“This project becomes a way to create that individual and collective wealth,” Khelselim said.

The land is likely worth millions of dollars and with a completed development of 3,000 units, hundreds of millions of dollars.

Khelselim said the initial reaction he’s heard from Squamish members is mostly positive.

“They see all the development happening around them. They’re saying, ‘We own all this land, we should get in the game.’”

Squamish leaders are favouring the idea of building all rental apartments in the project, he said. That’s not decided, though. The development, which could potentially be almost the same size as the Little Mountain housing site in central Vancouver, would also include commercial spaces, public squares and arts spaces, he said.

Khelselim said the council doesn’t want to name the developer partner yet, but that the company was chosen from five proposals after the nation asked 16 local builders to apply.

He did confirm that the Aquilinis, the powerhouse local family-run developers who have developed strong relationships and built projects for both the Tsleil-waututh and Tsawwassen bands, are not the partners.

 

APRIL 12: The Squamish Nation’s plan to build a massive housing development in the heart of Vancouver is getting the enthusiastic backing of the mayor, even though the city will have little say over how construction proceeds.

The project, which the Squamish have said they hope can begin within five years, will introduce the first high-rises that have been built in Vancouver’s historic Kitsilano neighbourhood, where protests against developers and density in the 1970s prompted a new city council to bar high-rise buildings.

But Vancouver Mayor Kennedy Stewart called the housing project a “very exciting initiative,” and an opportunity for his city to demonstrate its commitment to reconciliation with Indigenous communities. “It’s a city of reconciliation, so this is a good chance to put our money where our mouth is,” Mr. Stewart said. “I’m totally committed to this.”

The neighbourhood has been unenthusiastic about even milder forms of density, with residents protesting against two current proposals for low-rise apartments.

Vancouver has no direct control over what happens, since the land is owned by the 4,000-member Squamish Nation and is not subject to any city zoning or bylaws. The Squamish don’t even need to make formal applications to the city.

The potentially 3,000-unit project on a strip of land just across the water from the city’s downtown will be a partnership between the Squamish and Ian Gillespie of Westbank Developments, one of the most prominent developers in Vancouver, sources close to the proceedings told The Globe and Mail. Mr. Gillespie did not comment.

The development will be built on the remaining chunk of land the Squamish were left with from what was once a permanent settlement called Senakw. White settlers referred to the land as Kitsilano Reserve 6. The land size was gradually reduced, and the last residents were forced to move to the North Shore in 1913. Each family got $11,250 for the move.

In an interview earlier this week, Squamish council member Khelsilem said his nation sees the development as “the beginning of a new era” and a chance to create a new narrative about Senakw. On a practical level, the project will benefit Vancouver, while providing Squamish members with funds for social services, including housing, said Khelsilem, who uses only one name.

On Wednesday, Khelsilem said that after further talks with the project developer, there will be a referendum with members to seek their consent on the project. “The members will have the opportunity to tell us if they support this or not.”

He said that process, expected later this year, will allow for more disclosure on specifics around the project, including initial concepts and density.

STORY CONTINUES BELOW ADVERTISEMENT

The Squamish development will sit on the eastern boundary of a prominent and popular park in Vancouver and will likely require several high-rise buildings to accommodate the density, although no preliminary plans have yet been done with those kinds of details. That could block some views views looking east. The Squamish would not legally be required to abide by any city restrictions on blocking views.

Vancouver housing report shows progress on social housing, lag on low-cost rentals

Vancouver’s Squamish Nation plans massive apartment development for foot of Burrard Bridge

Mr. Stewart had no comment on the density, saying he hasn’t seen a formal plan yet.

Larry Benge, co-chair of the West Kitsilano Residents Association, said it was a challenge to respond to the proposed development because of a lack of details.

“You don’t know whether to get excited or depressed, quite frankly,” Mr. Benge said on Wednesday. “I think my reaction, overall, is wait and see.”

Mr. Benge, who said his only information on the project had come from media reports, said he was concerned about how so many new residents would fit into the area.

“This is a huge project in a fairly tight location,” he said. “But I haven’t seen any plans. I have no idea how far that has gone yet.”

He also said he was curious about how affordable the rent for the new units will be.

Asked about concerns expressed by Mr. Benge about additional details and consultation, Khelsilem said the priority of the Squamish Nation administration is to seek consent from their own members.

“At the same time, we are going to be meeting and engaging with the City of Vancouver to get their input on what kind of process we do in terms of meeting and engaging with the public , the broader public and local residents. We’ll look to the city in terms of what that might look like.”

He noted that the land is under the authority of the Squamish Nation so the city has no authority over it in terms of zoning and bylaws. However, he said the concept of making the project work in the context of surrounding neighborhoods, and city infrastructure, transportation and amenities is a necessary conversation.

“We know the city has the experts to help us put together something that’s going to makes sense for the city, the neighborhoods and the region.”

Still, he noted that the project helps deal with city needs around affordable rental units.

The mayor has been heavily promoting the city’s desire to create more rentals, but neighbourhood opposition has already come from Kitsilano to new apartment projects being developed under a new rental-incentive program.

The mayor said he’s had a couple of informal talks with the Squamish about the development, and his council will get together with the nation’s council for a dinner on Monday, a meeting intended as a getting-to-know-you event, not a land negotiation.

The Squamish are among the most entrepreneurial and business-focused nations in the province. It owns the land the Park Royal shopping mall sits on and collects rent from the operator.

For the Vancouver project, Squamish councillor Khelselim has said the nation is seriously considering making all the units rentals, although a final decision hasn’t been made.

If that were the case, the project would add almost the same amount of rental housing to Vancouver as the city has been able to get from developers in the past five years using incentives.

Mr. Gillespie has been involved in some unique projects throughout the city, notably Woodward’s, where he incorporated two social-housing buildings with market condos and retail, office and university space in the former downtown department store. But he has also become controversial as Vancouver’s real-estate market turned ugly the past few years, because of his high-end projects that he markets in Asia.

The Squamish nation is planning to hold a referendum on the deal.

With a report from Ian Bailey

18 Apr 02:08

Getting More Of Your Community’s Questions Answered

by Richard Millington

In a mature community, the challenge isn’t getting more questions, but getting better questions.

You have to tackle several challenges at once:

  • Repeat questions.
  • Questions with terrible headlines.
  • Poorly tagged or categorized questions.
  • Questions which don’t provide enough detail.

Mature communities should make it slightly harder for non-veteran members to ask a question, not easier.

StackOverflow is a good example of this process. If you want to ask a question, you can either go through the wizard or traditional mode. Let’s use the wizard.

First you have to highlight what kind of question you have:

If you select hardware recommendations, you’re taken to a separate site where you can get hardware recommendations.

This immediately prunes a lot of the bad questions which will appear in the community.

Next you highlight what topic your question is about.

Notice the power of sharing good and bad examples. This tackles the problem where members are bad at tagging their posts (or reluctant to tag their posts).

Next it’s the question title.

Again notice how useful it is to provide examples of real titles in the community. Specific examples make it a lot easier for members.

The fourth step is to check there are no existing solutions to the question.

Forcing people to check for existing answers before asking a question is a powerful way to eliminate duplicate questions. It also helps members find answers to questions they were not able to formulate themselves.

Only now, after jumping through these five steps, can you write your actual question.

In every step, you’re guided to create the best possible question. This is a lot of practical advice in a short amount of time. You’re told to explain your goals (with examples), provide background context on what you’ve tried, highlight code you’ve used, and describe the results you’re getting compared with what you want.

Only after completing all these steps can you ask a question.

The power of this should be obvious. Not only does it help members get better responses, it also excites veterans with new questions they can solve.

If you’re trying to increase the percentage of questions which are solved, the secret isn’t to get more experts to answer questions, but to provide fewer, better, questions for them to answer.

18 Apr 02:08

9/11 Memorial My hotel last week in New York w...


9/11 Memorial

My hotel last week in New York was just around the corner from where the twin towers once stood. I didn’t have much spare time during my stay there, but I was able to steal a few minutes the night before I left to go visit the memorial.

I still can’t think quite straight when I’m there. My thoughts are consumed with the discontinuity of what was once there and no longer is with us except in our memories.

18 Apr 02:08

Sunsets Are Kryptonite to Some Fancy Robot Vacuums

by Liam McCabe
Sunsets Are Kryptonite to Some Fancy Robot Vacuums

There are plenty of reasons to love iRobot’s high-end Roombas. We enthusiastically recommend a couple of them in our guide to the best robot vacuums. But for one model, the Roomba 960, the clever, camera-based navigation system comes with one weird side effect: It doesn’t work well in dimly lit rooms.

This makes sunsets a problem.

The Roomba 960 uses a low-resolution camera to keep track of where it is in your home. When there’s not much light, the camera can’t see where it is. (And to be fair, other brands of camera-based bots have the same problem. We’ve tested Samsung robots, for example, that are even more sensitive to low-light conditions than the Roombas.)

I first noticed the quirk almost as soon as I started testing iRobot’s first robot with camera-based navigation, the (now-discontinued) Roomba 980, way back in 2015, when it was brand-new. I turned on the bot around 3:30 p.m., planning to finish my workday by following around this cutting-edge, $900 robot as it cleaned my apartment, taking notes on how much more advanced it was than the simpler bump-and-run robots (which navigate rather randomly by bouncing off walls and furniture) that iRobot had made for more than a decade.

Since this was December in Boston, the sun began to fade right as the session started, and my apartment was totally dim by about 4:10 p.m. I hadn’t bothered to turn on any lamps because I was busy watching all that next-gen robot action. All of a sudden, the Roomba stopped in the middle of an open room and blooped out a sad, short tune. “Error 17,” it lamented.

I turned on a lamp so that I could see what was going on, stared at this fancy robot vac with a stink-faced look of confusion and disdain, pressed Start because why not, and watched it pick right up where it left off. Odd, but I let it go.

A few days later, the same thing happened again. “Okay, what the hell is going on here?” I wondered.

Pull Quote

All of a sudden, the Roomba stopped in the middle of an open room and blooped out a sad, short tune. “Error 17,” it lamented.

Although the robot had been out for only a few weeks, Error 17 was already a common complaint among new owners who had written early reviews. Dim lighting seemed to trigger it, and the new camera-based navigation system was the root cause. The fix was easy enough: Turn on the lights. But in those brief dim moments, sunsets were kryptonite to these fancy robot vacuums.

I asked iRobot what was going on, and the reps said that “the robot is able to go under dark beds and into a dark room.” They continued, “However, all vision-based systems need at least some light and the 980 will have a limited range in very low light. The Error 17 is more likely to happen in a crowded area, like if someone runs it in a dining room in the dark or near dark—because the error in the other sensors becomes too great. iRobot’s customer feedback/studies has found that the vast majority of people run their Roomba during the day.”

It looks like iRobot has figured out how to get its newer models to work better in low light. The company’s newest flagship robot, the Roomba i7+, has worked fine for me around sunsets, and I’ve yet to find an owner review citing that as a problem. iRobot told us that this model has a better camera, along with more memory and processing power, than the 900-series Roombas did—though the company stopped short of promising that it works well in the dark, saying that “it’s possible these updates to the i-Series also help in low light.”

What do you want to bet that when someone finally invents a robot that can climb stairs, we’ll hear from owners who watched theirs jump into the shower?

18 Apr 02:08

[ridgeline] Inoh Tadataka and the Tools of a Walk

by Craig Mod
Dearest fellow achy feeters — Day one of the walk. The big walk, the long walk. Today: Twenty seven kilometers up out of Kamakura into Yokohama. Lots of asphalt. Getting the feel for my pack and how much I packed. It’s got about 10kg of stuff in it — you know, tools. It’s a mobile photo and audio production studio. Speaking of tools — I’ve been thinking about tools for the past few months, ever since I visited Inoh Tadataka’s museum in Sawara, Chiba.
18 Apr 02:07

Midnight Kitchen making ice cream sandwiches 18July06 - 1 added as a favorite.

by monkeyflowers
monkeyflowers added this as a favorite.

Midnight Kitchen making ice cream sandwiches 18July06 - 1

18 Apr 02:07

The Bug in Apple’s Latest Marketing Campaign

by Ashley Boyd

Apple’s latest marketing campaign — “Privacy. That’s iPhone” — made us raise our eyebrows.

It’s true that Apple has an impressive track record of protecting users’ privacy, from end-to-end encryption on iMessage to anti-tracking in Safari.

But a key feature in iPhones has us worried, and makes their latest slogan ring a bit hollow.

Each iPhone that Apple sells comes with a unique ID (called an “identifier for advertisers” or IDFA), which lets advertisers track the actions users take when they use apps. It’s like a salesperson following you from store to store while you shop and recording each thing you look at. Not very private at all.

The good news: You can turn this feature off. The bad news: Most people don’t know that feature even exists, let alone that they should turn it off. And we think that they shouldn’t have to.

That’s why we’re asking Apple to change the unique IDs for each iPhone every month. You would still get relevant ads — but it would be harder for companies to build a profile about you over time.

If you agree with us, will you add your name to Mozilla’s petition?

If Apple makes this change, it won’t just improve the privacy of iPhones — it will send Silicon Valley the message that users want companies to safeguard their privacy by default.

At Mozilla, we’re always fighting for technology that puts users’ privacy first: We publish our annual *Privacy Not Included shopping guide. We urge major retailers not to stock insecure connected devices. And our Mozilla Fellows highlight the consequences of technology that makes publicity, and not privacy, the default.

The post The Bug in Apple’s Latest Marketing Campaign appeared first on The Mozilla Blog.

18 Apr 02:04

Bike Build Ideas: Brett's Do-it-All Campeur

by noreply@blogger.com (VeloOrange)
by Igor

Brett came to us to help build up an all-weather Campeur into a do-it-all commuter, light tourer, and rail-trail crusher that exudes class with a splash of modern components. Here's the final product! You can see the complete build list right here.




It was my first time installing the Shimano Tiagra 4700 component set and I was quite pleased! Not as finicky as an 11speed group and a bunch more affordable without sacrificing Shimano's new ergonomics.



The Nouveau Randonneur and Removable Faceplate Quill Stem makes a great, modern cockpit.



The front Snakeskin Fender is securely mounted directly to the rack.


Ready for a Randonneur Handlebar Bag!


The Campeur Rear Rack will hold commuting items like a laptop, extra clothes, lunch, etc and help get the load off his back.





Campeur Rack mounts super securely to the cantilever studs.



The combination of our 50.4 Crankset and an 11-32 cassette is perfect for commuting and light touring.


Brett often commutes in boots, so he'll use all the real estate the Sabot Pedals can provide.






I've used the Teravail Ramparts on several builds at this point and have been very pleased. Simple file tread, foldable, tubeless compatible, and lightweight. What more do you want?




18 Apr 02:04

Passive Aggressive Activism

by peter@rukavina.net (Peter Rukavina)
18 Apr 02:04

How Safe Is Your Privacy in a Smart Home?

by Ganda Suthivarakom
How Safe Is Your Privacy in a Smart Home?

A version of this post was sent to our weekly newsletter mailing list. If you’d like to receive this in your inbox, subscribe here.

Yesterday I was startled to hear my Amazon Echo say, out of nowhere, “Okay, I’ll add [not sure what she said] to your shopping list.” Worried I had just inadvertently asked for Prime delivery on some random $200 tchotchke, I checked the app—Alexa had added “kidney c.c.,” “marijuana,” and “golden notes to the recruiter” to my shopping list—none of which I asked for ¯\_(ツ)_/¯. What’s she been listening to, anyway?

It’s getting creepy out there. We at Wirecutter love the convenience of smart light bulbs and smart locks but we also approach them with a measure of concern about the safety of our privacy and security. As our smart-home writer Rachel Cericola writes, these devices can make your home vulnerable to digital intrusions from prying eyes. This Opinion piece by The New York Times (Wirecutter’s parent company) talks about how easy it is for a bounty hunter to buy location information from cellphone carriers to track a person down. This great CNET piece reports that facial recognition in devices like the Nest Cam IQ, Honeywell Smart Home Security, and even the Sony Aibo robot dog don’t comply with Illinois’s Biometric Information Privacy Act, which “defines ‘biometric identifiers’ as retina scans, iris scans, fingerprints, hand scans, face scans and voiceprints.” As reported in the New York Times, cameras have been installed (but not yet activated, so they say) on planes. And, I’m alarmed by the idea that my DNA could be used to implicate a member of my family—for generations to come—in a crime, with companies like FamilyTreeDNA voluntarily giving law enforcement access to the personal data they’ve been entrusted with.

I talked to our smart-home team, Rachel and editor Jon Chase, about Wirecutter’s approach to understanding the risks. If we were to write up a “Why you should trust us” chapter for the whole smart-home section, we’d say that we:

1. Engage every company we review to understand their privacy practices in detail.
2. Keep up with the ever-changing news.
3. Update our guides constantly to reflect what we have learned.

Jon said, “Currently, when we select new products for testing, we send a detailed privacy and security questionnaire to every company involved, far in advance of publication.” We don’t expect you to read your terms of service in detail, even though we do. We look for the information being collected—such as photos, audio, location—and we find out whether or not companies are sharing those details with third parties.

We’ll be encouraging companies to be more transparent and to push information out. “If there’s a problem with your car, you get a recall notice and directions for fixing it. It would be great if such universal standards and systems existed for smart home, too,” said Jon.

For the latest updates, check out the The Best Plug-In Smart Outlet and Do You Need a Smart-Home Hub? And for more tips from Jon on how to stay safe out there, check out our video.

PSA: Game of Thrones premieres tonight. Also, tax day is tomorrow. You probably already knew that, but just in case. And finally, National Park entrance fees will be waived on Saturday, April 20. Get out there!

New this week

The Best Pregnancy Test
Updated April 8

List: What to Bring to an All-Inclusive Tropical Resort
Published April 9

The Unbearable Lightness of Money Diaries
Published April 9

Don’t Get the Disney Credit Card. This Other Disney Card Is Better.
Published April 9

The Best Time-Tracking Apps for Freelancers
Published April 10

List: Gear to Make Your Spring or Summer Staycation a Real Vacation
Published April 10

The Best Lawn Mower
Updated April 11

Why This Innovative New IKEA Studio Will Win Over IKEA Haters
Published April 11

Chase Sapphire Reserve Review
Published April 12

The Best Air Conditioner
Updated April 12

The Best Noise-Cancelling Headphones
Updated April 12

Things we’ve been enjoying lately

Some good listening, watching, and reading you may like

Listen: Mom and Dad Are Fighting [Slate]

“Of the several dozen podcasts I subscribe to, this is one of the few that I listen to religiously and from beginning to end. Each week, the hosts share their parenting wins and fails, their advice for parenting kids of all ages, and excellent recommendations—all with empathy, thoughtfulness, and plenty of humor.“

—Winnie Yang, editor

Stepping Into the Uncanny, Unsettling World of Shen Yun [The New Yorker]

“Have you ever wondered what a Shen Yun performance is actually like?”

—Tim Barribeau, editor

NYT Parenting newsletter [The New York Times]

“The New York Times’s new weekly Parenting newsletter, helmed by the inimitable Jessica Grose, is fantastic. She had me at ‘Because I am a monster, I delight in throwing my children’s artwork away while they’re sleeping.’ This newsletter is wonderful.”

—Ben Frumin, editor-in-chief

18 Apr 02:03

How to Design a Good Website without Any Technical Skills

by Guest Author

Modern businesses already know how to handle all the steps of modernization to improve user experience, and other companies on the market follow this trend, too.

When we’re talking about businesses from the new era, it wouldn’t be fair to skip one of the most important topics – website design. Nowadays, we know that a decent website is a must-have, but on the other hand, we also think that we need advanced technical skills to create one.

With that in mind, here are five tips that will help you improve all aspects of your business easily and cost-effectively, and to stay ahead of the competition.

Check out the Competition

If your competition is a little bit ahead of your brand when it comes to modernization, you should take advantage of your current situation. Instead of being upset, you should check out your competition’s website and try to realize what’s good, and more importantly, what’s wrong about their web pages.

Learning from others’ mistakes is a good beginning – you won’t waste your time trying to fix issues that could have been avoided.

Besides, your competition’s website can help you realize your customers’ preferences. If your competition’s web page includes a rating system, you should check out the users’ ratings too.

You also should pay attention to details that work well for your competition and try to introduce such features or innovations to your website. Compare good and bad characteristics from a few sites and try to mimic all the positive things, and to avoid the negative ones.

If you’d like to start your business but you aren’t sure which business field will bring you the most revenue, here are the best business ideas for 2019.

Website Builders or CMS

After you perform the very first step, it’s time to take advantage of all the collected data – put your idea into action. However, if you have ever mentioned your idea about modernizing your business to your friends or co-workers, they surely warned you to choose the right platform for building your site.

If terms such as “website builders” or “CMS” sound familiar, you’re on the right path. However, you should choose between website builders and a content management system, and we’re here to help you.

Well, it’s true that both solutions work well in certain circumstances, but if you’re looking for a simple solution that will allow you to design a static website, you should go with website builders. Here are a few solutions to choose from based on your brand’s needs and requirements.

Stock Photos & Easy Design Solutions

With a website builders’ beneficial feature that allows you to choose from hundreds of designs, web design is a simple process. However, if you don’t have a graphic designer and photographers in-house, here are some helpful tips.

When it comes to design, you surely know about that saying “less is more”. Well, in such a case, you should listen to the advice and try to create a simple and transparent solution. Building a website that’s easy to understand and navigate is half the job done, and that’s why you should create a customer-centered, user-friendly design that will increase their satisfaction.

As we mentioned earlier, you should import some images to your web page, too. If you want to optimize your site and to attract more clients, you should go with stock photos, in other words, royalty free photos.

Resources to Help You If You Get Stuck

We tried to provide you with essential information to help you avoid potential mistakes and issues. However, everyone gets stuck sometimes. If you stick to the plan, the chances that you’ll make a mistake are low, but we should discuss the domain name as the only unstable step towards a successful website.

A domain name plays an essential role when it comes to online marketing and search engine optimization, and that’s why you shouldn’t get stuck here.

Still, in case you get stuck somewhere else, and you have chosen some of the website builders such as Wix, Weebly, or Squarespace, they will provide you with all the necessary support and help you develop and maintain your webpage, blog, or ecommerce store.

Test Before You Go Live

Even if you’re sure that everything is working well, you should test your website before launching. You don’t want to push your potential customers away with mistakes related to spelling, grammar, punctuation, or with poorly formatted posts. Besides, you should check images, and other stuff included in the content of your website.

On the other hand, there are technical aspects to check on – mobile friendliness, website speed, compatibility with common browsers, etc. Another important thing is the navigation – check if your website visitors can enjoy the entire journey without any troubles or pop-up errors.

In the end, you should test the search engine optimization of your website, and check keywords, title tags, metadata, XML and HTML sitemap, analytics, and social media integration. Plus, you should test traffic loads, and most importantly, your backup system.

After you make sure that everything works well, your website will be ready to go live. Think like a website visitor and try to figure out which parts of your website could cause dissatisfaction. If there is something, go back, resolve the problem, and continue towards success!

The Bottom Line

A couple of years ago, the entire process used to last much longer, and only a person with web development skills could help you with this. Luckily, nowadays you can handle all these steps alone. By combining these easy-to-use and cost-friendly solutions, you can create, maintain, and run your website without any technical skills.

Which part of the process of creating a website seems the most challenging to you? Let us know in the comments!

Anja Skrba – Content Creation Manager, FirstSiteGuide

Anja Skrba is a Content Creation Manager for FirstSiteGuide.com an educational website which provides tutorials and guides that help people create, grow and maintain their online presence. You can connect with her on Twitter or LinkedIn.

16 Apr 17:26

Volkswagen präsentiert riesigen Elektro-SUV

by Externer Autor
Volkswagen präsentiert seinen großen elektrischen SUV für 2021 mit dem I.D. Roomzz Konzept. In Shanghai hat Volkswagen erste Hinweise zu seinem kommenden, elektrischen SUV gegeben.Volkswagen zeigt in Shanghai seinen großen elektrischen SUV für 2021 mit dem I.D. Roomzz-Konzept. Dort hat VW erste Hinweise zu seinem kommenden, elektrischen SUV gegeben. Als Vorläufer eines Serienwagens, der 2021 vorgestellt wird, hat das Fahrzeug [...]
16 Apr 17:19

Pixel 3a and Pixel 3a XL will reportedly cost $650 and $800 in Canada

by Igor Bonifacic

Google’s forthcoming pair of mid-range Pixel smartphones, the Pixel 3a and Pixel 3a XL, will cost $650 CAD and $800 CAD, according to a new leak.

The information comes courtesy of Reddit user ‘livedadevil,’ who shared an image from their retailer’s backend over the weekend.

Pixel 3A pricing

Referencing the two phones by their “Sargo” and “Bonito” codenames, the backend image also confirms the new Pixels will feature 64GB of internal storage.

To put the price of the Pixel 3a and Pixel 3a XL in perspective, the Pixel 3 and Pixel 3 XL start at $999 and $1,129 in Canada. All in all, a decent discount, though likely not as much as some were hoping.

This is not the first time ‘livedadevil’ has leaked the Canadian price of an upcoming smartphone. In February, they said the LG G8 ThinQ would cost $1200 CAD off contract, which proved to be almost spot on. Depending on the carrier, the G8 currently costs between $1,050 and $1,250 in Canada.

Source: Reddit

The post Pixel 3a and Pixel 3a XL will reportedly cost $650 and $800 in Canada appeared first on MobileSyrup.

16 Apr 17:19

Samsung will reportedly launch a Galaxy Note 10 ‘Pro’ in 2019

by Dean Daley

Here comes another ‘Pro‘ version.

The Samsung Galaxy Note series is known for being a flagship lineup of handsets. Usually each year the series consists of a single handset — the Galaxy Note 8 in 2017 and the Galaxy Note 9 in 2018, for example. However, this year it appears Samsung will do things a little differently.

Previous rumours had suggested Samsung will launch four Note 10 variants: two LTE models and two 5G versions. One of those models will be called the Galaxy Note 10 Pro, according to notable Samsung leaker Ice Universe. 

Another past rumour had indicated that Samsung will launch 6.75-inch and 6.28-inch variants of the Note 10. It’s likely that Samsung will name the larger 6.75-inch handset the Galaxy Note 10 Pro.

Further, it’s similarly conceivable that Samsung will, similar to the S10+ 5G, call the larger 5G model the Note 10 Pro 5G

Samsung will reportedly unveil its Galaxy Note 10 series on August 8, but until then take these rumours with a grain of salt.

Source: Ice Universe 

The post Samsung will reportedly launch a Galaxy Note 10 ‘Pro’ in 2019 appeared first on MobileSyrup.

16 Apr 17:19

Apple is reportedly investing $500 million into Apple Arcade games

by Bradly Shankar

Apple has committed at least $500 million USD (about $669 million CAD) to its upcoming Apple Arcade game subscription service, according to a report from The Financial Times.

Unveiled last month, Apple Arcade is a monthly subscription service that gives users unlimited access to more than 100 mobile games across iPhone, iPad, Mac and Apple TV.

The Financial Times’ report suggests that Apple will invest “several million dollars” into the development of each of these titles.

However, Apple’s funding will reportedly come in exchange for mobile exclusivity to the App Store, meaning that these games will not be available on the Google Play Store. However, developers are expected to be able to bring their games to consoles and PC if they so choose.

In addition to helping fund development, Apple will offer an “extra incentive” to developers to keep their games off of Google Play, according to the report.

Some of the confirmed Apple Arcade titles include Toronto-based Snowman’s narrative puzzler Where Cards Fall, Lego multiplayer brawler Lego Brawls and the mysterious Fantasian from Final Fantasy creator Hironobu Sakaguchi.

It remains to be seen exactly how much of a profit cut will be given to developers, however. Pricing for Apple Arcade has also yet to be confirmed, although Apple has confirmed that Arcade titles will be free of any in-game purchases.

Apple has also remained quiet over the revenue split over its Apple News+ monthly news subscription service, but some outlets say Apple is keeping 50 percent per membership. Apple News+ costs $12.99 CAD/month.

It’s unclear if Apple Arcade will follow a similar business model.

The service is slated to launch sometime this fall.

Source: The Financial Times

The post Apple is reportedly investing $500 million into Apple Arcade games appeared first on MobileSyrup.

15 Apr 04:28

Twitter Favorites: [modernserf] Do people just, like, _know_ what to write in cards?

Justin Falcone @modernserf
Do people just, like, _know_ what to write in cards?
15 Apr 04:28

Why you shouldn’t hide your data

by Eric Normand

In OOP, we wrap our data in an interface, which is called implementation-hiding or data-hiding. In functional programming, we don’t do that. We use our data in the nude. We pass the data around and allow the context to interpret the data as it seens fit. In this episode, we look at this significant difference between OOP and FP and how to do it.

Transcript

Eric Normand: Why you shouldn’t hide your data? By the end of this episode, you’re going to understand the benefits of having your data exposed to the world, why functional programmers like it that way, and how to avoid some of the major pitfalls that you might come across if you do that. I want to end with a process that you can use that will help you design your data.

Hello, my name is Eric Normand, and I help people thrive with functional programming. This is important because this is one of those very significant, philosophical differences between object-oriented programming and functional programming, so it’s worth digging into and emphasizing it, spending some time there.

The first idea that, I think, it’s important to understand, if you’re an object-oriented programmer, you might be wondering why don’t you want to encapsulate your data? Isn’t that a good thing? The question is why would you hide it in the first place? Why would an object-oriented programmer hide it in the first place?

In the object-oriented world, you have a bunch of mutable state. Instead of having it all grouped together and living in this big soup of mutable state, you say, “Hey. I’m going to take this little piece of mutable state, one little chunk of it, wrap it up in an object.” So you can’t directly get at the state.

I’m going to use the methods to ensure that the state is kept consistent. You might have two values that have to be kept in a very precise relationship. If I change one, I need to change the other.

[pause]

Eric: What you’re doing is you’re creating a level of indirection that does not allow them to get out of sync. The programmer writing to that interface doesn’t have to worry about them getting out of sync anymore. They can put that out of their mind. It’s compartmentalized. It’s modular. It’s wrapped up. That’s the main reason why an object-oriented programmer wants to not have direct access to the data.

They need the data at some point. They need to know what those pieces of data are, but they have to ask. By asking through this interface, it allows the consistency.

Functional programmers, typically, are either not using mutable data or very sparingly are they using mutable data. A large part of that problem goes away. We don’t have the same scale of problem that requires that kind of encapsulation.

If your data isn’t changing, once you create it, it’s fixed. You can create it in the right relationship and then you’re done. You don’t need to hide it. You don’t need to encapsulate it.

It might be very useful to go and talk about what data actually is. If you look in the dictionary, it’ll say that data is facts about events, so something happens and you write down what happened as much as you want about that thing.

The user bought this shirt. Even more precise, the user clicked the “Buy” button on this shirt. Or the thermometer said 25 degrees. That’s at this time. It’s an event that happened. We got a thermometer reading, that’s the event. We wrote down some information about it, the fact.

What is the current value of the thermometer is different from the value of the reading, which is why we can say it’s immutable. At that reading, this is what we got. It doesn’t matter what it is now. This is what we got at that time. There’s a certain structure to that data, and that structure is also immutable.

What functional programmers like to do is leave it as data. Do not wrap it up. Do not make a new API to talk about this data, or to manipulate this data, to read this data, because we’re not modifying it. Do not make a new API, let it be itself. Let it be this piece of data that can move from context to context, and that context determines how they want to read it.

In one context, you might interpret, let’s say the temperature, and think of it as you want to classify it into T-shirt, long-sleeve shirt, sweater, or jacket weather. You bucket it into those categories, so that you can tell the user what to wear that day.

Another part of the system would use that same bit of data and say, “Well, I’m collecting these things, and I’m going to show a graph over time of the temperature.” Another part of the system might say, “Well, I’m going to record how often the temperature gets read. I can make sure, like a monitoring service, make sure that we’re getting frequent enough temperature readings.”

These are all valid ways to interpret that same data. The fact is the same, at 3:00 PM, the temperature was 25 degrees, but the usage is different. We want to keep it as raw and factual as possible, so that it can be as useful as possible to all these different contexts. Just to contrast it, not to say it’s bad, but in an object-oriented world, you would need to deal with all of these contexts.

Typically, you would say, “Well, we’re going to add methods to that temperature-reading class and that reading might be converted into what you should wear.” Is it a jacket weather, or is it T-shirt weather? Another reading might be some way to turn it into an average, another method would be turn it into an average.

Typically, what happens is this class has to service so many different contexts that what you wind up doing anyway is putting a getter that says, “Get the temperature,” and then those contexts read those getters. It doesn’t have any functionality. It’s not protecting anything. It’s giving you the data.

If you’re going to do that anyway, you might as well expose the data. Let it be exposed, be visible all the time, because then if it’s reusing an existing data structure, then you don’t have to learn a new API. You already know how to access that data structure.

This is one of the objections that functional programmers have, “You’re creating this new API that I’m forced to use in all these different contexts, and at the end of the day, you need a backdoor.” You put all these getters on there in case the API isn’t complete, and then that’s what people wind up using anyway. It doesn’t make sense to go this roundabout way.

In practice what I’ve found, this is my experience, is that the context wind up defining their own operations on the data themselves in a way to interpret it. Instead of having some abstract universal API for this piece of data that is useful in all contexts, the only thing that’s really useful in all contexts is getters.

Then you have each context having its own interface which determines how to interpret that data. I’ve really churned through that pretty well. You just treat it as data. Different languages do it in different ways.

In Clojure we tend to use a lot of maps with keywords as keys and then the values in the maps, the data values are in the values of the keys. We use the keywords to name the values and that gives it the structure. Its key-value pairs where the names are well understood among all the contexts.

Its getters. Don’t get me wrong, its getters, except they are not custom for each piece of data. It’s still a HashMap, you can still do what you need to do, what you’d normally expect a HashMap can do. You can list all the keys, for instance. You can put the keywords into an array or a vector.

Now you can say, “I only care about these four keys, give me a map that just has those four keys in it.” This is an operation called select keys, as opposed to an object that does not custom and bespoke for that one type, for that one usage, that one concept.

That class does not participate in all these other operations that are common. You’ve lost out on this opportunity to be a deeper part of the ecosystem. I don’t want to beat that horse too much. We like to leave things as data. Now you have Haskell which you, typically, would define a new type.

They don’t use HashMaps the way we do in Clojure. You define a new type to represent the thing and yet, that type is still totally exposed. Once you know the type, you can get all the data inside. It’s available. In Haskell, you get more leverage from the type classes that can be automatically derived from the data, like a breather in a printer.

Here’s the thing though, even object owner programmers nowadays are already doing this and you can tell that they’ve been doing it for while, and they’ve…I don’t want to go too deep into the object-oriented programming, but you yourself are probably already doing this.

When you call an API endpoint and you’re passing on JSON or XML, that’s data. That JSON that you send or that you get back, that’s data. It’s not an object with methods that are hiding your data. It is a piece of data. It’s raw and in a sense, it’s immutable because it’s a copy.

The server serialized you a big JSON value and you de-serialized it into your own memory and it’s a copy. Changing this thing is not going to change what’s on the server. In a sense, it’s immutable. You know what the server told you, that’s the event. This is what the server told me to this request. I have a fact about it. This is what it is.

Now, you notice a lot of enterprise Java systems tend to serialize things a lot, serialize things to X amount and then even sometimes read it directly back in which is weird but when you look at it from the perspective of they’re making copies of data and what they really want is the data itself.

They don’t want all this interface around it, they’re going to serialize it and read it back in again. There’s something going on there, there’s a reason they’re doing it. It’s very expensive to do, but they want the immutable data. They want the ability to get at the raw stuff. The thing is that functional programmers…How do I say this?

They want to have that same feeling of, “I called this method,” or “I call this app endpoint and I got the JSON back and I have the data.” They live in that, all throughout their whole system, not just that the API boundaries.

They’re always there. They’re always dealing with data. Haskell’s going to be much stronger typed when you’re within the language and not reading in random JSON from around the Internet. You’ve got much more control and knowledge of what each type is but you’re still handling data. You’re converting data from one format to another, from one structure to another. Its data and it feels nice. It really does.

Benefits. The first thing is you don’t have to write all those getters and setters. That’s huge. You’re going to write them anyway, why not make that how you access the object as the baseline. You can defer writing all this huge interface until later when you understand the context more and you’re starting to find how you’re going to use this piece of data and then find that into some functions.

Another thing is when you’re using the data structures that come with your language, they’ve already got printers. They’ve got readers. This is if you’ve got a decent language. For instance, if you’re using objects, arrays, numbers, strings and JavaScript, you can serialize that to JSON without even thinking about it. Read it back in, not even thinking about it. It’s just one function call.

If you’ve got a custom class, you have to come up with a way to serialize it. How are you going to represent that on the wire when you’re going to send it over? To me, as a Clojure programmer who’s used to saying, “I’m just working in maps and other data types,” I can serialize it to disk if I want to. So freeing, so freeing. I don’t have to worry about writing all that stuff myself.

Plus, they have known interfaces. If I get a HashMap, I know what I can do on it. I don’t have to go look up the API docs. What are the methods on this object? I can print it out at the repo and just see, “Oh, here are the keys that it has. These are the ones I want to access.”

There’s something freeing about that. It gives it that immediacy. It feels if you had an object-oriented system, you would be like, “OK, you have all these different components. Each one has its own user manual. You have to read all the user manuals before you can start using the device.”

Each class is like its own little device type. In functional, it’s much more like, “OK, there’s four main things, four main components. You learn how they work and now you’re putting them together in different ways.” It’s like there’s four kinds of LEGO blocks. You figure out how they work together and how to use each one individually. Boom, you’re done.

Instead of having all these components that are all custom and all bespoke, you have four LEGO blocks. You can create millions of combinations when you have those. The last thing is you can always write functions to canonize or specify how you want to use the object, the data.

I’ve had another episode, wow, like 8 months ago, where I’d said, “Define your interface first.” A couple of people, not a lot of people…I think, I was being pretty clear, but a couple of people were like, “What? That’s like object-oriented programming. How can you do that? You want to leave the data as data.”

Not saying when you write an interface, you’re changing the way you access the data, at all. This is what I’m saying, that each context is going to use that data in a different way, and at some point, you can start taking all that…

In one context, you can start saying, “This is how this context wants to interpret this data,” and you write it into functions. Then you call those functions instead of duplicating that functionality all over the context. That’s all I’m saying.

By thinking about the interface, and especially, if you’ve got different context that you can foresee having, that those interfaces will influence the data and how it will be structured. That’s what I’m saying. You can always write functions that define how this context is going to interpret this data. That’s an interface. It’s just that each context has its own interface, and its still data.

In Clojure, it’s still a HashMap. In JavaScript, it’s still JSON. It’s still data, but this context will say, “I’m looking at these four keys, and I need to manipulate this part of it.” The interface can come later. You can differ it, or you can think about it upfront if you want. It’s up to you.

How do we do this? Just use data. Use the existing data structures that you have available in your language. Or if it’s something like Haskell, that makes it really easy to define new data types, then use those. Rust, Haskell, Elm, these are great languages for defining new data types, but they’re data types. They’re not classes. They’re not objects. They’re data.

Start thinking of your data not as the current value of something but as immutable facts. It’s like if someone wrote down a fact on a piece of paper, and then boom, that’s it. That’s the fact.

What if they were wrong? The fact is they were wrong, so you want to remember that. If they were wrong, that’s the problem with computers, is garbage in, garbage out. You don’t want to overwrite what they said, because what they said is what you got, was what got recorded down. What you need is a new [laughs] event, a new piece of data that represents the correction.

It’s like a little new connection you’ve got to make, new way of thinking about it, that a fact is a fact and data is writing down the fact. Another thing is that as these pieces of data evolve over time, as your software evolves, they’re going to change. The data types are going to change. The data that you represent is going to change.

One thing that helps with that evolution is to assume the least about the data as possible. You’re going to have to assume some things, like, “I can’t calculate the area of this circle if I don’t have a radius. I can’t calculate it.” You don’t need to know the color of the circle to calculate the area, so don’t look at the color. Look for the radius.

As it evolves, more keys will be added, and that function will still work. More data will be added to that piece of data, but the radius will still be there. It will still work. That is one way of protecting, future-proofing your code. You shouldn’t look at stuff that you’re not interested in at that point in the context.

The other thing is, if it has keys that you don’t need then let it be. “OK, you can pass me anything else, but as long as I have that radius, I’m good.” Don’t tightly validate, like, “I need a piece of data with only a radius,” because then you’re not allowing for future evolution. Let it be, let it pass through. “I’m just going to look at the radius. Whatever else is in there, whatever.” That’s a tip.

Let me recap. Data is data. It’s just facts about events. It’s in the dictionary. Look it up. It’s immutable. A fact is a fact. If you ask someone a question and they answer it, the event is the answering and the fact is what they said.

They might’ve been wrong. They might’ve changed their minds, but that time that they said that thing, it happened. That’s the only thing we can rely on, unless we ask them again in an hour, “What do you think now?” That’s the thing that’s going to circulate through the system. We can’t know what’s inside their head when they change.

You’re probably already doing this, that you’re doing it between an API boundary, this system talking to that system, this service talking to that service. You’re sending JSON, or you’re sending XML, or some other data format. It’s just data. When you send it or when you get it, it’s just data.

Functional programmers extend that more. The whole system is just data, why not? It has a lot of benefits. I certainly enjoy them. Encapsulating your data also has benefits. It does. It’s sometimes nice when you have a really expressive, powerful interface to that data that comes along with the data.

It’s nice, but it also has some costs. You have to write your own printer. You have to have a reader. You have to learn the interface. You have to read the manual. You have to understand how it’s working. You have to trust it, that’s another thing.

The benefits of not having to do all those things, it’s much faster to get started, all the getters are known. Number two, they have all the printers, and the readers and a known interface. Number three, they already participate in all of the existing stuff that those data structures can participate in.

You can always add an interface program. That’s what programming is. You’re making functions that interpret that data in different ways.

So you need immutable data, and then the big one is, if you don’t care about the color, do not look at the color. Look at the radius if you want to calculate the area. Number two is, don’t worry if someone passes you in something you don’t understand. You don’t need it, don’t worry about it, just goes to the next function how it is.

One thing that we do in Clojure a lot, which might scare some people but we really benefit from it, is you could have a function that takes the circle data structure. It’s a map, has a radius key with a value. We’re ignoring all the keys, but we write a function that takes that map, calculates, it takes out the radius, and then puts a new key in that is the area, area in like a hundred. It multiplies the radius, πr², and puts it into the map.

We do that sometimes. We’re like, “I want to calculate the area one time. I’ll add it to the map, so I don’t have to calculate it again.” If something needs the area, it’s in there.

What we have to do is remember to return the modified map from that function, because it’s immutable, we have to get it out of the function somehow. We don’t return a map with radius and area. We’ve to return the original map with the area. That’s another tip. Always be adding data. Always have more data.

I thought of a cool assignment for this. If you’re an object-oriented programmer, and you’re used to sitting down and making classes and designing these interfaces, what would it be like to pass around the data? What would that look like?

Where would you put all that functionality that was going into the methods? What if you didn’t have to modify the data? What if it was immutable? What would that look like? Where would you put that functionality? What functionality wouldn’t you need if you didn’t have to modify it?

It’s a thought experiment, because this is what we do in functional programming. I don’t think I could sit here and tell you, “You’re wrong.” There’s existence proofs that there’s a lot of functional systems out there that are doing what I’m saying, that are operating on data, big systems that have been in production for a long time.

Think about what would it be if you didn’t do that? I’m not asking you to change your opinions or anything, just thinking from a different perspective.

If you’ve liked this, wow, it’s gone on pretty long. I’m already at 33 and half minutes. If you’ve liked this, please do me a favor and subscribe, because then you’ll be notified when other things very much like it come out.

If you [laughs] think I went too long on this, if you think it’s unimportant, if you disagree, if you agree, I would love to hear from you. I want to meet people. I’m broadcasting these things out here, and I want to know that people are listening.

I’m not always confident of what I’m saying, [laughs] even though I believe it. Once you say it, you’re like, “Huh, people might disagree with this,” or “I’ve never talked to anybody about that. I wonder what they say.” Please, tell me what you think, because that’s what I’m doing here. I’m trying to engage with more people, and that’s why I’m broadcasting.

You can email me at eric@lispcast.com. Lispcast, L-I-S-P-C-A-S-T. You can find me on Twitter, I’m @ericnormand, with a D. I’m also on LinkedIn, so find me there. Take care. See you next time. Thanks for being there.

The post Why you shouldn’t hide your data appeared first on LispCast.

15 Apr 01:47

Paying Down Enterprise Content Debt: Part 3

by Meridel Walkington

Paying Down Enterprise Content Debt

Part 3: Implementation & governance

Summary: This series outlines the process to diagnose, treat, and manage enterprise content debt, using Firefox add-ons as a case study. Part 1 frames the Firefox add-ons space in terms of enterprise content debt. Part 2 lists the eight steps to develop a new content model. This final piece describes the deliverables we created to support that new model.

@neonbrand via Unsplash

Content guidelines for the “author experience”

“Just as basic UX principles tell us to help users achieve tasks without frustration or confusion, author experience design focuses on the tasks and goals that CMS users need to meet — and seeks to make it efficient, intuitive, and even pleasurable for them to do so.” — Sara Wachter-Boettcher, Content Everywhere

A content model is a useful tool for organizations to structure, future-proof, and clean up their content. But that content model is only brought to life when content authors populate the fields you have designed with actual content. And the quality of that content is dependent in part on how the content system supports those authors in their endeavor.

We had discovered through user research that developers create extensions for a great variety of reasons — including as a side hobby or for personal enjoyment. They may not have the time, incentive, or expertise to produce high-quality, discoverable content to market their extensions, and they shouldn’t be expected to. But, we can make it easier for them to do so with more actionable guidelines, tools, and governance.

An initial review of the content submission flow revealed that the guidelines for developers needed to evolve. Specifically, we needed to give developers clearer requirements, explain why each content field mattered and where that content showed up, and provide them with examples. On top of that, we needed to give them writing exercises and tips when they hit a dead end.

So, to support our developer authors in creating our ideal content state, I drafted detailed content guidelines that walked extension developers through the process of creating each content element.

Draft content guidelines for extension elements, mocked up in a rough Google Site for purposes of feedback and testing.

Once a draft was created, we tested it with Mozilla extension developer, Dietrich Ayala. Dietrich appreciated the new guidelines, and more importantly, they helped him create better content.

Sample of previous Product Page content
Sample of revised Product Page content
Sample of revised Product Page content: New screenshots to illustrate how extension works

We also conducted interviews with a cohort of developers in a related project to redesign the extensions submission flow (i.e., the place in which developers create or upload their content). As part of that process, we solicited feedback from 13 developers about the new guidelines:

  • Developers found the guidelines to be helpful and motivating for improving the marketing and SEO of their extensions, thereby better engaging users.
  • The clear “do this/not that” section was very popular.
  • They had some suggestions for improvement, which were incorporated into the next version.

Excerpts from developer interviews:

“If all documentation was like this, the world would be a better place…It feels very considered. The examples of what to do, what not do is great. This extra mile stuff is, frankly, something I don’t see on developer docs ever: not only are we going to explain what we want in human language, but we are going to hold your hand and give you resources…It’s [usually] pulling teeth to get this kind of info [for example, icon sizes] and it’s right here. I don’t have to track down blogs or inscrutable documentation.”
“…be more upfront about the stuff that’s possible to change and the stuff that would have consequences if you change it.”

Finally, to deliver the guidelines in a useful, usable format, we partnered with the design agency, Turtle, to build out a website.

Draft content guidelines page
Draft writing exercise on the subtitle content guidelines page

Bringing the model to life

Now that the guidelines were complete, it was time to develop the communication materials to accompany the launch.

To bring the content to life, and put a human face on it, we created a video featuring our former Director of Firefox UX, Madhava Enros, and an extension developer. The video conveys the importance of creating good content and design for product pages, as well as how to do it.

Product Page Content & Design Video

Preliminary results

Our content model had a tall order to fill, as detailed in our objectives and measurements template.

So, how did we do against those objectives? While the content guidelines have not yet been published by the time of this blog post, here’s a snapshot of preliminary results:

Snapshot of preliminary results

And, for illustration, some examples in action:

1. Improved Social Share Quality

Previous Facebook Share example
New Facebook Share example

2. New Google search snippet model reflective of SEO best practices and what we’d learned from user research — such as the importance of social proof via extension ratings.

Previous Google “search snippet”
New Google “search snippet”

3. Promising, but early, SEO findings:

  • Organic search traffic decline slowed down by 2x compared to summer 2018.
  • Impressions in search for the AMO site are much higher (30%) than before. Shows potential of the domain.
  • Overall rankings are stable, and top 10 rankings are a bit up.
  • Extension/theme installs via organic search are stable after previous year declines.
  • Conversion rate to installs via organic search are growing, from 42% to 55%.

Conclusion & resources

There’s isn’t a quick or easy fix to enterprise content debt, but investing the time and energy to think about your content as structured data, to cultivate a content model based upon your business goals, and develop the guidance and guardrails to realize that model with your content authors, pays dividends in the long haul.

Hopefully this series has provided a series of steps and tools to figure out your individual payment plan. For more on this topic:

And, if you need more help, and you’re fortunate enough to have a content strategist on your team, you can always ask that friendly content nerd for some content credit counseling.

Thank you to Michelle Heubusch, Jennifer Davidson, Emanuela Damiani, Philip Walmsley, Kev Needham, Mike Conca, Amy Tsay, Jorge Villalobos, Stuart Colville, Caitlin Neiman, Andreas Wagner, Raphael Raue, and Peiying Mo for their partnership in this work.

Paying Down Enterprise Content Debt: Part 3 was originally published in Firefox User Experience on Medium, where people are continuing the conversation by highlighting and responding to this story.

15 Apr 01:46

First really nice Saturday of the year

by jnyyz

It was the first really nice Saturday of the year. So of course time for a family bike ride. As a special treat, I dragged the Daisy Mayhem out of the depths of the garage.

Proof that the wife and I are tandem compatible.

After a quick spin of High Park, we were feeling guilty so we circled back to pick up Lucy.

It was a spectacular day. Hope that you managed to get out and about.

15 Apr 01:46

Twitter Favorites: [DanMarrazza] PSA No refs want specific teams to lose. No ref is out to get your team. Calls are missed sometimes. And possibly… https://t.co/paveDOjdem

Dan Marrazza @DanMarrazza
PSA No refs want specific teams to lose. No ref is out to get your team. Calls are missed sometimes. And possibly… twitter.com/i/web/status/1…
15 Apr 01:46

The One About YOLO

by rands

In our eleventh episode, we dissect “You Only Live Once”, we talk about paying for BETA software, and the value of building things with your hands.

Enjoy it now or download for later. Here’s a handy feed or subscribe via Overcast or iTunes.

15 Apr 01:46

Sweater detecting

by Liz

Really cool article about researching, curating, and analyzing the history of particular sweater and other textile patterns: The Norwegian Sweater Detective.

15 Apr 01:37

The Making of the "Where to Vote Green" Tool

by peter@rukavina.net (Peter Rukavina)

After I built the Find your Green Candidate tool a couple of weeks ago, the next step was to expand this into a full-fledged Where to Vote Green tool (or, if you prefer, Où voter Vert).

From building the candidate-finder I already had a ready-made source of information about which civic addresses on Prince Edward Island are in which electoral districts and polls; because I wanted to be able to provide driving directions to polling stations, I added a latitude and longitude column to this table so that, for each address, there’s a row that include street number, street name, community, district, poll and geolocation:

Detail from civic address database showing new latitude and longitude columns

Next I needed information on the advance and regular polling stations for each of the 240 polling divisions. Finding no open data source for this information, I manually mangled the Elections PEI 2019 Provincial General Election Polling Location page into a database table. Because the civic addresses on that page were in various formats, I had to do some manual normalization, looking up each civic address in the civic address database, and transcribing the proper address, latitude and longitude for each (some districts use the same polling station for every poll, so, thankfully, I didn’t have to do this 240 times).

Once I’d done this, I had a complete record for each poll; here’s the data for my own poll, District 12, Poll 6, for example:

  • District Number: 12    
  • District Name: Charlottetown — Victoria Park    
  • Poll Number: 6    
  • Poll Name: DORCHESTER    
  • Advance Poll Location: Charlottetown Event Grounds    
  • Advance Poll Address: 360 GRAFTON ST, CHARLOTTETOWN    
  • Advance Poll Geolocation: 46.24121, -63.11709
  • Regular Poll Location: Central Christian Church
  • Regular Poll Address: 223 KENT ST, CHARLOTTETOWN    
  • Regular Poll Geolocation: 46.23809, -63.12490

There’s 2,400 pieces of information altogether, and it all needed to be double-checked against Elections PEI’s data; fortunately there was a volunteer down at HQ who was able to apply a second pair of eyes to this.

With all that I had everything I needed to create a tool to allow voters to enter their civic address and get information about their candidate: the rest of the work involved designing the tool itself, ensuring that it works on both desktop and mobile, ensuring it’s fast enough to be useful, and that the results are presented clearly.

The tool works by watching the address field for the “keyup” event, and sending the current contents of the field to an API I created to look up the address; the API returns the first 4 civic addresses that match what it receives, as a chunk of HTML; for example, it the API receives 100 PRINCE it returns:

  • 100 PRINCE ST, CHARLOTTETOWN

The HTML ID of each list item returned is a base64-encoded JSON object of all the information we need to display for that address; in this case, base64-decoding the ID returns:

{
  "street_no": "100",
  "street_nm": "PRINCE ST",
  "comm_nm": "CHARLOTTETOWN",
  "latitude": "46.23584",
  "longitude": "-63.12408",
  "dist_no": "12",
  "district": "Charlottetown - Victoria Park",
  "poll_no": "6",
  "candidate": "Karla Bernard",
  "url": "https://www.greenparty.pe.ca/karlabernard_d12",
  "photo": "smaller_karla_bernard.png",
  "advance": "Charlottetown Event Grounds",
  "advance_address": "360 GRAFTON ST, CHARLOTTETOWN",
  "advance_latitude": "46.24121",
  "advance_longitude": "-63.11709",
  "polling": "Central Christian Church",
  "polling_address": "223 KENT ST, CHARLOTTETOWN",
  "polling_latitude": "46.23809",
  "polling_longitude": "-63.12490"
}

(I base64-encode the object not for obfuscation nor network efficiency, but simply because it’s a handy way of moving the JSON back and forth packed inside a string; there are, I’m certain, much better ways of doing this).

When the voter clicks on one of the list items, the JSON gets used to display the information in a readable format.

You can see this all in operation in this short video clip (or you can try the tool out for yourself!):

15 Apr 01:37

Five-word movie review: “The History of Time Travel”

by sheppy

Fun and fascinating. Cleverly presented.

15 Apr 01:37

Above Avalon Podcast Episode 145: It's All About Curation

by Neil Cybart

At Apple’s recent event at Steve Jobs Theater, the company unveiled its revamped content distribution arm. Episode 145 is dedicated to discussing Apple’s new content distribution services: Apple News+, Apple Arcade, and Apple TV+. Instead of just announcing services for consuming more content, Apple unveiled a strategy for curating content for its user base of a billion people, something that I am calling “Curation for Casual.” The discussion also goes over how curation explains Apple’s move into original content. Additional topics include a few surprises unveiled at Apple’s Services event, the history behind Apple’s video distribution strategy, the changing content consumption landscape, and Apple’s content distribution arm eventually being considered a core technology powering Apple devices.

To listen to episode 145, go here

The complete Above Avalon podcast episode archive is available here

15 Apr 01:37

More Thoughts at Random on Blog Search Engines

I can dream about how I’d build one of these. (I’m not going to! This is way outside my expertise, and I have other things to do.)

Instead of having it crawl blogs, I’d have it download and index RSS feeds. This should be cheaper than crawling pages, and it ensures that it skips indexing page junk (navigation and so on).

To get feeds into the system, I’d add an accounts system to the site. A registered user can do two things: 1) add individual feeds and 2) upload an OPML file of feeds (which they’d probably get from their RSS reader).

Registration (with an email confirmation loop) would be required for feed-suggesting.

And: a feed gets added to the crawl-and-index list once it’s been suggested by at least two users. This should help cut down on spam.

Accounts that are suggesting spam would be just shut down. And suggestion counts for all the feeds they suggested would be appropriately decremented. (And of course all spam feeds should be removed from the index.)

There would also have to be a way for users to report spam. And report hate speech and other things that shouldn’t be there.

* * *

Anybody should be allowed to use the system: it doesn’t require registration. The main page is like Google or DuckDuckGo — a big search field.

Registered accounts can login and see their saved searches.

Searches should be able to look for incoming links to a given site as well as search terms.

It should also provide search results via RSS — to all people, registered or not — via an easily-constructed URL, as in https://blogsearch.example.com/search.rss?q=some+search+term

Since a search results feed includes items from different feeds, it should use the RSS source element.

* * *

I don’t have any solid ideas about making this a business. I’m sure that it would be way easier to build than the search engines we had in 2005. And it should be way cheaper to maintain.

It could display ads on the website. Maybe it would offer a subscription that gets rid of the ads and perhaps offers some kind of extra features.

Years ago you could probably get VC funding for something like this. I consider it a blessing that we’re way past VC interest in RSS and blogs — you don’t need that amount of funding to get it built and running, and you wouldn’t want it anyway.

Could a person or small team run it as a labor of love, like I do with NetNewsWire? I’m not sure, because I don’t know enough about the costs involved (other than that they’ve gone down). Maybe?

One of the key would be to keep it simple. It’s just one component in an ecosystem of tools. Do search, and do it well, and that’s it.

15 Apr 01:37

responsive ascii art

(Update 17 Apr 2019: Yes, I know it works on Firefox but is messed up on some other browsers. I made an issue: Issue #29609 | webcompat.com)

I'm making a web thing (for Progressive Web Application practice) and could use a header image. I'll just go old school and do some ASCII Art.

Wait a minute, though. All the cool web sites now are Responsive. So the header should work at different sizes. So what I want to do is to get ASCII Art to behave like a regular image. If I make Ye Olde .Sig Sword

/ O===[============================> \

and I want it to look good inside the containing element, I want the text to resize, not reflow.

Kind of like this.

Hi, here we are inside a narrow element. Here is a little tiny sword.

/ O===[============================> \

The dashed red border is just to show how big the div is.

This div is wide. Behold my large sword!

/ O===[============================> \

The answer so far: put the ASCII Art inside an svg element, like this.

<p><svg viewBox="0 0 170 24" xmlns="http://www.w3.org/2000/svg">
<text x="0" y="0">
    /
O===[============================&gt;
    \
</text></svg></p>

Needs some CSS, like this:

svg {
        width: 100%;
        overflow: auto;
}

svg text {
        line-height: 100%;
        white-space: pre;
        font-family: monospace;
        font-size: 8px;
        fill: #666;
        user-select:none;
        -webkit-user-select:none;
        -khtml-user-select:none;
        -moz-user-select:none;
        -ms-user-select:none;
}

The "white-space: pre" gives me the ultimate image editing environment: free-form multi-line ASCII art text within the text element. Yes, I still need to use &gt;, &lt;, and &amp;. The fill sets the color.

One small annoyance is that the text of the ASCII Art can be selected if the user double-clicks, or drags, or long presses on a touchscreen. So the user-select stuff is to prevent that from happening.

Sources

Bonus links

Great Developers Are Raised, Not Hired, by Eduards Sizovs, The Principal Developer

Startup Stock Options – Why A Good Deal Has Gone Bad

‘Short-term targets create perverse incentives that hurt businesses’

3 Ways To Improve Experience for Contributing Writers

Codecademy vs. The BBC Micro

The App Privacy Crisis Apple And Google Need To Fix

Proquints: Identifiers That Are Readable, Spellable, and Pronounceable

15 Apr 01:30

Value

by Stephen Downes

You sometimes hear me stumble over the word 'value', the way I did in a recent interview. Let me explain why.

The word 'value' is widely used in our field and elsewhere. It is intended to represent a measurement of the 'benefit' something might produce - so 'economic value' might refer to the economic benefit., 'social value' might refer to the social benefit', and so on.

I often want to say things like this: each person has value in and of themselves. Or: each person has inherent value. It's an easy shorthand, and people quickly understand what I mean. Nobody is worthless. And nobody is worth so much so as to render other people essentially worthless.

In the interview the other day I rephrased this shorthand to refer back to Kant, who says (paraphrased) "each person is an end in and of themselves, and not a means to some end." That's also a pretty easy shorthand, and suggests that it is wrong to use people to further your own ends. Or as Wikipedia says, they have intrinsic, not instrumental, value.

I'm not comfortable with any of this talk. Partially, I'm uncomfortable with it because it brings in the idea of human worth being measured. I don't think that there's some sort of giant global mechanism pitting each human against the other in some sort of league table of worthiness.

There is no mechanism whereby such a measurement could be meaningful - no principled means, for example, of determining whether a person's potential as a child or accomplishments as an elder ranks them more of less high on the scale. The numbers we apply when we talk about a person's worth don't stand for anything, because there can be no agreement about what they should stand for.

There's also a deeper sense in which I am uncomfortable with such talk, and that is my discomfort with the framing of such conversation in terms of value and benefit at all. In a world where the last two centuries have been dominated by debates between economic systems, such discussion reduces humans to elements within such systems.

Take the Marxist dictum, "From each according to his ability, to each according to his needs." Now this may or may not be a good principle for the production and allocation of resources in a society, but it feels wrong to define people in such terms. A person is much more than their demand or contribution to society.Of course Marxists know this, and of course the conversation turns to other topics, and yet, it always seems to come back to what people need and what they can contribute.

In the capitalist economy, benefit is defined by the consumer. The consumer may be a person, a government, a company, or whatever. One type of benefit is intrinsic, representing the ultimate worth of something to the consumer. Another is economic, representing how much the person is actually willing to pay. These are impacted not only by the individual's needs and ability to pay, but also by the wider demand in society, and by the supply or the thing in question, and by any number of other intangible factors (perception of risk, perception of quality, utility, social standing, and more).

Maybe there is a way in a market-based economy to d find the value of a person. Ultimately, the value would be whatever the value is - no matter how the market calculated the value, it would calculate the value in some way, and that value is the value. But that value may not be something we're comfortable with. It's the logic expressed by Jack London:
Why, if there is anything in supply and demand, life is the cheapest thing in the world.  There is only so much water, so much earth, so much air; but the life that is demanding to be born is limitless.... And human life is in no wise different, though you feel it is and think that you reason why it is.  Why should I be parsimonious with this life which is cheap and without value?  There are more sailors than there are ships on the sea for them, more workers than there are factories or machines for them.
But it is not simply the result of the calculation that leaves me uncomfortable. It's the idea that there would be such a calculation at all. It's the idea that this sort of framing - of measurement, of value, of benefit - is an appropriate sort of framing.

It's a bit like the way Nick Shackleton-Jones expresses himself in a post yesterday. My talking about the 'value' of a person would be "unhelpful - rather like joining a philosophical debate on the nature of the human soul with 'there is no soul'."

I don't want to say that a human has no value, or that a human's value is unmeasurable, or that every human is of equal value to the others. What I want to say is that words like 'value' and 'worth' and 'benefit' are not the right words to use to describe people. It's like talking about what language a tree speaks, what firepower a flower has, what political leaning are expressed by an anteater.

When I talk about people belonging to a network, for example, the only relevant thing to me is that the person is a part of the network - not how many connections they have, not what weight their words have within the network, not whether the person is a desirable contact to have. All of these are ways of trying to characterize the person's participation in economic terms, when the fact of their participation in a network has no economic properties at all.

It's like - suppose a person says the word 'elephant' a hundred times. It 'saying the word elephant a hundred times' now a property of this person? Does it make sense now to assign the person a value of '100'? The fact that a person said 'elephant' once or a hundred times or at all is incidental to the fact that this person is a person and this person is a part of a network.

(Economic terms and values have so infused our language it becomes almost impossible to say anything about a person outside that perspective. Even Kant has to refer to the worth of a person in terms of another person's perspective of value.)

Why does  any of this matter? It has to do with how we will construct a post-industrial society.

In an article today I read this: "Value never disappears, it just shifts to another place." What does that mean? It felt to me on reading this as though the writer though of 'value' as akin to 'mass', an underlying property that explains the domain. In the case of 'mass', all physical things will have more or less mass, which can be detected by means of weight or momentum, or whatever. In the cause of 'value', the idea would be that all moral things have value, a greater or lesser worth depending on the decisions they make, which can be detected by means of benefits and payments and work.

To me, this is a dystopia. It says to me that no matter how advanced we become, no matter how productive we are, we will always move from one type of work to another type of work to another, always in each successive iteration expressing our 'value' to each other through the things that we do and the decisions we make. It says that an economy is as inevitably a part of our future as are gravity and entropy.

Maybe they're right. Maybe cognition itself is a life-or-death struggle for relevance. Maybe the good ideas survive, and have value, while the worthless are discarded like so many dead skin cells or unused neurons. Or maybe not.

The thing is, unlike mass, which is inherent in matter, value can only be found in relation to its opposite, the valueless. In cognition, for example, both a right answer and a wrong answer are of equal value because you cannot even define something as 'right' without also defining something as 'wrong'. In the case of worth, you cannot think of something as having 'worth' without also thinking as something else as 'worthless', because worth is based on the decision to spend on one thing rather than another. If there's only one thing to buy, price as a concept loses all sense.

Whether we are thinking of humans as moral agents (as Kant would) or of humans as economic agents (as modern theory suggests), we are in both cases defining a person in terms of their decisions. In terms of their actions. In terms of their agency.

But I see more - much more - to a person than that. The mere fact of a person's existence matters - it is the possibility of life that explains life, not what we do with it once we have it. What a person is matters more than what they do. (I saw this expressed in the context of pedagogy just a few days ago, but I can't find the reference - but the idea was that what's important is that the teacher literally is the knowledge, and not the p[articular pedagogical moves the make to pass that knowledge on. Or as I thought to myself - I would value talking about gardening with Albert Einstein. Or my only interaction with Marvin Minsky, where we looked at and talk about modern art).

What makes it a loss when a person dies is not that they stop doing what they're doing, it's not that they stop making moral and economic decisions, but rather, it's that they stop being what they are. And it's a tragedy that is as deep and as complete for any one person as it is for another. Putting value on this is like trying to count everything and nothing all at once.
15 Apr 01:30

Boycott DataCamp

An open letter has been going around over the sexual assault of a DataCamp employee by their CEO. This assault was not responded to by firing said CEO: instead, the employee was subject to a hostile work environment that led to her departure.

As with Noam, I signed a letter written by DataCamp’s instructors demanding a more sufficient response - and in the absence of that, I am advocating that you under no circumstances take my DataCamp course. There must be consequences and punishment for assault, not profit.

15 Apr 01:21

Week Notes 19#15

by Ton Zijlstra

Another week of light blogging. Maybe fell in the trap of overthinking it again. I did read more though.

This week I

  • Spent most of three days on an open data project for a province, mainly focusing on a comparative transparency study, of which one part was looking at how Dutc provinces publish open data
  • Chaired the first meeting of the board of the Open State Foundation this year, taking a look at the 2018 results
  • Presented the results of a data governance improvement project to the client’s management team
  • Spent lots of time with the little one.
  • With Elmine did some home and garden improvements
  • Decided to attend this years Copenhagen Techfestival (5-7 September)
  • Decided I want to re-use more openly licensed material, so including a photo of this week’s number
??????15??????Photo by ondasderuido, license CC-BY-SA