How annual revenue increased by $50 million using Online Experiments – Methods and tricks

In 2012 a Microsoft employee working on Bing had an idea about changing the way the search engine displayed ad headlines. Developing it wouldn’t require much effort—just a few days of an engineer’s time—but it was one of hundreds of ideas proposed, and the program managers deemed it a low priority. So it languished for more than six months, until an engineer, who saw that the cost of writing the code for it would be small, launched a simple online controlled experiment—an A/B test—to assess its impact. Within hours the new headline variation was producing abnormally high revenue, triggering a “too good to be true” alert. Usually, such alerts signal a bug, but not in this case. An analysis showed that the change had increased revenue by an astonishing 12%—which on an annual basis would come to more than $100 million in the United States alone—without hurting key user-experience metrics. It was the best revenue-generating idea in Bing’s history, but until the test its value was underappreciated.

Humbling! This example illustrates how difficult it can be to assess the potential of new ideas. Just as important, it demonstrates the benefit of having a capability for running many tests cheaply and concurrently—something more businesses are starting to recognize.

Today, Microsoft and several other leading companies—including Amazon, Booking.com, Facebook, and Google—each conduct more than 10,000 online controlled experiments annually, with many tests engaging millions of users. Start-ups and companies without digital roots, such as Walmart, Hertz, and Singapore Airlines, also run them regularly, though on a smaller scale. These organizations have discovered that an “experiment with everything” approach has surprisingly large payoffs. It has helped Bing, for instance, identify dozens of revenue-related changes to make each month—improvements that have collectively increased revenue per search by 10% to 25% each year. These enhancements, along with hundreds of other changes per month that increase user satisfaction, are the major reason that Bing is profitable and that its share of U.S. searches conducted on personal computers has risen to 23%, up from 8% in 2009, the year it was launched.

Continue reading
Posted in Technical Docs | Tagged , | 1 Comment

The perfect guide to AppStore search optimization (ASO)

This article covers the ASO techniques for Apple’s AppStore. if you are looking for ASO in Google Play Store take a look at the similar article here.

App Name

Keywords in your App Name have a lot of weight in the App Store algorithm. Try adding your strongest keywords in your title to increase your app discoverability. You can use up to 30 characters.

Your app title is one of the most important factors in App Store Optimization. It has a significant influence on the App Store algorithm. The words contained in the title are taken into account for the referencing of your app. Therefore, every word should be carefully chosen in order to maximize your chances of success.

The name of your app should give at least an idea of what the app offers or does. Use your brand name only if it is already known by everyone; use a few words that describe your app if it is not.

Integrate the most relevant keywords possible in your title, as they will help to improve your ranking in the App Store. Plus, these keywords won’t need to be included in your App Subtitle or in the iTunes Connect Keyword Field of 100 characters (only!). This is a massive gain of space for new keywords!

The size limit is 30 characters. Use all available characters and don’t forget that your App Name will be cropped on some screens. You need to be sure that the first characters make sense on their own.

Sub Title

iOS 11 introduced an additional keyword indexing field to app’s metadata. Keywords from the Subtitle are indexed by the algorithm and have a lot of weight. We recommend using all available 30 characters by explaining your app using relevant keywords.

You can easily update your Subtitle through your iTunes Connect account. Keywords in the subtitle have a lot of weight in the search algorithm, therefore it’s a great opportunity to expand your app’s discoverability and increase impressions. The Subtitle can also help users get a better idea of what your app is about and thus increase conversions.

Expert tip: Repeating words that are already in your Title or Keyword field do not increase your app’s weight on those words. Try adding new relevant words to make the most out of this new field. Check out our Keywords Tool to find the best keywords for your app.

Promotional Text

The Promotional Text is not indexed by the Apple algorithm so the keywords used in this field will have no impact on your app’s rankings. However, it is a great field to convince users to download your app in one sentence.

See More: Since iOS 11, you can now add a Promotional Text to your app’s metadata. The Promotional Text can be up to 170 characters and should reflect your app’s new features, promotions or anything you’d like to highlight. It is a great opportunity to engage with your app users and showcase news about your app.

The keywords from the Promotional Text are not indexed by the algorithm but we do recommend to use relevant and strong keywords for SEO purposes.

App Description

Descriptions are not taken into account in the Apple App Store algorithm. However, don’t forget to add important and relevant keywords in your description to improve your iTunes app page and optimize your SEO.

Writing a good description is hard work and can take time. It is, however, essential to find the best way to entice and convince App Store users of downloading your app. Be as clear as possible: use line breaks, short sentences, small paragraphs, bullet points, symbols, etc. The point is to be easy to read!

Descriptions are not taken into account in the Apple App Store algorithm. However, Google indexes and ranks iTunes pages. Therefore, your app description needs to be optimized for SEO (Search Engine Optimization). It is important to use relevant keywords.

In terms of best practices, make the first 255 characters of your description amazing. This first paragraph needs to be catchy and straight to the point, because it will be on your app’s page before the expand button (right under the first 2 screenshots).

App Icon

Your icon should be carefully crafted in order to improve your Click Through Rate (CTR) and increase conversion. Make sure that it’s original and descriptive enough, without too many details. Adding a border and avoiding text is highly recommended.

There are several best practices that can boost your app store visibility thanks to a good app icon optimization. It is important to understand that your app icon makes your app’s first impression, along with your screenshots. People love visual content so make sure that it is absolutely well designed and carefully thought out.

It’s very important to keep your icon simple without text or too many details. It needs to be attractive and original so that you get more chances to stand out from other apps.

You can use your brand logo if your app is directly connected to your brand and if you have a strong branding. Otherwise, it is recommended to create a unique icon for your app. Try to use a flat design as much as possible.

It’s also highly recommended to update your icon along with the seasons or special occasions: Christmas, Halloween, Valentine’s Day… don’t hesitate to show users that your app is alive and updated.

Screenshots

Screenshots are a very efficient way to convince and influence users to download an app. People prefer to look at screenshots rather than read a description. It is, therefore, necessary to optimize them. You can add up to 10 screenshots.

Your screenshots can really help convince a user to download your app. They should give an insight into the look and feel of your app while showing your app’s best features.

On iOS, the first two screenshots are displayed in the Search Results of an app. These actually make the first impression of your app. They need to illustrate what your app does and showcase your best features. Be catchy, original and awesome; you will hopefully drive more downloads.

Best practice: use a short descriptive sentence on the top of each screenshot to describe the feature shown.

Also, be sure to localize your screenshots: use different languages for each different country. You want your audience to understand completely what you’re telling them.

App Preview

App Previews are a good way to convince users to download your app. Use this great opportunity to explain what your app does. Show off your best features. It will help you to get some coverage as well. Your video should be extremely short: 15 sec – 30 sec. It will autoplay in the search results.

It demands a lot of effort to create a convincing App Preview that demonstrates the features, functionality, and user interface of your app in less than 30 seconds. Be sure to respect the Apple rules to avoid your video being rejected.

With iOS11, App Previews are shown in the Search Results and will autoplay when the user scrolls down to it. Autoplay makes apps with App Previews much more attractive to users, the video draws their attention and thus increases conversion.

App Details

Changing the following App Details can be time-consuming as they are directly linked to how your application is built and with which other elements it be integrated.

Yet, it is still worth optimizing them as each can have an impact on your conversion rate. For example, a user might cancel the download of your app if it takes too long (if your app is too big), or they might be looking for an app that they can also use on their Apple Watch etc.

Versions

Regularly updating your app can have a positive impact on your app rankings. It is also well perceived by your users.

It is important to regularly update your app. Best practices recommend to update your app every 4 to 6 weeks. This means fixing reported bugs, improving existing features, launching new features etc. Keep an eye on users’ feedback. The next great features may already be asked by many users.

The Apple Store wants to provide fresh content to its user, that means that a regularly updated app will have more weight in the algorithm than an app that hasn’t been updated over a long time.

Take the occasion to update your app’s ASO by refreshing your visuals from time to time and by updating your keywords regularly.

Finally, this section can have a positive influence on your conversion rate. The latest bug fix or the newest feature might convince old or new users to download your app. Make sure you explain clearly what each update is about!

What about the Google Play Store?

This article covers the ASO techniques for Apple’s AppStore. if you are looking for ASO in Google Play Store take a look at the similar article here.

Posted in Technical Docs | Tagged , , | 2 Comments

Strong ASO Tips for Google play to rank up

This article covers the ASO techniques for the Google Play Store. if you are looking for ASO in the Apple’s AppStore take a look at the similar article here.

1. App Name

Keywords in your App Name have a lot of a weight in the Google Play algorithm. Try adding your strongest keywords in your title to increase your app discoverability. You can use up to 50 characters.

Your app title is one of the most important factors in App Store Optimization. It has a significant influence on the Google Play Store algorithm. Therefore, words contained in the title are taken into account for the referencing of your app and every word should be carefully chosen in order to maximize your chances of success.

The name of your app should give at least an idea of what the app offers or does. Use your brand name only if it is already known by everyone; use a few words that describe your app if it is not.
Integrate the most relevant keywords possible in your title, as they will help to improve your ranking in the Play Store. Best practices recommend to put your Brand Name and a couple of relevant keywords.

The size limit is 50 characters. Use all available characters. Don’t forget that your App Name will be cropped on some screens, so be sure that the first characters still make sense on their own.

2. Short Description

Your short description should explain in one sentence what your app does. Don’t forget to include your strongest keywords as they will be taken into account by the Google Play Store algorithm. We recommend to use all available 80 characters.

You can easily update your Short Description through the Google Play Developer Console. The size limit is 80 characters, so try to use all available characters.

Keywords in the short description have a lot of weight in the search algorithm, therefore it’s a great opportunity to expand your app’s discoverability and increase impressions. The short description can also help users get a better idea of what your app is about and thus increase conversions.

Expert tip: The more you repeat a word across the different metadata fields, the more weight you give to the word (keyword density). Carefully choose the keywords you want in order to maximize your chances of success. Check out our Keywords Tool to find the best keywords for your app.

3. App Description

The Play Store algorithm takes app descriptions into account, so don’t forget to use relevant and important keywords in your description to increase your discoverability. Make sure to optimize your keyword density. Use our Keywords Analysis to find the best keywords for your app.

Writing a good description is hard work and can take time. It is however essential to find the best way to entice and convince Play Store users of downloading your app. Be as clear as possible: use line breaks, short sentences, small paragraphs, bullet points, symbols, … The point is to be easy to read!

Your description can help convince browsing users to download your app by further explaining what your app is about and what are its best features. Make sure the first 255 characters of your description are amazing. This first paragraph needs to be catchy and straight to the point, because most users are unlikely to read the whole description.

Best practices include repeating the most relevant words across your description without doing any keyword stuffing. Words with a higher density will be considered with more weight by the algorithm.

4. App Icon

Your icon should be carefully crafted in order to improve your Click Through Rate (CTR) and increase conversion. Make sure that it’s original and descriptive enough, without too many details. Adding a border and avoiding text is highly recommended.

There are several best practices that can boost your app store visibility thanks to a good app icon optimization. It is important to understand that your app icon makes your app’s first impression, along with your screenshots. People love visual content so make sure that it is absolutely well designed and carefully thought out.

It’s very important to keep your icon simple without text or too many details. It needs to be attractive and original so that you get more chances to stand out from other apps.

You can use your brand logo if your app is directly connected to your brand and if you have a strong branding. Otherwise, it is recommended to create a unique icon for your app. Try to use a flat design as much as possible.

It’s also highly recommended to update your icon along with the seasons or special occasions: Christmas, Halloween, Valentine’s Day… don’t hesitate to show users that your app is alive and updated.

5. Screenshots

Screenshots are a very efficient way to convince and influence users to download an app (increase conversion). People prefer to look at screenshots rather than read a description. It is therefore necessary to optimize them.You can add up to 8 screenshots for each supported device.

Your screenshots can really help convince a user to download your app. They should give an insight on the look and feel of your app while showing your app’s best features. Make sure to include some text to describe your app on each screenshot.

The first screenshots are displayed in the Search Results on the Play Store so they will make the 1st impression of your app. They need to illustrate what your app does and showcase your best features. Be catchy, original and awesome: you will hopefully drive more downloads.

Best practice: use a short descriptive sentence on the top of each screenshot to describe the feature shown.

Also, be sure to localize your screenshots: use different languages for each different country. You want your audience to understand completely what you’re telling them.

6. Promo Video

Promo videos are a good way to convince users to download your app. Use this great opportunity to explain what your app does. Show off your best features. Make sure to use an individual video’s YouTube URL. Your video should be short: 30 sec – 2 min.

It demands a lot of effort to create a convincing promo video that demonstrates the features, functionality, and user interface of your app in less than 2 minutes. Make sure to use an individual video’s YouTube URL.

Your promo video will appear in the first position of your graphic assets on the Google Play store. Videos are a good way to convince users to download your app. Benefit from this great opportunity to explain what your app is about. It will help you get some coverage as well.

7. App Details

Changing the following App Details can be time consuming as they are directly linked to how your application is built or the whole business model that lies behind it.

It is still worth optimizing them as each can have an impact on your conversion rate. For example, a user might cancel the download of your app if it takes too long (if your app is too big). Or they might be looking for an app that offers more in-app payments, etc.

8. Versions

Regularly updating your app can have a positive impact on your app rankings. It is also well perceived by your users.

It is important to regularly update your app. Best practices recommend to update your app every 4 to 6 weeks. This means fixing reported bugs, improving existing features, launching new features etc. Keep an eye on users’ feedback. The next great features may already be asked by many users.

The Apple Store wants to provide fresh content to its user, that means that a regularly updated app will have more weight in the algorithm than an app that hasn’t been updated over a long time.

Take the occasion to update your app’s ASO by refreshing your visuals from time to time and by updating your keywords regularly.

Finally, this section can have a positive influence on your conversion rate. The latest bug fix or the newest feature might convince old or new users to download your app. Make sure you explain clearly what each update is about!

9. Backlinks

Backlinks are the links coming from other websites pointing to your mobile app’s webpage. Backlinks are very important in terms of App Store Optimization (ASO). They weight in the Google Play Store algorithm to index and rank your app. The more backlinks you get, the higher your app authority.

Additionally, if the links are placed on relevant keywords pointing to your app’s page, your keyword ranking power on these keywords will increase.

Warning: backlinks influencing your app’s ranking are links coming from trustworthy domains. Link quality is determinant in the ranking power allocated to your app. We highly encourage you to get as many quality backlinks as possible.

What about Apple’s AppStore

This article covers the ASO techniques for the Google Play Store. if you are looking for ASO in the Apple’s AppStore take a look at the similar article here.

 

Posted in Technical Docs | Tagged , | 1 Comment

Auto hour tracker using your Location – TimeClock

You’ve seen many time-tracking and billable hour tracker apps and devices. There has been a common flaw among all of those devices and apps! You should remember to clock-in and clock-out. Either via your fingerprint, employee card, etc. Let alone when you have to visit somewhere outside of the office for a meeting or on a project site.

We have good news for those who need time sheets, there is an Android app for automating it! Time-Clock is a location-based work hour tracker, it automatically logs the amount of time you stay in a location and at the end of the day, you just need to mark those locations as work-related (swipe right) or discard them as personal (swipe left). That’s it. You just leave the app there and it will generate the work log for you! with the exact location, project name and time stamp.

TimeClock is free, download it from google play. or visit their website here.

Time Clock - automated geolocation timesheets, free work hour trackerTime squared - automated geolocation timesheets, free work hour trackerTime squared - automated geolocation timesheets, free work hour tracker Time squared - automated geolocation timesheets, free work hour tracker Time squared - automated geolocation timesheets, free work hour tracker

Posted in Technical Docs | Comments Off on Auto hour tracker using your Location – TimeClock

Partial MySQL data restore from Percona innobackupex backups

Once you have a busy database server, you would probably know that “mysqldump” is not the best option for backups. It is very slow and involves the database server itself for processing the backup dump, therefore slowing down the application too.

Percona has provided Xtrabackup (innobackupex) to get hot-backups, which means it doesn’t affect your mysql server at all. Instead it would copy the mysql data files and allows you to revert to your full backup by recovering the original data files inside /var/lib/mysql/. (Also take a look at holland backup manager if you’re not familiar with it)

Recently I experienced a bug in the application level which led to corrupted data in a single table and did not want to recover the whole database to yesterday’s backup. Therefor I decided to use my full backup to start another MySQL server instance, extract the required data and feed it back to the operational MySQL database. Here’s how I did it:

Assume:

  1. You have an operational MySQL instance, listening on standard port 3306, using data dir /var/lib/mysql
  2. Your backup is located at: /home/backups/holland/sib/20150705_120502/backup.tar.gz
  3. The database name is “my_db_name”
  4. The table we’re going to extract partial data from is “the_table”

 

Step 1: Extract the backup files and set ownerships

cd /home/backups/holland/sib/20150705_120502/
mkdir data
cd data
tar -xif backup.tar.gz
chown -R mysql:mysql /home/backups/holland/sib/20150705_120502/

Step 2: Create a fake mysql configuration file for the new instance (my.cnf)

contents of /home/backups/holland/sib/20150705_120502/data/my.cnf  (to start the new instance with a different working directory and port)

[mysqld]
datadir=/home/backups/holland/sib/20150705_120502/data
socket=/home/backups/holland/sib/20150705_120502/data/Xmysql.sock
user=mysql
port=3307
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections=10
tmpdir=/home/backups/holland/sib/20150705_120502/data/tmp
log-bin=/home/backups/holland/sib/20150705_120502/data/Xlogbin
innodb_buffer_pool_size=524288000
innodb_force_recovery=6
[mysqld_safe]
log-error=/home/backups/holland/sib/20150705_120502/data/Xmysqld.log
pid-file=/home/backups/holland/sib/20150705_120502/data/Xmysqld.pid

Step 3: Run the mysql server

[root@sib12 data]# mysqld_safe --defaults-file=/home/backups/holland/sib/20150705_120502/data/my.cnf 
150706 10:37:03 mysqld_safe Logging to '/home/backups/holland/sib/20150705_120502/data/Xmysqld.log'.
150706 10:37:03 mysqld_safe Starting mysqld daemon with databases from /home/backups/holland/sib/20150705_120502/data

Step 4: Connect to the second instance to check if it is running

mysql -uroot -h 127.0.0.1 --port 3307 -p my_db_name

you can examine the old/backup data to see if you’re on the track or not. If the command above leads to any error, there is probably an error in the mysql startup. so check the log file you’ve mentioned in my.cnf above.

Step 5: Extract your partial data using mysqldump

mysqldump --extended-insert=FALSE --replace -t -h 127.0.0.1 --port 3307 -uroot -p my_db_name the_table --where="id IN (1,2,3,4,7,9,12)" > partial_data.sql
  • -t parameter removes the table definition from the dump file (also removes the dangerous drop statement at the start of it)
  • –replace writes REPLACE statement instead of INSERT, so that we can update our existing corrupted data instead of trying to insert new records
  • Note the port is 3307 at which the new MySQL instance is listening

Step 6: Feed the recovered data back into production MySQL instance

mysql -uroot -h 127.0.0.1 --port 3306 -p my_db_name < partial_data.sql

Step 7: You’re done

Let’s kill the second instance by pressing “Ctrl+\” at the terminal you’ve started the mysql instance and clean the extracted backup files.

Posted in Technical Docs | Comments Off on Partial MySQL data restore from Percona innobackupex backups

Migrate SVN to GIT repository and change author names

Assuming you have the svn and an empty GIT repository, first you need to check out the git repo:

git svn clone https://old.svn.server.com/svnpath

you’ll have the folder named ‘svnpath’ checked out and converted to git format.

The you need to change the author names, we’ll use a feature called ‘filter-branch’ in git to change author names and email addresses:

git_change_author_names.sh


#!/bin/bash

hput() {
  eval "$1""$2"='$3'
}

hget() {
    eval echo '${'"$1$2"'#hash}'
}

# The original SVN usernames
hput originals x1 "Nadalizadeh"
hput originals x2 "sina.bahar"
hput originals x3 "faraz.shamshirdar"
hput originals x4 "elrusho"

# The new GIT Names
hput names x1 "Ali Nadalizadeh"
hput names x2 "Sina Baharlouie"
hput names x3 "Faraz Shamshirdar"
hput names x4 "Soroush Khodaii"

# The new GIT Email Addresses
hput emails x1 "ali@emaildomain1.com"
hput emails x2 "sinabaharlouei@emaildomain1.com"
hput emails x3 "faraz@emaildomain1.com"
hput emails x4 "soroush@emaildomain1.com"

for h in ${!names*}; do
    key=${h#names*};
    export oldname=`hget originals $key`;
    export newname=`hget names $key`;
    export newemail=`hget emails $key`;

    echo "Changing $oldname to $newname <$newemail>"
git filter-branch -f --commit-filter '
        if [ "$GIT_AUTHOR_NAME" = "$oldname" ];
        then
                GIT_COMMITTER_NAME="$newname";
                GIT_AUTHOR_NAME="$newname";
                GIT_COMMITTER_EMAIL="$newemail";
                GIT_AUTHOR_EMAIL="$newemail";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

done

Run the above script inside root of your git repository and ofcourse you need to change the names and emails your own values you get from “svn log” and “git log”

Finally push your new git repository to your remote address:

git remote add origin git@new.gitserver.com:git-group/my_repository.git
git push -u origin master

Posted in Technical Docs | Comments Off on Migrate SVN to GIT repository and change author names

Install Oracle JRE/JDK on CentOS 6 (using the Shell)

Faced a problem while downloading JDK from the shell?
Yes, Oracle checks for cookies and here’s a small trick to install latest JDK right from oracle’s website:

wget --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" -O jdk-linux-x64.rpm "http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm"

rpm -Uvh jdk-linux-x64.rpm

Posted in Technical Docs | Comments Off on Install Oracle JRE/JDK on CentOS 6 (using the Shell)

Securing DNS against DDOS amplification attacks

When you run a DNS server on your dedicated server, it will be the target DNS amplification attacks.  To prevent these attacks from succeeding and using up your bandwidth (which you will pay for), you need to configure your DNS server not to answer recursive queries.

Check if your server is vulnerable

You can send a DNS query to your server, e.g. “thatserver.dedicated.co.za” using dig or nslookup.

dig @thatserver.dedicated.co.za www.isc.org

Alternatively:

nslookup
> server thatserver.dedicated.co.za
> isc.org
Non-authoritative answer:
Name:    isc.org
Address: 149.20.64.42

If you receive an answer that includes an answer of the IP address of www.isc.org, then your server is vulnerable, because it did the work of finding out the answer and presenting it to you.

Secure named (bind) on Linux

Add this to the “options” section of /etc/named.conf :

    recursion no;
    additional-from-auth no;
    additional-from-cache no;

Then restart named so that it will use the new secure options:

    /etc/init.d/named restart

For detailed information see http://www.cymru.com/Documents/secure-bind-template.html

Secure Microsoft DNS server

If you have installed or enabled Exchange then you have implicitly turned on DNS, which by default runs as a recursive service and can be horribly attacked.  Usually you can just firewall the DNS service.

Run this command:

    dnscmd . /Config /NoRecursion 1

Or follow this procedure:

    Start | Administrative Tools | DNS (DNS manager)
    Right click DNS server | 
        Properties | 
        Advanced | 
        Server options | 
        Disable recursion -> Yes, OK

Unfortunately, it is not possible to prevent the Microsoft DNS server from replying with cached values, so your non-recursive DNS server will provide a small amount of useful traffic amplification for attackers.  Where possible, add a firewall rule that blocks incoming traffic from unauthorised clients towards port 53/UDP (and port 53/TCP for good measure).

iptables rules for Linux

If your DNS server is used only by the machine on which you are running it, you can block external queries as follows:

iptables -A  INPUT -p udp -m udp --dport 53 -i ! lo -j DROP

These iptables firewall rules will to prohibit excessive ANY queries to a non-recursive DNS:

iptables -A  INPUT -p udp -m udp --dport 53 \
   -m string --hex-string "|0000ff0001|"  --algo bm --from 48 --to 65535 \
   -m recent --set --name dnsanyquery  --rsource
iptables -A INPUT -p udp -m udp --dport 53 \
    -m string --hex-string  "|0000ff0001|" --algo bm --from 48 --to 65535 \
   -m recent --rcheck  --seconds 60 --hitcount 5 --name dnsanyquery --rsource \
   -j DROP

If you for some reason have to run an open DNS resolver, you can limit rate limit the rate at which you will accept queries:

iptables -A INPUT -p udp --dport 53 -m hashlimit \
--hashlimit-name DNS --hashlimit-above 20/second --hashlimit-mode srcip \
--hashlimit-burst 100 --hashlimit-srcmask 28 -j DROP

If you know what the above means you can install these rules in your system.

Reference information

You can read more about this here:

Source: https://support.afrihost.com/?/Knowledgebase/Article/View/344/0/securing-dns-against-ddos-amplification-attacks

 

Posted in Technical Docs | 2 Comments

SecureShell (SSH) on the Web using Gate One 0.9

Dan McDougall just publicly released the source code to Gate One, which is an HTML5-powered terminal emulator and SSH client. It is unique in that it doesn’t require any browser plugins (it uses WebSockets) and supports multiple simultaneous terminals/SSH sessions in a single browser tab. It can resume users’ sessions after being disconnected, and supports both client and server-side session recording/playback (view as a log or like a video). Gate One can also be embedded into other web-based applications such as administration interfaces, serial port concentrators, virtual appliances, or whatever.

Posted in Technical Docs | Comments Off on SecureShell (SSH) on the Web using Gate One 0.9

Zangoole, The Mobile App for Persian Kids

Zangoole Logo (Persian Story and Song) زنگلوله داستان و شعر برای بچه هاWe were recently working on another Persian project for iOS called Zangoole. Zangoole is a Song and Story library for kids and it’s available on AppStore right now!

Here’s the AppStore Description and Screenshots :

Zangoole is a complete Persian application for kids. Using this free app you can purchase audio songs and stories from the largest collection of children’s Persian audio store.
With this app you no longer need to worry about a bed time story.
The stories and songs are interesting and morally sound while at the same time help in improving your child’s Persian skills.

Features:
★ Easy to use and simple User-Interface designed with kids in mind.
★ 2 free songs and 2 free stories, so you can get a general understanding of the quality and style of other items.
★ We plan on releasing new songs and stories onto the shop every month.

Zangoole was a collaboration between Turned on Digital and Ariaman Yar. Contact us via hello@turnedondigital.com.

Zangoole on [ iTunes Store ],  [ AppShopper ]

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

زنگوله یک نرم افزار کامل برای کودکان فارسی زبان است. این نرم افزار رایگان بوده و شما را قادر می‌سازد که به بزرگترین مجموعه‌ی ترانه‌ها و داستان های صوتی برای کودکان دسترسی داشته و آنها را خریداری نمایید. برنامه علاوه بر یک مجموعه از ترانه‌ها و داستان‌های آموزنده، دارای ظاهری شکیل و ساده برای کودکان است تا به راحتی به کار با آن بپردازند.Zangoole iPhone App Main Screenshot زنگلوله ما برآنیم که هر ماه داستان‌ها و شعرهای جدیدی را به این مجموعه اضافه کنیم. با وجود این نرم افزار، دیگر نگران داستان‌های شب برای کودکان خود نباشید. این ترانه‌ها و داستان‌ها از طرفی حاوی مطالب جالب و آموزنده بوده، و از طرفی دیگر باعث تقویت توانایی ذهنی کودکان شما در زبان فارسی می‌شود.

ویژگی‌ها :
★ ظاهری ساده و مناسب برای کودکان
★ حاوی ۲ ترانه و ۲ داستان رایگان
★ قابلیت خرید دهها ترانه و داستان جدید از فروشگاه

‫تولید زنگوله با همکاری دو شرکت Turned on Digital و آریامان یار میسر شده است. منتظر نظرات سازنده‌ی شما هستیم.

دریافت زنگوله از iTunes

Posted in Believe Me | Tagged , , , | Comments Off on Zangoole, The Mobile App for Persian Kids