PeepSo Open Source Social Network Software - WordPress Plugin - Create a Private Social Network Mon, 27 Mar 2017 04:48:22 +0000 en-US hourly 1 PeepSo 1.7.4 Is Out! Thu, 09 Mar 2017 06:18:28 +0000

First and foremost… Yaay! We are finally able to release PeepSo 1.7.4. Yes, it took a bit longer than we anticipated, but there were things we just couldn’t ignore. In the middle of the development process we started getting reports suggesting that the performance could be improved. We finished up the Group Categories, and got right onto it.

Performance Improvements

We built PeepSo to be as light and fast as possible. As we added more plugins though, it started to slow down. Customers told us they were feeling it so we set ourselves a goal to “Make Peepso Fast Again!” Our developers have spent countless hours improving the performance in this release, and we’ve planned further improvements in the next release. It’s great now… and it’s just going to get even better. One of those improvements was to adjust the PeepSo Notifications Ajax to 30 second calls instead of 10 second calls to reduce the load on servers. More on the topic of performance below.

Cutting Queries By 75 Percent!

Each new PeepSoUser() class call generated massive amounts of database queries. A singleton approach has let us slash the number of queries performed. On some pages we’ve seen a drop from 400 to 100 queries on vanilla WP + PeepSo Core suite. Everything now loads much faster with less load on your database.

The Merge – MsgSo And ChatSo

Merging MsgSo and ChatSo plugins has also added to the performance improvements. Now all you need is the MsgSo plugin. To avoid any issues, MsgSo 1.7.4 will not allow you to enable ChatSo 1.7.3. It’s fine though… Chat is still there 🙂 Feel free to delete ChatSo 1.7.3.

Chat Smart Timing

Our improvements targeted logic that decays (or decreases if you will) the frequency of the chat ajax calls if there has been no recent activity. If chat isn’t used, it should send fewer calls to the server. So we instituted Smart Timing. After reaching the max delay time, requests are now sent every 20 seconds instead of every 5 seconds. This is how it works:

If a user receives a message immediately after logging in, the lag is 1 second. If a user receives a message after a minute of browsing, the initial lag is 20 seconds. The request then runs faster but decays as activity falls. The counter resets with activity on chat so it will always feel “real time.”

Smart Timing reduces the load significantly on the server. Hard coding the function in the code means that it doesn’t have to be ‘asked’ about one more setting. We can just run a simple call to check if there are new messages, ensuring maximum performance.

Three variables are used for the logic:

  • Delay Min – How often (most frequent) the ajax calls can run.
  • Delay Max – How rarely (least frequent) the ajax calls can run.
  • Delay Multiplayer – How fast does the decay occurs.
  • Handicap – an average request load time. Calls are sent after previous calls have been completed.
Chat Smart Timing Spreadsheet

Chat Smart Timing Spreadsheet

You can tweak the settings if you want to, but that’s done directly in the code so you’ll have to re-apply the tweak with every upgrade:

Open peepso-core-messages/peepsomessages.php

Around line 113, you’ll find:

  • $delay_min = 1000;
  • $delay_max = 20000;
  • $delay_multiplier = 1.5;

These values are given in milliseconds: 1s = 1000ms.

All such tweaks are to be performed ONLY by advanced users who have coding experience.

Code behind smart timing decay.

Code behind smart timing decay.

Group Categories

Group Categories View

Group Categories View

Having a lot of groups can get a bit messy, so we’ve created Group Categories. You can create as many categories as you want, name them as you want, and order them as you want.

Group Categories

Group Categories

The options are simple. Categories are ON/OFF. Groups can be assigned to single categories or multiple categories. You can also hide empty categories on the frontend so that they don’t clutter the view if there’s nothing relevant to show.

Group Settings

Group Settings

To organize existing groups, just head to the group’s About page and edit the category. It’s simple. With categories enabled, the frontend will show the categories view. However, you can always go back to the groups listing to search and filter by categories.

The groups listing has also been given category information. Click ‘more’ on a groups listing and it shows in which category or categories the group is in.

Notifications in WPAdminBar

We’ve had a notification solution custom-built that puts the notifications right in the WordPress admin bar. You’ll see the notifications while you’re in the backend / admin of WordPress but to make sure that you don’t get taken away from an edit when you click a notification, all notifications in the backend will open in a new browser tab.

WPAdminBar Notifications

WPAdminBar Notifications

Other Improvements

Profile Completion

We’ve added Force Profile Completion information to the user profiles. Some users were confused that they couldn’t leave an incomplete profile when force profile completion was enabled. The message is now clear, and should help to avoid any confusion.

Translation Files

We have changed the .POT file names in PeepSo, TagSo, MoodSo and LocSo so please be informed that if you’re using translations you’ll need to rename the translation files to the following:

  • PeepSo – peepso-core.po
  • PeepSo –
  • MoodSo – peepso-moods.po
  • MoodSo –
  • TagSo – peepso-tags.po
  • TagSo –
  • LocSo – peepso-location.po
  • LocSo –

Our much valued and appreciated translators have been informed about the change.

New Default Values

We’ve made changes to default values on the activity stream. This applies only to new installations and won’t affect upgrades.

  • Backend > PeepSo > Config > Activity > General: Number of Posts changed default from: 20 to 6
  • Backend > PeepSo > Config > Activity > Comments: Number of Comments to display changed default from: 5 to 2
  • Backend > PeepSo > Config > Activity > Comments: Show X more comments changed default from: 20 to 5

That will also improve performance so we recommend that you set these changes on your existing community as well.

Bug Fixes

This release killed lots of bugs that we either found ourselves or were brought to our attention by users. Bugs like ajax calls still executed for not logged in users or in every WordPress page even if there was no part of PeepSo, neither the plugin nor widgets, installed. Localization has also been improved in a few plugins and some strings that couldn’t be translated are now added to the .pot files so that you can translate those phrases as well. See the full changelog for all the other bugfixes and improvements.

A Big Thank You!

I’d like to personally thank all of our users who have helped us make PeepSo better. I’ve reached out on our community to a few people who were beta testing the Chat Smart Timing. Your input was and still is highly appreciated. Also, if you’ve reported problems and bugs, please by all means, keep in touch. Your feedback is really important to us and we’d love to keep killing those bugs, improving PeepSo and generally give you the ultimate community experience! Don’t be a stranger! 🙂

Upgrade PeepSo Now

Automatic updates let you move quickly to the latest version—and you can do it all in the backend of your site.

Remember to update plugins in this sequence: all PeepSo child plugins like MsgSo, GroupSo etc. Core PeepSo plugin should be updated last. Here’s documentation that explains how to upgrade. You can see the full changelog here. If you’d like to see what’s coming up next, check out our roadmap here.

No PeepSo?

The free PeepSo Core version is fantastic. But if you want to unlock the true potential of social networking for WordPress, install the other plugins today.
Get PeepSo Today!

Comments? Questions?

Please leave them below.

]]> 4
PeepSo Support Happiness Report – Feb 2017 Sun, 05 Mar 2017 23:50:34 +0000 At PeepSo, we aim to provide our customers with the best customer experience possible. This includes a fantastic product as well as support, if you need it.

We use HelpScout as our support system and it has a great feature called “happiness reports.” This feature allows us to see how you rate our support. When I looked at the happiness reports of February 2017, I was delighted to see that we have reached the holy grail status of 100% satisfaction.

The bar is set high. We plan to keep it that way!

A big thank you to Eric, Matt, Matt, Peter and Bagus!

]]> 2
The Real Reason Google Plus Failed Thu, 02 Mar 2017 15:36:14 +0000 Google Plus should have bGoogle Pluseen an Internet giant, a social network to put fear into the heart of Mark Zuckerberg. Instead it became the giant butt of Internet jokes, a place you go to on the Internet when you want to be by yourself. Its failure has lessons for anyone building a private social network.

A quick glance at the figures suggests things should be great. According to one estimate Google Plus has 2.2 billion profiles. Look a little closer though, and the problem becomes clearer. Those profiles aren’t active. In 2015, only 9 percent of those profiles had posted any public content. For more than a third of those, that content was a comment on YouTube. (Google has since stopped requiring membership of Google Plus to post a comment on its video sharing platform.) The bottom line is that of those 2.2 billion profiles, only 0.3 percent, or 6.6 million users, had made a public post on Google Plus in 2015.

Considering the size of Google, the effort put into the production of its social network, and the degree to which it saw Google Plus as essential to competing with Facebook, those are pretty appalling figures. The platform is now focused on “Streams, Photos, and Sharing” — less Facebook, more Pinterest.

Google Plus’s failure is all the more surprising because it was well-designed. Although it clung closely to Facebook, the Circles feature that allowed users to organize their contacts was a powerful idea. Instead of Facebook’s fiddly privacy settings and friend’s lists, building Circles should have felt natural and easy.

But people didn’t do it. They didn’t want to try to categorize their friends. They just wanted to post a thought and let anyone who might enjoy it do so. Circles weren’t enough to pull members out of a place that already contained their friends to a new site that no one was using. As one Google Insider put it to Mashable: “What people failed to understand was Facebook had network effects. It’s like you have this grungy night club and people are having a good time and you build something next door that’s shiny and new, and technically better in some ways, but who wants to leave? People didn’t need another version of Facebook.”

That’s why building a private social network is so important. Facebook has a huge advantage. People might not want to leave for a shiny new club next door but jazz lovers will also go to the club that has their kind of music and pictures of their favorite saxophonists on the wall. Bikers will also go to the biker bar where the conversation is about Harleys and road trips, and their leathers don’t look out of place.

Google failed because it tried to beat Facebook. Your private social network will succeed because it complements Facebook. You members will still be over there chatting and sharing with all their friends but when they want to talk about their favorite niche topic, they’ll come to your community. Your private social network won’t be as large as Google Plus. But build it with Peepso, and it can be a lot more successful.


]]> 3
Google Is Going To Make Your Community Much More Polite Mon, 27 Feb 2017 16:03:25 +0000 Talkback anger

Image: Craig Sunter

Could the days of toxic comments finally be over? Is the Internet about to become a pleasant, polite place where opinions are always offered with respect and talkbacks are actually worth reading? If Google has its way, that might be exactly what’s about to happen.

The company’s Jigsaw  division is beginning to roll out Perspective, an API powered by artificial intelligence that “reads” comments as they’re typed. The comments are then scored by “toxicity,” a characteristic that Jigsaw defines as the “likelihood that this comment will make someone leave the conversation.” Jigsaw claims that just telling users that their comment is likely to put people off can change what they write. But if commenters are not bothered by their toxicity score, publishers can also set their own toxicity threshold. A sliding scale can filter out the most toxic comments to balance free speech against the preference for a pleasant atmosphere.

The technology is still undergoing testing but is being employed at the websites of The New York Times, the Economist and the Guardian.

One immediate result should be an easier time for comment checkers at those publications. The Times says that it employs fourteen people on its community desk to check comments as they come in. They review around 11,000 comments every day, weeding out “personal attacks, obscenity, vulgarity, profanity (including expletives and letters followed by dashes), commercial promotion, impersonations, name-calling, incoherence and SHOUTING.” The Times offers a test where you can see for yourself how hard that is to do quickly and consistently. (It’s hard.)

As you’re building your private social network though, that’s exactly what you’re going to have to do. Jigsaw is allowing other publishers to request API access but there’s no indication that the system will be universally available any time soon. Until that happens, it will remain your role to weed out commenters who are driving away members and killing conversations.

To some extent, you’ll depend on the members of your community to do that. You’ll need them to block and report so that you can issue bans and warnings. But as the manager of your private social network, you also have a vital role to play. One of the smartest aspects of Perspective isn’t the artificial intelligence that can look beyond keywords to assess the tone of a comment but the recognition that different sites will have different thresholds of toxicity. A political site might be more tolerant of insults than a fashion site, for example. It will be up to you to make clear to your community where you feel the threshold lies so that members know what they can and can’t say.

The WordFilter add-on will help. Start by installing Peepso.  Add WordFilter and use your blog to explain the rules and keep your members engaged in conversation.


]]> 0
PeepSo – AutoFriends Plugin Sun, 26 Feb 2017 02:46:02 +0000 PeepSoAutoFriends Plugin is another premium plugin from It’s small and simple but allows automatic friendship formation between selected users and everyone else in the community.

How It Works

It works like magic! Select a user and add them to the list. All newly registered members will now become friends with that user. To create friend connections between all existing members, just click the ‘Befriend all Users’ button.

That’s it!

Want to stop making new friends? Just remove the user from the list. Existing friendship connections will not be affected but the user will no longer become automatic friends with newly registered users.

Is It a Standalone Plugin?

The PeepSo – AutoFriends is not a stand-alone plugin. For this plugin to work you must have PeepSo and FriendSo installed and activated.

Get PeepSo – AutoFriends Plugin

This plugin can be purchased from our Addons Page.

Get PeepSo – AutoFriends Plugin!

What About Support?

As this is a 3rd Party plugin, support is provided by the plugin’s developers. If you have any support related questions, please click here, and it’ll take you to their website.

Comments? Questions?

Please leave them below.

]]> 0
Why Twitter’s @Jack Can’t Beat The Trolls… But You Can Thu, 23 Feb 2017 16:56:25 +0000 trollTwitter isn’t having a great time. While Facebook continues to pile on the users and drag in the money, Twitter’s latest quarterly report showed a 0.5 percent decline in year-on-year revenue. User growth has stalled. Shares fell 10 percent on the news.

There are lots of reason for Twitter’s struggles. Having a part-time chief executive isn’t a great idea. Expectations might have been pushed too high by Facebook. The lack of demographic data makes ad targeting difficult; a private social network might be smaller but it will hit the target market harder.

But the biggest threat Twitter faces comes from its users themselves. People use Twitter for all sorts of reasons, but high among them is the ability to follow the content published by celebrities and journalists. Those publishers — the main points of attraction for a platform dependent on free content — complain incessantly of harassment from trolls. Jewish reporters receive anti-Semitic cartoons. Critics of Trump get racist insults. Anyone who speaks out for refugees gets death threats. So incessant is the problem that a number of leading contributors have walked away. Robin Williams’ daughter left after trolls sent her pictures of her father’s body. Singer Adele quit after receiving death threats directed at her and her baby. Stephen Fry, one of Twitter’s earliest evangelists, has walked away several times and now restricts himself to occasional promotional comments to his 12.4 million followers.

Users can block abusive followers, preventing them from seeing their posts but nothing stops those trolls from rejoining with a different email address, a process that takes seconds. It also leaves them on the platform where they can continue to troll others.

Twitter has been slow to act. It took the departure of Ghostbusters star Leslie Jones following an organized racist campaign for the platform to ban @nero, the account used by professional troll Milo Yiannopoulos.

The reaction to that ban shows one of the reasons that Twitter is reluctant to kick out its biggest trouble-makers. For right wingers in general, and Trump supporters in particular, Twitter is a liberal platform. They can easily take their conversation to Facebook or Snapchat, or back to 4chan, where they’re less likely to be removed. Jack Dorsey, Twitter’s chief executive, might not want trolls but he can’t afford to alienate half of America. The consistent response to complaints of abuse on Twitter is a willingness to overlook threats and abuse in the name of free speech.

You don’t have to do that. At Peepso, we integrated a bunch of different tools that make it easy to kick out trolls. Users can block abusive followers, admins have the ability to impose temporary bans and members can report followers for trolling.

Encourage your members to use those reports. Make use of those bans as early warnings to stop trolls before they get out of hand. And don’t be afraid to boot trolls out entirely.

Free speech is a fine principle but your private social network is your property. In your home, you set the rules. If someone wants to be abusive, they can set up their own network. Your private social network might not have as many visitors as Twitter but it can be a nicer place for everyone. Install Peepso and bash those trolls.

]]> 0
Your Social Network Is A Real Social Benefit Mon, 20 Feb 2017 18:33:35 +0000 When Valerie Elmore saw a dog run out on a local road and get hit by a car, she did what anyone would do. She gathered the dog up and drove straight to a nearby animal hospital. Unfortunately, the dog died, and Elmore turned to NextDoor, a local social network, to find out whether anyone had lost their pet.

“I wanted to find the owner so they would find out what happened to her,” Elmore told Wave 3 News.

A member of NextDoor shared the post on local Facebook animal pages where it was eventually seen by Gale Branch. Gale had been distributing flyers in her neighborhood since the loss of her dog, Marcus. The shared post was able to bring her closure.

It’s not the usual benefit that you expect a private social network to deliver. Private social networks are usually built to bring people together to share news and stories, make friends and create communities. They’re places where information is exchanged and like-minded people can meet.

But they can also deliver real help to people who need it. For anyone building a private social network, that matters. Nothing beats the feeling that the community you built has improved someone’s life in a measurable way.

There are steps that you can take to increase the chances that that will happen.

One option makes for good housekeeping anyway. Niche networks can sometimes feel plagued by advertising. Realtors fill local communities with sales notices. Electricians pitch their services. Contractors tell people how great they are with a hammer and a bag of nails.

When it leaks into people’s feeds every day, it’s annoying. But when it’s occasional, it’s helpful for people who need specific services, whether it’s a local carpenter who can build a deck or a mechanic who can fit a new exhaust pipe on a Harley. Set aside a special day for service providers. They’ll still get to pitch their skills, and members of the community will still find people who can help them. But you’ll keep the stream clean and interesting.

And if you’ve installed GroupSo, you can set up special groups to supply specific help. Gale Branch found her dog after the post was shared on a Facebook group called Kentuckian Lost and Found Pets Network. Creating special groups for your community — for local service providers, for example, or for Harley exhaust fitters — will enable people to find the exact help they need easily.

Ideally, the members of your community will set up those groups themselves but if they don’t set them up, don’t be afraid to do it yourself. Form the group, look for admins to help you run it, and invite in people who you think would benefit from membership. If you have to seed the first pieces of content to get the group moving, then do so. But you should find that the group soon starts to take off and turn itself into a resource that can be a real social good.

Start at Peepso, and build good stuff with GroupSo.



]]> 0
People Love Taking Selfies, Hate Seeing Them Thu, 16 Feb 2017 16:21:57 +0000 Peepso comes with a ton of features. We spent months building and testing add-ons that allow for video uploads and custom profiles, groups and moods.

And in the end it all comes down to selfies.

Build a social network and people will soon start uploading pictures of themselves. Instagram now has about 250 million selfies. More than half of all millennials like to preen at the screen and around a quarter of Gen Xers. (Though just 9 percent of Baby Boomers like to point their lenses at themselves.) One study estimates that millennials spend seven minutes making fish-faces and editing their photos for each upload, and if they keep up their selfie rate, they’ll publish 25,700 pictures of themselves over their lifetime.

That’s great for owners of private social networks. If people are pouting and uploading, they’re engaging. They visiting the community, building their galleries and getting the buzz that a notification always delivers.

But it’s not so great for other members. One recent study found that while 77 percent of the study’s participants took selfies, 82 percent said that when they check social media, they’d rather see something else. They regard their own images as ironic and authentic but roll their eyes at the selfies uploaded by others.

That creates a challenge for managers of private social networks. You want people to upload pictures. But you also want people to enjoy visiting the community and checking out the new content.

Fortunately, private social networks also have an advantage. Most private social networks aren’t just about people. They’re also about a topic: boats, Star Wars, advanced math. So while people want to see who they’re networking with, they also want see what they’re networking about.

That gives you the opportunity to push your community to make sure that the selfies they upload are themed. Instead of just a face and an arm, or the back of a phone in a bathroom mirror, users should be uploading selfies of themselves on their boats, dressed as Jedis at conventions… or doing really hard math. On Drivn, for example, a social network for car lovers, users are encouraged to send in images of their cars. When they upload selfies, the car is a bigger star, and a bigger draw, than the driver.

To encourage members to send in themed selfies (instead of fish faces), start with ProfileSo. Use the general fields to encourage members to reveal specific information about themselves (the boat they own, the conventions they attend, the math they like to crunch). When you send out emails explaining how they can make their selfies more interesting, suggest themes drawn from those profiles.

They’ll still get to upload selfies but audiences will get to do a little less eye-rolling when they next log into your social network. Start building your community’s better selfie action with ProfileSo on Peepso.


]]> 0
Revealing Location Data Doesn’t Need To Make Your Members Nervous Tue, 14 Feb 2017 19:28:18 +0000 London UndergroundFor about a month at the end of 2016, Transport for London, the body responsible for managing the London Underground, conducted an interesting experiment. It tracked the mobile phones of passengers traveling through the center of the city. Gizmodo has managed to acquire the data that TfL gathered — and it has some valuable lessons for managers of private social networks.

The wifi network on the London Underground is supplied by Virgin Media. TfL was able to use Virgin’s network data to monitor the MAC addresses of mobile phones whose wifi was turned on as their owners journeyed across London.  Because the tracking was part of a trial, TfL only monitored 54 out of the 270 tube stations on the network, most of them in central London. But the data returned was enough to give TfL vital information about two areas.

First, the company could see how people were traveling from one location to another.  There are multiple ways of traveling from Victoria to Liverpool Street, for example, but TfL could see that 44 percent of passengers took the fastest route by changing at Oxford Circus but 26 percent stayed on the Circle line as it shuffled around the city. Second, the company was also able to see how passengers moved around the stations themselves, many of which have multiple platforms and multiple levels. It was able to identify the most popular platforms in a station, and measure the amount of time it took to move from one platform to another.

In the same way that navigation app Waze uses drivers’ data to manage traffic flows, so the information gathered by TfL could help the company with crowd management and emergency planning. It’s also easy to see how TfL could use it to adjust the fees it charges for advertising. If the company can identify the parts of the network with the largest footfall, it can increase the advertising rates in those areas.

But perhaps the most interesting aspect of the trial wasn’t the data it gathered but the fact it was able to gather it at all. During the trial, TfL explained what it was doing on posters in the stations and in articles in Metro, the free newspaper read by passengers. When they learned that TfL was monitoring their wifi connections, passengers didn’t respond by turning their wifi off in order to maintain their privacy. They kept them on, allowing the company to track their location.

One of the free add-ons that we offer for Peepso is LocSo.  The add-on lets users enter their location, telling their friends and followers where they are and what they’re doing. It’s a valuable and easy way for members to share information.

It is, however, an intrusion into privacy so some people will be reluctant to use the feature even though it’s available. The TfL study has shown that one way to reassure them is to be open. Explain exactly what they’ll be doing and why they should share their location. Make clear how the information will be used and what it won’t be used for. Being fearful of revealing personal information is reasonable but it’s a fear that can be easily allayed. Be open and you’ll be able to help your members bring their friends with them on their journeys across their social network.

]]> 0
Fishbrain Shows Social Network Builders How To Hook Members Thu, 09 Feb 2017 16:40:00 +0000

Image: Jenny from Taipei (CC)

“In general, networks like Facebook and Instagram are sharing platforms — they’re super broad. And when you’re posting about your passion, it’s irrelevant to many of your friends.” That quote on comes from Fishbrain CEO Johan Attby. It sums up everything we believe about private social networks.

Fishbrain is a private social network for anglers. According to DigitalTrends, it counts more than three million members. Last year, those members used the site to log more than a million catches, sharing which fish they caught, where they caught them and detailing the kinds of lures they were using. None of that is information that will be of any interest to people who don’t spend their weekends sitting by a river but it’s of vital interest to other fishermen, and an important factor driving engagement on the platform.

Fishbrain has succeeded because it hasn’t just created a platform for anglers to come together and talk. Attby has also made the effort to personalize the site, matching its content to the people who use it.

So Fishbrain’s registration form doesn’t just ask for a username or access to a contact list. It also asks new members about the fish they like to catch and the fishing method they like to use. That allows the social network to steer posts and videos about trout fishing, for example, to fishermen who like to catch trout, and fly fishing content to anglers who like to catch… flies. (We’re not anglers at Peepso.)

Fishbrain also adds new members to groups automatically. Because the platform can assume that most of its members will be fishing local streams and lakes, those regional groups immediately give them a flow of information that’s directly relevant to something they’re intending to do. Fishbrain then goes even further. It tags the details that go into every catch and crunches the data to produce a “fish forecast” showing the best times and places to pull out a rod. Members see which species are biting and which fishing areas have the richest pickings so that they can plan their weekend. Membership of Fishbrain doesn’t just put people with a common interest in touch. It unites them with valuable information.

“That’s the beauty of going after a [niche],” Attby told DigitalTrends. “You can build a specific design or user experience around it.”

Attby chose a good topic to build a private social network around. Anglers like to share pictures and videos of themselves holding the fish they’ve caught. They like to tell stories and share their techniques. All Fishbrain had to do was create the resources that allowed those hobbyists to engage in their natural behavior.

At Peepso, we offer a host of personalization options, as well as a Group plugin like Fishbrain’s regional groups, and a Location plugin that brings together people with local knowledge. They’re good places to begin when you’re building an active community on the kind of private social network that the big social media firms just can’t match. If you haven’t personalized your Peepso site yet, now’s a good time to start.


]]> 0