Shared posts

13 Jul 00:17

Pokémon Go review: Flawed, but still childhood dream fulfilling

by Patrick O'Rourke

When Pokémon first came to Canada and the United States in 1998, I was only 10 years old.

A package arrived at my parent’s house in the mail with my name written on it, a rarity since 10-year-olds rarely receive mail unless they’ve ordered something from a cereal box. I rapidly ripped open the package and to my surprise it contained a VHS tape with the foreign word “Pokémon” plastered across it. Little did I know at the time what a significant role Pokémon would play in my life over the next few years.

I spent countless hours in middle school trading Pokémon cards and even more time playing the series’ various video games. Pokémon Red and my battered original Game Boy will always hold a special nostalgic place in my video game memory.

PokemonGo-1

At the height of the series’ popularity, I likely invested hundreds of hours in both Pokémon Red and Blue, as well as Gold and Silver, collecting, battling and more importantly, talking to friends about the game, uncovering secrets and easter eggs in the process. No, the truck near the S.S. Anne doesn’t have Mew under it.

Admittedly, I’ve grown apart from the series over the last few years, eventually coming to the realization I no longer have the patience for traditional Pokémon games shortly after the release of Pokémon X and Y, games that represented the most ideal distillation of the franchise’s mechanics and gameplay. I just wasn’t having fun with the series anymore and I knew it was time for me to step away.

Until Pokémon Go launched earlier in July, marking the first time Nintendo has allowed one of its core franchises to make its way to mobile, and the franchise sucked me right back in.

With Pokémon Go, an augmented reality mobile game developed by Niantic in partnership with Nintendo and the Pokémon Company, the iconic series is experiencing a nostalgic resurgence unlike anything I’ve seen before. 

PokemonGogotw

Despite claims from mainstream news’ rampant coverage of Pokémon Go over the last few days, the Japanese series monster collecting has never really died out in popularity over its approximately 18 years of existence, with the latest core entries in the series, Pokémon Omega Ruby and Alpha Sapphire, selling an astounding approximately 11 million copies worldwide.

Pokémon Go is a nostalgic resurgence of a series many people grew up with, combined with technology that’s been around for a few years at this point, but finally used in a way that makes sense. Unfortunately, at least as the game stands right now, Nintendo’s first real mobile gaming effort is a bit of a mess and lacks many of the features hardcore Pokémon fans expect in their Pocket Monster collecting titles.

pokemongogif

This doesn’t mean Go doesn’t get many things right, however. For instance, when I was about 12, I created the concept for a fictional Pokémon game that’s actually nearly identical to Pokémon Go actually is.

In my adolescent brain, the game I imagined had specific Pokémon show up based on their location in the real world. While not identical to Niantic’s augmented reality, GPS location-based title, Pokémon Go is in some ways a childhood dream fulfilling fantasy.

pokemongo-1111

The basic concept of Pocket Monster collecting is still prevalent in Pokémon Go. Players utilize their smartphone and travel around real world locations in order to catch virtual Pokémon. The game’s “Nearby” tracking system, while flawed, does a great job of creating the thrill of a virtual Pokémon chase in the real-world, though Pokemon Go’s GPS integration is sometimes spotty.

Here’s how Nearby works: when a Pokémon shows up in the list with three footprints beside it, that means it’s very far away; two means it’s a little closer; one means it’s nearby and none indicates the Pokémon is almost right on top of you. Also, rustling leaves sometimes indicates a Pokémon is nearby, though not always.

Basically, while Pokémon Go gives you slight direction when it comes to hunting Pokémon, sometimes the system just doesn’t make sense and it seems impossible to catch that rare Snorlax you’ve been hunting.

PokemonGo

When this core gameplay concept works, however, especially if you’re looking for creatures with friends since everyone in the area is able to see the same Pokémon, it creates an experience that’s half geocaching, half Pokémon, and all surprisingly entertaining.

For instance, last Saturday I spent the better part of an hour hunting an illusive Poliwhirl with a small group of friends, spreading our efforts out across a small park, hunting for the creature. When we actually found the Pokémon we all let out small, satisfied cheers.

The capture system is also entertaining. When a Pokémon appears on your screen, you simple just need to tap on it, launching a capture screen. This is where Pokémon Go’s augmented reality (AR) game play comes into play.

pokemongoshot-1

Utilizing the camera as a pass-through device, the Pokémon you’re trying to catch shows up in the real world (this is why there are so many pictures of Abras squatting on player’s toilets).

Next, you need to nail the Pokémon with a well-placed Pokeball, complete with the ability to throw curved trick shots for extra points. Graphically Go’s AR Pokemon look impressive and amusingly, almost feel like they belong in the real-world, despite their anime aesthetic.

PokemonGo

Placing Lures, items that everyone can see that attract Pokémon to Pokestops, unfortunately doesn’t track nearby Pokémon and neither does Incense, an item that accomplishes largely the same thing as Lures, but is totally mobile. While this makes Pokémon hunting more challenging, it also doesn’t make much sense.

It’s a fascinating experience when you drop a Lure at a Pokéstop – locations strewn around the world where players can find items like Pokéballs, Revives and Potions – and other players start to show up in the real-world, adding an additional social aspect to the experience I’m not sure Niantic counted on.

It’s important to note, however, that there have been examples of players using Lures for unfortunate nefarious purposes.

pokemongoscreen-1

Unfortunately, like many aspects of Pokémon Go, Niantic never really explains how the game’s Nearby tracking system works, leaving it up to players to figure it out, though to a certain extent, the fact that you have to figure out on your own how the game’s various systems works, is also part of its charm.

An unprecedented social experience has evolved from Pokémon Go, stemming from its Pokémon hunting features, as well as its complicated but surprisingly satisfying Gym system.

Virtual Pokémon gyms are scattered around the world and hold an allegiance to one of three factions, Mystic, Valor or Instinct, allowing rival teams to either lose or hold a specific gym. In order to do this, players must physically walk to a gym in the real world, and enter a battle. If the gym is the same team as yours, fighting your own team’s Pokémon raises that gym’s XP, eventually levelling it up and allowing members of your team to place more Pokémon at it. For example, the CN Tower in Toronto is an extremely popular level 10 gym. This means that 10 Pokémon can be placed at it.

pokemongoar

On the other side of the spectrum, attacking an enemy gym lowers its XP if you win, allowing you or another member of your team to take it over and claim the battleground as your own. This creates a social experience unlike anything I’ve ever experienced in a video game and I’ve started to see the same people at gyms located near my apartment, all battling it out, vying for Pokémon gym supremacy.

Pokémon Go’s battles on the other hand, are somewhat lacklustre and usually devolve into random screen tapping. From what I’ve been able to gather, battles are still turn-based to a certain extent, just as they always have been in the series, though they’re not played out in real-time. Players tap on the screen to attack and swipe left or right to dodge incoming onslaughts.

Also, long presses on the screen activate Special Attacks. Victory tends to stem from the Pokémon with the higher CP rating (combat power) which can be raised by spending Stardust, in-game currency earned by catching Pokémon, levelling up your trainer and completing in-game achievements. To Niantic’s credit, Pokémon Go is far from a pay-to-win experience, with Pokécoins only being used to purchase additional Pokéballs and other items not necessary to pushing forward in the game.

pokemongoarshot-11

If you’re a hardcore Pokémon fan, the above section of this review likely sounds confusing and unlike the series you’re familiar with. While it might seem daunting at first, for the most part, Pokémon Go’s various systems eventually start to make sense.

But there’s also a lot the game is missing, though Niantic has committed to adding more features to Go in the coming weeks. Trading is fundamental to Pokémon as a series, yet it hasn’t made it to Go at launch. Also, while Go’s Gym system is currently compelling, after a few weeks of play, it will likely grow old.

Basically, while Pokémon Go offers a compelling experience right now and is undeniably an important moment for the future of augmented reality, without constant feature updates, it likely won’t stay that way for many players, especially more hardcore, long-time fans of the series.

pokemongogogo

Still, even with its rampant server issues and the fact that the game hasn’t launched in Canada, though with a few steps it’s relatively easy to get your hands on the iOS and Android version of the game north of the U.S. border, there’s something truly special about the cultural phenomenon that’s evolved around Pokémon Go.

Now excuse me, a Pikachu just appeared in my Nearby list that I need to go catch.

Pokemon Go is officially available on iOS and Android in the U.S., New Zealand and Australia. It’s expected the game will launch in Canada at some point in the very near future, though we don’t know its specific release date. However, we do have guides explaining how to download the game right now on iOS and Android.

This review will be updated as Niantic solves Pokémon Go’s various glitches and server issues. I’m also hopeful that the developer will add new features to Pokémon Go, particularly related to trading and an expansion of the gym battle system.

Related reading: Here’s how to get Pokémon Go for iOS in Canada right now

12 Jul 21:45

Farr’s Five Years

by Paul Kafasis

Rogue Amoeba is well into its fourteenth year of selling software for the Mac, and we continue to be privileged to work with a tremendous group of employees. In 2010, we celebrated our first employee’s five year anniversary with the company. Now, we’ve recently had our sixth such celebration! Grant Farr recently reached his five year anniversary of joining Rogue Amoeba, and we couldn’t be more pleased. It’s extremely gratifying to be able to employ the talented folks we do, and to have them stay with us for many years.

While programmers here frequently move between products, Grant’s work has been heavily focused on our two audio recording applications: Piezo and Audio Hijack. Grant’s first task when he joined us full-time in 2011 was creating and shipping Piezo. This gorgeous little application was originally created so that we could bring the ability to record audio from other apps to the Mac App Store. Due to various changes in Apple’s App Store policies, Piezo eventually had to leave the Mac App Store, but it remains available for direct purchase. Every day users take advantage of its charmingly simple interface to record audio on their Macs.

Piezo Screenshot
Piezo

After Piezo was released, we embarked on our long journey to releasing Audio Hijack 3. The development process was hardly short, but Grant’s resolve never wavered as he steadily guided us toward that fantastic release. When Audio Hijack was selected as the 2015 Mac App of Year, it was clear Grant’s hard work was well worth it. Since then, we’ve returned to smaller, more frequent updates, and Grant’s led us through Audio Hijack 3.1, 3.2, and the recent version 3.3.

Audio Hijack Screenshot Screenshot
Audio Hijack

We’ve still got plenty more planned together for Audio Hijack, as well as exciting new projects for the future, so Grant is sure to provide much more for users to love.

Safe and Exciting

When an employee reaches the five year mark with us, we select a gift especially for them. Grant’s an avid sport rider, taking his motorcycle to the track to really push the limits. He’s shown us some great action shots taken by others, but we thought he could do even better. So we presented Grant with a new GoPro and helmet mount, to capture video as he races around the track. We also gave him a gift certificate to purchase a brand-new helmet to go with the camera.

Helmet Image
A Helmet With Attached Helmet Cam

We’re now eagerly awaiting the first images and videos from Grant’s new toy.

In addition to the aforementioned gifts, there was also our usual custom card and 5 year challenge coin as well.

Coin and Card
Custom Card and Challenge Coin

Thank You!

We always appreciate receiving praise from users via email or Twitter, and Grant deserves a tremendous amount of the credit for everything folks love about both Audio Hijack and Piezo. We often share those kind words internally.1 Now, however, it’s a great time for us to express our gratitude to Grant for all he’s done to make our products top-notch over the years. Thank you, Grant, and we hope to share your hard work with the world for many years to come!

Previously

We’ve previously celebrated the five year anniversaries of five other employees here at Rogue Amoeba:

  1. If you use Slack, praise from customers makes for great loading messages! ↩︎

12 Jul 21:44

Pokémon Go: The app that tricks us into entering the real world

From all the headlines lately, you might assume the big news of the year is the long-awaited arrival of decent virtual reality (you know — Oculus Rift and other heavy, sweaty gamer headsets for game playing).

Actually, though, the bigger news may be augmented reality.

That, anyway, is the lesson of Pokémon Go, the free game for iPhone or Android phones. In its first week, this app has become the No. 1 most downloaded app, driven Nintendo stock up 34% (the highest since 1983), consumed Twitter, and driven millions of people into a Pokémon obsession.

In augmented reality (AR) apps, your phone is a lens for the world around you; the app superimposes text or graphics over the live picture. One AR app (New York Nearest Subway), for example, shows which subways are under your feet in New York …

image

Another (Inkhunter) shows what a tattoo will look like once it’s on you:

image

Yet another app (Google Translate) converts foreign-language signs and menus into your language in the live video:

image

Pokémon Go Basics

What Pokémon Go does, though, is to display Pokémon characters — cute little cartoon spinoffs of real-world animals, fish, birds, and bugs — in the physical world around you. (Yes, these are the same creatures that populated the classic Game Boy game, trading cards, movies TV shows, and young teenagers’ minds in the early ‘90s, but no familiarity is necessary.)

image

The object of the game is to capture as many of these beasts as you can. You use your phone as a viewer into their invisible world, and walk toward the critters as they’re revealed on the screen. Near water, you’ll find the fishier species; at night, they tend to be ghostlier; in parks, you find more bugs and birds.

(The game relies on Google Maps for its understanding of the world’s geography, parks, buildings, and so on — not a surprise, considering that its creator, Niantic, began as a Google company.)

You can collect more fuel for this quest — various toy-like gadgets to attract and capture more critters — by visiting real-world, public spots like museums, churches, plaques, fountains, and statues. Or you can buy them with actual dollars.

The main thing —the punch line, the headline, the bottom line — is this: You can’t play this game sitting. You have to get outside and walk.

A Deliberate Manipulation

John Hanke, who leads Niantic, fully admits that his purpose was to get today’s sedentary game players off their couches and into the physical world. He wants them to move more, to look at familiar neighborhood spots in a new way. And it works: This free, joyous game is manipulating millions into taking long walks and exploring their worlds.

There isn’t much interaction with other players while you’re playing the game; as I went critter hunting side-by-side with my wife, my phone had no knowledge of the fellow player two feet away. At higher levels, you can sic your most powerful Pokémon creatures against other people’s in places called Pokémon Gyms, but even then, you don’t really see or get to know your human co-hunters.

But there is a social aspect, in that playing this game is much more fun when you’re not alone. This past weekend, you could see couples or groups of pals out in the sunny summer world, waving their phones and exclaiming about rare creatures they’ve just nabbed.

Yes, of course, you’re looking at your phone the whole time; the Charmander that’s bopping around under that big oak tree — as revealed by your phone —doesn’t exist in real life.

But in the big picture, never mind. This game has children leaving the house to explore the neighborhood, shouting and running, for whole afternoons, in a way they haven’t since the 1970s.

In general, you can’t cheat the game by driving to find the next critter; at car speed, the game cleverly makes all the Pokémon (Pokémen?) disappear. It’s clearly the most fun when you’re on foot.

There’s more to it than just capturing adorable, quirky animals, of course. There’s a whole game, with bizarre rules borrowed from the original Pokémon game. You’re supposed to make your critters evolve by accumulating candy and stardust, or something. You can trade them back to the Professor for more candy. And, of course, there are those Pokémon Gym battles.

image

But all of that is an elaborate manipulation. It’s all meant to get us outside, to get us walking, to get us together. And, obviously, it works.

The app-hype cycle

There will be copycat games by the end of the month — probably by the end of this sentence. There will be a cooling period, where the novelty and the popularity wear off. (It will probably coincide with the country’s cooling period, known as fall and winter.) There will be more overblown stories about the dangers of Pokémon Go mania, like strangers trespassing on lawns or people discovering dead bodies on their neighborhood Pokémon quests.

There will be plenty of complaints about the frequency of the game’s freeze-ups, which often result from the company’s overloaded servers. And there will be legitimate gripes that Pokémon Stops and Gyms are common in cities, but hard to find in rural areas.

But guess what? All of that is part of the traditional pattern for anything that’s new, fresh and crazily popular. None of it should take away from the tremendous news that augmented reality, at long last, may get the recognition it deserves … that there truly is something new under the sun … and that a phone game, that bane of today’s overweight youth, is now getting them off the couch and into the fresh air and sunshine.

Don’t be surprised if you overhear a new phrase this summer, for the first time in the history of parenting: “All right, kids, put those books down. Time to spend some time with your electronics!”

David Pogue is the founder of Yahoo Tech; here’s how to get his columns by email. On the Web, he’s davidpogue.com. On Twitter, he’s @pogue. On email, he’s poguester@yahoo.com. He welcomes non-toxic comments in the Comments below. 

12 Jul 21:16

How to save your phone’s battery while playing Pokemon Go

by Patrick O'Rourke

Pokemon Go is a flawed but nevertheless fun and addictive game that’s evolved into a cultural phenomenon in a very short period of time, all before the game has officially released in Canada.

But because Niantic, The Pokemon Company and Nintendo’s mobile title isn’t your typical mobile game, it destroys battery life and data plans like few other mobile games out there.

Below are some tips that will help you save your smartphone’s battery while out hunting Pokemon in the wild.

Lower your screen brightness and turn down the volume

pokemongogotwwm

This first step is pretty basic: just lower your screen brightness to as little as possible (which is difficult if you’re playing in the sunlight) and turn down the volume on your phone.

If you want to take things to the extreme, you could also disable background app refreshing, though I wouldn’t recommend doing this just to play Pokemon Go. You can also disable Bluetooth and Wi-Fi while you’re out Pokemon catching since these two features eat up a small amount of battery life and you don’t really need them when trying to become “the best there ever was.”

Both Android and iOS users can also enable operating system-based battery saver modes, giving players a little bit more juice to catch that Snorlax that’s been lurking near their house.

Turn off augmented reality features

PokemonGogotw

While AR is largely Pokemon Go’s main draw, it’s possible to turn this feature off when it comes to catching Pocket Monsters as well as during battles.

For Pokemon hunting, look for the AR toggle in the top right corner the next time you catch a creature, and in the bottom right corner when you’re about to enter a battle at a gym.

Toggle ‘Battery Saver’ mode on in-game

pokemongo11111

While this feature does cause Pokemon Go to crash occasionally, it also goes a long way towards saving battery life.

With Battery Saver enabled, every time you put your phone down, the screen will dim significantly, though you’ll still get a vibration notification every time you’re near a Gym or Pokestop. Unfortunately, at least in my experience, enabling Battery Saver causes Pokemon Go to lock up every once in a while.

Use an external battery pack

smart-battery-case-apple

If you’re out in your best “Bug Catcher” cosplay and your phone’s battery is low, you have two options: either return to your home base and plug-in your smartphone, or use an external battery pack or battery case of some sort, which can be purchased at most major electronics retailers.

Whether it’s a battery pack from Anker or Apple’s official battery case, extra battery life will allow you to continue your Pokemon hunt.

Download maps directly from Google Maps (maybe)

PokemonGo-1

According to Reddit user throwaway96388, players are able to conserve their battery and limit data usage by downloading Pokemon Go’s maps directly from Google in order to use them offline. Since Pokemon Go takes advantage of Google’s Maps API, the game no longer needs to download maps as you move around its world.

I’ve tested the feature out and it seems to make battery life last slightly longer. Reddit users are also reporting a significant increase in battery life conservation and a decrease in data usage when the maps have been downloaded.

In order to download the maps for offline viewing, navigate to Google Maps, enter settings and click the option to use offline maps. Next, touch sign-in and add your location. Niantic is also reportedly aware of Pokemon Go’s battery consumption problems and is working on ways to solve the issues.

It’s worth noting that a Google engineer has Tweeted that downloading offline maps actually does nothing to improve battery life, so it’s currently unclear if this trick works or not.

Related reading: Armed robbers use Pokemon Go ‘Lure’ item to target victims

12 Jul 21:16

A Speed Guide To Redis Lua Scripting

by Dj Walker-Morgan

What's Lua?

A Speed Guide To Redis Lua Scripting

Lua is a language which has been around since 1993. Its origins in engineering made for a compact language which could be embedded in other applications. It's been embedded in applications as diverse as World of Warcraft and the Nginx web server. And Redis, which is why we are here.

What does Redis let you do with Lua?

It lets you create your own scripted extensions to the Redis database. That means that with Redis you can execute Lua scripts like this:

> EVAL 'local val="Hello Compose" return val' 0
"Hello Compose"

The string after the EVAL is the Lua script.

local val="Hello Compose"  
return val  

So at its simplest you can run Lua scripts. But more importantly, you can run Lua scripts that act like an intelligent transaction. You can handle errors smartly, so instead of just rolling back, you can carry on processing. Of course, the intelligence of the transaction will be up to you.

But to start tapping into that power you'll probably want to pass the script some keys and arguments.

Keys and arguments?

The 0 at the end of the EVAL, thats the number of keys being passed to the Lua code, in that example there were none. But if instead of 0 it was 2 foo bar fizz buzz then the first two items in the list, foo and bar, would be passed as keys and fizz and buzz would be arguments.

If you do pass keys, they are available to the Lua script in the KEYS table (A table is Lua's associative array which also is used as an 1-based array). If you have arguments, they appear in the ARGV table. For example:

return ARGV[1]..' '..KEYS[1]  

The .. is Lua's string concatenation operator so this returns whatever the argument is concatenated with a space and then the key name given in the arguments.

> EVAL "return ARGV[1]..' '..KEYS[1]" 1 name:first "Hello"
"Hello name:first"

No magic is applied to the KEYS, they are just strings so we still have to look up their value.

And how do you call Redis from inside Lua?

We can get at Redis's functions through the redis.call() command. If we use this script:

return ARGV[1].." "..redis.call("get",KEYS[1])  

and EVAL it, assuming we've SET the key name:first to something we'll see this:

 > EVAL 'return ARGV[1].." "..redis.call("get",KEYS[1])' 1 name:first "Hello"
"Hello Brian"

So now, in a script, we've taken a parameter, looked up a key's value and created a string and returned that as a result.

This EVAL command is going to get pretty messy isn't it?

Yes. That's why there's other ways to get Lua scripts up to the server. The one we like is by using the command line arguments of the redis-cli command. Just write your "more complex" Lua script...

lua local name=redis.call("get", KEYS[1]) local greet=ARGV[1] local result=greet.." "..name return result

We'll save that as longhello.lua and the run this at the command line:

 $ redis-cli -h aws-us-east-1-portal.15.dblayer.com -p 11260 -a secret  --eval longhello.lua name:first , Hello
"Hello Brian"

From the top, we're running the redis-cli, complete with -h, -p and -a parameters to connect to the database. Then comes the new bit, --eval. This lets you name a file to be sent up to the server and eval'd. So we follow that with longhello.lua. Now our script needs keys and arguments. The keys come first and redis-cli counts them for us; each command line argument is a key, right up to the comma. What comes after the comma are arguments.

So now we can write Lua code for Redis locally and quickly test it on the server, even a remote one.

I'm pretty good for greetings functions, got anything meatier?

Why yes, here's a little problem for you that Lua solves nicely. Consider a situation where various divisions of a company increment different counters in the big scheme of things. So say "region:one" bumps the counter keys "count:emea", "count:usa", "count:atlantic" while "region:two" just bumps "count:usa". These counter lists may be added to in the future, but you really want to make sure it happens all in one fell swoop. Remember what we said about this being an "intelligent transaction", well, here we can do all that in one script.

Let's set up our regions as lists:

> rpush region:one count:emea count:usa count:atlantic
(integer) 3
> rpush region:two "count:usa"
(integer) 1

Now we'll create a Lua script locally:

local count=0  

We start with a count variable - we will count all the increments we do and return that value.

local broadcast=redis.call("lrange", KEYS[1], 0,-1)  

Here we ask Redis to give us all the values in the list that should be referred to in the first key.

for _,key in ipairs(broadcast) do  

This is the opener of a Lua for loop. The ipairs function iterates through the Lua table we just got in order and we take the key from each.

  redis.call("INCR",key)
  count=count+1

And for each key we ask Redis to increment it. Oh and then we bump up our counter. And thats nearly it. All thats left is...

end  
return count  

... to end the for loop and return the count. Save that to a file and then run it with an argument:

$ redis-cli -h aws-us-east-1-portal.15.dblayer.com -p 11260 -a secret --eval broadcast.lua region:one
(integer) 3

and if we go look we find:

> mget count:usa count:atlantic count:emea
1) "1"  
2) "1"  
3) "1"  

And if we use the script on region 2...

 $ redis-cli -h aws-us-east-1-portal.15.dblayer.com -p 11260 -a secret --eval broadcast.lua region:two
(integer) 1
...
> mget count:usa count:atlantic count:emea
1) "2"  
2) "1"  
3) "1"  

So now we've got ourselves a useful little function. What if there was an error? Ah, well as it stands this script would error out too. That's because we're using redis.call() which explicitly does that. If we used redis.pcall(), if there was an error, the error details would be returned instead and we could decide what to do. But this is a speed guide and...

Wait a minute, I have to upload the script every time?

No, Redis has a script cache and a command SCRIPT LOAD to just load scripts into the cache. We'll use it from the command line here, but you can incorporate it into your applications like any other Redis command.

 $ redis-cli -h aws-us-east-1-portal.15.dblayer.com -p 11260 -a secret SCRIPT LOAD "$(cat broadcast.lua)"
"84ffc8b6e4b45af697cfc5cd83894417b7946cc1"

That "$(cat broadcast.lua)" just turns our script into a quoted argument. The important bit is the number that comes back (its in hex). It's the SHA1 signature of the script. We can use this to invoke the script using the EVALSHA command like this:

> EVALSHA 84ffc8b6e4b45af697cfc5cd83894417b7946cc1 1 region:one
(integer) 3

There's commands to check for scripts (SCRIPT EXISTS) and to flush them out (SCRIPT FLUSH) so you can manage your script loading too.

So what's the catch?

Lua scripts will get killed off after a particular time limit (5 seconds) and that time limit is insanely generous as you should be writing your Lua scripts to run very quickly, in milliseconds. Why? Because while your script is running, everything else is on hold.

Hey, Lua has a lot of libraries, can I use them?

No, afraid not. The documentation lists the ones that are loaded; base, table, string, math, struct, cjson, cmsgpack, bitop, redis.sha1hex, ref

Where next?

The EVAL commands documentation is where you start as it goes into detail on how Redis types are converted to Lua types. The Lua Manual covers the entire language - and remember there's versions to download that you can run outside Redis for practice. There's also an alternative introduction from 2013 which touches on using the libraries and common gotchas too.

12 Jul 20:50

Displacing the Camera that Displaced the Camera

12 Jul 20:50

New Rainbow On Davie

by Ken Ohrn

The Jim Deva Plaza and related work is moving along steadily at Bute and Davie. Just in case you were wondering about the names of the various colours used in the rainbow motif — here are some clues.

Rainbow.Deva


12 Jul 20:50

Minister of Transportation urges you to ‘keep your head’ when playing Pokémon Go

by Ian Hardy

Pokémon Go is not officially available in Canada but that hasn’t stopped the Ontario Minister of Transportation pleading for safety on the streets.

Steven Del Duca stated on Twitter, “Don’t be a pidgeot. Look where you’re walking and keep your head up when crossing the street.”

Del Duca isn’t the only one showing concern while playing the mobile game. Regina Police expressed itself on Twitter as well noting, “Catch responsibly. Don’t play in the streets & #DontCatchAndDrive.”

The Ottawa Police have also chimed in, stating, “Don’t be an easy target for robbery. Always pay attention to your surroundings.”

Pokémon Go, the widely popular game that gave rebirth to Nintendo and sent its market valuation soaring by $7.5 billion, is available in the United States, New Zealand, Australia, and will soon launch in Europe and Asia “in a few days.” Unfortunately, there is no set date for an official Canadian launch yet.

Of course, if you’re keen on joining the world in its quest to catch rare Pokémon, there are workarounds for iOS and Android users. We have a full guides for iOS and Android explaining how to download the game in Canada.

Related readingPokemon Go will launch in Europe and Asia ‘in a few days’

SourceTwitter (2)
12 Jul 20:50

How the Internet May Evolve

by Stephen Downes
The Pew Research Center is inviting a select group of people to participate in a survey that asks people to answer five questions about how internet may evolve – about the tone of social discourse online, education innovation for future skills, the opportunities and challenges of the Internet of Things and algorithm-based everything, and trust in online interaction. If you would like to share your knowledge, please access the survey here:

https://www.surveymonkey.com/r/PD6772K

Here are my responses:

In the next decade, will public discourse online become more or less shaped by bad actors, harassment, trolls, and an overall tone of griping, distrust, and disgust?


       Online communication becomes LESS shaped by negative activities
       Online communication becomes MORE shaped by negative activities
X     I expect no major change in the tone of online interaction



I think it's important to understand that our perception of public discourse is shaped by two major sources: first, our own experience of online public discourse, and second, media reports (sometimes also online) concerning the nature of public discourse.

From both sources we have evidence that there is a lot of influence from bad actors, harassment, trolls, and an overall tone of griping, distrust, and disgust, as suggested in the question.

But a great deal of public online discourse consists of what we and others don't see. For example, you don't see the discussions I have on my Facebook feed or on Twitter with interesting and informed participants. Indeed, I am even sometimes inclined to think of it as private discourse, because of course it doesn't take place on some troll-magnet like YouTube, but it is nonetheless public discourse.

So a couple of things are happening. First, I'm biasing my own perception by taking a particular stance on the meaning of 'public' (as equivalent to 'mass'), and second, I'm receiving a confirmation bias because the main thing mass media says is that it is dominated by bad actors, harassment, trolls, and an overall tone of griping, distrust, and disgust.

I expect people, because of these biases, to project that there is more and more of this sort of behaviour, even though the rate remains steady. It's a lot like people's perception of crime rates when they are informed by mass media. And because media says (incorrectly) that this sort of behaviour is then norm, I expect a certain level of it to continue.

Hence I project no real change.



In the next ten years, do you think we will see the emergence of new educational and training programs that can successfully train large numbers of workers in the skills they will need to perform the jobs of the future?

X    Yes
       No


I think we will see educational and training programs that can successfully train large numbers of workers because for the most part mechanisms will be in place that enable them to train themselves. Within ten years, we should be beginning to see that the idea of 'providing' training education or training is misguided, because it's overly expensive and less effective than self-managed learning.

I find it interesting, even, that the question itself presumes that stills must be 'taught'. "Which of these skills can be taught effectively via online systems?" It's not that the skills are taught, per se, but rather than the skills are learned. A wide range of activities may enable skills to be learned - especially multidisciplinary skills, such as critical thinking or social interaction - without specifically teaching those skills.

There are very few skills that require specific and personal instruction from an expert to learn - frankly, I can't think of any - which means that within ten years we should at least be able to countenance the possibility that all, or nearly all, educational programs may be automated. Or course, they will continue to require the time and participation of the individual learner, and in many cases, social interaction with other learners, but the labour-intensive learning industry we have developed to this point will not be required.

I see two major objectives to this argument:

- first, it may be argumed that personal interaction is required in order to get to know a student, and therefore anticipate what they need.

However, in ten years it will be arguable (and probably demonstrable) that your own computer networks will know you better than any individual instructor could, even an instructor who worked with you your entire life. Sure, there are disasters like the Facebook news stream, but people are already amazed at how much Google knows about them. And we know that with enough data analytics can outperform humans even in complex tasks..

- second, it may be argued that personal interactyion is required in order to evaluate a student's level of achievement.

Most actual assessment (not to be confused with multiple-choice tests) in school or professional programs is based on expert recognition. The submitted behaviour (an essay, performance in surgery, piloting an aircrafdt in a simulation) is not assessed according to whether a set of indicators is achieved (this would possibly be a necessary, but never a sufficient, condition). The expert looks at the overall behaviour and assesses whether that competency has been met.

The expert is serving as a proxy for the community at large. With modern communications technology, this proxy is no longer required. Through the course of any given day, as a person goes through various activities, they interact with dozens of other people, either in person, or through online interaction. Each person responds to them in some way, not by testing them, but by (for example) engaging them in conversation, asking questions, following advice, etc.These responses, over time, form a comprehensive (and constantly changing) assessment of the person.



Will the net overall effect of algorithms be positive for individuals and society or negative for individuals and society?

X    Positives outweigh negatives
       Negatives outweigh positives
       The overall impact will be about 50-50


The sort of discrimination, social engineering and  other societal impacts we have today often have a negative impact because they are based on crude stereotypes and result in inappropriate measures. Their impacts are magnified when deployed by social systems causing harm to individuals based on these crude measures.

But new algorithms will have profoundly beneficial effects because they will:
- provide a person an accurate picture of themselves, and not a negative self-image reinforced by media messaging and stereotypes
- prevent other individuals from basing their assessments of us on unreliable intuition, incomplete or inaccurate data, or bias and prejudice

The negative expectations that exist - for example, fears of loss of employment, termination of health insurance, discrimination in housing opportunities, unfair denial of credit, media 'bubbles' and tunnel-vision, government surveillance and control, etc., are all reflective of *today's* reality. They are not properties inherent in the new technologies, they are things that are done to people every day today, and which new technologies will make less and less likely.

Some examples:

Banks - today backs provide loans based on very incomplete data; It is truie that many people who today qualify for loads would not get them in the future. However many  people - and arguably many more people - will be able to obtain loans in the future, as banks turn away from using such factors as race, socio-economic background, postal code, and the like to assess fit. Moreover, with more data (and with a more interactive relationship between bank and client) banks can reduce their risk, thus providing more loads, while at the same time providing a range of services individually directed to actually help a person's financial state.

Health care providers - health care is a significant and growing expense not because people are becoming less healthy (in fact, society-wide, the opposite is true) but because of the significant overhead required to support increasingly complex systems, including prescriptions, insurance, facilities, and more. New technologies will enable health providers to sift a significant percentage of that load to the individual, who will (with the aid of personal support systems) manage their health better, coordinate and manage their own care, and create less of a burden on the system. As the overall cost of health care declines, it becomes increasingly feasible to provide single-payer health insurance for the entire population, which has known beneficial health outcomes and efficiencies.

Retailers - Alvin Toffler predicted an era of mass custom production, where a good is not manufactured until it is ordered. We are on the cusp of providing this today, from sourcing of raw materials on a real-time basis through production and deliver via automated vehicles or drones. Additionally, software provide efficiencies in many industrial systems, from energy production to storage, distribution and use, resulting in a more environmentally friendly economy.

Governments - a significant proportion of government is based on regulation and monitoring, which will no longer be required with the deployment of automated production and transportation systems, along with sensor networks. This includes many of the daily (and often unpleasant) interactions have with government today, from traffic offenses, manifestation of civil discontent,unfair treatment in commercial and legal processes, and the like. A simple example: one of the most persistent political problems in the United States is the gerrymandering of political boundaries to benefit incumbents. Electoral divisions created by an algorithm to a large degree eliminate gerrymandering (and when open and debatable, can be modified to improve on that result).




Will people’s trust in their online interactions, their work, shopping, social connections, pursuit of knowledge and other activities, be strengthened or diminished over the next 10 years?

       Trust will be DIMINISHED
X    Trust will be STRENGTHENED
       Trust will stay about the same


This is a very similar question to the first question. We experience many reasons to distrust our interactions, and traditional media are reporting numerous cases where they should be distrusted, so we think rising distrust is the norm, and yet on a personal basis, as time goes by, we are more and more trusting.

People who did not even know people in other countries, much less trust them, now travel half way around the world to participate in conferences, rent and live in their homes, meet on a date, participate in events, and more. Sure, things like catfishing are problems. But the exception is a problem only in the light of the trust that is the rule (Wittgenstein: a rule is shown by its exceptions) 

People who did not trust online retail a decade ago now purchases games, music and media on a regular basis (they're still a bit wary of deliveries from China, but they're coming around to it).

People who did not trust online banking a decade ago now find it a much more convenient and inexpensive way to pay their bills. They also like the idea that their credit cards are now protected.

People who were sceptical of online learning a decade ago now like in an era when, in some programs, some online learning is required, and where there is no real distinction (and no way to distinguish) between an online or offline degree (and meanwhile, millions of people flood in to take MOOCs).

We can see where this trend is heading by looking at a few edge cases. For example: what would we say of a pilot that never trained in a simulator? What would we say of a lawyer who did not rely on data search, indexing and retrieval services? We trust them more in the future because they are taking advantage of advanced technology to support their work.

It seems like less trust, but it's more trust.

When we hear only one voice, we trust that voice. When we hear many voices, we trust that one voice less. As we should. And it feels like less trust, But we trust all of those voices, and the overall dolidity of our information, more. Feels like less, but is actually more.



As automobiles, medical devices, smart TVs, manufacturing equipment and other tools and infrastructure are networked, is it likely that attacks, hacks, or ransomware concerns in the next decade will cause significant numbers of people to decide to disconnect, or will the trend towards greater connectivity of objects and people continue unabated?

X    Most people will move more deeply into connected life
       Significant numbers will disconnect


It is truie that attacks, hacks, or ransomware concerns impact our enjoym,ent of modern technology. But it's important to note that what they impact is almost exclusively our enjoyment of modern technology.

A person choosing to disconnect from modern technology suffers the same fate as the person who has been hacked. They lose the enjoyment of modern technology. So disconnecting from technology isn't a viable response to attacks, hacks and the rest.

People won't be looking to withdraw from modern techn ology, they will be looking for better and more secure modern technology (to a point; as people's choices of passwords such as '123456' show, they are willing to sacrifice a certain amount of security for a certain amount of convenience - ondeed, if anything forces people off new technology, it will be the security measures, not the crimes).


12 Jul 20:49

Does anyone have Theresa's number? I need to ring her to explain how May's Britain works.

by MrJamesMay
mkalus shared this story from MrJamesMay on Twitter.

Does anyone have Theresa's number? I need to ring her to explain how May's Britain works.


Posted by MrJamesMay on Tue Jul 12 08:10:55 2016.


4859 likes, 1299 retweets


1989 likes, 637 retweets
12 Jul 20:49

London real estate is falling down, falling down

by pricetags

From boingboing:

London

The Evening Standard’s reporting on London’s overheated property bubble is thin on stats, long on individual cases, leading me to wonder about cherry-picking, but they do quote an estate agent who sounds near-suicidal (“There’s no end to how far prices could fall”) and cite unnamed “foreigners” who have stopped bidding on London property because they’re afraid of mounting xenophobia and racism.

They do cite one plausible sounding stat: 1 in 6 listings of the “reduced” listings on Zoopla were cut since the Brexit vote (it’s not clear whether this is unusual, though). There’s also the undeniable fact that a lot of City bankers will be leaving the country, relocated at employer expense, and their houses will go on the market.

Even without a sound statistical footing, these stories are important, because the London property market is one of the most overinflated bubbles in real-estate history, and like all bubbles, it is liable to panicked stampedes. Everyone who lauded their own financial brilliance for having bought into the market (or took out second and third mortgages to buy rental property) has also heard a nervous voice in the back of their heads, asking how long it could all last, and whether it would have a “soft landing” when it was over, or explode like Mr Creosote. If even a few speculators decide to cut their losses and list their properties now, it will increase supply, suppress prices, and cause more people to sell. …

As ever, this crash will be more of a hardship for regular people than for 1 percenters, who will take steps to cushion themselves (if you live in Vancouver, New York, LA or Seattle, get ready for an all-out assault on your housing stock!). But it will be an especially hard landing, thanks to all the special measures and conjuring tricks pulled by successive governments to keep the bubble inflating: cheap capital gains tax, no disclosure requirement for beneficial owners of properties, cash subsidies to “get on the housing ladder,” the virtual elimination of tenant protections, inheritance holidays for property bequests, and so on.


12 Jul 20:49

Will safer cars be too expensive for the typical family?

by pricetags

From the New York Times:

New Cars

AS prices for new vehicles continue to rise, the cost of an average new car may be a stretch for typical households.

A new analysis from Bankrate.com found that a median-income household could not afford the average price of a new vehicle in any of the 50 largest cities in the country, though cars are more affordable in some cities than others.

“The new reality is that cars are becoming more expensive,” said Steve Pounds, a personal finance analyst for Bankrate. “People are having to make tough decisions about financing.”

The average price of a new car or light truck in 2016 is about $34,000, according to Kelley Blue Book. That’s in part because new cars are loaded with helpful but expensive safety features like collision-avoidance systems.

Bankrate calculated an “affordable” purchase price for major cities, using median incomes from United States census data, and factoring in costs for sales taxes and insurance. In San Jose, Calif. — the heart of Silicon Valley — the median income is about $84,000, and an “affordable” new car purchase price is about $33,000 — close to, but still below, the average new car price.

In lower-income cities, however, affordable purchase prices for a typical family are far below the average cost of a new car. In Hartford, Conn., where the median income is about $29,000, an affordable purchase price is about $8,000 — about a quarter of the average new-car price.

Full article here.


12 Jul 20:48

New blog theme

by Doug Belshaw

Dai Barnes reminded me on the latest episode of TIDE just how annoying pop-ups are. That led to me thinking more generally about my blog and how I wasn’t happy with the theme I’ve used here for the last six months.

As a result, I searched for a new, clean theme. I think I’ve found it in a lightly customised version of Rams. I ensured the sidebar was the same colour as my consultancy website, and that I used the same fonts.

I think it’s looking pretty good!

12 Jul 20:48

Firefox 47 Support Release Report

by rmcguigan

Firefox 47 Release and Firefox iOS 4.0

In London, Mozlondon, we had a session on creating a SUMO Release Report a few weeks after major updates to Mozilla products. This post will be the first to include testimonials from users and submissions from users in the community to make it unique to SUMO. With the intention to highlight all of the work that the community comes to accomplish together, the user testimonials, feedback, copious issues found, brought to attention and solved, knowledge base articles created, and collaborated on, as well as article translations to so many languages and organized social media this report shows how much we need your help. Core Community Members and new ones are equally as important.  We have highlighted the issues that were and are actively being tracked down to improve Firefox and other Mozilla products.

We have lots of ways to contribute, from Support to Social to PR, the ways you can help shape our communications program and tell the world about Mozilla are endless. For more information: [https://goo.gl/NwxLJF]

Customer Kudos to the SUMO community

1104 users said “thank you” out of the 7300 answers during this time.

christ1 - 1127702 jscher2000 - 1127482 linuxmodder - 1126874 corel-1127667

We cannot include all of the thank yous that were received, however these are many of the community members that also received thank yous from Firefox users. Shout outs to Fred, cor-el, Seburo, philipp, Matt, Zenos, Scribe, jscher2000, James, Wayne Mary, Chris Ilias, Christ1, the-edmeister, Tonnes, Toad-Hall. They all received direct thank yous from users and their solved issues.

Feedback and community highlights

Knowledge Base

Article Voted “helpful” (English/US only) Global views Constructive User Feedback
Desktop

(June 7 – June 30)

Allow Firefox to load multiple tabs in the background 71-76% 5340 “Why do you think it is a good idea to confuse existing users with taking away the options they once had? Why change the options that they choose to set? I am mildly upset”
Pages appear tiny when I print or view them in Print Preview 51-62% 3281 “Still having an issue.”
“My print_paper_height and _width settings appear in millimeters even though the paper being used is set to 8.5 x 11 inches. Margin settings still appear in inches”
“Prints half size in width. Followed instructions exactly”
“page goes from very small when printing to very large font when using email”
“actually my log in page is about the size of a dollar bill…..I cant see it because it is so small I can go to Internet Explorer and I have NO PROBLEM but firefox another story”
Firefox support has ended for OS X 10.6, 10.7 and 10.8 57-83% 3222
Watch DRM content on Firefox 66-70% 209049 “never had a problem watching videos on amazon prime till you people came up with this explanation that to non tech people is just jibberish”
“all of a sudden not work to stream toytube or netfilx”
“Has no mention of whether Linux will have Widevine support in the future. This seems odd given that Google Chrome already has that support built-in.”
Android

(June 7 – June 30)

Turn off web fonts in Firefox for Android 100% 340 none
What’s new in Firefox for Android 8 none
Firefox Marketplace Apps Stop Working on Firefox 47+ for Android 71-95% 26612 none
iOS
What’s new in Firefox for iOS (version 4.0) 60-87% 1,618,561 None
Add Firefox to the Today view on your iOS device 75-85% 18,071 None
Certificate warnings in Firefox for iOS 72-76% 2,751 none

**No articles were linked from major publications (via Google Analytics.) but if you see any in your region, please mention them.

Localization

Article Top 10 locale coverage Top 20 locale coverage
Desktop (June 7 – June 30)
Allow Firefox to load multiple tabs in the background 100% 66.6%
Pages appear tiny when I print or view them in Print Preview 100% 66.6%
Firefox support has ended for OS X 10.6, 10.7 and 10.8 40% 23.8%
Watch DRM content on Firefox 100% 80%
Android (June 7 – June 30)
Turn off web fonts in Firefox for Android 100% 66.6%
What’s new in Firefox for Android 60% 33%
Firefox Marketplace Apps Stop Working on Firefox 47+ for Android 100% 57%

Support Forum Threads

One of the major impacted issues during the first three weeks of the release was an increase in reports to fake updates and malware from those updates. Many of them were reported and still be investigated.

Not solved top viewed threads – GA

In this spreadsheet: https://docs.google.com/spreadsheets/d/1YjeyJs-VrofC0qMkf5uv5DUtJzsZjrfopEBarZ-ePTI/edit#gid=1219676230

Bugs Created from Forum threads – SUMO Community

Bugs mentioned

Social Support Highlights

Brought to you by Sprinklr

Total contributors in program

In this time we had a total of 14 of you login and participate in the Firefox 47 release.

New users added in period of the report

Welcome Magno, Daniella, Luis, and TheoC to the team you were very active these past three weeks and thank you for supporting Mozilla Open Source users on Facebook and Twitter on the Sprinklr tool.

Top 5 Contributors

User Number of Replies
Andrew Truong 56
Noah Y 24
Jhonatas Rodrigues Machado 12
Alex_Mayorga 6
Magno Reis 4

Number of Replies: 111

Trending issues in Sprinklr

Outbound top engagement:

Each Facebook outbound post reached one person for support, the two major engagements overlapped with Code Emoji and the plane,

Top Twitter Posts

This version we removed the tag summary and are currently working on items that translate to more specific categories. Not working will be removed and more will be added. However taking a deep dive in the top categories for outbound messages to Mozilla Open Source product users this what we found.

  • “Not working” is associated with these suggested troubleshooting steps and categories: antivirus was mentioned 3 times, malware  was mentioned once, trying a Firefox Refresh 1, hanging 1, Trying Safe mode 1, and Kaspersky 1, changing a Firefox setting was mentioned once, and a more complicated website issue was asked to troubleshoot in the forums. This can be concluded to be some of the most common troubleshooting steps for Firefox for Desktop described here: http://mzl.la/16zLrEU
  • “Crashes” is associated with outbound troubleshooting that  say check out how to ttp://mzl.la/14A6XM2 or go to the support forum 50/50 of the time.
  • “Video” tags were the third top category and basic troubleshooting were to clear the cache, asks if the website is the issue and suggests html5.
12 Jul 15:22

R in the data journalism workflow at FiveThirtyEight

by Nathan Yau

R has found its way into a good number of news groups who do data journalism. Andrew Flowers for FiveThirtyEight talks about how they use the statistical computing language throughout their workflow.

R is used in every step of the data journalism process: for cleaning and processing data, for exploratory graphing and statistical analysis, for models deploying in real time as and to create publishable data visualizations. We write R code to underpin several of our popular interactives, as well, like the Facebook Primary and our historical Elo ratings of NBA and NFL teams. Heck, we’ve even styled a custom ggplot2 theme. We even use R code on long-term investigative projects.

Tags: FiveThirtyEight, lunch talk, R

12 Jul 15:21

Seeing Stars

by Soraya King

When my brother Mark died I didn’t feel like being alive anymore, but sleep was as close as I was willing to put myself to death. So I slept endlessly. When I woke up, at 2 p.m., at 4 a.m., again at 7 a.m., I’d scroll through social media until I could will myself back to sleep. Kanye would tweet something. When I woke again, people were sharing photos of his tweet printed out and hung in their office cubicles. The next time I woke up, the tweet was on cakes and T-shirts.

Celebrities and countries were fighting; the wifi at my mom’s apartment ran so slowly that things took absurdly long to load. I watched a 30-second TMZ clip of a model on a beach posing seductively before being knocked down by a wave as it slowly buffered over 10 minutes. A week later, someone finally restarted the router.

When I left the apartment, the world felt too harsh — fast and bright and no longer mine. People reached out but I spent most of my time alone, wearing Mark’s clothes, sleeping in the room that had been mine and then his and was now mine again.

Some days, I worked frantically on making a memorial service that would feel true to someone who wore flip-flops everywhere and died only a few months after turning 21. Some days I couldn’t do more than order Seamless from Mark’s account. “Hi, Mark,” Seamless said. Often I missed daylight entirely, catching up later on my phone. Each year-end roundup made me furious. I didn’t want the last year Mark was alive to end and I definitely didn’t want a new one to start without him.

Some days I couldn’t do more than order Seamless from Mark’s account. “Hi, Mark,” Seamless said

In January, a few days after the memorial, David Bowie died. I scrolled through hundreds of tweets and Instagram posts. What about Mark? I thought, stewing in my bed. Why didn’t the whole entire world stop when he died? Then Snape died. Then Céline Dion’s husband. Everyone kept calling it tragic; he was 73! I wanted to shout. People were tweeting and penning Facebook posts; everyone was “devastated” and “heartbroken.” But I knew that after clicking tweet or post or share most people carried right along with their days. They’d listen to Bowie on the subway home from work. But when they turned the key in the lock, they left their grief behind.

Grief was my entire world — it crowded my thoughts and clouded everything I did. But I clung to it too. A friend of Mark’s, who had lost her mother, told me grief is like a wound. Slowly, it’ll heal. You’ll still have the scar, but it won’t hurt as much. She meant this as a comfort; I took it as a threat. I didn’t want the pain to go away because it would take me further from Mark. I’d lost him and I wasn’t willing to give up anything else. What would I be left with if I could overcome the loss of my brother?

Grieving is knowing something to be true without fully accepting it. My phone proved a necessary distraction. I played endless rounds of solitaire, placing a jack on a queen, moving a six here, putting an ace up, unfurling new cards. Shockingly soon, a trophy popped up on my screen. I’d played 1,000 games.

On one of these endlessly long days, someone retweeted a photo of stars beneath a series of coordinates. The image was crowded with pinpricks of light and I clicked to @AndromedaBot. Some guy named Joe had created it to explore Hubble’s largest photo “a little bit at a time.” The full photo offers the clearest picture of the Andromeda galaxy. Apparently, you’d need 600 HD TVs to display the entire thing. There are over 100 million stars visible, but no indication at what point someone stopped counting.

Between tweets covering the most mundane details of celebrities’ lives, the celestial began to appear regularly in my feed. Each photo segment was dramatically different from the one that preceded it. Sometimes, it looked like spilled glitter. Sometimes there was only blackness with a smattering of planets and stars, one much bigger than the rest. The photos varied from purplish to puce to a speckled black. A little bit at a time made a lot of sense.


“Alex saw an astronomer!” my mom said to my brother Robert after I’d told her. “Astrologer,” I corrected her, wincing. Robert is many things and one of them is someone who studied astronomy in college. He rolled his eyes and grabbed a seltzer. “That is the dumbest thing I’ve ever heard,” he said. “It’s just a way of looking at things,” I responded, defensively, before adding, “You can get something out of it even if you don’t believe in it.” He rifled through the fancy baked goods people were still sending us, mostly ignoring me. “I can learn something about Mark from a novel, even if I know it’s not real,” I said, but by then he was already gone, down the hall.

I’d agreed to go to my friend Grace’s astrologer even though I did not want to be one of those people who look for something in nothing. After Mark’s death, I was wary of anything that promised comfort, afraid I might slide uncontrollably into becoming the kind of person who finds messages in burnt toast. On the day of my appointment, I almost feigned a migraine, but I knew everyone would know I was lying. Instead, I put a coat over the sweatpants I’d been wearing for days, and went to see Jeane, to whom I’d already given the date, location, and time of my birth, plus Mark’s.

Jeane opened the door wearing a bright orange baseball cap with nothing on it. It looked absurd, but in a good way. Okay, I thought. I can do this. We sat across from each other at her dining room table and she offered me snacks. Since I don’t know anything about astrology, she would point to something on the chart, say what it was, and then tell me what that told her.

It was comforting to hear a stranger echo back minor details of Mark’s life. “His [something] is in the [something],” she said, “and to me, that indicates a reluctant interest in fashion.” I laughed and told her that Mark had been model scouted on the subway, walking twice in New York Fashion Week. He’d been nonchalant about it, but he was clearly proud, especially when they asked him to return for a second show. “Mark,” she said, jovially, “Mark! If you’re here, we know you loved it.”

I thought of helping him cut his jeans into jorts. I thought of all the times he’d knocked on my door to show me a weird sweatshirt he’d bought at a thrift store with Caroline. I thought of the summer before, when his shirt and shorts clashed so much someone asked if it was laundry day with a knowing smile and we had laughed because it wasn’t.

Something rising somewhere indicated an interest in the arts, visual maybe. Mark had kept a list of all the movies he wanted to watch, crossing out those he’d seen. He took beautiful portraits of his friends and family; he loved photography so deeply.

Between tweets covering the most mundane details of celebrities’ lives, the celestial began to appear regularly in my feed. Sometimes, it looked like spilled glitter

Jeane showed me a line on his chart that indicated the pain he’d experienced. Another line crossed that one, there was a moon rising somewhere, and this meant he’d been a leader. “There are two types of leaders,” Jeane said. “There are those that come down from the mountain insisting they know the answers and then there’s the kind of quiet leadership that comes from within.” Mark, she said, was the latter. “The people that most received his message were his peers.”

I thought of Mark’s friends and the night they came over after he died. We were in the kitchen and they all trooped in, the dogs barking, the boys ever taller than before, the girls following behind. Usually, they’d come in laughing and joking, usually Mark would be somewhere in the bunch. My eyes had traveled over all of them until the last one entered, because I wanted to see Mark there, Mark here, Mark pulling open the fridge door and grabbing a seltzer.

“It’s strange,” I said, “He was in immense pain, he struggled so much, but he wasn’t really the picture of a depressed person. He was joyful and funny and so much fun to be around. Sometimes it was really confusing.”

Then Jeane said something I still carry with me. “Think about what photography is — it’s about turning darkness into light. That’s not a metaphor, that’s literally what it is. Sometimes you see that in people too. There’s something really beautiful about a person who can turn their own pain and their own darkness into light for others.”

I found Jeane’s method hard to believe in, but what she said I knew to be true. Mark was a leader, a light, a person whose life was marked by suffering and profound happiness, isolatingly untranslatable pain and also the warmth of community. But his death by suicide raised endless questions about responsibility, inevitability, and choice that I wrestled with constantly.

The stars and planets don’t stop just because someone’s life does, Jeane said; she could continue to read his chart even though he had died. There would be, according to Jeane, a period of nearness for several years, based on the alignment of astronomical things I can’t remember. Then, Jeane said, there would be a change. “I don’t want you to take that to mean that in seven years Mark is coming back,” she said. “Maybe it just means you guys find a new way of living with his loss, a new way of remembering him.”

Jeane clearly had wisdom, but she didn’t pretend to have all the answers. I wanted to know how Mark could possibly be here if he was no longer living, I needed to know where to find him and what to look for. I was grateful that Jeane didn’t offer certainty she didn’t have, but I also wanted it so badly.

“He’s in your heart,” people would say, but that was not enough. I wanted him alive, and if not alive, I wanted him here still in some real, quantifiable way. I wanted an explanation that I could have relayed to Mark without him raising his eyes suggestively while making the exaggeratedly spooky noises from Scooby Doo and then cracking up.


We do not come from a religious household, even though my dad was once a Catholic altar boy. Growing up, religion was largely the domain of our grandmothers, who’d wear crosses around their necks (one Catholic, one Protestant) and go to church on Sundays. They believed in things like heaven and angels but never tried to push that on us, except for the time my great aunt got so worried that my older brother Andrew and I might die and rot in purgatory that she led our little selves into the bathroom, locked the door, and performed her own baptism in the bathtub.

The idea of the spirit or the soul felt false; instead, I clung to the idea of energy, which seemed more rigorously provable. He’s dead, but he is not gone, I’d insist to myself. The energy he was made of is still here. He’s not turning into a tree, that’s fine, but there’s probably some of him in this room. That’s just science. I didn’t really know much about energy beyond the whole “can neither be created nor destroyed” thing, but I thought maybe the body let go of any unused energy at death. I liked to picture him around us. Mostly I imagined that energy just loosely close and there when we needed it, Mark nearby but not watching us pee or anything like that.

I googled it. “Quick note: If you’re presently grieving, don’t read this,” said the first result. Of course, I ignored the warning. A lot of energy, it turns out, goes toward decomposition and is then expelled as heat. It’s true that the waves and particles and protons that made him my living, breathing brother are still here… somewhere. But as I read more, I realized that I’d only focused on the second half of the energy law. All that energy passed through him, but it didn’t really come from him.

The stars shine for no one at all and the bot tweets endlessly to an unknown audience, going on and on without us

And so energy wasn’t the answer, but maybe light could give me some comfort. I thought about the light that illuminated our lives — the days and weeks and months and years in which all four of us were alive. I imagined that light radiating endlessly outward into the universe. It was comforting to think that when we look into the sky we’re seeing the past, since that’s where I wanted to be. After some googling, I determined that if you traveled two light years away from earth, you’d see the planet as it was when me and my three brothers all lived. You’d have to go 12 trillion miles.

If you went further, so far I can’t even understand what the number of miles is, you could turn and you’d see the planet as it was when I only had two brothers, but Mark wouldn’t be dead, he just wouldn’t be born yet. Further still and I’d ruin Andrew’s only-child status. Back further and the Ronan kids would mean my dad and his siblings, not me and mine.

Mark was dead, but that light of our lives wouldn’t stop traveling. What we had together isn’t over; it’s just moving away, I told myself. Then it occurred to me that the earth is a planet, not a star. I asked my boyfriend Greg how you could see the earth from light years away if it wasn’t producing light. When he explained, I burst into tears. To double check, I emailed my friend Raillan, who knows more than anyone else about how these things work. I didn’t tell him why I needed to know. Raillan wrote back quickly and didn’t ask why I was suddenly interested in exosolar planets. He talked about interstellar smog smothering luminosity. He acknowledged that the earth is emitting light, but only a little, and mostly from reflected sunlight. Atmospheric dust and interstellar smog did not fit into what I’d imagined. I was devastated.


Sometimes I tried to take part in my own life. I saw friends; I started working again. I knew I seemed okay for a girl whose brother died, but I also knew I was irreparably broken and I didn’t want to be fixed. I still used my phone whenever I needed to not think about anything. I got up to level 82 in TwoDots before deleting it entirely.

I continued collecting memories and stories and details about Mark. I came across a song called “I Love You, But Goodbye” that made me sob uncontrollably for an hour. If not directly from him, the words felt of him. I sent it to Caroline and she wrote back to say that Mark loved the band. I had no idea. It felt like the most precious gift.

I wish I believed that Mark was watching from somewhere, offering me this comfort from afar. I don’t exactly believe all that, but he did live and love and share his life with a lot of people, so it’s also true in a way, that these comforts come from him. His energy, or what’s left of it, may not surround us, but his influence does, and that was born of the days and nights he spent here, all the energy he put into being alive.

I wonder what it was like to be him, to live with a brain that works constantly against you. I wish that something could have helped him. Some things did, but not enough and now he’s gone.

I keep the star charts Jeane drew in a drawer — Mark’s, mine, the one we shared. Every day, as soon as I get home, I crawl back into bed. The world still moves too fast for me, and celebrity minutiae feels more like my speed. A tabloid tells me that Selena Gomez got a coffee. Then, later: How to get Selena’s coffee casual look. Later still, I click one that went something like “Sipping Coffee and Sending Texts: Ten Theories On Who Selena Is Talking To (Hint: It’s Not Justin).”

Between those, the Andromeda bot appears in my feed, spitting out stars. The bot offers a look at the physical universe, something that is, no matter what meaning we ascribe to it. The expansiveness that each tweet communicates makes me feel tiny. Even though the pain of losing Mark feels bigger than anything else, the photos remind me that something bigger is everywhere around. The stars shine for no one at all and the bot tweets endlessly to an unknown audience. We look to the stars for meaning, we make the bots that go on and on without us. Grieving or not, we place ourselves and try to find our place.

I signed up for the Hubble press newsletter and now the stars come to my inbox. I get an embargoed photo of what I agree looks like “a gigantic cosmic soap bubble” and learn that the Hubble telescope now has two million Facebook friends. They’re always finding new things. A few weeks ago it was three potentially habitable worlds near some dwarf star. Before that, a comet with fragments from Earth’s formation returned after billions of years in something called cold storage. It may offer clues about the beginning of our solar system. It may not. I’m sure they’ll let me know.

These days, I don’t take much comfort in ideas about energy. I don’t entirely know how light works, except that it doesn’t work in the way I want it to. I don’t look at the stars and imagine the heavens; when I look at the stars, I think of what Mark’s friend Lizzy said: “He could find the Big Dipper even if the sky was cloudy.” I think of the things Mark taught me and I wonder what he knew about the sky.

When people ask how we are, I usually say, “Every day seems impossible, but then it is over.” I mean that I don’t know how to live without him. I mean that I don’t want to have to figure it out, but that I will, largely because the days keep coming, but also because I know Mark wouldn’t want it another way.

I carry him in my heart, of course, and he’s alive in our memories. Sometimes I even see Mark in my dreams. It’s so painful to be here without him, but when I look up at the stars, when I’m feeling too sad to do anything but refresh my Twitter feed, and the @AndromedaBot pops up, I just feel lucky. Mark isn’t here, but he was. Of all the galaxies, we both ended up in this one, right on this planet, at the same time. We were here together, and that’s not nothing.

12 Jul 15:21

The only purpose of business writing is to create change

by Josh Bernoff

Business writing has only one purpose: to create a change in the reader. If your writing creates no change in the reader, it has failed. This is different from other forms of writing. The purpose of fiction is to entertain. The purpose of media is to get you to read as much and as long as … Continue reading The only purpose of business writing is to create change →

The post The only purpose of business writing is to create change appeared first on without bullshit.

12 Jul 15:20

Canadian company Tek Gear is giving out VR headsets for free plus shipping

by Rose Behar

Tek Gear is adding new meaning to the saying “the best things in life are free” by offering free smartphone compatible virtual reality headsets to anyone who wants one.

The Canadian company has been in the VR business for over 24 years, creating immersive tech for various sectors including the military and medicine. Eager to usher in the era of consumer VR, the company is offering the FreeHMD headset for $0 plus shipping on its website, to work with smartphones Android 4.1 or higher and iOS 8.0 or higher that can run Google Cardboard supporting apps. The phones will also need to have screen sizes between four and six inches.

“The promise of a low cost HMD has faded with the recent launch of entry level consumer VR headsets. With starting prices of $600 and as high as $1,200, this is well out of reach of the average consumer,” Tek Gear president Tony Havelka stated in a release, “Our experience in the VR industry has shown us that, in order to get a consumer grade VR headset to market, it must have a much lower cost.  There’s nothing lower cost than $0 – so that’s where we set the price.”

So what’s the catch? Tek Gear promises there is none. The company further explains on its site that its free because the company wants to “keep this market growing and give everyone access to VR.”

Additionally, Tek Gear teases that it’s working on new products that VR users are going to get really excited about, “so a big user base will help us make these products a reality.”

Update 06/12/16: Many readers are reporting that the shipping comes to $28 USD, equalling more than some Amazon options that offer free shipping. Still, it’s a good deal, especially if you’d like to support a Canadian company. The estimated shipping date is currently 8/8/2016.

Related reading: Google’s head of VR says virtual reality has a long way to go before mass adoption

SourceCNW
12 Jul 05:45

Browser Developer Tools Tricks

by Tony Hirst

Noticing that Alan just posted a Little Web Inspector / CSS Trick for extracting logos from web pages, here’s one for cleaning up ads from a web page you want to grab a screen shot of.

For example, I often take screenshots of new web pages for adding to “topical timeline” style presentations. As a reference, I often include the page URL from the browser navigation bar and the newspaper banner. But some news sites have ads at the top that you can’t scroll away:

Tesla_driver_dies_in_first_fatal_crash_while_using_autopilot_mode___Technology___The_Guardian

Using a browser’s developer tools, you can “live edit” the page HTML in the browser – first select the element you want:

Tesla_driver_dies_in_first_fatal_crash_while_using_autopilot_mode___Technology___2

then delete it…

Tesla_driver_dies_in_first_fatal_crash_while_using_autopilot_mode___Technology___3

If that doesn’t do the trick, you can always edit the HTML directly – or modify the CSS:

Tesla_driver_dies_in_first_

With a bit of tinkering, you can get a version of the page that you can get a clean screenshot of…

Tesla_driver_dies_in_first_fatal_crash

 

By editing the page HTML, you can also create you own local graffiti to web pages to amuse yourself and pass away the time…!;-)

For example, here’s me adding a Brython console to a copy of the OU home page in my browser…

Distance_Learning_Courses_and_Adult_Education_-_The_Open_University

This is purely a local copy, but functional nonetheless. And a great way of demonstrating to folk how you’d like a live web page to actually be, rather than how it currently is!-)

 

 


12 Jul 05:08

The Gear You Need to Survive Pokémon Go

by WC Staff
wc-pokemonleaderboard-630-v2

Going to spend all day chasing Pokemon around town? Our Pokémon Go Survival Gear will make sure both you and your phone get through in one piece!

12 Jul 05:06

Lepton image compression: saving 22% losslessly from images at 15MB/s

by Daniel Horn

We are pleased to announce the open source release of Lepton, our new streaming image compression format, under the Apache license.

Lepton achieves a 22% savings reduction for existing JPEG images, by predicting coefficients in JPEG blocks and feeding those predictions as context into an arithmetic coder. Lepton preserves the original file bit-for-bit perfectly. It compresses JPEG files at a rate of 5 megabytes per second and decodes them back to the original bits at 15 megabytes per second, securely, deterministically, and in under 24 megabytes of memory.

We have used Lepton to encode 16 billion images saved to Dropbox, and are rapidly recoding our older images. Lepton has already saved Dropbox multiple petabytes of space.

Community participation and improvement to this new compression algorithm is welcome and encouraged!

Lepton at scale

At Dropbox, the security and durability of your data are our highest priorities. As an added security layer, Lepton runs within seccomp to disable all system calls except read and write of already-open file descriptors. Lepton has gone through a rigorous automated testing process demonstrating determinism on over 4 billion photos and counting. This means that once we verify an image decodes back to its original bits the first time, we can always get back to the original file in future decodes.

All of our compression algorithms, including Lepton, decode every compressed file at least once and compare the result to the input, bit-for-bit, before persisting that file. Compressed files are placed into kernel-protected, read-only, memory before the bit-for-bit comparison to guarantee they are immutable during the full verification process.

A few details about how Lepton works

The JPEG format encodes an image by dividing it into a series of 8×8 pixel blocks, represented as 64 signed 10-bit coefficients. Thus the following 16×16 image would be encoded as 4 JPEG blocks.

JPEG block sample imageJPEG block image

12 Jul 05:06

iloveoldmagazines: New York1979 Vol. 12, No. 13



iloveoldmagazines:

New York

1979 Vol. 12, No. 13

12 Jul 05:06

washingtonpost: washingtonpost: This is the best explanation...

12 Jul 05:06

Twitter Favorites: [MOOMANiBE] Someone set up 3 lure modules on Granville street. This is what it looked like by 12:30. https://t.co/ZoJZ7LXhyo

MOOMANiBE @MOOMANiBE
Someone set up 3 lure modules on Granville street. This is what it looked like by 12:30. pic.twitter.com/ZoJZ7LXhyo
12 Jul 05:05

Twitter Favorites: [TwoHeadlines] Chaka Khan is running for Senate, significantly boosting Democrats' odds of retaking it

Two Headlines @TwoHeadlines
Chaka Khan is running for Senate, significantly boosting Democrats' odds of retaking it
12 Jul 05:05

Twitter Favorites: [bmann] PokemonGo in #Vancouver, BEFORE it’s available in the Canadian app store https://t.co/ScKgeUrT3F

Boris Mann @bmann
PokemonGo in #Vancouver, BEFORE it’s available in the Canadian app store twitter.com/MOOMANiBE/stat…
12 Jul 05:05

Twitter Favorites: [brownpau] Wow, Ingress never requested such all-encompassing Google account access. Poke-revoking for the moment. https://t.co/EJsoyjnWuK

how now @brownpau
Wow, Ingress never requested such all-encompassing Google account access. Poke-revoking for the moment. twitter.com/arstechnica/st…
12 Jul 05:05

Twitter Favorites: [MissStaceyMay] The All-Star break reminds me of those "I miss baseball" winter feelings and maybe that's why I don't want to like it.

Stacey May Fowles @MissStaceyMay
The All-Star break reminds me of those "I miss baseball" winter feelings and maybe that's why I don't want to like it.
12 Jul 05:05

Evolution of an Erlang Style

by James Hague

I first learned Erlang in 1999, and it's still my go-to language for personal projects and tools. The popular criticisms--semicolons, commas, and dynamic typing--have been irrelevant, but the techniques and features I use have changed over the years. Here's a look at how and why my Erlang programming style has evolved.

I came to Erlang after five years of low-level coding for video games, so I was concerned about the language being interpreted and the overhead of functional programming. One of the reasons I went with Erlang is that there's an easy correspondence between source code and the BEAM virtual machine. Even more than that, there's a subset of Erlang that results in optimal code. If a function makes only tail calls and calls to functions written in C, then parameters stay in fixed registers even between functions. What looks like a lot of parameter pushing and popping turns into destructive register updates. This is one of the first things I wrote about here, back in 2007.

It's curious in retrospect, writing in that sort of functional assembly language. I stopped thinking about it once BEAM performance, for real problems, turned out to much better than I expected. That decision was cemented by several rounds of hardware upgrades.

The tail-recursive list building pattern, with an accumulator and a lists:reverse at the end, worked well with that primitive style, and it's a common functional idiom. Now I tend to use a more straightforward recursive call in the right hand side of the list constructor. The whole "build it backward then reverse" idea feels clunky.

For a small project I tried composing programs from higher-level functions (map, filter, foldl, zip) as much as possible, but it ended up being more code and harder to follow than writing out the "loops" in straight Erlang. Some of that is awkward syntax (including remembering parameter order), but there are enough cases where foldl isn't exactly right--such as accumulating a list and counting something at the same time--that a raw Erlang function is easier.

List comprehensions, though, I use all the time. Here the syntax makes all the difference, and there's no order of parameters to remember. I even do clearly inefficient things like:

lists:sum([X || {_,_,X} <- List]).

because it's simpler than foldl.

I use funs--lambdas--often, but not to pass to functions like map. They're to simplify code by reducing the number of parameters that need to be passed around. They're also handy for returning a more structured type, a sort of simple object, again to hide unneccessary details.

Early on I was also concerned about the cost of communicating with external programs. The obvious method was to use ports (essentially bidirectional pipes), but the benchmarks under late-1990s Windows were not good. Instead I used linked-in drivers, which were harder to get right and could easy crash the emulator. Now I don't even think about it: it's ports for everything. I rewrote a 2D action game for OS X with the graphics and user input in an external program and the main game logic in Erlang. The Erlang code spawns the game "driver," and they communicate via a binary protocol. Even at 60fps, performance is not an issue.

12 Jul 05:04

Will the housing crisis finally make someone pay attention to renter issues?

by Frances Bula

That’s what I’m wondering, as the bizarre Vancouver and Toronto real-estate frenzies mean that more people are staying in the rental market for longer — maybe forever.

The Globe is doing a series on renter issues. I kicked it off on Saturday with a look at the general picture across the land and a little bit of history about how we got here, along with the stories from a few renters, some going through hell, and some who’ve found a way to cope.

Canada has an unusually high home-ownership rate, at 69 per cent. At this point, it’s higher than the rate in the United States. And, although I know I’m just asking for a troll attack by daring to mention this fact, Vancouver has a high ownership rate compared to other cities.

I’ve often wondered if both of those are due, in part, to the fact that renters feel so unprotected. (My guess would be another big part is the fact that real estate in Vancouver has been the go-to investment vehicle for decades, seen as something that will gain value at better than stock-market or bank-interest rates.)

Housing researchers tell me it’s impossible to sort out all the factors that go into that high ownership rate, but I can’t help but think the tenuous situation for renters plays a part. As Ingrid Cheung said in my piece, she and her partner panicked when they thought they would have to move and scrambled to make an offer on their apartment when it was put up for sale.

The problem I see, too, with this issue is that a lot of people, even in the renter world, are probably doing okay. Like with homeowners, if you got a place many years ago and you’re not in danger of being kicked out, you’re probably paying way below market because your landlord was restricted to cost-of-living rent increases.

So it’s really the newcomers and those thrown unwillingly into the market who are feeling the most pain. Are they a big enough group to get some political attention? Well, feels like these days, anything could happen. Maybe Christy Clark will have a news conference next week announcing more money and more protections for renters.